5大典型模型测试单机训练速度超对标框架,飞桨如何做到?( 四 )

为方便用户使用,飞桨提供一些不同粒度的Layer,其中有些Layer的组合可以通过单个Layer完成。比如:

(1) fluid.layers.softmax_with_cross_entropy,该操作其实是fluid.layers.softmax和fluid.layers.cross_entropy的组合,因此如果模型中有出现fluid.layers.softmax和fluid.layers.cross_entropy的组合,可以直接用fluid.layers.softmax_with_cross_entropy替换;

(2) 如果模型中需要对数据进行标准化,可以直接使用fluid.layers.data_norm,而不用通过一系列layer组合出数据的标准化操作。

因此,建议在构建模型时优先使用飞桨提供的单个Layer完成所需操作,这样减少模型中Layer的个数,并因此加速模型训练。

2. 数据准备优化

数据准备通常分为两部分:第一部分是数据加载,即程序从磁盘中加载训练/预测数据;第二部分是数据预处理,程序对加载的数据进行预处理,比如图像任务通常需要进行数据增强、Shuffle等。这两部分需要用户根据自己的模型需要进行设置,只需要最后得到Data Reader接口即可。Data Reader返回iterable对象,可以每次返回一条样本或者一组样本。代码示例如下:

推荐阅读