使用TensorFlow模型对新数据进行预测,该模型从读取输入文件而无需读取输入文件的数据集中的x(输入)数据中学习

时间:2018-09-11 18:45:19

标签: python tensorflow

您可以使用占位符传递x(即输入即独立变量)吗?但是,根据设计,图中没有x的占位符。这是因为该模型经过训练,可以使用数据集读取文本文件(而不是占位符)来获取x。由于事先对输入文件进行了训练,现在该模型是否需要使用输入文件进行新的数据预测?

对于相同的此类模型,现在存在一个相关但不同的问题:在对该模型上的新数据进行此类预测时,是否需要明确提供超参数占位符?如果是这样,那有什么意义?此特定训练模型图中的占位符仅用于超参数。 (通过这种方式,训练效果很好,并且我已经对训练和dev数据集进行了评估。)根据我的想法,仅在训练期间引用超参数,这是在计算成本并评估优化程序操作时。提醒一下,我只希望评估预测(yhat),而我现在不训练,不提供标签y,没有使用成本表达式中的超参数以及优化程序操作来计算成本没有运行。

谢谢。 (如果不确定答案,请说明。)

1 个答案:

答案 0 :(得分:0)

如果代码编写正确且模型已正确保存(即仅存储了实际的图层权重!!!),这并不难实现。

由于我不在办公室,所以无法对其进行测试,但是我很确定这是您需要继续进行的工作。我以前做过这样的事情。

您可以使用以下功能:

def select_input(is_training=True):
    mode_variable = tf.placeholder(dtype=tf.bool)
    if is_training:
        <Your dataset API logic goes here>
        def get_data():
            return <Iterator you created>.get_next()
    else:
        <Create a placeholder for your data you want to read>

    output = tf.cond(tf.equal(mode_variable, tf.constant(True)), lambda : get_data(), <Placeholder used>)
    return output