使用keras寻找线性回归预测
Finding a linear regression prediction with keras
我训练了一个线性回归模型(一个带有线性回归输出的 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。我使用的程序正确吗?
不确定要追溯到多远才能找到该错误。
编辑:图像的直方图。
原来我得到了我需要的东西。该预测基于方向的转变,由于障碍物现在不是问题(3D 环境中的物理障碍物),网络正在拾取的方向转变成为可能。起初,我以为我是在尝试找到类似的预测值,但事实证明这样更好。
学习:这种结构方式对于使用 keras 寻找线性预测是正确的。
我训练了一个线性回归模型(一个带有线性回归输出的 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。我使用的程序正确吗?
不确定要追溯到多远才能找到该错误。
编辑:图像的直方图。
原来我得到了我需要的东西。该预测基于方向的转变,由于障碍物现在不是问题(3D 环境中的物理障碍物),网络正在拾取的方向转变成为可能。起初,我以为我是在尝试找到类似的预测值,但事实证明这样更好。
学习:这种结构方式对于使用 keras 寻找线性预测是正确的。