我是keras和Tensorflow的新手。我已经在Keras中使用Tensorflow作为后端训练了一个模型,以减少特定的图像噪点。当我使用此模型预测一组测试图像(嘈杂,shape = [batchsize_1,width_1,height_1])时,我得到了正确的预测图像(去除了噪声,shape = [batchsize_1,width_1,height_1]),但是顺序的预测图像被随机化。由于预测图像的顺序对我的下一步很重要,因此如何使预测图像的顺序与测试图像相同?
这是我用于加载模型和预测测试数据的代码:
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("model.h5")
adam=Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-8)
loaded_model.compile(loss=losses.mean_absolute_error, optimizer=adam)
predict_images= loaded_model.predict(test_images, batch_size=16)
我确定test_images
的顺序在batchsize维度上是顺序,但是predict_images
的batchsize顺序是随机的。 predict_image
的顺序是否也取决于我训练模型的方式?我怎么能保持predict_image
的顺序不变?
任何评论和帮助将不胜感激。非常感谢!
答案 0 :(得分:0)
如果您的数据集是生成器,则需要传递 shuffle=False(默认为 True),否则您的预测将被打乱。 示例
imageDataGenerator.flow_from_dataframe(
dataframe, shuffle=False)