解决]CNN图像分类。它给我的预测总是一样的

问题描述 投票:2回答:1

我是这个领域的新人,还在学习,如果被认为是愚蠢的问题,我很抱歉.所以最近我尝试使用Python和TensorFlow学习图像分类。我按照一些视频上的教程进行了学习。但是在我的代码中出现了一些问题,因为当我尝试我的模型时,验证损失往往会增加,而我的验证精度却一直在波动。当我尝试预测我的样本图像时,它一直给我相同的预测。我的数据集中的图像一共有730张。

这是我做预测的代码。

import cv2
import tensorflow as tf

CATEGORIES = ["Bike", "Car"]
IMAGE_SIZE = 50

def prepare(filepath):
    image_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)
    image_array = image_array/255.0
    new_image_array = cv2.resize(image_array, (IMAGE_SIZE,IMAGE_SIZE))
    return new_image_array.reshape(-1, IMAGE_SIZE, IMAGE_SIZE, 1)

model = tf.keras.models.load_model("prototype.model")

prediction = model.predict([prepare('car.jpg')])
print( CATEGORIES[int(prediction[0][0])] )

非常感谢你

python tensorflow neural-network jupyter-notebook cnn
1个回答
1
投票

我曾经也遇到过类似的问题。既然你需要将图像分类为 "自行车 "或 "汽车",那么可以尝试将你的最终输出层改成。

model.add(Dense(2))
model.add(Activation('softmax'))

如果还是不行,请尝试 sparse_categorical_crossentropy 而不是作为你 loss.

© www.soinside.com 2019 - 2024. All rights reserved.