我正在参考一个tf1的代码来开发一个模型。在参考代码中,他们使用了tf.placeholder来为模型提供输入,代码如下:
class model(object): def __init__(self, lstm_size, batch_len, output_nodes, keep_prob, learning_rate=0.001): self.inputs_ = tf.compat.v1.placeholder(tf.float32, shape=[batch_len, None, 512], name='lstm_inputs') self.targets_ = tf.compat.v1.placeholder(tf.int32, [batch_len], name='lstm_targets')
这个模型的执行模式是图执行(tf.Graph)。
由于我想将代码转换并在急切执行模式下运行,但是tf.placeholder在急切执行模式下无法工作。我该如何替换tf.placeholder,同时不影响输入名称、数据类型和输入值的形状,以便适应急切执行模式?
再次强调,我需要将其转换为急切执行模式。
回答:
你可以使用tf.keras.Input()
来替代tf.compat.v1.placeholder(),以便在急切执行模式下运行代码。
另外,请查看这个迁移指南,了解如何将TensorFlow 1.x
代码转换为TensorFlow 2.x
。