我有一个tf.nn.rnn_cell.BasicLSTMCell
作为我的NN体系结构的一部分。我使用for循环,因为它在输入中递归固定数量的时间步长。像这样:
lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=lstm_dimensionality, name="forward_lstm")
_, (lstm_memory, lstm_hidden) = lstm_cell(input_m, state=[lstm_memory, lstm_hidden])
for i in range(3):
# HERE is where the error is thrown
_, (lstm_memory, lstm_hidden) = lstm_cell(input_m, state=[lstm_memory, lstm_hidden])
在单个设备上本地运行效果很好。它也可以在单个GPU上的Google ML Engine中正常运行。但是,当我尝试使用tf.distribute.MirroredStrategy
分配给4个GPU时,会抛出异常
ValueError: At least one of name (None) and default_name (None) must be provided.
可调用的lstm_cell
甚至都没有使用name
参数,因此很混乱。
这里没有太多的细节空间,因此我在此Github repo中创建了一个玩具示例,以重现ML Engine中的错误。特别是在this line上引发错误的地方。
Tensorflow:1.13.1
ML引擎:--runtime-version 1.13