def make_node(self, *matrices): if not matrices: raise ValueError('no matrices to allocate') matrices = list(map(tt.as_tensor, matrices)) if any(mat.type.ndim != 2 for mat in matrices): raise TypeError('all data arguments must be matrices') if self.sparse: out_type = theano.sparse.matrix(self.format, dtype=largest_common_dtype(matrices)) else: out_type = theano.tensor.matrix(dtype=largest_common_dtype(matrices)) return tt.Apply(self, matrices, [out_type])
def make_node(self, *matrices): if not matrices: raise ValueError('no matrices to allocate') matrices = list(map(tt.as_tensor, matrices)) if any(mat.type.ndim != 2 for mat in matrices): raise TypeError('all data arguments must be matrices') if self.sparse: out_type = theano.sparse.matrix(self.format, dtype=largest_common_dtype(matrices)) else: out_type = theano.tensor.matrix(dtype=largest_common_dtype(matrices)) return tt.Apply(self, matrices, [out_type])
def perform(self, node, inputs, output_storage, params=None): dtype = largest_common_dtype(inputs) if self.sparse: output_storage[0][0] = sp.sparse.block_diag( inputs, self.format, dtype) else: output_storage[0][0] = scipy_block_diag(*inputs).astype(dtype)
def perform(self, node, inputs, output_storage, params=None): dtype = largest_common_dtype(inputs) if self.sparse: output_storage[0][0] = sp.sparse.block_diag( inputs, self.format, dtype ) else: output_storage[0][0] = scipy_block_diag(*inputs).astype(dtype)