我正在尝试学习如何在Tensorflow中正确地引入数据,并且大多数示例代码都使用from import tensorflow.examples.tutorials.mnist import input_data
。
当您可以使用它来访问mnist数据时很简单,但在尝试建立等效的结构方法并将非mnist数据引入类似模型时没有用。
通过mnist示例导入的数据的结构是什么,以便我可以使用示例cnn演练代码并操纵我的数据来镜像mnist数据的结构?
答案 0 :(得分:2)
从该示例代码中获取的MNIST数据的格式取决于您初始化DataSet
类的具体方式。调用DataSet.next_batch(batch_size)
会返回两个NumPy数组,分别代表batch_size
个图像和标签。它们具有以下格式。
如果使用DataSet
(默认值)初始化reshape=True
,则图片数组为batch_size
个784
矩阵,其中每行包含一个MNIST图像的像素。默认类型为tf.float32
,值为0.0
和1.0
之间的像素强度。
如果使用DataSet
初始化reshape=False
,则batch_size
的{{1}} 28
28
之后1
- 维张量。 28
对应于每个图像的高度和宽度(以像素为单位); 1
对应于图像中的通道数,这些通道是灰度级的,因此只有一个通道。
如果使用DataSet
(默认值)初始化one_hot=False
,则labels数组是长度为batch_size
的向量,其中每个值都是标签(整数)从0
到9
)表示相应图像中的数字。
如果使用DataSet
初始化one_hot=True
,则标签数组为batch_size
个10
矩阵,其中每一行都为零,除了列中的1
,对应于相应图像的标签。
请注意,如果您对卷积网络感兴趣,可能会根据需要初始化DataSet
reshape=False
,因为这将保留卷积运算符将使用的图像的空间信息。