我是图像分类的新手,很抱歉,如果这个问题看起来太幼稚。我正在为最近的工作使用tf转移学习模型。参考:https://www.tensorflow.org/tutorials/images/transfer_learning。
这里明确提到了如何使用此模型进行图像批量预测。但是我很难弄清楚如何使用此方法对单个图像进行预测。
我尝试过:
np_image = Image.open(image_path)
np_image = np.array(np_image).astype('float32')/255
np_image = transform.resize(np_image, (800, 700, 3))
np_image = np.expand_dims(np_image, axis=0)
probability_model = tf.keras.Sequential([model, tf.keras.layers.Softmax()])
predictions = probability_model.predict_proba(np_image)
但是,所有图像的结果均为1。我希望使用此模型在图像级别进行概率预测。
答案 0 :(得分:0)
为此问题找到了解决方案。
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
image = load_img(image_path, target_size=(800, 700))
image = img_to_array(image)
image = image.reshape((1, image.shape[0], image.shape[1], image.shape[2]))
predictions = tf.nn.sigmoid(new_model.predict(image))
predictions=np.array(predictions)[0][0]