初探TensorFLow从文件读取图片的四种方式

Tensorflow图像预处理,Numpy读取数据踩坑 本文记录了kaggle比赛digit recognizer中用lenet网络进行train和test的相关步骤和代码 1.数据预处理。      现有数据:从官网https://www.kaggle.com/c/digit-recognizer/data下载到的数据为.csv格式,分为train和test两部分数据。我们需要将      目标:生成适合caffe处理的lmdb格式 阅读详情

来源:https://www.jb51.net/article/134550.htm

初探TensorFLow从文件读取图片的四种方式

 更新时间:2018年02月06日 14:30:35   作者:Wayne2019    我要评论

本篇文章主要介绍了初探TensorFLow从文件读取图片的四种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文记录一下TensorFLow的几种图片读取方法,官方文档有较为全面的介绍。

1.使用gfile读图片,decode输出是Tensor,eval后是ndarray

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np

print(tf.__version__)

image_raw = tf.gfile.FastGFile('test/a.jpg','rb').read()  #bytes
img = tf.image.decode_jpeg(image_raw) #Tensor
#img2 = tf.image.convert_image_dtype(img, dtype = tf.uint8)

with tf.Session() as sess:
  print(type(image_raw)) # bytes
  print(type(img)) # Tensor
  #print(type(img2))

  print(type(img.eval())) # ndarray !!!
  print(img.eval().shape)
  print(img.eval().dtype)

#  print(type(img2.eval()))
#  print(img2.eval().shape)
#  print(img2.eval().dtype)
  plt.figure(1)
  plt.imshow(img.eval())
  plt.show()

输出为:

1.3.0
<class 'bytes'>
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'numpy.ndarray'>
(666, 1000, 3)
uint8
图片显示(略)

2.使用WholeFileReader输入queue,decode输出是Tensor,eval后是ndarray

import tensorflow as tf
import os
import matplotlib.pyplot as plt
def file_name(file_dir):  #来自//www.jb51.net/article/134543.htm
  for root, dirs, files in os.walk(file_dir): #模块os中的walk()函数遍历文件夹下所有的文件
    print(root) #当前目录路径 
    print(dirs) #当前路径下所有子目录 
    print(files) #当前路径下所有非目录子文件 

def file_name2(file_dir):  #特定类型的文件
  L=[]  
  for root, dirs, files in os.walk(file_dir): 
    for file in files: 
      if os.path.splitext(file)[1] == '.jpg':  
        L.append(os.path.join(root, file)) 
  return L 

path = file_name2('test')


#以下参考//www.jb51.net/article/134547.htm (十图详解TensorFlow数据读取机制)
#path2 = tf.train.match_filenames_once(path)
file_queue = tf.train.string_input_producer(path, shuffle=True, num_epochs=2) #创建输入队列 
image_reader = tf.WholeFileReader() 
key, image = image_reader.read(file_queue) 
image = tf.image.decode_jpeg(image) 

with tf.Session() as sess: 
#  coord = tf.train.Coordinator() #协同启动的线程 
#  threads = tf.train.start_queue_runners(sess=sess, coord=coord) #启动线程运行队列 
#  coord.request_stop() #停止所有的线程 
#  coord.join(threads) 

  tf.local_variables_initializer().run()
  threads = tf.train.start_queue_runners(sess=sess)

  #print (type(image)) 
  #print (type(image.eval())) 
  #print(image.eval().shape)
  for _ in path+path:
    plt.figure
    plt.imshow(image.eval())
    plt.show()

3.使用read_file,decode输出是Tensor,eval后是ndarray

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np

print(tf.__version__)

image_value = tf.read_file('test/a.jpg')
img = tf.image.decode_jpeg(image_value, channels=3)

with tf.Session() as sess:
  print(type(image_value)) # bytes
  print(type(img)) # Tensor
  #print(type(img2))

  print(type(img.eval())) # ndarray !!!
  print(img.eval().shape)
  print(img.eval().dtype)

#  print(type(img2.eval()))
#  print(img2.eval().shape)
#  print(img2.eval().dtype)
  plt.figure(1)
  plt.imshow(img.eval())
  plt.show()

输出是:

1.3.0
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'tensorflow.python.framework.ops.Tensor'>
<class 'numpy.ndarray'>
(666, 1000, 3)
uint8
显示图片(略)

4.TFRecords: 

有空再看。 

如果图片是根据分类放在不同的文件夹下,那么可以直接使用如下代码:
//www.jb51.net/article/134532.htm
//www.jb51.net/article/134539.htm

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结 在处理图像的时候经常是读取图片以后把图片转换为灰度图。作为一个刚入坑的小白,我在这篇博客记录了四种处理的方法。首先导入包:import numpy as np import cv2 import tensorflow as tf from PIL import Image方法一:在使用OpenCV读取图片的同时将图片转换为灰度图: img = cv2.imread(imgfile, cv2.... 阅读详情

相关推荐

tensorflow之从文件中读取数据(适用场景:大规模数据集,亲测有效~)

      网上从文件中读取样本和标签的资料很多,但大多讲的不全面,或只讲原理,或只有变为.tfrecords部分,或没有调用的栗子。寄几and男票一起捣鼓了两天,终于有了目前这个完整版的代码,希望对看到的朋友有所帮助。1. 准备样本和标签样本图示如图1,标签文件train_y.csv如图2,这是个2分类问题。图1图22.生成记录样本的记录文件我们的图片存储路径如图3红框所示,标签文件train_...

白小狸 1万+

十图详解tensorflow数据读取机制(附代

文章转载至: https://zhuanlan.zhihu.com/p/27238630(知乎首发:我的AI实验田) 在学习tensorflow的过程中,有很多小伙伴反映读取数据这一块很难理解。确实这一块官方的教程比较简略,网上也找不到什么合适的学习材料。今天这篇文章就以图片的形式,用最简单的语言,为大家详细解释一下tensorflow的数据读取机制,文章的最后还会给出实战代码以供参考。

ifruoxi的博客 2356

tensorflow读取图片的方法

下面讲解tensorflow如何读取jpg格式的图片,png格式的图片是一样的。有两种情况: 第一种就是把图片看做是一个图片直接读进来,获取图片的原始数据,再进行解码,主要用到的函数就是tf.gfile.FastGFile,tf.image.decode_jpeg 例如:

UESTC_C2_403的博客 1万+

图像的加载/读取方式(torch.Tensor转换numpy.ndarray)

图像加载问题 使用pytorch制作图像数据集时,需要将存储在磁盘、硬盘的图像读取到内存中,涉及到图像I/O问题。 在python中,图像处理主要采用的库:skimage, opencv-python, Pillow (PIL)。 这三个库均提供了图像读取的方法。 三种主流图像处理库的比较: 库 函数/方法 返回值 图像像素格式 像素值范围 图像矩阵表示 skimage io.imread(xxx) numpy.ndarray RGB [0,

OneBaBa的专栏 5022

tensorflow数据读取方式的整理

我们知道tensorflow是一个深度学习框架,用**计算图(graph)**表示计算任务,用**张量(tensor)**表示和传递数据,在**会话(session)**中执行计算任务。我们要学习和使用tensorflow,就需要知道如何读取tensorflow数据。经常看实例代码,我们会发现有的是先定义变量占位,然后再通过feed_dict喂入数据,有的则没有,现在就来整理一下有哪些方式...

weixin_40941966的博客 750

Tensorflow读取图片并转换成张量

使用神经网络对图片文件进行训练时,需要将图片信息转换为张量,这里介绍如何将图片信息转化为Tensorflow的张量信息。 本文完整代码:https://github.com/iapcoder/TensorflowReadIMG 一 步骤 1、构造文件队列 file_queue = tf.train.string_input_producer(file_list, shuffle=True...

wangTongGen 1万+

【Tensorflow】数据读取——文件读取(图片)

图片读取

qq_42994177的博客 853

Tensorflow中使用tfrecord方式读取数据

前言本博客默认读者对神经网络与Tensorflow有一定了解,对其中的一些术语不再做具体解释。并且本博客主要以图片数据为例进行介绍,如有错误,敬请斧正。使用Tensorflow训练神经网络时,我们可以用多种方式来读取自己的数据。如果数据集比较小,而且内存足够大,可以选择直接将所有数据读进内存,然后每次取一个batch的数据出来。如果数据较多,可以每次直接从硬盘中进行读取,不过这种方式的读取效率就比较

无空ty的博客 2万+

Tensorflow中将图像转化为张量

一、Tensorflow中读取图像步骤 1、通过函数 read_file 读取本地的图像文件 2、利用函数 decode_jpeg 解码为张量 二、以代码做实例的讲解 1、图像数据为猫的图片 2、代码讲解 # -*- coding: utf-8 -*- import tensorflow as tf import matplotlib.pylab as plt # 读取数据文件 image = ...

a1786742005的博客 1万+

基于Xilinx Artix7 的FPGA高级应用 (二):千兆以太网通信(实战篇)第一期

本项目是基于Xlinx Artix7 XC7A35T芯片 以太网芯片选用的是RTL8211EG PHY芯片 MAC 和PHY接口标准是GMII 开发工具是vivado 2018.3 我们先来复习一下以太网的基本通信原理: 当我们的计算机需要与局域网中另外的设备进行通信的时候,需要将数据传输到网卡进行编码,然后传输到线上,经过另一个设备的网卡解码成该设备能读取的数据。 关于以太网协议的知识在原理篇中已经讲过,不再重复,下面直接看接收代码: 首先注意我们的MAC和PHY通信选择的是GMII接口标准,发送数据一

工大技术底层人员的博客 4034

碳化硅外延层厚度测量:红外干涉光谱与FFT技术详解

薄膜厚度测量是半导体制造中的关键工艺控制环节,其核心原理基于光的干涉现象。当光在薄膜上下界面反射并叠加时,会产生与厚度相关的干涉条纹。通过分析这些条纹,可以非接触、无损地获取薄膜的精确厚度信息。这项技术的核心价值在于实现了对关键工艺参数的在线、快速监控,对于提升器件性能与生产良率至关重要。在第三代半导体,尤其是碳化硅功率器件的制造中,外延层厚度直接决定了器件的击穿电压和导通电阻等核心性能。红外干涉光谱法因其对碳化硅材料在红外波段的良好透过性,成为该领域主流的厚度测量方案。通过快速傅里叶变换(FFT)对采集到

weixin_29032489的博客 308

TensorFLow 读取图片1:初探四种从文件读取的方式

本文记录一下TensorFLow的几种图片读取方法,官方文档有较为全面的介绍。1.使用gfile读图片,decode输出是Tensor,eval后是ndarrayimport matplotlib.pyplot as plt import tensorflow as tf import numpy as npprint(tf.__version__)image_raw = tf.gfile.Fast

Wayne2019的博客 2万+

Python连接高斯数据库踩坑实录:从SASL报错到SSL安全连接的完整指南

本文详细记录了Python连接高斯数据库时遇到的SASL authentication报错及其解决方法。通过剖析SASL认证机制,对比了修改数据库配置、使用官方驱动等方案的利弊,并重点提供了通过自动化脚本生成SSL证书,实现安全、免密连接的完整指南,帮助开发者彻底解决连接难题。

weixin_28340315的博客 438

python读取plt文件吗_初探TensorFLow从文件读取图片的四种方式

本文记录一下TensorFLow的几种图片读取方法,官方文档有较为全面的介绍。1.使用gfile读图片,decode输出是Tensor,eval后是ndarrayimport matplotlib.pyplot as pltimport tensorflow as tfimport numpy as npprint(tf.__version__)image_raw = tf.gfile.FastG...

weixin_39576751的博客 359

最新CobaltStrike4.8/CobaltStrike4.9、CS4.9/CS4.8、 Windows/Linux/Mac版下载

Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。 Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,

weixin_43167326的博客 7972

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 819

TensorFLow从文件读取图片的四种方式

              TensorFLow从文件读取图片的四种方式 本文记录一下TensorFLow的几种图片读取方法,官方文档有较为全面的介绍。 1.使用gfile读图片,decode输出是Tensor,eval后是ndarray import matplotlib.pyplot as plt import tensorflow as tf import numpy as np ...

AcceptedLin的博客 3197

【物联网】探索NE555:一款经典的集成电路(超详细)

NE555是一种集成电路,其内部结构包括比较器、RS触发器、电压比较器和输出级三个主要功能模块,外部引脚则提供了与其他电路元件进行连接的接口。NE555的设计目的是为了提供一种简单方便的定时器解决方案,它广泛应用于模拟和数字电路中。NE555作为一款经典的集成电路,具备设计简单、易于使用和稳定可靠的特点,在电子领域发展了广泛的应用。从单稳态模式到多稳态模式,再到振荡器模式,NE555可以满足不同的需求,并且可以与其他电路元件灵活组合,扩展其功能。然而,需要注意的是NE555也有一些限制。

Goforyouqp的博客 6万+

TensorFlow中读取图像数据的三种方式

Update on 2019.06.18 从tesorflow1.11之后,(大概是这个版本号),谷歌推出了tf.data模块来读取数据,甚至在tensorflow2.0中,取消了数据队列管道,所以我建议大家学习tf.data模块。未来我也会做详细的tf.data模块使用说明。 Upata on 2019.7.22 我已经更新了tf.data的使用方法。建议精读,一定能掌握tf.da...

我的博客有点东西 1万+

063.CI/CD for ML:给YOLO项目装上自动化流水线

本文分享了为YOLO目标检测项目搭建CI/CD流水线的实践经验。作者通过手动调试模型导出问题的经历,意识到重复验证工作比模型改进更耗时,提出需要自动化解决方案。文章详细介绍了四阶段流水线设计:1)代码质量检查;2)快速训练验证;3)推理性能基准测试;4)模型注册部署。同时总结了环境不一致、GPU资源争抢等常见问题及解决方案,建议从简单规则开始逐步完善,强调模型版本管理的重要性。实施后不仅提高了效率,还促使团队形成更规范的开发习惯。

2603_95664987的博客 235

字符编码——简体中文编码中区位码、国标码、内码、外码、字形码的区别及关系

目录区位码国标码(交换码)内码(机内码)区位码、国际码、内码的转换为什么要加上20H为什么加上80H 本文以GB2312为例,讲述区位码、国标码、内码、外码、字形码 区位码 整个GB2312字符集分成94个区,每区有94个位,每个区位上只有一个字符,即每区含有94个汉字或符号,用所在的区和位来对字符进行编码(实际上就是字符编号、码点编号),因此称为区位码。 换言之,GB2312将包括汉字在内的所有字符编入一个94 * 94的二维表,行就是“区”、列就是“位”,每个字符由区、位唯一定位,其对应的区、位编号合并

路人coder 5341

【tensorflow】读取图片的几种方式

TensorFLow从文件读取图片的四种方式 用十张图详解TensorFlow数据读取机制(附代码)

Mr_health的博客 847

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TensorFlow 读取自己的数据集

数据读取 TensorFlow程序读取数据一共有3种方法: 1. 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。 2. 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。 2. 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。 feed 参考资料 TF B...

fuyouzhiyi的博客 5808

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TensorFlow与OpenCV,读取图片,进行简单操作并显示

TensorFlow与OpenCV,读取图片,进行简单操作并显示

何雷 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: tensorflow:使用dataset方式读取数据
下一篇: Python为ROS编写一个简单的发布者和订阅者
dingcb168
博客等级 码龄12年 26粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值