在张量流中读取数据

卡尔提克·卡塔格达达

我正在从文档中学习如何使用tensorflow。但是,我无法理解以下两个功能。我尝试搜索文档,但是无法获得明确的答案。

input_fn = tf.contrib.learn.io.numpy_input_fn({"x":x_train}, y_train,
                                          batch_size=4,
                                          num_epochs=1000)
eval_input_fn = tf.contrib.learn.io.numpy_input_fn(
    {"x":x_eval}, y_eval, batch_size=4, num_epochs=1000)

同样,如果您可以解释函数中的参数,那将是很好的。提前致谢!

格姆瓦格纳

我同意文档不能很好地解释这些值。

第一个参数是网络输入值的字典。

第二个是输出值。

batch_size是一次用于训练网络的项目数,当您有大量数据时,如果使用每个值训练网络,则训练速度太慢,因此您使用批处理,因此如果x_train有16个项目并且批量大小为4,则网络将使用前4个,然后是下4个进行训练,直到使用所有16​​个输入。

num_epochs是您退出尝试优化网络节点之前的前进和后退次数。

对于批次大小和纪元数,您可以根据要花费的培训时间和性能的好坏来调整这些参数。

为了更好地描述术语

来自一个例子,你就可以使用input_fn获得的功能和目标的值传递给运行数据。

例如:

with self.test_session() as session:
  input_fn = numpy_io.numpy_input_fn({"x":x_train}, y_train,
                                      batch_size=4,
                                      num_epochs=1000)
  features, target = input_fn()

  res = session.run([features, target])

这两个函数的作用相同,只是input_fn用于训练网络,而eval_input_fn用于评估,因此唯一的区别是x和y值,因为当您评估训练数据的性能时,性能将是上限或最佳案件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章