It is the first implementation that is closer to working. Why do you do an
arange +1? Why the +1?

Also why give an init value to init_state[0]?

Otherwise, t seen good.

Le ven. 31 mars 2017 12:25, LM. <[email protected]> a écrit :

> Hi Fred,
>
> Thanks. I implemented in two ways, one as you told me, and the other using
> a share variable. However, I not sure if the second is correct. Could you
> confirm me if the implementations are correct?
>
> Implementation 1:
>
> init_state = tensor.alloc(0., nsteps + 1, n_samples, dim)
> init_state = tensor.set_subtensor(init_state[0], init_state_0)
>
> state_below_=...
> time_step = tensor.arange(nsteps).astype('int64') + 1
>
> def _step(x_,t_, h_)
>      ....
>      h_ = tensor.set_subtensor(h_[t_], h)
>      return h_
>
> rval, updates = theano.scan(_step,
>                                     sequences=[state_below_, time_step],
>                                     outputs_info=[init_state],
>                                     n_steps=nsteps)
>
> Implementation 2:
>
> mem_h = tensor.alloc(0., nsteps + 1, n_samples, dim)
> mem_h = tensor.set_subtensor(mem_h[0], init_state_0)
>
> state_below_=...
> time_step = tensor.arange(nsteps).astype('int64') + 1
>
> def _step(x_,t_, h_, mem_h)
>      ....
>      mem_h = tensor.set_subtensor(mem_h[t_], h)
>      return h
>
> rval, updates = theano.scan(_step,
>                                     sequences=[state_below_, time_step],
>                                     outputs_info=[init_state_0],
>                                     non_sequences=[mem_h]
>                                     n_steps=nsteps)
>
> Thanks again
>
> On Friday, March 3, 2017 at 2:46:27 PM UTC+1, nouiz wrote:
>
> Sadly it isn't trivial. The normal scan behavior is to return a fixed
> number of previous taps.
>
> But you can do it. Make one of your input as big as the output and add an
> input that is the iterations number. Then you will return that input where
> you set row i to the value of that iteration with set_subtensor.
>
> I think this will use more memory them needed if you take the gradient.
>
> Fred
>
> Le mer. 1 mars 2017 10:12, Lesly M. <[email protected]> a écrit :
>
> Hello,
>
> I need to get all previous tabs values at each iteration with scan. The
> documentation shows how to get individual tabs like t-n or t+n, but I would
> like to have all from time 0 to t-1. Is it possible?
>
> Thanks,
>
> Lesly
>
> --
>
> ---
> 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.
>
> --
>
> ---
> 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.
>

-- 

--- 
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