アダム・オプティマイザを2回使用してコード内のテンソルを最小限に抑えようとしていますが、GradientDescentOptimizerを2回使用しようとしましたが問題ありません。 at:tensorflowVariable RNNLM/RNNLM/embedding/Adam_2/ does not existですが、その解決策はここでは機能しません。私はまた、ページを参照してください:https://github.com/tensorflow/tensorflow/issues/6220、しかし、私はまだ理解していません。
私のコードは、私はエラーメッセージが表示されます。ValueError:変数NN/NN/W/Adam_2 /が存在しないか、tf.get_variable()で作成されていません。 VarScopeでreuse = Noneを設定することを意味しましたか?
は、その後、私はtensorflowVariable RNNLM/RNNLM/embedding/Adam_2/ does not existで解決策を試してみましたが、あなたは絶対に すべての変数が時間で定義されていることを確認し、同じスコープでそれをしなければならない場合
アダム・オプティマイザをテンソルで使用する
import tensorflow as tf
def main():
optimizer = tf.train.GradientDescentOptimizer(0.005)
# optimizer = tf.train.AdamOptimizer(0.005)
with tf.variable_scope('NN') as scope:
W = tf.get_variable(name='W', initializer=tf.random_uniform(dtype=tf.float32, shape=[5, 1]))
X = tf.get_variable(name='X', initializer=tf.random_uniform(dtype=tf.float32, shape=[5, 1]))
y_ = tf.get_variable(name='y_', initializer=tf.random_uniform(dtype=tf.float32, shape=[5, 1]))
y1 = W + X
loss_1 = tf.reduce_mean(tf.abs(y_ - y1))
# train_op1 = tf.train.GradientDescentOptimizer(0.005).minimize(loss_1)
train_op1 = tf.train.AdamOptimizer(0.005).minimize(loss_1)
# with tf.variable_scope('opt'):
# train_op1 = tf.train.AdamOptimizer(0.005).minimize(loss_1)
##############################################################################################
scope.reuse_variables()
W2 = tf.get_variable(name='W', initializer=tf.random_uniform(dtype=tf.float32, shape=[5, 1]))
X2 = tf.get_variable(name='X', initializer=tf.random_uniform(dtype=tf.float32, shape=[5, 1]))
b = tf.Variable(tf.random_normal(shape=[5, 1], dtype=tf.float32))
y2 = W2 + X2 + b
loss_2 = tf.reduce_mean(tf.abs(y_ - y2))
# train_op2 = tf.train.GradientDescentOptimizer(0.005).minimize(loss_2)
train_op2 = tf.train.AdamOptimizer(0.005).minimize(loss_2)
# with tf.variable_scope('opt'):
# train_op2 = tf.train.AdamOptimizer(0.005).minimize(loss_2)
if __name__ == '__main__':
main()
2つ目のオプティマイザを別のスコープに入れてみることはできますか? – rmeertens
2つ目のオプティマイザを別のスコープに配置していただきありがとうございます。しかし、私はまだ私のコードでエラーが発生した理由を知らない – Joey