关于reader,shuffle,batch问题
收藏
这样的表述请问对不对:
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
收藏
请登录后评论
谢邀
首先回答问题
神经网络读取数据进行训练,如手势识别,存在一种情况
数据排列整齐,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---每次取多少个数据进行训练
学习是不断储备的过程,加油
1. 每次喂的是batch,也可能是多个batch,跟你设置的batch_size有关;
2. shuffle是按照顺序拿,然后打乱;
3. 我没懂reader和feeder的意思。我对你这两个词的理解是,reader只是作为一个生成器生成训练/预测数据,同步feed(而不是feeder)是把数据送进网络训练/预测