lasagne.utils

lasagne.utils.floatX(arr)[source]

Converts data to a numpy array of dtype theano.config.floatX.

Parameters:

arr : array_like

The data to be converted.

Returns:

numpy ndarray

The input array in the floatX dtype configured for Theano. If arr is an ndarray of correct dtype, it is returned as is.

lasagne.utils.shared_empty(dim=2, dtype=None)[source]

Creates empty Theano shared variable.

Shortcut to create an empty Theano shared variable with the specified number of dimensions.

Parameters:

dim : int, optional

The number of dimensions for the empty variable, defaults to 2.

dtype : a numpy data-type, optional

The desired dtype for the variable. Defaults to the Theano floatX dtype.

Returns:

Theano shared variable

An empty Theano shared variable of dtype dtype with dim dimensions.

lasagne.utils.as_theano_expression(input)[source]

Wrap as Theano expression.

Wraps the given input as a Theano constant if it is not a valid Theano expression already. Useful to transparently handle numpy arrays and Python scalars, for example.

Parameters:

input : number, numpy array or Theano expression

Expression to be converted to a Theano constant.

Returns:

Theano symbolic constant

Theano constant version of input.

lasagne.utils.one_hot(x, m=None)[source]

One-hot representation of integer vector.

Given a vector of integers from 0 to m-1, returns a matrix with a one-hot representation, where each row corresponds to an element of x.

Parameters:

x : integer vector

The integer vector to convert to a one-hot representation.

m : int, optional

The number of different columns for the one-hot representation. This needs to be strictly greater than the maximum value of x. Defaults to max(x) + 1.

Returns:

Theano tensor variable

A Theano tensor variable of shape (n, m), where n is the length of x, with the one-hot representation of x.

Notes

If your integer vector represents target class memberships, and you wish to compute the cross-entropy between predictions and the target class memberships, then there is no need to use this function, since the function lasagne.objectives.categorical_crossentropy() can compute the cross-entropy from the integer vector directly.

lasagne.utils.unique(l)[source]

Filters duplicates of iterable.

Create a new list from l with duplicate entries removed, while preserving the original order.

Parameters:

l : iterable

Input iterable to filter of duplicates.

Returns:

list

A list of elements of l without duplicates and in the same order.

lasagne.utils.compute_norms(array, norm_axes=None)[source]

Compute incoming weight vector norms.

Parameters:

array : ndarray

Weight array.

norm_axes : sequence (list or tuple)

The axes over which to compute the norm. This overrides the default norm axes defined for the number of dimensions in array. When this is not specified and array is a 2D array, this is set to (0,). If array is a 3D, 4D or 5D array, it is set to a tuple listing all axes but axis 0. The former default is useful for working with dense layers, the latter is useful for 1D, 2D and 3D convolutional layers. (Optional)

Returns:

norms : 1D array

1D array of incoming weight vector norms.

Examples

>>> array = np.random.randn(100, 200)
>>> norms = compute_norms(array)
>>> norms.shape
(200,)
>>> norms = compute_norms(array, norm_axes=(1,))
>>> norms.shape
(100,)
lasagne.utils.create_param(spec, shape, name=None)[source]

Helper method to create Theano shared variables for layer parameters and to initialize them.

Parameters:

spec : numpy array, Theano shared variable, or callable

Either of the following:

  • a numpy array with the initial parameter values
  • a Theano shared variable representing the parameters
  • a function or callable that takes the desired shape of the parameter array as its single argument and returns a numpy array.

shape : iterable of int

a tuple or other iterable of integers representing the desired shape of the parameter array.

name : string, optional

If a new variable is created, the name to give to the parameter variable. This is ignored if spec is already a Theano shared variable.

Returns:

Theano shared variable

a Theano shared variable representing layer parameters. If a numpy array was provided, the variable is initialized to contain this array. If a shared variable was provided, it is simply returned. If a callable was provided, it is called, and its output is used to initialize the variable.

Notes

This function is called by Layer.add_param() in the constructor of most Layer subclasses. This enables those layers to support initialization with numpy arrays, existing Theano shared variables, and callables for generating initial parameter values.