tensorflow : 队列管理 FIFOQueue && RandomShuffleQueue

Tensorflow入门(2)——深度学习框架Tesnsflow & 线程+队列+IO操作 & 文件读取案例_tesflow框架 在训练样本的时候,希望读入的训练样本时有序的• tf.FIFOQueue 先进先出队列,按顺序出队列• tf.RandomShuffleQueue 随机出队列创建一个以先进先出的顺序对元素进行排队的队列。 阅读详情

『TensorFlow』第十弹_队列&多线程_道路多坎坷

目录

 


回到顶部

一、基本队列:

队列有两个基本操作,对应在tf中就是enqueue&dequeue

 tf.FIFOQueue(2,'int32')

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import tensorflow as tf

 

'''FIFO队列操作'''

 

# 创建队列

# 队列有两个int32的元素

q = tf.FIFOQueue(2,'int32')

# 初始化队列

init= q.enqueue_many(([0,10],))

# 出队

x = q.dequeue()

y = x + 1

# 入队

q_inc = q.enqueue([y])

 

with tf.Session() as sess:

    init.run()

    for _ in range(5):

        v,_ = sess.run([x,q_inc])

        print(v)

 tf.RandomShuffleQueue(capacity=10,min_after_dequeue=2,dtypes='float')

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

'''随机队列操作'''

 

# 最大长度10,最小长度2,类型float的随机队列

q = tf.RandomShuffleQueue(capacity=10,min_after_dequeue=2,dtypes='float')

 

sess = tf.Session()

for i in range(0,10):

    sess.run(q.enqueue(i))

for i in range(0,8): # 在输出8次后会被阻塞

    print(sess.run(q.dequeue()))

 

#run_option = tf.RunOptions(timeout_in_ms = 10000) # 等待时间10s

#for i in range(0,7): # 在输出8次后会被阻塞

#    # 超时报错继续,不会退出

#    try:

#        print(sess.run(q.dequeue(),options=run_option))

#    except tf.errors.DeadlineExceededError:

#        print('out of range')

 

print('-----'*5)

回到顶部

二、队列管理:

tf.train.QueueRunner(q,enqueue_ops=[increment_op,enqueue_op]*2)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

'''队列管理器'''

 

# 队列管理器使用线程管理队列

 

q = tf.FIFOQueue(1000,'float')

counter = tf.Variable(0.0)  # 计数器

increment_op = tf.assign_add(counter, tf.constant(1.0))   # 计数器加一

enqueue_op = q.enqueue(counter)                           # 入队

 

# 线程面向队列q,启动2个线程,每个线程中是[in,en]两个操作

qr = tf.train.QueueRunner(q,enqueue_ops=[increment_op,enqueue_op]*2)

 

 

sess.run(tf.global_variables_initializer())

enqueue_threads = qr.create_threads(sess,start=True)      # 启动入队线程

for i in range(10):

    print(sess.run(q.dequeue()))

    # 由于主线程和入队线程异步,所以输出不是自然数序列

出队操作还有Queu.dequeue_many(batch_size),如果入队时采用enqueue([image, label]),则可以实现队列数据参与训练。

tf.train.Coordinator()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

'''协调器'''

 

q = tf.FIFOQueue(1000,'float')

counter = tf.Variable(0.0)  # 计数器

increment_op = tf.assign_add(counter, tf.constant(1.0))   # 计数器加一

enqueue_op = q.enqueue(counter)                           # 入队

 

# 线程面向队列q,启动2个线程,每个线程中是[in,en]两个操作

qr = tf.train.QueueRunner(q,enqueue_ops=[increment_op,enqueue_op]*2)

 

sess = tf.Session()

sess.run(tf.global_variables_initializer())

 

coord = tf.train.Coordinator()

# 线程管理器启动线程,接收协调器管理

enqueue_thread = qr.create_threads(sess,coord=coord,start=True)

 

for i in range(0,10):

    print(sess.run(q.dequeue()))

 

coord.request_stop()            # 向各个线程发终止信号

coord.join(enqueue_thread)      # 等待各个线程成功结束

 

转自:https://www.cnblogs.com/hellcat/p/6941367.html

 

 

【MagicDrive环境配置】新手配俩星期版 1.创建一个新的环境conda create -n newdrive python==3.82.激活该环境conda activate newdrive3.下载MagicDrive源码 git clone --recursive https://github.com/cure-lab/MagicDrive.git,如果出现时间超时八成是网的问题,直接自己下载解压就好3.我的cuda版本是11.7,但11.7导致后续安装有冲突,因此进入。 阅读详情

相关推荐

Agent框架系列:1-低代码智能体平台深度解析Dify、Coze、n8n

Dify、Coze 和 n8n 是三大主流低代码智能体平台,各有侧重。Dify 适合企业级 AI 应用,具备强大的 RAG 和知识库管理能力,技术栈为 Python + React。Coze 由字节推出,主打零代码和快速原型开发,集成 60+ 插件,极适合非技术用户。n8n 以工作流自动化和系统集成为核心,支持 400+ 外部应用,基于 Node.js + Vue,扩展性极强。选择建议:非技术团队选 Coze,AI 应用选 Dify,复杂自动化与集成选 n8n。可根据实际需求混合使用,最大化平台优势。

3079

【SV 基础】queue 的一些用法

sv queue 的一些用法,我用过的、见过的用法都在这了.

MangoPapa 2万+

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2950

6.1.1 TensorFlow 构建队列 tf.FIFOQueue, tf.PriorityQueue, tf.RandomShuffleQueue

1. tf.FIFOQueue 先来先服务队列 import tensorflow as tf import numpy as np def init_data(): data_list = [] for i in range(10): float_data = [i, i, i] str_data = ['str_'+str(i), 'str'+str(i)] data_list.append((float_data, str_data))

weixin_37804469的博客 421

双有源桥变换器(DAB)TPS控制:从理论建模到Simulink/PSIM仿真实践

本文深入探讨了双有源桥变换器(DAB)的三重移相(TPS)控制技术,从理论建模到仿真实现。文章详细分析了TPS相比SPS和DPS的优势,阐述了其12种工况的划分逻辑与电流应力最优调制策略,并提供了在Simulink和PSIM平台搭建仿真模型的详细步骤与实战经验,帮助工程师掌握这一高效控制方法。

white的博客 584

Linux 之 supervisor安装和使用

运行Supervisor的后台服务,它用来启动和管理那些你需要Supervisor管理的子进程,响应客户端发来的请求,重启意外退出的子进程,将子进程的stdout和stderr写入日志,响应事件等。它是Supervisor最核心的部分。

chang995196962的博客 5545

关于Shuffle

3.到达临界点(例子80%),会直接进行区内排序,这个操作发生在缓冲区中,Map放入数据之前会默认判断缓冲区状态,满就等待.处理有序数据比无序数据比较快,为了提升MR的性能,其实我感觉还是数据的问题,因为大部分数据都是无序的.6.从磁盘中拷贝到内存,导入Reduce ,处理数据.归并排序.按K分组。4.排序后将数据取出,数据溢出.这时进行(一个task)分区合并()注意一下,存储到块时,是如果不够快大小,是以实际大小存入的.区满之后,需要区内重新排序一下,保证区内数据的有序性.

qq_42265608的博客 199

Rocky Linux 9 远程桌面配置全攻略:从零搭建XRDP服务(含防火墙设置)

本文提供了在Rocky Linux 9上从零开始配置XRDP远程桌面服务的完整指南。详细介绍了系统准备、XRDP服务安装、防火墙与SELinux安全设置、多用户性能优化以及多平台客户端连接实测。重点解决了使用Windows远程桌面协议(RDP)连接Rocky Linux时常见的配置难点与安全问题,帮助用户获得稳定高效的图形化远程访问体验。

vodka的博客 646

RandomShuffleQueue

一、几个函数 RandomShuffleQueue类 __init__(self, capacity, min_after_dequeue,dtypes, shapes=None,names=None, seed=None, shared_name=None, name="random_shuffle_queue") queue = tf.RandomShuffleQueue(......

weixin_30876945的博客 269

LD14激光雷达与STM32F103C8T6(标准库)获取雷达360度数据(1)

LD14激光雷达与STM32F103C8T6(标准库)获取雷达360度数据(1)

qq_54206194的博客 3897

2024年Unity 面试题 |五萬字 二佰道| Unity面试题大全,面试题总结【全网最全,收藏一篇足够面试】

正所谓 金三银四 ,又到了找工作的大好时机了,不知道大家有没有意向找一份更好的工作呢~ 之前写了很多Unity的学习和实例文章,但是面试题部分还没有一个系统的整理。 那本篇文章就来整理一下Unity中一些常见的面试题,说不准就会面试的时候就会遇到! 本篇文章会将Unity所有方面的面试资料都融会贯通,绝对是2022年Unity面试领域最实用的文章啦!

努力前行,总会成为自己心中的那道光 17万+

systemverilog的乱序shuffle

在 SystemVerilog 中,shuffle是一个系统函数,用于对动态数组或队列进行随机打乱(洗牌)操作。以下是一些关于shuffle。

m0_71354184的博客 2870

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 484

【TensorFlow动手玩】队列

TensorFlow中的队列机制

shenxiaolu1984的专栏 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Tensorflow: 队列操作

import tensorflow as tfTensorflow有两种队列 Queue 类, 两者都继承与父类 tf.QueueBase : 先进先出队列 tf.FIFOQueue 随机队列 tf.RandomShuffleQueue 队列与Op一样也是图中的一个节点, 类中的主要方法: 插入元素 queue.enqueue() 和取出元素 queue.dequeue() 返回一个Op, 也为图中

qq_39037910的博客 1451

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

队列和线程

文章目录一、队列1.1 FIFOQueue1.2 RandomShuffleQueue二、队列管理器三、线程和协调器 一、队列   TensorFlow 中主要有两种队列:FIFOQueue 和 RandomShuffleQueue。队列本身也是图中的一个节点,是一种有状态的节点,其他节点,如入队节点(enqueue)和出队节点(dequeue),可以修改它的内容。例如,入队节点可以把新元素插到队...

yleave的博客 1524

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

TensorFlow 队列 queue

原文链接: TensorFlow 队列 queue ...

阿豪 163

Python深度学习笔记01——线程队列与tensorflow的io操作(壹)

文章目录 一、tensorflow与io操作 二、tensorflow队列 1、参数 方法 2、案例实现 三、队列管理器与线程协调器实现异步读取训练 1、队列管理器 2、异步操作 3、线程协调器 总结

Liii_NN的博客 540

Tensorflow的使用——队列与线程

队列(queue)本身也是图中的一个节点,是一种有状态的节点,其他节点,如入队节点(enqueue)和出队节点(dequeue),可以修改它的内容。 入队节点可以把元素加到队列的末尾,而出对节点可以把队列中最前面的元素删除。 FIFOQueue 创建一个先入先出队列 import tensorflow as tf # 1.创建一个先入先出的队列,初始化队列插入0.1, 0.2, 0....

qq_24819773的博客 262

【学习笔记】tensorflow队列和线程

目录 Tensorflow队列 同步执行队列 队列管理器 异步执行队列 线程协调器 在使用TensorFlow进行异步计算时,队列是一种强大的机制。 为了感受一下队列,让我们来看一个简单的例子。我们先创建一...

weixin_30361641的博客 206

Tensorflow:顺序队列与IO操作

顺序队列与IO操作 CPU负责TensorFlow的计算,IO负责读取文件 由于速度上的差异,通常做法是:主线程进行模型训练,子线程读取数据,二者通过队列进行数据传输 相当于主线程从队列读数据,子进程往队列放数据 线程与队列 在使用TensorFlow进行异步计算时,队列是一种强大的机制。 一个简单的例子。先创建一个“先入先出”的队列(FIFOQueue),并将其内部所有元素初始化为零。然后,构建...

qq_45315982的博客 259

tensorflow中线程和队列

队列(queue)本身也是图中的一个节点,是一种有状态的节点,主要包括入队节点(enqueue)和出队节点(dequeue),可以修改它的内容。enqueue操作返回计算图中的一个Operation节点,dequeue操作返回一个Tensor值。Tensor在创建时同样只是一个定义(或称为“声明”),需要放在Session中运行才能获得真正的数值。 FIFOQueue先入先出队列 im...

summer2day的博客 373

6、TensorFlow基础(四)队列和线程

队列和线程   和 TensorFlow 中的其他组件一样,队列(queue)本身也是图中的一个节点,是一种有状态的节点,其他节点,如入队节点(enqueue)和出队节点(dequeue),可以修改它的内容。例如,入队节点可以把新元素插到队列末尾,出队节点可以把队列前面的元素删除。本节主要介绍队列、队列管理器、线程和协调器的有关知识。 1、队列:   TensorFlow 中主要有...

aiyiguan4623的博客 155

Tensorflow学习笔记(2)---线程和队列

1.先入先出队列:FIFOQueue 出队的顺序按入队的顺序,先入队的就先出来 ,从队列前端取出元素 入队是进入队列后面,将元素放入队列后端 应用场景:主要针对序列样本。使用循环神经网络时,处理语音,文字,视频等序列信息时,希望按顺序执行,这时就使用FIFOQueue队列 # 创建“先入先出”队列, 初始化队列,设置队列大小为3, 数据类型为浮点型 q = tf.FIFOQueue(5, 'f...

hillyfighting的博客 253

TensorFlow(三)之多线程

本博文参考TensorFlow实战Google深度学习框架(郑泽宇,顾思宇),仅用作学习 一、TFRecord输入数据格式 TFRecord是tensorflow中存储数据的统一格式。可以统一不同的原始数据格式,并更加有效地管理不同的属性。TFRecord文件中的数据都是通过tf.train.Example Protocol Buffer的格式存储的。是一种可将图像的数据和标签放在一起的二进制

chenglong_123的博客 7756

【TensorFlow】数据处理(队列和多线程)

项目已上传至 GitHub —— queue-threading QueueTensorFlow 提供了两种列队 FIFOQueue:先进先出队列 RandomShuffleQueue:随机出队队列 修改队列状态的函数主要有 enqueue():入队 enqueue_many():将多个元素入队 dequeue():出队 以下代码示范了怎么使用这些函数(以下所有代码都实现自《TensorFlow:实

widiot的博客 2644
上一篇: 调试错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
下一篇: 调试错误:InternalErro(seeabovefortraceback):BlasGEMMlaunchfailed:a.shape=(300,1),b.shape=(1,10),m=300,n=
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值