我正在尝试使用tf.distribute.MirroredStrategy(). 虽然训练循环在单个 GPU 上完美运行,ValueError: 'handle' is not available outside the replica context or a 'tf.distribute.Strategy.update()' call但当我尝试使用多个 GPU 时会抛出错误。我正在使用 tensorflow 1.14 和 Python 3.7.3。
我在下面尝试了一个最小的例子。自定义训练循环在单个 GPU 上运行没有问题,但我尝试使用tf.distribute.MirroredStrategy()多个 GPU 失败并显示错误消息(完整输出)
ValueError Traceback (most recent call last)
<ipython-input-11-3fda5d330457> in <module>
1 with mirrored_strategy.scope():
----> 2 model, train_op, X1_in, X2_in = create_model_and_train_op()
3 with tf.Session() as sess:
4 sess.run(tf.global_variables_initializer())
5 for sample_ind in range(n_samples):
<ipython-input-7-8f5b3971bbe2> in create_model_and_train_op()
6
7 model = Model(name='BNN',inputs=[X1_in,X2_in], outputs=[loss])
----> 8 train_op = tf.train.AdamOptimizer().minimize(loss) …Run Code Online (Sandbox Code Playgroud)