Tensorflow,选择操作给定

2024-06-01 03:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要我的模型在训练和测试中表现不同。我试图建立一个序列到序列的模型,我希望在训练时将预期的输出输入解码器,在测试时将实际输出输入解码器。我定义了以下占位符,它应该包含一个缩放器值。在

training = tf.placeholder(tf.bool, None, 'training')

在我的解码器中,我使用下面的select语句,它在第一个时间步中返回所有的零,但是根据它是否训练,在最后一个输出和预期输出之间进行选择。在

^{pr2}$

当我在训练模式下运行模型时,我使用下面的方法将training设置为True。在

sess.run([accuracy, cross_entropy, train_step], feed_dict = {input_tensor: x_train, expected_output: y_train, training: True})

当它运行时,我得到以下错误。在

tensorflow.python.framework.errors.InvalidArgumentError: Inputs to operation decoder/Select of type Select must have the same size and shape.  Input 0: [] != input 1: [32,128]

似乎条件需要和我在其中选择的张量大小相同。但是,我想选择一个或另一个表达式,而不是元素选择。有更好的方法吗?我想select应该只广播布尔值。我可以把它平铺,但这似乎有点低效。在


Tags: 方法模型trueinput定义tftrainingtrain
1条回答
网友
1楼 · 发布于 2024-06-01 03:25:24

您是对的,tf.select希望条件与其他两个输入具有相同的形状。在

您应该改为使用tf.cond。关于在张量流图中使用if条件,请参见this detailed answer。在

相关问题 更多 >