数据读取之队列

这篇博客介绍了Tensorflow中的数据队列机制,包括FIFOQueue(先进先出)和RandomShuffleQueue(随机队列),用于高效处理大量图像数据。FIFOQueue遵循标准队列原则,而RandomShuffleQueue则随机抽取元素。文章通过代码示例展示了队列的使用,并提到如何将文件组织成队列,以便于多线程处理数据。最后,预告将在下一部分讨论多线程处理数据。
摘要由CSDN通过智能技术生成

在前面的内容中我们介绍了使用Tensorflow提供的一些函数来处理图像数据,比如旋转、增亮、锐化等等。尽管使用这些图像数据预处理方法可以在一定程度上减少无关因素对图像识别模型效果的影响,这些复杂的预处理过程仍会影响整个训练过程。 为了对大而多的图像数据做预处理,Tensorflow提供了队列加多线程处理输入数据的解决方案。在这之前我们先来学习一下Tensorflow中的队列。

数据队列

大家所熟悉的是队列(Queue)是一种先进先出的线性表数据结构,队列只允许在前端(Front)进行删除操作,在后端(Rear)进行插入操作。插入操作的一端称为队尾,删除操作的一端称为队头,如果里面不存在元素的话就称之为空队列。

Tensorflow提供了FIFOQueue和RandomShuffleQueue两种队列,其中前者就是实现一个先进先出的队列,后者实现的是一个随机队列,顺序是打乱的。

对于Tensorflow提供的队列,主要有三个函数:enqueue_many()、dequeue()和enqueue()可以修改,分别是初始化队列元素、把队首的第一个元素出队、把一个元素加入到队尾。

下面是实际操作的代码:

在这里插入图片描述
输出的结果是:

在这里插入图片描述
上面的程序展示了FIFOQueue函数的用法,下面我们再来讲一下RandomShuffleQueue函数。RandomShuffleQueue队列不是一个先进先出的队列࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值