# TODO(gaotingquan): to compatible with different versions of Paddle
ifself.mode=="train":
paddle_version=paddle.__version__[:3]
self.model,self.optimizer=paddle.amp.decorate(
# paddle version < 2.3.0 and not develop
models=self.model,
ifpaddle_versionnotin["2.3","0.0"]:
optimizers=self.optimizer,
ifself.mode=="train":
level=self.amp_level,
self.model,self.optimizer=paddle.amp.decorate(
save_dtype='float32')
models=self.model,
elifself.amp_eval:
optimizers=self.optimizer,
self.model=paddle.amp.decorate(
level=self.amp_level,
models=self.model,
save_dtype='float32')
level=self.amp_level,
elifself.amp_eval:
save_dtype='float32')
ifself.amp_level=="O2":
msg="The PaddlePaddle that installed not support FP16 evaluation in AMP O2. Please use PaddlePaddle version >= 2.3.0. Use FP32 evaluation instead and please notice the Eval Dataset output_fp16 should be 'False'."