我使用了大约560张图像的训练数据,并且为了进行测试,我最初使用了200张图像。
问题是model.predict函数正在为所有其他200张图像预测相同的答案
图层代码为
model=Sequential()
model.add( Conv2D(64, (3,3) , input_shape=(100, 100, 1)) )
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64,(3,3) ))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten()) #it will convert our features data from 3d to 1d
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation("sigmoid"))
model.compile(loss="binary_crossentropy",
optimizer="adam",
metrics=['accuracy'])
hist=model.fit(x,y,batch_size=42,epochs=10,validation_split=0.1)
模型预测代码:
import matplotlib.pyplot as plt
fig=plt.figure()
for num,data in enumerate(test_data[:12]):
img_num = data[1]
img_data = data[0]
y = fig.add_subplot(3,4,num+1)
orig = img_data
data = img_data.reshape(-1,IMG_SIZE,IMG_SIZE,1)
#model_out = model.predict([data])[0]
model_out = model.predict_on_batch([data])
# print(model_out)
if np.argmax(model_out) == 1:
str_label='positive'
print(np.argmax(model_out))
else:
str_label='Negative'
print(np.argmax(model_out))
y.imshow(orig,cmap='gray')
plt.title(str_label)
y.axes.get_xaxis().set_visible(False)
y.axes.get_yaxis().set_visible(False)
plt.show()
预测模型正在预测与我的测试数据相同的结果。 我正在使用小型数据集来测试数据。