我已经编码了一个自定义的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视为单个输入(而不是整个输入)
答案 0 :(得分:1)
模型的输出很有意义。它给出3x3张量的原因是因为模型中的最后一层输出对应于3个类的概率。因此,给定3个批次的输入,您的输出将具有批次中每个元素3个类的概率。如果要查找预测的类别,则需要具有最高概率的类别。 Tensorflow使您可以轻松地通过以下操作找到类
tf.argmax(predictions, axis=-1)
此操作的相应输出形状将为(None,)形状,其中None为批量大小。