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 中图像的读取的更多相关文章

  1. OpenCV中图像的读取,显示与保存

      图像的读取,显示与保存 相关函数:cv2.imread().cv2.imshow().cv2.imwrite() 1.读入图像: 用cv2.imread()函数来读取图像,cv2.imread(路 ...

  2. opencv中图像的读取,显示与保存1

    1.读入图像 用cv2.imread()函数来读取图像,cv2.imread(路径,图像颜色空间)(其中颜色空间默认为BGR彩图)     cv2.IMREAD_COLOR:读入一副彩色图像 cv2. ...

  3. TensorFlow中数据读取之tfrecords

    关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow ...

  4. Tensorflow中使用tfrecord方式读取数据-深度学习-周振洋

    本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释.并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正. 使用Tensorflow训练神经网络时,我们可以用 ...

  5. 第二十二节,TensorFlow中的图片分类模型库slim的使用、数据集处理

    Google在TensorFlow1.0,之后推出了一个叫slim的库,TF-slim是TensorFlow的一个新的轻量级的高级API接口.这个模块是在16年新推出的,其主要目的是来做所谓的“代码瘦 ...

  6. tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数(转)

    tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...

  7. tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数

    tensorflow数据读取机制 tensorflow中为了充分利用GPU,减少GPU等待数据的空闲时间,使用了两个线程分别执行数据读入和数据计算. 具体来说就是使用一个线程源源不断的将硬盘中的图片数 ...

  8. 【转载】 tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数

    原文地址: https://blog.csdn.net/dcrmg/article/details/79776876 ----------------------------------------- ...

  9. (第二章第一部分)TensorFlow框架之文件读取流程

    本章概述:在第一章的系列文章中介绍了tf框架的基本用法,从本章开始,介绍与tf框架相关的数据读取和写入的方法,并会在最后,用基础的神经网络,实现经典的Mnist手写数字识别. 有四种获取数据到Tens ...

随机推荐

  1. Python3 A*寻路算法实现

    # -*- coding: utf-8 -*- import math import random import copy import time import sys import tkinter ...

  2. HashMap 的实现原理(1.8)

    详见:https://blog.csdn.net/richard_jason/article/details/53887222 HashMap概述 1.初始容量默认为16 最大为2的30次方,负载因子 ...

  3. websocket之拨云见雾

    websocket是基于http相应的特性弥补其不足(就是个socket,不再是一次请求一次相应) 但缺点就是只有在版本较高的浏览器才支持websocket. 浏览器: <script type ...

  4. RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass

    安全研究人员在官方的 RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass.该工具的下载量高达 2800 万次,但这并不意味着下载的所有版本都存在后门,受影响的版本是 v3. ...

  5. linux把用户添加到组

    使用 usermod 命令 将现有的用户添加到多个次要组或附加组 # usermod -a -G GroupName UserName id 命令查看输出 # id UserName 用户添加到多个次 ...

  6. 一、Vue CLI

    一.Vue CLI https://cli.vuejs.org/zh/guide/installation.html 介绍: 二.安装 # 安装 Vue Cli npm install -g @vue ...

  7. windows pip使用国内源

    在这里我使用清华源来做示范 win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下, 在pip文件夹里新建的pip.in ...

  8. (转) ESB 企业服务总线基本内容概述

    ESB全称为Enterprise Service Bus,即企业服务总线. 它是传统中间件技术与XML.Web服务等技术结合的产物(SOAP协议= HTTP协议+ XML数据格式). ESB提供了网络 ...

  9. java ArrayList迭代过程中删除

    第一种迭代删除方式: 第二种迭代删除方式: 第三种迭代删除: 第四种迭代删除: 第五种迭代删除: 第六种: ArrayList中remove()方法的机制,首先看源码: 真正的删除操作在fastRem ...

  10. python修炼之路---面向对象

    面向对象编程 面向对象编程:使用类和对象实现一类功能. 类与对象 类:类就是一个模板,模板里可以包含多个函数,函数里实现一些功能. 对象:是根据模板创建的实例,通过实例对象可以执行类中的函数. 面向对 ...