在paddlehub中存在大量的模型库,只有少部分是动态图模型,大部分是静态图模型。paddle官方在paddle1.x的体系下是提供了paddlehub静态模型迁移学习训练功能的API,具体可见paddlepaddle 15 迁移学习-图像分类实战二_a486259的博客-CSDN博客
但是,楼主并不满足于此,因为 paddle1.x下的api,在迁移学习中能够操作的范围有限,比如不支持输出预测结果的概率值,不能获取模型的特征图(无法安装自己的需求进行二次开发),同时在训练模型的过程中不支持数据增强。
为此对paddle2的api进行梳理,实现了用paddle2中的api对静态图的基本训练。
1、模型的构造通过以下代码可以从paddlehub中获取模型,并通过语句module.context(trainable=True)获取可以用于训练的program对象,通过在output_dict['feature_map']对象后面新增全连接,实现新的分类器。并使用cross_entropy计算loss,实现反向传播。
代码中需要注意的是train_program与test_program的区别,train_program与test_program共用相同的网络结构和参数,但是train_program中包含反向传播部分(loss计算,优化器),而test_program仅包含前向传播部分,且t



