基于对paddle.io和paddle.vision两库的探索,发现他们是支持在paddle2静态图模式(paddle.enable_static())下调用的,因此对paddlehub模型获取,paddle.io数据加载,paddle.vision数据增强进行封装,最终实现用paddle2按照自己的需求训练paddlehub中的静态图。
封装后的训练与测试代码如下所示
#paddlepaddle==2.2
#paddlehub=2.2
import paddle
from utils.Trainer import Trainer,log_print
#构造训练器
trainer=Trainer(input_shape=(256,256),batch_size=32,start_epoch=0,Epochs=200)
#设置学习率调度器,在迁移学习中动态调整学习率记为重要
#scheduler = paddle.optimizer.lr.CosineAnnealingDecay(learning_rate=0.001, T_max=10, verbose=True)
scheduler = paddle.optimizer.lr.ReduceOnPlateau(learning_rate=0.001, factor=0.7, patience=5, verbose=False)
#设置program信息
trainer.init_