在 Tensorflow 中将数据拆分为批次进行分类

Posted

技术标签:

【中文标题】在 Tensorflow 中将数据拆分为批次进行分类【英文标题】:Split data into batches in Tensorflow for classification 【发布时间】:2017-06-16 08:14:10 【问题描述】:

我正在使用以下代码训练数据。但在这里我需要将数据分成批次(如 MNIST tensorflow 示例中给出的:batch_xs, batch_ys = mnist.train.next_batch(100))。

当我寻找 next_batch 方法时,它在任何库中都不可用。我是张量流的新手。只是想知道我是否可以在训练时将数据分成批次。

任何帮助将不胜感激。

for i in range(training_epochs):  
  sess.run(optimizer, feed_dict=x: inputX, y_: inputY) # Take a gradient descent step using our inputs and labels

# That's all! The rest of the cell just outputs debug messages. 
# Display logs per epoch step
  if (i) % display_step == 0:
    cc = sess.run(cost, feed_dict=x: inputX, y_:inputY)
    print "Training step:", '%04d' % (i), "cost=", ":.9f".format(cc) #, \"W=", sess.run(W), "b=", sess.run(b)

print "Optimization Finished!"
training_cost = sess.run(cost, feed_dict=x: inputX, y_: inputY)
print "Training cost=", training_cost, "W=", sess.run(W), "b=", sess.run(b), '\n'

【问题讨论】:

【参考方案1】:

next_batch 不是通用库方法。这是一种特定于 MNIST 数据集的方法,它读取下一个小批量输入以提供给 Tensorflow。

您可以在此处查看其实现: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/learn/python/learn/datasets/mnist.py#L160

您需要为您的数据集实现类似的东西。 此代码并非特定于 Tensorflow —— 您可以使用任何您喜欢的 Python 库来执行此操作。

希望有帮助!

【讨论】:

以上是关于在 Tensorflow 中将数据拆分为批次进行分类的主要内容,如果未能解决你的问题,请参考以下文章

在pySpark中将RDD拆分为n个部分

如何在 TensorFlow 中对批次进行切片并在每个切片上应用操作

培训批次:哪种Tensorflow方法是正确的?

在Java中将字符串拆分为字符串和int [重复]

合并 tensorflow 数据集批次

如何使用 DataSet API 在 Tensorflow 中为 tf.train.SequenceExample 数据创建填充批次?