TensorFlow分类器预测脚本始终输出零

时间:2017-07-05 19:37:37

标签: python numpy tensorflow neural-network regression

我创建了一个脚本来评估TensorFlow卷积神经网络。它加载一些图像并进行一些简单的预处理:

def main(argv):
    classifier = import_model()
    for path in argv[1:]:
        image_reversed = imread(path).astype(np.float32)
        image_unlayered = np.transpose(image_reversed, (1, 0, 2))
        image = np.reshape(image_unlayered, [1, -1, 480, 3])
        angle = infer_steering_angle(classifier, image)
        print("Steering angle %f for image %s." % (angle, path))

它使用另一个文件中的网络结构函数导入模型,该文件已经过验证,至少大部分工作并用于训练网络:

def import_model():
    # Load estimator
    classifier = learn.Estimator(
        model_fn=cnn_model_fn,
        model_dir="/tmp/network2"
    )
    return classifier

最后,它使用Estimator.predict函数将单个图像传递给网络,覆盖默认的batch_size 10并将其设置为1.它返回一个带有单个元素的张量,应该对应转向角(这是一个端到端的自动驾驶回归问题)。

def infer_steering_angle(classifier, image):
    output = classifier.predict(
        x=image,
        batch_size=1
    )
    for angle in output:
        return angle

问题是,始终输出0.0作为转向角。我已经多次查看了所有内容,我唯一能想到的就是我误解了Estimator.predict函数。它的文档记录很差,因为它缺乏应该如何使用它的具体例子。有没有人注意到我如何格式化输入或解析输出?

更新:

我尝试将此代码放在培训文件中,因此导入无法解决问题。我开始怀疑它是模型本身的问题。代码位于https://hastebin.com/rakulonebu.py

0 个答案:

没有答案