老师,请教<关于图像数据格式>的问题

来源:4-8 如何使用tf.train.string_input_producer读取文件列表中的样本

慕UI3227655

2019-08-08

1.在解析下载的cifar10文件时, 开始unpickle(file)后拿到的数据为一个LIST,例如[ 23 ,245 , 200,… ]
然后将总数据imgs = np.reshape为[-1,3,32,32].

提问:
1.1 老师是怎么知道解析出来的LIST是3x32x32通道优先,并且是按照RGB规则排列的?

1.2 如果是随意一张图片,我怎么判断他的他是否为通道优先和他的RGB排列呢?

2.我们将图像通过Opencv存储在计算机上,此时数据已经transpose为32x32x3.然后数据转化为二进制写入TFRcord文件,以后我们从TFRcord解析出来的数据shape仍然为32x32x3

提问:
2.1 转化为32x32x3是因为我们需要配合Opencv存储格式的要求,还是为了以后把数据喂给train()需要把通道放最后,而故意采取的操作?

写回答

1回答

会写代码的好厨师

2019-08-15

首先,数据的格式是我在打包的时候就已经知道了,cifar10的格式是约定好的格式,我只是按照规定好的方式做的解码,包括我们自己在训练数据进行打包的时候,只要按照特定的格式打包,然后在按照你的格式解码就行。图像数据我们可以直接存成矩阵,也可以存成byte,也可以用jpeg编码后再存。在训练的时候,我们需要保证图像数据的空间结构信息,所以需要再把它转成32✖️32✖️3这样的大小的矩阵。卷积操作实际上也是再这种空间结构上进行的,这样才能提取出邻域关系和局部特征

0
0

Python3+TensorFlow打造人脸识别智能小程序

理论与实战项目双管齐下,让AI技术真正落地应用,适合毕设展示。

1086 学习 · 538 问题

查看课程