我目前正在开展一个项目,该项目涉及训练回归模型、保存并加载它以使用该模型进行进一步预测。但是我遇到了问题。每次我对图像进行 model.predict 时,它都会给出相同的预测。我不完全确定问题是什么,也许是在训练阶段,或者我只是做错了什么。
我在关注 this tutorial
所有文件都在这个 github repo
以下是代码中的一些内容:
(这部分是训练模型并保存)
model = create_cnn(400, 400, 3, regress=True)
opt = Adam(lr=1e-3, decay=1e-3 / 200)
model.compile(loss="mean_absolute_percentage_error", optimizer=opt)
model.fit(X, Y, epochs=70, batch_size=8)
model.save("D:/statispic2/final-statispic_model.hdf5")
下一个代码部分来自加载模型和进行预测。
model = load_model("D:/statispic2/statispic_model.hdf5") # Loading the model
prediction = model.predict(images_ready_for_prediction) #images ready for prediction include a numpy array
#that is loaded with the images just like I loaded them for the training stage.
print(prediction_list)
试用后,这是模型的输出预测:
[[0.05169942] # I gave it 5 images as parameters
[0.05169942]
[0.05169942]
[0.05169942]
[0.05169942]]
如果有任何不清楚的地方,或者您想查看更多代码,请告诉我。
最佳答案
人们说回归和 CNN 是两种完全不同的东西,显然他们在 ML 类(class)中遗漏了一些基本知识。是的,它们完全不同!但不应该比较;)
CNN 是一种深度神经网络,通常因其在图像上的使用而闻名。因此它是一个解决问题的框架,可以同时解决回归和分类问题。
回归是指您预测的输出类型。所以说实话,直接比较两者是很愚蠢的。
我无法评论本节中误导您的特定人员,因为我需要特定数量的点才能这样做。
然而,回到问题。您是在保存之前还是之后遇到这个问题?如果您之前遇到过,我会尝试将您的输出值缩放到更简单的分布。如果它在您保存后发生,我会查看您的框架版本以及它们如何保存它的文档。
也可能只是图片中没有信息。
关于python - 机器学习回归模型为每个图像预测相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698373/