TensorFlow01: 二进制文件读取

匿名 (未验证) 提交于 2019-12-03 00:05:01

实现代码:

# 读取文件列表 file_name = os.listdir("../data/cifar/") file_list = [os.path.join("../data/ficar/",file) for file in file_name] # 构造文件名度列 file_queue = tf.train.string_input_producer(file_list) # 读取 reader = tf.FixedLengthRecordReader(32*32*3+1) key, value = reader.read(file_queue) print(value) # 解码 decoded = tf.decode_raw(value, tf.uint8) print(decoded) # 将目标值和特征值切开 label = tf.slice(decoded, [0], [1]) image = tf.slice(decoded, [1], [32*32*3]) print("label:", label) print("image:", image) # 调整图片的形状 image_reshape = tf.reshape(image, shape=[3, 32, 32]) print("image_reshape:", image_reshape) # 转置 image_transposed = tf.transpose(image_reshape, [1, 2, 0]) print("image_transposed:", image_transposed) # 调整图像类型 image_cast = tf.cast(image_transposed, tf.float32) # 批处理 label_batch,image_batch = tf.train.batch([label,image_cast], batch_size=100, num_threads=1, capacity=100) print("label_batch:", label_batch) print("image_batch:", image_batch)  with tf.Session() as sess1:     # print(sess1.run(label_batch))     # 开启线程     print("----------")     coord = tf.train.Coordinator()     threads = tf.train.start_queue_runners(sess=sess1, coord=coord)     print("threads:", threads)     a, b = sess1.run([label_batch,image_batch])     print("label_batch+++++:", a)     print("image_batch+++++:", b)     print("999999")     # 回收线程     coord.request_stop()     coord.join(threads)

运行结果:

Tensor("ReaderReadV2:1", shape=(), dtype=string) Tensor("DecodeRaw:0", shape=(?,), dtype=uint8) label: Tensor("Slice:0", shape=(1,), dtype=uint8) image: Tensor("Slice_1:0", shape=(3072,), dtype=uint8) image_reshape: Tensor("Reshape:0", shape=(3, 32, 32), dtype=uint8) image_transposed: Tensor("transpose:0", shape=(32, 32, 3), dtype=uint8) label_batch: Tensor("batch:0", shape=(100, 1), dtype=uint8) image_batch: Tensor("batch:1", shape=(100, 32, 32, 3), dtype=float32

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!