423 Star 4.3K Fork 425

GVPPaddlePaddle / Paddle

 / 详情

关于静态图转向动态图的TracedLayer的文档不能实现

已完成
创建于  
2021-10-09 14:45

源自github用户zt991211:
我的相关报错源码如下:

if __name__ == '__main__':
    # 创建模型
    img=[]
    img.append(transform_img(np.array(Image.open('/home/aistudio/work/train-images/V0001_0.png'))))
    img = np.array(img).astype('float32')
    DiscROI_size=600
    with fluid.dygraph.guard():
        model = M_net()
        #启动训练过程
        #train(model)
        model_state_dict, _ = fluid.load_dygraph('/home/aistudio/work/mnet30.pdparams')
        model.load_dict(model_state_dict)
        in_var = fluid.dygraph.to_variable(img)
        out_dygraph, static_layer = fluid.dygraph.TracedLayer.trace(model, inputs=[in_var])
        out_static_graph = static_layer([in_var])
        static_layer.save_inference_model(dirname='/home/aistudio/work/mnet_model')
    place = fluid.CPUPlace()
    exe = fluid.Executor(place)
    program, feed_vars, fetch_vars = fluid.io.load_inference_model('/home/aistudio/work/mnet_model',
    executor=exe)
    fetch, = exe.run(program, feed={feed_vars[0]: in_var},fetch_list=fetch_vars)
    print(fetch.shape)

基本是按照文档源码的格式写的,但现在报错了
出现在fluid.io.load_inference_model('/home/aistudio/work/mnet_model',
executor=exe)这一行

报错原因如下:
报错在那个exe那里
ValueError:‘type’ to initialized an Operator can not be None。

评论 (7)

PaddlePaddle-Gardener 创建了任务
展开全部操作日志

源自github用户Xreki:
ValueError:‘type’ to initialized an Operator can not be None

load_inference_model时会根据保存的模型信息来定义Program里面的Variable和Operator,从报错信息来看是在定义Operator出的错,错误原因是Operator的type是None。

请问下您是使用的aistudio上面的示例代码吗,使用的是哪个示例代码呢?能否提供下链接,我这边看能不能复现。

源自github用户zt991211:
谢谢你,我昨天已经找到错误了,exe和dygraph有冲突,要分开运行就好了。之前那个TracedLayer文档里是两个写在一起的,所以我最开始也是写在一起的,我以为dygraph不会和exe冲突。

------------------ 原始邮件 ------------------
发件人: "Yiqun Liu"<notifications@github.com>;
发送时间: 2020年6月8日(星期一) 上午10:49
收件人: "PaddlePaddle/Paddle"<Paddle@noreply.github.com>;
抄送: "张桐"<814943622@qq.com>; "Author"<author@noreply.github.com>;
主题: Re: [PaddlePaddle/Paddle] 关于静态图转向动态图的TracedLayer的文档不能实现 (#24950)

ValueError:‘type’ to initialized an Operator can not be None

load_inference_model时会根据保存的模型信息来定义Program里面的Variable和Operator,从报错信息来看是在定义Operator出的错,错误原因是Operator的type是None。请问下您是使用的aistudio上面的示例代码吗,使用的是哪个示例代码呢?能否提供下链接,我这边看能不能复现。


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

源自github用户Xreki:

我昨天已经找到错误了,exe和dygraph有冲突,要分开运行就好了。

👋

之前那个TracedLayer文档里是两个写在一起的,所以我最开始也是写在一起的,我以为dygraph不会和exe冲突。

这个问题,我会向相关负责的同学反馈下。

源自github用户Xreki:
@zt991211 请问你说的「exe和dygraph有冲突」是什么意思呢? https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/imperative_cn/TracedLayer_cn.html#tracedlayer 这个文档的最后一个示例代码,我可以正常运行。

源自github用户zt991211:
我是在AI studio里面运行的,类似这段代码,一直运行报错,就load那一行,报的就是Type那个错误,然后我想了想,guard外面的exe先注释,运行里面的,有了模型后,把guard那一段注释,再运行外面的exe,就好了。

------------------ 原始邮件 ------------------
发件人: "Yiqun Liu"<notifications@github.com>;
发送时间: 2020年6月8日(星期一) 中午12:10
收件人: "PaddlePaddle/Paddle"<Paddle@noreply.github.com>;
抄送: "张桐"<814943622@qq.com>; "Mention"<mention@noreply.github.com>;
主题: Re: [PaddlePaddle/Paddle] 关于静态图转向动态图的TracedLayer的文档不能实现 (#24950)

@zt991211 请问你说的「exe和dygraph有冲突」是什么意思呢? https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api_cn/imperative_cn/TracedLayer_cn.html#tracedlayer 这个文档的最后一个示例代码,我可以正常运行。


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

源自github用户Xreki:
请问你使用的Paddle版本是多少?有在本地环境尝试过吗?

源自github用户Zaoyee:
请问可以详细的解决方法吗?我也有相同的问题。我简单的跑了一下 这里 的例子。

问题也同样出现在program, feed_vars, fetch_vars = fluid.io.load_inference_model(save_dirname, exe)
我系统是MacOS 10.15.4,paddle版本是1.8,是在本地运行的。

PaddlePaddle-Coordinator 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Python
1
https://gitee.com/paddlepaddle/Paddle.git
git@gitee.com:paddlepaddle/Paddle.git
paddlepaddle
Paddle
Paddle

搜索帮助