У меня путают около theano.scan(). Я прочитал официальную документацию, но я все еще чувствую, что мои знания ограничены. Я хочу изменить входы функции, указанной в theano.scan
. Например, у меня есть следующий код.Как изменить ввод функции, заданной в anano.scan()?
def forward_prop_step(x_t, s_t1_prev, s_t2_prev):
# i have my code here
[o, s, s2], updates = theano.scan(
forward_prop_step,
sequences=x,
truncate_gradient=self.bptt_truncate,
outputs_info=[None,
dict(initial=T.zeros(self.hidden_dim)),
dict(initial=T.zeros(self.hidden_dim))])
Итак, здесь theano.scan
пробегает последовательность x
. Насколько я понял, forward_prop_step
получает вход x_t
, когда theano.scan
проходит через последовательность x
, но как forward_prop_step
получает второй и третий параметр? Is theano.scan
получение 2-го и 3-го параметров от 2-го и 3-го значений outputs_info
?
Если я хочу изменить приведенный выше код и хочу дать еще один параметр x2 в качестве последовательности theano.scan
, как мне изменить код? Я хочу, чтобы theano.scan
выполнял две последовательности x
и x2
и дал свои значения в качестве первых двух параметров (x
и x2
) метода forward_prop_step
. Например, прототип forward_prop_step
будет:
def forward_prop_step(x_t, x_f, s_t1_prev, s_t2_prev):
# i have my code here
Как я могу изменить приведенный выше код на theano.scan
дать как x
и x2
как последовательность? Может ли кто-нибудь кратко объяснить, как я могу изменить параметры функций, заданных theano.scan
, а также возвращаемые значения с примерами?
Немногие другие вопросы:
(1) Если я даю n_steps
параметр вместе с параметром sequences
Как theano.scan
Выполняет? Есть theano.scan
, тогда работает как вложенный (два) для цикла?
(2) Как параметр non_sequences
отличается от sequences
в theano.scan
параметр функции?
(3) Выполняет ли theano.scan
функцию, предоставленную для каждого элемента параметра последовательности? Если это так, то когда я пишу оператор print
внутри функции forward_prop_step
, оператор print
выполняется только один раз, хотя вычисление внутри функции выполняется несколько раз (проходит через всю последовательность). Как theano.scan
неоднократно называет метод, который ему предоставляется?
поблагодарить брата за ваш краткий ответ, я действительно ценю его. Я добавил еще один вопрос (3-й вопрос) на мой пост, можете ли вы ответить на него тоже? Я прочитал документацию, но не мог понять, как anano.scan итеративно вызывает функцию? –
спасибо тонну, брат! –
Я рад, это помогло – uyaseen