TensorFlow-关于数列的笔记

本文深入解析了TensorFlow中的队列机制,包括队列的创建、元素的入队和出队操作,并通过实例展示了如何使用FIFOQueue。同时,文章还探讨了如何在多线程环境下使用队列管理器进行队列操作,为复杂的数据流控制提供了思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow中常用队列方法总结
常用队列方法汇总

一般,要创建一个队列,首先要选定数据出入类型。如上图后三个。

q=tf.FIFOQueue(3,"float")
sess=tf.Session()
init=q.enqueue_many(([0.1,0.2,0.3]))
sess.run(int)

函数的一个参数是数据的个数,3. 第二个参数是元素的类型。
TensorFlow中任何操作都是在会话中进行,session 中进行元素初始化。
接下来看一个简单应用:

import tensorflow as tf

with tf.Session() as sess:
    q = tf.FIFOQueue(3,"float")
    init = q.enqueue_many(([0.1, 0.2, 0.3],))
    init2 = q.dequeue()
    init3 = q.enqueue(1.)

    sess.run(init)
    sess.run(init2)
    sess.run(init3)

    quelen =  sess.run(q.size())
    for i in range(quelen):
        print(sess.run(q.dequeue()))

最后打打印结果是:
打印结果

线程问题:

#global_variables_initializer()
import tensorflow as tf

#创建一个数列,add——op是将1叠加到counter中。
q = tf.FIFOQueue(1000,"float32")
counter = tf.Variable(0.0)
add_op = tf.assign_add(counter, tf.constant(1.0))
enqueueData_op = q.enqueue(counter)

sess=tf.Session()
qr = tf.train.QueueRunner(q, enqueue_ops=[add_op, enqueueData_op] * 2)
#这是一个队列管理器调用2个线程去完成。
sess.run(tf.global_variables_initializer())
enqueue_threads = qr.create_threads(sess, start=True)  # 启动入队线程
coord = tf.train.Coordinator()  #控制协调线程
enqueue_threads = qr.create_threads(sess, coord = coord,start=True)  
#也对队列进行操作
for i in range(10):
    
    print(sess.run(q.dequeue()))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值