博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Tensorflow中的tf.train.batch函数
阅读量:4079 次
发布时间:2019-05-25

本文共 2005 字,大约阅读时间需要 6 分钟。

这两天一直在看tensorflow中的读取数据的队列,说实话,真的是很难懂。也可能我之前没这方面的经验吧,最早我都使用的theano,什么都是自己写。经过这两天的文档以及相关资料,并且请教了国内的师弟。今天算是有点小感受了。简单的说,就是计算图是从一个管道中读取数据的,录入管道是用的现成的方法,读取也是。为了保证多线程的时候从一个管道读取数据不会乱吧,所以这种时候 读取的时候需要线程管理的相关操作。今天我实验室了一个简单的操作,就是给一个有序的数据,看看读出来是不是有序的,结果发现是有序的,所以直接给代码:

import tensorflow as tfimport numpy as npdef generate_data():    num = 25    label = np.asarray(range(0, num))    images = np.random.random([num, 5, 5, 3])    print('label size :{}, image size {}'.format(label.shape, images.shape))    return label, imagesdef get_batch_data():    label, images = generate_data()    images = tf.cast(images, tf.float32)    label = tf.cast(label, tf.int32)    input_queue = tf.train.slice_input_producer([images, label], shuffle=False)    image_batch, label_batch = tf.train.batch(input_queue, batch_size=10, num_threads=1, capacity=64)    return image_batch, label_batchimage_batch, label_batch = get_batch_data()with tf.Session() as sess:    coord = tf.train.Coordinator()    threads = tf.train.start_queue_runners(sess, coord)    i = 0    try:        while not coord.should_stop():            image_batch_v, label_batch_v = sess.run([image_batch, label_batch])            i += 1            for j in range(10):                print(image_batch_v.shape, label_batch_v[j])    except tf.errors.OutOfRangeError:        print("done")    finally:        coord.request_stop()    coord.join(threads)

记得那个slice_input_producer方法,默认是要shuffle的哈。

Besides, I would like to comment this code.

1: there is a parameter ‘num_epochs’ in slice_input_producer, which controls how many epochs the slice_input_producer method would work. when this method runs the specified epochs, it would report the OutOfRangeRrror. I think it would be useful for our control the training epochs.
2: the output of this method is one single image, we could operate this single image with tensorflow API, such as normalization, crops, and so on, then this single image is feed to batch method, a batch of images for training or testing would be received.

转载地址:http://joini.baihongyu.com/

你可能感兴趣的文章
if __name__ == ‘__main__‘:就是Python里的main函数,脚本从这里开始执行,如果没有main函数则从上到下顺序执行。
查看>>
PX4官方用户和开发手册的首页面是会给你选择英文和中文的
查看>>
树莓派上部署英特尔深度相机IntelRealsense T265(他人8月7日刚写的)我树莓派上librealsense realsense-ros最后是实际按照这个来装的,也装成了!
查看>>
【8-12】树莓派部署t265+px4飞控实现无人机视觉定位(转载)(里面说出了APM官方手册给的vision_to_mavros和PX4官方手册给的VIO)
查看>>
youtube上有个在树莓派上装liberealsense的视频教程,我觉得挺棒的,还知道了一个好东西VNC,这样树莓派不买屏幕也OK。
查看>>
树莓派网上很多视频教程,你完全可以跟着弄,不用担心很多细节不会。
查看>>
他们喜欢把T265和D435i结合起来用(T265是定位,D435i是建图,两者合起来就是同时定位和建图,不就是SLAM么)
查看>>
树莓派默认的用户名是pi 默认的密码是raspberry,用这个用户名和密码去远程登陆
查看>>
现在终于知道realsense官方的树莓派安装教程了
查看>>
在树莓派上装librealsense我找到两个官方教程了,一个是realsense给的,一个是APM给的T265的教程
查看>>
树莓派的系统是烧录到SD卡直接启动可以用了,那我之前买的ubuntu的U盘系统应该原理类似,那烧录方法是不是应该也是类似?
查看>>
GNU nano是Shell中常用的一款文本编辑器
查看>>
Raspbian是树莓派官方推出的操作系统
查看>>
树莓派操作系统的烧录
查看>>
没有屏幕如何连接树莓派
查看>>
没有屏幕和键盘如何玩转树莓派
查看>>
腾达的路由器直接浏览器访问 192.168.0.1就可以看到各个设备的IP地址了,树莓派的应该也可以。
查看>>
树莓派设置自动连wifi
查看>>
树莓派一根网线直连笔记本电脑(这样或许真的不需要再单独买个屏幕了)
查看>>
软件装好后如何开启并控制无人机
查看>>