tensorflow 中图像的读取
1. 使用gfile读入文件内容。输入的是String,输出3-D tensor。可惜的是输入不能是tensor
def decode_jpg(path):
r""" 读取jpg图像 :param path: full path
:return: A `Tensor` of type `float32`. 3-D with shape `[height, width, channels]`
"""
image_raw_data = tf.gfile.FastGFile(path, "r").read()
image = tf.image.decode_jpeg(image_raw_data)
image = tf.image.convert_image_dtype(image, dtype=tf.float32)
return image
2. 使用WholeFileReader。输入的是queue。
image_reader = tf.WholeFileReader()
data_queue = tf.train.string_input_producer([image_dir], shuffle=False)
image_key, image_value = image_reader.read(data_queue)
img = tf.image.decode_jpeg(image_value, channels=3)
3. 使用read_file。输入的是tensor,不是queue
image_value = tf.read_file(image_dir)
img = tf.image.decode_jpeg(image_value, channels=3)
4. 一个错误:一个csv中每行保存图像的地址和label结果。最初的读入方法是:
data_queue = tf.train.string_input_producer([data_dir], shuffle=False)
reader = tf.TextLineReader(skip_header_lines=True)
key, value = reader.read(data_queue)
record_defaults = [[2], ['label'], [157], [81], ['Path']]
_, label, width, height, image_dir = tf.decode_csv(value, record_defaults, field_delim="\t")
image_dir = tf.string_join([image_folder_dir, image_dir]) img_reader = tf.WholeFileReader()
img_key,img_value = img_reader.reader(tf.train.string_input_producer([image_dir], shuffle=False)
因为当时没有发现read_file这种方法读取文件。所以先后使用了两次 string_input_producer。本以为第二次只传入一个image_dir,图像数据和label会一致。但是即使把shuffle设置为false, 图像和label也对不上了。
所以把后来的 WholeFileReader换成了tf.read_file(image_dir) 。这就可以了
tensorflow 中图像的读取的更多相关文章
- OpenCV中图像的读取,显示与保存
图像的读取,显示与保存 相关函数:cv2.imread().cv2.imshow().cv2.imwrite() 1.读入图像: 用cv2.imread()函数来读取图像,cv2.imread(路 ...
- opencv中图像的读取,显示与保存1
1.读入图像 用cv2.imread()函数来读取图像,cv2.imread(路径,图像颜色空间)(其中颜色空间默认为BGR彩图) cv2.IMREAD_COLOR:读入一副彩色图像 cv2. ...
- TensorFlow中数据读取之tfrecords
关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow ...
- Tensorflow中使用tfrecord方式读取数据-深度学习-周振洋
本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释.并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正. 使用Tensorflow训练神经网络时,我们可以用 ...
- 第二十二节,TensorFlow中的图片分类模型库slim的使用、数据集处理
Google在TensorFlow1.0,之后推出了一个叫slim的库,TF-slim是TensorFlow的一个新的轻量级的高级API接口.这个模块是在16年新推出的,其主要目的是来做所谓的“代码瘦 ...
- tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数(转)
tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...
- tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...
- 【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数
原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ----------------------------------------- ...
- (第二章第一部分)TensorFlow框架之文件读取流程
本章概述:在第一章的系列文章中介绍了tf框架的基本用法,从本章开始,介绍与tf框架相关的数据读取和写入的方法,并会在最后,用基础的神经网络,实现经典的Mnist手写数字识别. 有四种获取数据到Tens ...
随机推荐
- C++ new、delete、namespace关键字。
C++ 中的动态内存分配: C++与C语言分配内存关键字不同,C语言中的动态内存分配是通过 malloc(分配内存) 与 free(释放内存)完成.C++使用new(分配内存) delete(释放内 ...
- luogu P4631 [APIO2018] Circle selection 选圆圈
传送门 那个当前半径最大的圆可以用堆维护.这道题一个想法就是优化找和当前圆有交的圆的过程.考虑对于所有圆心建KD-tree,然后在树上遍历的找这样的点.只要某个点子树内的点构成的矩形区域到当前圆心的最 ...
- 在springboot中使用拦截器
在springMVC中可以实现拦截器,是通过实现HandlerInterceptor接口,然后在springmvc-web.xml中配置就可以使用拦截器了.在springboot中拦截器也是一样的思想 ...
- vue中使用stylus编写css
安装步骤 cnpm install stylus --save-dev cnpm install stylus-loader --save-dev 写法如下: <style lang=" ...
- JS计算两个经纬度的距离
var mapNumberUtil = {}; /** * 计算两个经纬度的距离(千米) */mapNumberUtil.getDistance = function(lat1, lng1, lat2 ...
- 2019-11-29-msbuild-项目文件常用判断条件
title author date CreateTime categories msbuild 项目文件常用判断条件 lindexi 2019-11-29 08:36:48 +0800 2019-7- ...
- PHP5 构造函数
在最近自己写的PHP小程序中遇到了如何使用PHP构造函数的情况,在PHP中允许我们在一个类中定义一个构造函数 如: <?php class User { public $name; functi ...
- java http httpclient
HttpClient post get 洗衣店 微信扫码支付
- 用 Webpack 解决应用性能问题
1. 影响页面加载时长的 Top3 因素 页面初载时,加载大量 JavaScript 脚本: 页面初载时,加载大量 CSS 文件: 页面初载时,加载大量网络资源: 页面加载的越久,页面不可交互的时间就 ...
- Codeforces Round #593 (Div. 2) C. Labs A. Stones
题目:https://codeforces.com/contest/1236/problem/A 思路:两种操作收益都是3 且都会消耗b 操作2对b消耗较小 则可优先选择操作2 再进行操作1 即可得到 ...