When I use theano loop with RandomStream to generate random number,
 theano compile fail with “MissingInput”。

I Google this problem, and I found :

   - a  issue(https://github.com/Theano/Theano/issues/3437)。This issue said 
   we cannot use RandomStream with symbolic shape in scan。

But I also found :

   - a documentation int Theano 
   
(http://deeplearning.net/software/theano/library/scan.html#using-shared-variables-gibbs-sampling),the
 
   code in the documentation use RandomStream with symbolic shape in scan。
   
So,how to use theano scan with RandomStream。Thanks for your help

here is my code。this code compile failed


   - import theano;
   - from theano import tensor as T;
   - import numpy as np;
   - 
   - from theano.sandbox.rng_mrg import MRG_RandomStreams as RandomStreams;
   - 
   - x=T.ivector();
   - 
   - def step(i):
   -     sample=RandomStreams().binomial(size=(i,));
   -     return sample;
   - 
   - result,_=theano.scan(fn=step,outputs_info=None,
   -                      sequences=[x]);
   - 
   - f=theano.function([x],result);
   - 
   - x_val=np.array([1,2,3],dtype='int32');
   - print f(x_val);
   

this code work fine

   - import theano;
   - from theano import tensor as T;
   - import numpy as np;
   - 
   - from theano.sandbox.rng_mrg import MRG_RandomStreams as RandomStreams;
   - 
   - x=T.ivector();
   - len=x.shape[0];
   - 
   - def step(i):
   -     len_=len;
   -     sample=RandomStreams().binomial(size=(len_,));
   -     return sample;
   - 
   - result,_=theano.scan(fn=step,outputs_info=None,
   -                      sequences=[x]);
   - 
   - f=theano.function([x],result);
   - 
   

   - x_val=np.array([1,2,3],dtype='int32');
   - print f(x_val);
   




-- 

--- 
You received this message because you are subscribed to the Google Groups 
"theano-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to