tensorflow如何队列式同步批量读取照片(2)

TensorFlow高效读取数据的方法 概述关于Tensorflow读取数据,官网给出了三种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。 对于数据量较小而言,可能一般选择直接将数据加载进内 阅读详情

对于无标记数据集

import tensorflow as tf
from scipy import misc
import numpy as np


def read_cifar10(filename_queue):

  reader = tf.WholeFileReader()
  key, value = reader.read(filename_queue)
  record_bytes = tf.image.decode_image(value,channels=3)
  return record_bytes
def distorted_inputs(batch_size):

  filenames = ['1.jpg','2.jpg','3.jpg']
  filename_queue = tf.train.string_input_producer(filenames)
  read_input = read_cifar10(filename_queue) 

#  reshaped_image = tf.cast(read_input.uint8image, tf.float32)
#  
#  height = 24
#  width = 24
#
#  distorted_image = tf.random_crop(reshaped_image, [height, width,3])
#
#  distorted_image = tf.image.random_flip_left_right(distorted_image)
#
#  distorted_image = tf.image.random_brightness(distorted_image,
#                                               max_delta=63)
#  distorted_image = tf.image.random_contrast(distorted_image,
#                                             lower=0.2, upper=1.8)
#
#  float_image = tf.image.per_image_standardization(distorted_image)

  return read_input
image=distorted_inputs(batch_size=3)
#images=tf.expand_dims(image)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
tf.train.start_queue_runners(sess=sess)
all_image=np.empty([99,250,250,3])
for i in range(99):
  image_value=sess.run(image)
  all_image[i]=image_value

改进版:

import tensorflow as tf
from scipy import misc
import numpy as np


def read_cifar10(filename_queue):


  reader = tf.WholeFileReader()
  key, value = reader.read(filename_queue)
  record_bytes = tf.image.decode_image(value,channels=3)

  return record_bytes
def distorted_inputs():

  filenames = ['1.jpg','2.jpg','3.jpg']

  filename_queue = tf.train.string_input_producer(filenames,shuffle=False)

  read_input = read_cifar10(filename_queue)  

  reshaped_image = tf.cast(read_input, tf.float32)

  height = 250
  width = 250

  distorted_image = tf.random_crop(reshaped_image, [height, width,3])
#
#  distorted_image = tf.image.random_flip_left_right(distorted_image)
#
#  distorted_image = tf.image.random_brightness(distorted_image,
#                                               max_delta=63)
#  distorted_image = tf.image.random_contrast(distorted_image,
#                                             lower=0.2, upper=1.8)
#
#  float_image = tf.image.per_image_standardization(distorted_image)

  return distorted_image


image=distorted_inputs()
a_batch = tf.train.shuffle_batch([image], 
                        batch_size=3, capacity=200, min_after_dequeue=100, num_threads=2) 
#images=tf.expand_dims(image)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
tf.train.start_queue_runners(sess=sess)

for i in range(100):
  image_value=sess.run(a_batch)
  for j in range(3):
    misc.imsave('photo/%d_%d'%(i,j)+'.jpg',image_value[j])

对有标记数据

import tensorflow as tf 
import numpy as np
import scipy.misc as misc
# 新建一个Session
with tf.Session() as sess:
    # 我们要读三幅图片A.jpg, B.jpg, C.jpg
    filename = ['1.jpg', '2.jpg', '3.jpg']
    label=[1,2,3]
    # string_input_producer会产生一个文件名队列
    filename_queue = tf.train.slice_input_producer([filename,label], shuffle=True, num_epochs=5) #如果去掉这个epoch ,就可以用全局变量初始化了
    # reader从文件名队列中读数据。对应的方法是reader.read
    file_contents=tf.read_file(filename_queue[0])
    record_bytes = tf.image.decode_image(file_contents,channels=3)
    label=filename_queue[1]
    # tf.train.string_input_producer定义了一个epoch变量,要对它进行初始化
    sess.run(tf.local_variables_initializer())
    # 使用start_queue_runners之后,才会开始填充队列
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(sess=sess,coord=coord)
    all_label=np.empty([15,1])
    all_photo=np.empty([15,250,250,3])
    for i in range(15):
        photo,label_value = sess.run([record_bytes,label])
        all_label[i]=label_value
        all_photo[i]=photo
        misc.imsave('read/%d_%d'%(i,label_value)+'.jpg',photo)
    coord.request_stop()
    coord.join(threads)
利用Tensorflow的队列多线程读取数据 利用Tensorflow的队列多线程读取数据,方便进行图像预处理 阅读详情

相关推荐

Tensorflow入门(2)——深度学习框架Tesnsflow & 线程+队列+IO操作 & 文件读取案例_tesflow框架

在训练样本的时候,希望读入的训练样本时有序的• tf.FIFOQueue 先进先出队列,按顺序出队列• tf.RandomShuffleQueue 随机出队列创建一个以先进先出的顺序对元素进行排队的队列。

2401_87378872的博客 1178

python-tensorflow批量读取图像

其实最根本的就是 1、利用 filenames_queue=tf.train.string_input_producer(data_names,num_epochs=5,shuffle=False,capacity=512) 2、读取了文件名,放在了文件名队列中,filenames_queue就是一个FIFOQueue, 3、然后出队列利用reader=tf.WholeFileReader()去读取文件,转换等等 4、再获取batch 这些都在构建文件名队列,构建文件队列的时候讲过了,唯一多的

xingghaoyuxitong的博客 618

tensorflow如何批量读取图片

主要为大家详细介绍了tensorflow如何批量读取图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

python如何批量读取图片_tensorflow如何批量读取图片

本文实例为大家分享了tensorflow如何批量读取图片的具体代码,供大家参考,具体内容如下代码:import tensorflow as tfimport osdef picread(filelist):"""读取狗的图片并转换成张量:param filelist: 文件路f径+名字的列表:return: 每张图片的张量"""# 1.构造文件的队列file_queue = t...

weixin_39681171的博客 998

Tensorflow分批量读取数据教程

之前的博客里使用tf读取数据都是每次fetch一条记录,实际上大部分时候需要fetch到一个batch的小批量数据,在tf中这一操作的明显变化就是tensor的rank发生了变化,我目前使用的人脸数据集是灰度图像,因此大小是92*112的,所以最开始fetch拿到的图像数据集经过reshape之后就是一个rank为2的tensor,大小是92*112的(如果考虑通道,也可以reshape为rank为3的,即92*112*1)。如果加入batch,比如batch大小为5,那么拿到的tensor的rank就变成了3,大小为5*92*112。 下面规则化的写一下读取数据的一般流程,按照官网的实例,一

浅谈tensorflow中Dataset图片的批量读取及维度的操作详解

三维的读取图片(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, 20

tensorflow批量读取图片

代码: import tensorflow as tf import os def picread(filelist): """ 读取狗的图片并转换成张量 :param filelist: 文件路f径+名字的列表 :return: 每张图片的张量 """ # 1.构造文件的队列 file_queue = tf.train.string...

雪儿的博客 6552

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 447

tensorflow如何读取自己的image图片(通过Queue生成batch)

在使用tensorflow的时候有时候需要对自己的图片进行读取,并处理。在此写一个脚本方便自己学习和巩固。(代码基于Python3)图片文件的储存路径如下所示:`` ROOT_FOLDER |-------- SUBFOLDER (CLASS 0) | | | | ----- image1.jpg | ...

ZhangXiang 1万+

【Unity实战】HybridCLR热更快速集成

本文假设你已经通过UPM导入了HybridCLR、Addressables、il2cpp支持并具有一定的C#基础和Unity编辑器操作能力。

u012587406的博客 4995

超越数据手册:深入Zynq XADC的DRP接口与PL端自定义采样逻辑

本文深入探讨Zynq-7000系列XADC模块的DRP接口机制与PL端自定义采样逻辑实现。通过硬件级多通道轮询、触发采样和实时校准技术,突破传统软件驱动限制,为高精度电压测量和通讯应用提供极致灵活性和响应速度。

xxx12的博客 770

tensorflow代码学习:读取并显示图片

# -*- coding: utf-8 -*- import tensorflow as tf filename = '2.jpg' with tf.gfile.FastGFile(filename,'rb') as f: image_data = f.read() with tf.Session() as sess: image = sess.run(image_data)...

he_wen_jie的博客 1万+

CloudCompare 二次开发(41)——点云重建三维凸包并计算体积

本文介绍了如何结合PCL与CloudCompare实现点云三维凸包的构建与可视化。通过代码集成,在CloudCompare界面添加功能按钮,实现点云数据转换、凸包构建、体积计算以及可视化显示。具体步骤包括:1) 在UI中添加功能按钮;2) 将点云数据转换为PCL格式;3) 使用PCL的ConvexHull算法构建三维凸包;4) 计算并显示凸包体积;5) 将结果以点云和网格形式可视化显示。最终实现了点云凸包的自动构建与体积计算功能,为点云处理提供了实用工具。

点云侠的博客 193

tensorflow批量读取数据那些事

学了这么久,就感觉tensorflow真是事多,怪不得pytorch越来越盛行 经典: image_files = [os.path.join(image_dir, file) for file in os.listdir(image_dir) if file.endswith('.png')] image_files = sorted([os.path.join(dataset_dir, ...

爱CV 1461

【Autosar从入门到精通到进阶实战篇】75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

文章摘要:UDS刷写流程0x34/0x36/0x37关键实现要点 本文通过一个真实ECU变砖案例,揭示了UDS刷写服务(0x34请求下载、0x36传输数据、0x37请求退出)的实现陷阱与最佳实践。核心要点: 安全架构设计: 0x34阶段只协商参数,不立即擦除Flash 采用缓冲区暂存数据,避免频繁写Flash 严格检查地址对齐和内存边界 关键改进措施: 实现数据包序列号校验(防错位) 传输层缓冲区溢出保护 0x37阶段必须包含完整性校验(如CRC32) 一次性批量写入Flash,减少擦写次数 典型错误模式:

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 71

【AI测试干货】软件测试 - 全流程提示词完整体系

本篇教程是一套专为软件测试工程师打造的 AI 协作提示词体系。从测试计划制定、用例设计、自动化脚本开发、缺陷管理,到测试报告生成,每个环节都提供了结构化的提示词模板,帮助测试人员高效利用 AI 提升工作质量。

blues_C的博客 349

如何用tensorflow对数据进行批量读取

tensorflow读取数据有两种模式,一种是通过tfrecord把数据转换成队列进行批量读取,另一种是利用Dataset进行数据集读取。这次主要写了一个批量读取的代码,把原始数据读入tf.train.Example的协议内存块中,通过tf.python_io接口写入tfrecord中,用解析器进行读取。 import os import tensorflow as tf impor...

weixin_45414789的博客 715

基于STM32L4XX、HAL库的MP2672GD-0000-Z充电芯片驱动程序设计

CHG_STAT_GPIO_Port, CHG_STAT_Pin, // 这些宏应由 CubeMX 生成在 main.h。

zhusl6688的博客 497

tensorflow如何队列式同步批量读取照片(1)

下载即用。一定要注意,首先要下载cifar数据集,解压放在datasets文件夹下。import tensorflow as tf from tensorflow import flags import os from scipy import misc flags.DEFINE_string('data_dir','datasets/',"""Path to the CIFAR-10 data d

GAN_player的博客 1149

Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1

安装完成之后打开文件夹E:\PCL 1.11.1\3rdParty\OpenNI2双击 并选择路径 (E:\PCL 1.11.1\3rdParty\OpenNI2) 安装即可全部安装完成之后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的 .pdb文件拷贝到(E:\PCL 1.11.1\bin)中设置环境变量:到此,环境变量配置完成。

qq_53545309的博客 1127

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Tensorflow批量读取图像数据

import tensorflow as tf import os import sys from PIL import Image def get_Allfiles(dir_file): Allfiles=[] list_input=os.listdir(dir_file) for i in range(0,len(list_input)): path=...

cxn511的博客 1034

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

tensorflow批量读取数据

Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据,在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。 Feeding: Python产生数据,再把数据喂给后端。TensorFlow程序运行的每一步, 让Python代码来供给数据。 Reading from file: 从文件中直接读取,在TensorFlow图的起始, 让一...

weixin_33941350的博客 582

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

队列与批量读取

tf 中可以用队列来实现批量读取,主要方法是 string_input_producer 和 slice_input_producer。 string_input_producer 把输入的list生成队列 tf.train.string_input_producer( string_tensor, num_epochs=None, shuf...

weixin_30522095的博客 359

TensorFlow框架2:数据读取(包括解决读取数据、实现同步模拟、队列管理器和协程协调器实现异步读取训练、文件读取)及代码行的详细讲解

TensorFlow框架2:数据读取(包括解决读取数据、实现同步模拟、队列管理器和协程协调器实现异步读取训练、文件读取等内容) 1、TensorFlow解决读取数据、实现同步模拟(模拟一下同步先处理数据,然后才能取数据训练) 需要了解的函数:tf.FIFOQueue(capacity,dtypes,name) 代码解析: import tensorflow as tf import os # 模...

景墨轩 809

tensorflow数据集制作/文件队列读取方式

TensorFlow程序读取数据3种方法: tensorflow数据集制作

continueOo的博客 3587
上一篇: tensorflow如何队列式同步批量读取照片(1)
下一篇: tfrecorder的制作/读取(附实战代码)
GAN_player
博客等级 码龄10年 52粉丝 98原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值