我正在试用TensorFlow教程,但不明白这行中的next_batch是从哪里来的?
batch_xs, batch_ys = mnist.train.next_batch(100)我看了看
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)也没看到next_batch在那儿。
现在,当在我自己的代码中尝试next_batch时,我得到了
AttributeError: 'numpy.ndarray' object has no attribute 'next_batch'所以我想知道next_batch是从哪里来的?
发布于 2016-11-02 05:30:08
next_batch是DataSet类的一个方法(有关该类内容的更多信息,请参见https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/learn/python/learn/datasets/mnist.py )。
加载mnist数据并使用以下命令将其分配给变量mnist时:
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)看看mnist.train的类。您可以通过键入以下命令来查看:
print mnist.train.__class__您将看到以下内容:
<class 'tensorflow.contrib.learn.python.learn.datasets.mnist.Dataset'>因为mnist.train是类DataSet的一个实例,所以可以使用该类的函数next_batch。有关类的更多信息,请查看documentation。
发布于 2016-11-02 05:25:28
在查看tensorflow存储库之后,它似乎起源于这里:
但是,如果您希望在自己的代码中实现它(对于您自己的dataset),那么像我这样自己在dataset对象中编写它可能会简单得多。据我所知,它是一种混洗整个数据集的方法,并从混洗的数据集中返回$mini_batch_size个数的样本。
下面是一些伪代码:
shuffle data.x and data.y while retaining relation return [data.x[:mb_n], data.y[:mb_n]]
发布于 2017-10-24 09:44:26
您可以只使用help函数:
help(tf.contrib.learn.datasets.mnist.DataSet.next_batch)并获取函数next_batch的文档
https://stackoverflow.com/questions/40368697
复制相似问题