首页 Paddle框架 帖子详情
关于reader,shuffle,batch问题
收藏
快速回复
Paddle框架 问答深度学习模型训练 1619 2
关于reader,shuffle,batch问题
收藏
快速回复
Paddle框架 问答深度学习模型训练 1619 2

这样的表述请问对不对:

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)
时间顺序
austinleaven
#2 回复于2020-05

谢邀

首先回答问题

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

数据排列整齐,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
回复
thinc
#3 回复于2020-05

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

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

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

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户