三维的读取图片(w, h, c):
import tensorflow as tf import glob import os def _parse_function(filename): # print(filename) image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) # (375, 500, 3) image_resized = tf.image.resize_image_with_crop_or_pad(image_decoded, 200, 200) return image_resized with tf.Session() as sess: print( sess.run( img ).shape )
读取批量图片的读取图片(b, w, h, c):
import tensorflow as tf import glob import os ''' Dataset 批量读取图片 ''' def _parse_function(filename): # print(filename) image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) # (375, 500, 3) image_decoded = tf.expand_dims(image_decoded, axis=0) image_resized = tf.image.resize_image_with_crop_or_pad(image_decoded, 200, 200) return image_resized img = _parse_function('../pascal/VOCdevkit/VOC2012/JPEGImages/2007_000068.jpg') # image_resized = tf.image.resize_image_with_crop_or_pad( tf.truncated_normal((1,220,300,3))*10, 200, 200) 这种四维 形式是可以的 with tf.Session() as sess: print( sess.run( img ).shape ) #直接初始化就可以 ,转换成四维报错误,不知道为什么,若谁想明白,请留言 报错误 #InvalidArgumentError (see above for traceback): Input shape axis 0 must equal 4, got shape [5]
Databae的操作:
import tensorflow as tf import glob import os ''' Dataset 批量读取图片: 原因: 1. 先定义图片名的list,存放在Dataset中 from_tensor_slices() 2. 映射函数, 在函数中,对list中的图片进行读取,和resize,细节 tf.read_file(filename) 返回的是三维的,因为这个每次取出一张图片,放进队列中的,不需要转化为四维 然后对图片进行resize, 然后每个batch进行访问这个函数 ,所以get_next() 返回的是 [batch, w, h, c ] 3. 进行shuffle , batch repeat的设置 4. iterator = dataset.make_one_shot_iterator() 设置迭代器 5. iterator.get_next() 获取每个batch的图片 ''' def _parse_function(filename): # print(filename) image_string = tf.read_file(filename) image_decoded = tf.image.decode_image(image_string) #(375, 500, 3) ''' Tensor` with type `uint8` with shape `[height, width, num_channels]` for BMP, JPEG, and PNG images and shape `[num_frames, height, width, 3]` for GIF images. ''' # image_resized = tf.image.resize_images(label, [200, 200]) ''' images 三维,四维的都可以 images: 4-D Tensor of shape `[batch, height, width, channels]` or 3-D Tensor of shape `[height, width, channels]`. size: A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The new size for the images. ''' image_resized = tf.image.resize_image_with_crop_or_pad(image_decoded, 200, 200) # return tf.squeeze(mage_resized,axis=0) return image_resized filenames = glob.glob( os.path.join('../pascal/VOCdevkit/VOC2012/JPEGImages', "*." + 'jpg') ) dataset = tf.data.Dataset.from_tensor_slices((filenames)) dataset = dataset.map(_parse_function) dataset = dataset.shuffle(10).batch(2).repeat(10) iterator = dataset.make_one_shot_iterator() img = iterator.get_next() with tf.Session() as sess: # print( sess.run(img).shape ) #(4, 200, 200, 3) for _ in range (10): print( sess.run(img).shape )
以上这篇浅谈tensorflow中Dataset图片的批量读取及维度的操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月20日
2024年11月20日
- Rhymist / LusciousBB《年轮》[FLAC/分轨][410.02MB]
- 群星《歌手2024 第11期》[320K/MP3][93.88MB]
- 群星《歌手2024 第11期》[FLAC/分轨][496.06MB]
- 群星《国风超有戏 第7期》[320K/MP3][30.73MB]
- 模拟之声慢刻CD《试音天品8[女声低音炮]》[低速原抓WAV+CUE]
- 群星《抖烧第三季DSD》[低速原抓WAV+CUE]
- [ABC]蔡琴《百万琴歌[6N纯银镀膜]》[低速原抓WAV+CUE]
- 群星《国风超有戏 第7期》[FLAC/分轨][147.99MB]
- 群星《闪光的夏天 第3期》[320K/MP3][61.94MB]
- 群星《闪光的夏天 第3期》[FLAC/分轨][336MB]
- 【迷幻电音】Elea-2024-Hypnos(FLAC)
- 【民族融合】VA-2024-TheOrientCollective:GoldenSand(FLAC)
- 谭嘉仪-EyesOnMe新曲+精选2022【低速原抓WAV+CUE】
- 尚士达《莫回头》[320K/MP3][184.64MB]
- 尚士达《莫回头》[Hi-Res][24bit 48kHz][FLAC/分轨][1.27G]