一、图像文件的读取
tensorflow的部分相关函数
1、直接读取filename 图片方法,得到的是一个string类型张量(Tensor)
image_string = tf.read_file(filename)
image_string = tf.gfile.FastGFile(filename,‘r’).read() # gfile中的Open和Gfile也有同样的用法
2、对得到的字符串张量进行解码,得到一个三维unit8类型张量(其数值为0-255)
image = tf.image.decode_image(image_string) # 不同图片类型,有不同的解码函数,decode_image可解码BMP、JPEG和PNG类型
3、将三维unit8类型张量转换为三维float32类型张量
image = tf.image.convert_image_dtype(image,dtype = tf.float32) # dtype 表示想要装换成的数据类型
4、转换image的大小
image = tf.reshape(image, [image_size, image_size, channels])
5、使用 tf.data.Dataset.from_tensor_slices(value) 将value分割成一个个的tensor
6、tf.data.Dataset()的使用:
a. map_and_batch()函数:
tf.contrib.data.map_and_batch(func,batch_size,num_parallel_batches=1,drop_remainder = False) Args: func: 一个函数将张量(Tensor)的嵌套结构映射到另一个张量(Tensor)的嵌套结构 batch_size: 表示这个数据集的连续元素的数量,以便在单个批次中合并。 num_parallel_batches: 表示并行创建批次的数量 drop_remainder: 表示是否应该删除最后一批,以防止其尺寸小于预期 Return: Dataset的转换函数,用来传递给 tf.data.Dataset.apply()函数
b. tf.data.Dataset.apply()函数
dataset.apply(transformation_func) Args: transformation_func: 一个函数,参数是Dataset数据,返回值也是一个Dataset数据 Return: 将transformation_func这个函数应用到dataset上
作者:培_de01
链接:https://www.jianshu.com/p/31c6fe68ec80