考虑单个张量作为批输入的模型

时间:2020-06-12 20:29:09

标签: python tensorflow keras

我已经编码了一个自定义的TensorFlow模型。但是,当我将单个张量传递给它时,它会将该张量的每个元素都视为单个输入,因此会给出批量输出。

例如我的输入张量的形状为[3,1],值:

guard

与此对应,我应该得到一个形状为(3,)的向量。但是我得到的是3x3张量:

tf.Tensor(
[[0.7001484 ]
 [0.2581525 ]
 [0.04169908]], shape=(3, 1), dtype=float32)

我的模型

tf.Tensor(
[[0.31234854 0.3224371  0.36521438]
 [0.32561225 0.3294511  0.3449366 ]
 [0.33208787 0.33271718 0.33519495]], shape=(3, 3), dtype=float32)

在这里,print(x)打印一个(3,1)张量,类似于上面的示例。有什么办法解决这个问题? 我希望模型将x视为单个输入(而不是整个输入)

1 个答案:

答案 0 :(得分:1)

模型的输出很有意义。它给出3x3张量的原因是因为模型中的最后一层输出对应于3个类的概率。因此,给定3个批次的输入,您的输出将具有批次中每个元素3个类的概率。如果要查找预测的类别,则需要具有最高概率的类别。 Tensorflow使您可以轻松地通过以下操作找到类

tf.argmax(predictions, axis=-1)

此操作的相应输出形状将为(None,)形状,其中None为批量大小。