Тензор потока while_loop с полностью подключенным слоем Vs.звонить несколько раз - PullRequest
0 голосов
/ 27 сентября 2018

Я столкнулся с чем-то странным, когда пытался определить опцию RNN, и хотел бы обратиться за помощью.цикл выглядит примерно так:

_, outputs, _ = tf.while_loop(
    cond=lambda time_step, *_: time_step < steps,
    body=b,
    loop_vars=(time_step, outputs, state))

, а тело использует слой softmax, который содержит слой tf.contrib.layers.fully_connected в области видимости "caption_rnn" и для повторного использования установлен в значение false.

пока я запускал while_loop, все хорошо.однако мне интересно:

  1. , так как я установил повторное использование в false и слой вызывается несколько раз в теле while_loop.Почему это может быть хорошо?
  2. Тем временем я попытался заменить while_loop несколькими вызовами следующим образом:

    time_step, output, state = b (time_step, output, state) time_step, выходы, состояние = b (time_step, выходы, состояние) time_step, выходы, состояние = b (time_step, выходы, состояние)

    делая так, я действительно получил ошибку:

    ValueError: переменная caption_rnn / weights уже существует, запрещено.Вы имели в виду установить reuse = True или reuse = tf.AUTO_REUSE в VarScope?Первоначально определено в: .....

Может кто-нибудь сказать мне, что здесь происходит?большое спасибо !!

...