a. 解决装饰器问题,保证外部环境是动态图,save中切换静态图test_with_dygraph_pir。 todo :paddle.load 测试。
b. 多输出精度不对,原因是save 时加scale 加到了一个变量上,导致剪枝了一层linear的parameter
c. input_specs_compatible(flatten(input_spec), flatten(self._function_spec.input_spec)在新IR下判断为false,因为datatype判断不同,input_spec 是DataType.FLOAT32, 原来的是paddle.float32, 原因是在layer中加动转静装饰器,在切换pir 环境前进行动转静,导致数据类型不匹配。
d. feed_var 是input_spec的时候需要找到对应的dataop拿到value.
e. 补充pirtranslatelayer 的input_spec,output_spec的接口。
f. net.forward.input[0].shape 旧IR下返回了(), pir下是[]
g. 适配save根据output_spec 进行输出过滤。对input_spec 进行处理
h.pir下output_spec 传递的是tensor 无法进行检查,因为value 没有名称,无法通过name检查,只能直接判断var 是否在 output中,var 需要是value, 只能通过动转静之后的网络中找到value.(添加了check逻辑)
i. 多次load 需要给parameter重命名,且parameter如果需要训练,用优化器更新,返回的是EagerParamBase, 否则是tensor
j. 适配combine_param save 接口中相关代码。
k. TestJitSaveLoadMultiMethods 原始动转静save 路径有问题导致load 不出其他层; 输出=输入的情况下,value拥有两个名字,执行器获取shadow_output 的名字得不到正确的tensor, 会报错tensor no holder。
TODO
TestJitSaveLoadSaveWithoutRunning 含控制流
TestJitSaveLoadFinetuneLoad 原始动转静报错待修复, 含控制流
你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.
PR Category
others
PR Types
others
Description
pcard-67164
适配test_jit_save_load.py 25/28个class 测试.
a. 解决装饰器问题,保证外部环境是动态图,save中切换静态图test_with_dygraph_pir。 todo :paddle.load 测试。 b. 多输出精度不对,原因是save 时加scale 加到了一个变量上,导致剪枝了一层linear的parameter c. input_specs_compatible(flatten(input_spec), flatten(self._function_spec.input_spec)在新IR下判断为false,因为datatype判断不同,input_spec 是DataType.FLOAT32, 原来的是paddle.float32, 原因是在layer中加动转静装饰器,在切换pir 环境前进行动转静,导致数据类型不匹配。 d. feed_var 是input_spec的时候需要找到对应的dataop拿到value. e. 补充pirtranslatelayer 的input_spec,output_spec的接口。 f. net.forward.input[0].shape 旧IR下返回了(), pir下是[] g. 适配save根据output_spec 进行输出过滤。对input_spec 进行处理 h.pir下output_spec 传递的是tensor 无法进行检查,因为value 没有名称,无法通过name检查,只能直接判断var 是否在 output中,var 需要是value, 只能通过动转静之后的网络中找到value.(添加了check逻辑) i. 多次load 需要给parameter重命名,且parameter如果需要训练,用优化器更新,返回的是EagerParamBase, 否则是tensor j. 适配combine_param save 接口中相关代码。 k. TestJitSaveLoadMultiMethods 原始动转静save 路径有问题导致load 不出其他层; 输出=输入的情况下,value拥有两个名字,执行器获取shadow_output 的名字得不到正确的tensor, 会报错tensor no holder。
TODO TestJitSaveLoadSaveWithoutRunning 含控制流 TestJitSaveLoadFinetuneLoad 原始动转静报错待修复, 含控制流