关于reader,shuffle,batch问题
asdfvgbnm3 发布于2019-01-28 18:37 浏览:555 回复:2
0
收藏
最后编辑于2020-05-17

这样的表述请问对不对:

reader是一条数据;

shuffle是一个装满了reader的东西,得到了很多条reader(比如500条),并把他们打乱,那么一个shuffle里面就有500条reader;

batch是一个装满了shuffle的东西,把一个一个shuffle按顺序排好(也可能不按顺序),准备一次投喂一个shuffle给训练模型。

 

对于reader和shuffle还比较明白,就是不懂batch是干啥的

还有一些小问题:

1. 每次投喂的是一个batch还是一个shuffle?

2. shuffle得到500条数据,是随机得到500条再打乱,还是拿前500条再打乱,还是按顺序500,500地拿,然后打乱?

3. feeder和reader的区别?我的理解是feeder是一个容器,把定义好了一个列表(比如 [投喂的手写数图片, 对应的数字]),reader才是饲料(比如 [img3, 3] )

感谢各位大神不吝赐教

收藏
点赞
0
个赞
共2条回复 最后由鹿鼎记肯定回复于2020-05-17 22:43
#3鹿鼎记肯定回复于2020-05-17 22:43:56

1. 每次喂的是batch,也可能是多个batch,跟你设置的batch_size有关;

2. shuffle是按照顺序拿,然后打乱;

3. 我没懂reader和feeder的意思。我对你这两个词的理解是,reader只是作为一个生成器生成训练/预测数据,同步feed(而不是feeder)是把数据送进网络训练/预测

0
#2李勇华的老巢回复于2020-05-17 21:07:35

谢邀

首先回答问题

神经网络读取数据进行训练,如手势识别,存在一种情况

数据排列整齐,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2

即所有的1都在一起,所有的2都在一起,且按顺序排列,那么这样的训练效果不好

所以需要打乱,

shuffle_reader-----按顺序取打乱

butch_size--------从打乱过的数据中,每次取batch_size 个数据进行训练

SO
buf_size------每次取多少个数据进行打乱

batch_size---每次取多少个数据进行训练

 

学习是不断储备的过程,加油

 

0
TOP
切换版块