Sorry, slight confusion, by "chose the order arbitrarily" I didn't mean on the fly. I meant be able to selection what ever order, but once for all once running. I'm not actually changing anything once compiled.
On Friday, 5 May 2017 02:56:03 UTC+1, Adam Becker wrote: > > I don't think this works. The inner function of scan will be converted to > a graph, then getting compiled inside ScanOp. If you change nonlocal > variable "order" on the fly, the change won't be reflected on the compiled > function. > > If the inner loop itself can be written as scan, you can just make a > nested scan instead. Compile the innermost graph with scan first (by hand), > then pass it as fn to the outer scan. > > On Wednesday, May 3, 2017 at 8:04:46 PM UTC+8, Gilles Degottex wrote: >> >> Hi, >> >> I'm new on this list, so I hope I'm not duplicating a subject that has >> already been covered and answered. >> >> I'm trying to implement High-Order RNN (https://arxiv.org/abs/1605.00064) >> and I would like to let me chose the order arbitrarily, which changes the >> number parameters to pass to the inner scan function. >> For this purpose, I'm doing something like: >> >> def step(in_t, *args): >> >> W_xi_ = args[-2] >> b_i_ = args[-1] >> args = args[:-2] >> >> h_t = T.dot(in_t, W_xi_) >> >> for p in xrange(order): >> h_t += T.dot(args[p], args[order+p]) >> >> h_t = nonlinearity(h_t + b_i_) >> >> return h_t >> >> h, _ = theano.scan(step, sequences=[invalues], >> outputs_info=[dict(initial=hid_init, taps=range(-order,0))], >> non_sequences=W_hip+[W_xi, b_i], strict=True) >> >> W_hip being a list of shared matrices, one for each tap. >> >> Basically, it compiles, I can train such a model, so it looks like it >> works. >> >> However, I've strictly no clue if the code is doing what I'm expecting it >> to do. >> Is is okay to use a for loop in th inner scan function? >> Does scan behave nicely with a variable number of argument? >> >> Any tips to help verifying/checking that a code is doing what it is >> supposed to do is also very welcome. >> >> Cheers, >> >> >> -- --- 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.
