from theano import function, config, shared, sandbox import theano import theano.tensor as T import numpy as np import time fx2=lambda prior,n: prior * 2 n = T.iscalar('n') v = T.ivector('v') result, updates = theano.scan(fx2, sequences=None, outputs_info=v, non_sequences=v, n_steps=n) floop = theano.function(inputs=[v, n], outputs=result[-1], updates=updates) print floop([1, 2, 3], 3) a = T.ivector('a') outputs = T.as_tensor_variable(np.asarray(0)) result, updates = theano.scan(fx2, sequences=[a], outputs_info=outputs, non_sequences=None) fite = theano.function(inputs=[a], outputs=result)#, updates=updates) print fite([5,6,7]) result, updates = theano.scan(fn=lambda seq, prior: seq + prior, sequences=[a], outputs_info=outputs, non_sequences=None) fite2 = theano.function(inputs=[a], outputs=result)#, updates=updates) print fite2([5,6,7]) m = T.imatrix('m') result, updates = theano.scan(lambda n:n+2, sequences=[m], non_sequences=None) fite_m=theano.function([m],result) print fite_m([[1,2,3],[4,5,6]]) X=T.scalar('X') A=T.vector('A') fx=lambda x,y:x*y fm,_=theano.map(fx, sequences=[A], non_sequences=X ) fmapx = theano.function(inputs=[X,A], outputs=fm) print fmapx(4,[1,2,3]) fm,_=theano.map(fx, sequences=[m], non_sequences=X ) fmapxm = theano.function(inputs=[X,m], outputs=fm) print fmapxm(4,[[1,2,3],[4,5,6]]) V=T.vector('V') fm,_=theano.map(lambda x,v:x+v, sequences=[m], non_sequences=V ) fmapxmv = theano.function(inputs=[V,m], outputs=fm) print fmapxmv([2,2,2],[[1,2,3],[4,5,6]])