【问题标题】:Tensorflow understanding tf.train.shuffle_batchTensorFlow 理解 tf.train.shuffle_batch
【发布时间】:2016-06-25 20:59:00
【问题描述】:

我有一个训练数据文件,大约 100K 行,我在每个训练步骤上运行一个简单的tf.train.GradientDescentOptimizer。该设置基本上直接取自 Tensorflow 的 MNIST 示例。代码转载如下:

x = tf.placeholder(tf.float32, [None, 21])
W = tf.Variable(tf.zeros([21, 2]))
b = tf.Variable(tf.zeros([2]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

y_ = tf.placeholder(tf.float32, [None, 2])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

鉴于我正在从文件中读取训练数据,我使用 tf.train.string_input_producertf.decode_csv 从 csv 中读取行,然后使用 tf.train.shuffle_batch 创建批次,然后进行训练。

我对@9​​87654327@ 的参数应该是什么感到困惑。我阅读了 Tensorflow 的文档,但我仍然不确定“最佳”batch_size、容量和 min_after_dequeue 值是多少。谁能帮助阐明我如何为这些参数选择合适的值,或者将我链接到可以了解更多信息的资源?谢谢--

这里是 API 链接:https://www.tensorflow.org/versions/r0.9/api_docs/python/io_ops.html#shuffle_batch

【问题讨论】:

    标签: machine-learning tensorflow mathematical-optimization gradient-descent


    【解决方案1】:

    关于要使用的线程数有一点点

    https://www.tensorflow.org/versions/r0.9/how_tos/reading_data/index.html#batching

    不幸的是,我认为批量大小没有简单的答案。 网络的有效批量大小取决于很多细节 关于网络。在实践中,如果您关心最佳性能 您将需要进行大量试验和错误(也许开始 来自类似网络使用的值)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多