首页 Paddle框架 帖子详情
1.8开发的静态图代码能在2.0版本中运行吗 ? 已解决
收藏
快速回复
Paddle框架 问答深度学习 13305 1
1.8开发的静态图代码能在2.0版本中运行吗 ? 已解决
收藏
快速回复
Paddle框架 问答深度学习 13305 1

1.8开发的静态图代码能在2.0版本中运行吗 ?

旧鸱c_
已解决
2# 回复于2021-08
所有1.8的静态图模型在2.0版本中都会报错。 问题分析: 2.0版本默认开启了动态图模式。即当调用import paddle后,此时Paddle已经运行在动态图模式下。基于1.8开发的静态图代码,在2.0版本下直接执行会出错。为此,在静态图的一些入口API 中加入了报错检查,例如直接调用fluid.data会遇到如下错误: [图片] 解决方案: 旧版本(1.8及之前版本)静态图下的代码,需要在import paddle后的头部位置加入paddle.enable_static()来开启静态图模式,这样才能正常运行。 原来通过dygraph guard写的动态图代码仍然可以正常执行。但在2.0下可以不需要像以前写dygraph guard,直接按照动态图模式编写代码。 同时,请注意对于GPU版本的paddle,在import paddle时默认开启动态图会选择CUDAPlace作为默认place。如果要修改place,可以通过paddle.set_device()来完成。
展开
0
收藏
回复
全部评论(1)
时间顺序
旧鸱c_
#2 回复于2021-08

所有1.8的静态图模型在2.0版本中都会报错。

问题分析:
2.0版本默认开启了动态图模式。即当调用import paddle后,此时Paddle已经运行在动态图模式下。基于1.8开发的静态图代码,在2.0版本下直接执行会出错。为此,在静态图的一些入口API 中加入了报错检查,例如直接调用fluid.data会遇到如下错误:

解决方案:
旧版本(1.8及之前版本)静态图下的代码,需要在import paddle后的头部位置加入paddle.enable_static()来开启静态图模式,这样才能正常运行。
原来通过dygraph guard写的动态图代码仍然可以正常执行。但在2.0下可以不需要像以前写dygraph guard,直接按照动态图模式编写代码。
同时,请注意对于GPU版本的paddle,在import paddle时默认开启动态图会选择CUDAPlace作为默认place。如果要修改place,可以通过paddle.set_device()来完成。

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户