我的模型基于Shallow Net。
当我训练我的模型时,结果是:
loss: 1.1398 - accuracy: 0.6093 - val_loss: 1.2309 - val_accuracy: 0.5657
然后我从网上下载了 20 张图片(每个班级 2 张)来检查性能。
这个数据集对应的标签应该是:0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9]。
但是我的模型的预测是:[0,0,0,1,0,1,5,0,0,5,2,2,0,0,5,2,0,0,1,9]。
精度为:0.2,与 0.5657 相比相当低。
我加载这些数据集的代码:
for file in os.listdir("C:/Users/....."):
img_arr=cv2.imread(os.path.join(os.getcwd(),"Dataset",file))
img_arr=cv2.resize(img_arr,(32,32))/255
img_arrs.append(img_arr)
img_arrs=np.array(img_arrs)
img_arrs=img_arrs.reshape(20,32,32,3)
model=load_model("weights.hdf5")
pred=model.predict(img_arrs).argmax(axis=1)
这背后的原因可能是什么?有人可以给我一个见解吗?
编辑:(添加培训代码)
(x_train,y_train),(x_test,y_test)=cifar10.load_data()
x_train=x_train.astype(float)/255
x_test=x_test.astype(float)/255
lb=LabelBinarizer()
y_train=lb.fit_transform(y_train)
y_test=lb.transform(y_test)
labelNames = ["airplane", "automobile", "bird", "cat", "deer","dog", "frog", "horse", "ship", "truck"]
model=ShallowNet.ShallowNet.build(width=32, height=32, depth=3, classes=10)
sgd=SGD(0.001)
model.compile(optimizer=sgd,loss="categorical_crossentropy",metrics=["accuracy"])
H=model.fit(x_train,y_train,validation_data=(x_test,y_test),batch_size=32,epochs=50,verbose=1)
