def check_layer_output_shape(layer, input_data): ndim = len(input_data.shape) layer.input = ndim_tensor(ndim) layer.set_input_shape(input_data.shape[1:]) expected_output_shape = layer.output_shape[1:] function = theano.function([layer.input], [layer.get_output()]) output = function(input_data)[0] assert output.shape[1:] == expected_output_shape
def add_input(self, name, ndim=3, dtype='float'): if name in self.namespace: raise Exception('Duplicate node identifier: ' + name) self.namespace.add(name) self.input_order.append(name) layer = Layer() # empty layer if dtype == 'float': layer.input = ndim_tensor(ndim) else: if ndim == 2: layer.input = T.imatrix() else: raise Exception('Type "int" can only be used with ndim==2 (Embedding).') layer.input.name = name self.inputs[name] = layer self.input_config.append({'name': name, 'ndim': ndim, 'dtype': dtype})
def __init__(self, ndim=2): super(Pass, self).__init__() self.input = ndim_tensor(ndim)
def __init__(self, func, ndim=2): super(Lambda, self).__init__() self.input = ndim_tensor(ndim) self.func = func
def __init__(self, func, output_shape, ndim=2): super(Lambda, self).__init__() self.input = ndim_tensor(ndim) self.func = func self._output_shape = output_shape