python神经网络之批量学习tf.train.batch函数示例

 更新时间:2022年05月04日 11:00:36   作者:Bubbliiiing  
这篇文章主要为大家介绍了python神经网络之批量学习tf.train.batch函数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

学习前言

当我在快乐的学习SSD训练部分的时候,我发现了一个batch我看不太懂,主要是因为tfrecords的数据读取方式我不理解,所以好好学一下batch吧

tf.train.batch函数

tf.train.batch(
    tensors,
    batch_size,
    num_threads=1,
    capacity=32,
    enqueue_many=False,
    shapes=None,
    dynamic_pad=False,
    allow_smaller_final_batch=False,
    shared_name=None,
    name=None
)

其中:

1、tensors:利用slice_input_producer获得的数据组合。

2、batch_size:设置每次从队列中获取出队数据的数量。

3、num_threads:用来控制线程的数量,如果其值不唯一,由于线程执行的特性,数据获取可能变成乱序。

4、capacity:一个整数,用来设置队列中元素的最大数量

5、allow_samller_final_batch:当其为True时,如果队列中的样本数量小于batch_size,出队的数量会以最终遗留下来的样本进行出队;当其为False时,小于batch_size的样本不会做出队处理。

6、name:名字

测试代码

1、allow_samller_final_batch=True

import pandas as pd
import numpy as np
import tensorflow as tf
# 生成数据
def generate_data():
    num = 18
    label = np.arange(num)
    return label
# 获取数据
def get_batch_data():
    label = generate_data()
    input_queue = tf.train.slice_input_producer([label], shuffle=False,num_epochs=2)
    label_batch = tf.train.batch(input_queue, batch_size=5, num_threads=1, capacity=64,allow_smaller_final_batch=True)
    return label_batch
# 数据组
label = get_batch_data()
sess = tf.Session()
# 初始化变量
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
# 初始化batch训练的参数
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess,coord)
try:
    while not coord.should_stop():
        # 自动获取下一组数据
        l = sess.run(label)
        print(l)
except tf.errors.OutOfRangeError:
    print('Done training')
finally:
    coord.request_stop()
coord.join(threads)
sess.close()

运行结果为:

[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17  0  1]
[2 3 4 5 6]
[ 7  8  9 10 11]
[12 13 14 15 16]
[17]
Done training

2、allow_samller_final_batch=False

相比allow_samller_final_batch=True,输出结果少了[17]

import pandas as pd
import numpy as np
import tensorflow as tf
# 生成数据
def generate_data():
    num = 18
    label = np.arange(num)
    return label
# 获取数据
def get_batch_data():
    label = generate_data()
    input_queue = tf.train.slice_input_producer([label], shuffle=False,num_epochs=2)
    label_batch = tf.train.batch(input_queue, batch_size=5, num_threads=1, capacity=64,allow_smaller_final_batch=False)
    return label_batch
# 数据组
label = get_batch_data()
sess = tf.Session()
# 初始化变量
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
# 初始化batch训练的参数
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess,coord)
try:
    while not coord.should_stop():
        # 自动获取下一组数据
        l = sess.run(label)
        print(l)
except tf.errors.OutOfRangeError:
    print('Done training')
finally:
    coord.request_stop()
coord.join(threads)
sess.close()

运行结果为:

[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17  0  1]
[2 3 4 5 6]
[ 7  8  9 10 11]
[12 13 14 15 16]
Done training

以上就是python神经网络之批量学习tf.train.batch函数示例的详细内容,更多关于python神经网络tf.train.batch的资料请关注脚本之家其它相关文章!

相关文章

  • pytorch实现线性拟合方式

    pytorch实现线性拟合方式

    今天小编就为大家分享一篇pytorch实现线性拟合方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 使用tensorflow实现矩阵分解方式

    使用tensorflow实现矩阵分解方式

    今天小编就为大家分享一篇使用tensorflow实现矩阵分解方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python中List添加与删除元素的几种方法实例

    python中List添加与删除元素的几种方法实例

    列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的,下面这篇文章主要给大家介绍了关于python中List添加与删除元素的相关资料,需要的朋友可以参考下
    2022-09-09
  • python实现去掉字符串中的\xa0、\t、\n

    python实现去掉字符串中的\xa0、\t、\n

    这篇文章主要介绍了python实现去掉字符串中的\xa0、\t、\n方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 基于python实现微信好友数据分析(简单)

    基于python实现微信好友数据分析(简单)

    本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-02-02
  • python使用threading获取线程函数返回值的实现方法

    python使用threading获取线程函数返回值的实现方法

    这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下
    2017-11-11
  • 一文详解NumPy分割与搜索数组

    一文详解NumPy分割与搜索数组

    NumPy 提供了 np.array_split() 函数来分割数组,将一个数组拆分成多个较小的子数组和提供了多种方法来搜索数组中的元素,并返回匹配项的索引,本文将给大家详细介绍NumPy分割与搜索数组,需要的朋友可以参考下
    2024-05-05
  • Bottle框架中的装饰器类和描述符应用详解

    Bottle框架中的装饰器类和描述符应用详解

    这篇文章主要介绍了Bottle框架中的装饰器类和描述符应用详解,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • python基础知识之索引与切片详解

    python基础知识之索引与切片详解

    在python的学习过程,有些同学对索引和切换会感到困惑,今天我们就来弄清楚它,下面这篇文章主要给大家介绍了关于python基础知识之索引与切片的相关资料,需要的朋友可以参考下
    2022-05-05
  • python模拟TLS指纹实现反爬取

    python模拟TLS指纹实现反爬取

    这篇文章主要为大家详细介绍了如何利用python模拟TLS指纹实现反爬取,文中的示例代码讲解详细,具有一定的参考价值,有需要的小伙伴可以了解一下
    2023-10-10

最新评论