Python 3.x 如何解释tf.keras.Model.predict()输出?

Python 3.x 如何解释tf.keras.Model.predict()输出?,python-3.x,tensorflow,keras,computer-vision,Python 3.x,Tensorflow,Keras,Computer Vision,我很难找到我需要的关于这个的文档。为了总结这个问题,我使用两类图像(标记为“0”或“1”)训练了tf.keras模型。现在,我想使用此模型预测新图像是“0”还是“1”。我的问题如下:model.predict()返回一个介于1和0之间的数字,但我似乎找不到确切的数字。说这是它的预测(即,接近1表示图像可能是1,接近0表示图像可能是0)是否正确?或者这里发生了什么事。我在下面包含了代码和一些输出。在这种情况下,pred图像为1的概率,以及1-pred图像为0的概率 谢谢你的帮助 for img_p

我很难找到我需要的关于这个的文档。为了总结这个问题,我使用两类图像(标记为“0”或“1”)训练了tf.keras模型。现在,我想使用此模型预测新图像是“0”还是“1”。我的问题如下:
model.predict()
返回一个介于1和0之间的数字,但我似乎找不到确切的数字。说这是它的预测(即,接近1表示图像可能是1,接近0表示图像可能是0)是否正确?或者这里发生了什么事。我在下面包含了代码和一些输出。在这种情况下,
pred
图像为1的概率,以及
1-pred
图像为0的概率

谢谢你的帮助

for img_path in test_filenames:
   img = tf.keras.preprocessing.image.load_img(img_path, target_size=(IMAGE_SIZE,IMAGE_SIZE))
   img_array = tf.keras.preprocessing.image.img_to_array(img)
   img_array = tf.expand_dims(img_array, 0)
   pred = model.predict(img_array)
   print(pred)
返回

[[0.8361757]]
[[0.26765466]]
[[0.2722953]]
[[0.81938094]]
[[0.24995388]]
[[0.45974937]]
pred
图像为1的概率,以及
1-pred
图像为0的概率

是的,没错。如果您想要获得硬类(即0或1),那么您可以设置输出阈值。0.5是一个常见的阈值,但我也看到了0.3。这是你可以调整的

pred = model.predict(img_array)
classes = pred > 0.5

预测值很可能在0到1之间,因为模型的最后一次激活是a。

谢谢,这就把它清除了。最后一次检查-如果最后一层激活是sigmoid正确的,这仍然适用?例如
outputs=tf.keras.layers.Dense(1,activation='sigmoid')(x)
Oops,对不起,我的意思是sigmoid:)您将对多个类使用softwax。请注意,解释model.predict的输出需要知道模型输出的内容,因为predict只是对您的模型进行正向传递。因此,请包括一些关于您的模型的信息,特别是输出和损耗。