【发布时间】:2017-10-31 20:55:43
【问题描述】:
我训练了一个线性回归模型(具有线性回归输出的 CNN)。我的输入是图像,输出是概率。我现在想拍摄另一张图像(与我的测试集不同)并通过我的网络推送它以获得概率。
我加载我的模型、权重和图像并将其重塑为 4D 张量并像这样运行预测:
json_file = open('/home/model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("/home/weights.h5")
loaded_model.compile(loss='mean_squared_error', optimizer=OPTIMISER, metrics=['mean_absolute_error'])
img = (ndimage.imread(img).astype(float) - pixel_depth / 2) / pixel_depth
img = img.reshape(1, 128, 128, 1).astype('float32')
out = loaded_model.predict(img)
我得到一个 7.35 的值 - 但我的网络在 0.4 区域的测试集上运行(这对我的需要来说很好)。我期待的价值约为 1。我是否使用了正确的例程?
不知道要回去多远寻找错误。
编辑:图像的直方图。
【问题讨论】:
-
您在训练时是否对图像进行了归一化处理?
-
@MarcinMożejko 是的
-
在预测时 - 你是否使用相同的函数对其进行了标准化?
-
@MarcinMożejko 是的。
-
您能否绘制来自测试集和训练集的展平示例的直方图?
标签: keras linear-regression predict