首页 Paddle框架 帖子详情
[新人提问]exe.run()的fetch
收藏
快速回复
Paddle框架 问答深度学习 2180 16
[新人提问]exe.run()的fetch
收藏
快速回复
Paddle框架 问答深度学习 2180 16

跟着公众号读心术学的paddle入门,照着那里面的程序打的,然后运行报错

源码:

a = fluid.layers.fill_constant(shape=[2, 2], value=1, dtype='int64')
b = fluid.layers.fill_constant(shape=[2, 2], value=1, dtype='int64')
result = fluid.layers.elementwise_add(a, b)

place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())

myresult = exe.run(program=fluid.default_startup_program(), fetch_list=[result]) #
print(myresult)

 

然后出现报错:

Error Message Summary:
----------------------
Error: Cannot find fetch variable in scope, fetch_var_name is elementwise_add_0 at (D:\1.6.3\paddle\paddle\fluid\operators\controlflow\fetch_op.cc:38)
[operator < fetch > error]

 

请教一下大佬们这个是哪的错误

0
收藏
回复
全部评论(16)
时间顺序
e
erzhuoran
#2 回复于2020-02

顶一下

0
回复
e
erzhuoran
#3 回复于2020-02

顶一下

0
回复
无限Mebius
#4 回复于2020-02

同样的问题,请问解决了嘛

0
回复
thinc
#5 回复于2020-04

把第二个exe.run中的program=fluid.default_startup_program()改成program=fluid.default_main_program()即可

 

0
回复
smile若溪666
#6 回复于2020-04

我也是这个问题

 

0
回复
thinc
#7 回复于2020-04
我也是这个问题  

你试着按照5楼要求改一下

0
回复
smile若溪666
#8 回复于2020-04
thinc #7
你试着按照5楼要求改一下

不行哟

 

0
回复
自尊心3
#9 回复于2020-04

import paddle.fluid as fluid
import numpy as np
def gen_data():
return {
"x": np.array([2, 3, 4]),
"y": np.array([1, 5, 2])
}
x = fluid.layers.data(name="x", shape=[3], dtype='float32')
y = fluid.layers.data(name="y", shape=[3], dtype='float32')
z = fluid.layers.elementwise_add(x, y)
# z = x + y
place = fluid.CPUPlace()
exe = fluid.Executor(place)
z_value = exe.run(feed=gen_data(),
fetch_list=[z.name])
print(z_value) # [3., 8., 6.]

fetch_list里面传进去的是变量名,不是变量本身

 

0
回复
自尊心3
#10 回复于2020-04

https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/layers_cn/elementwise_add_cn.html#cn-api-fluid-layers-elementwise-add

0
回复
thinc
#11 回复于2020-04
import paddle.fluid as fluid import numpy as np def gen_data(): return { "x": np.array([2, 3, 4]), "y": np.array([1, 5, 2]) } x = fluid.layers.data(name="x", shape=[3], dtype='float32') y = fluid.layers.data(name="y", shape=[3], dtype='float32') z = fluid.layers.elementwise_add(x, y) # z = x + y place = fluid.CPUPlace() exe = fluid.Executor(place) z_value = exe.run(feed=gen_data(), fetch_list=[z.name]) print(z_value) # [3., 8., 6.] fetch_list里面传进去的是变量名,不是变量本身  
展开

.name不加影响也不大,fetch_list是把值作为输出结果

0
回复
自尊心3
#12 回复于2020-04
thinc #11
.name不加影响也不大,fetch_list是把值作为输出结果

大概就是这个意思

0
回复
飘渺邪君1
#13 回复于2021-04

最近我也遇到了这个问题,不知是不是平台的问题,本来就想着运行例程玩一下,结果却是一直产生报错,一直在exe.run()的初始化那里显示错误,后来运行了一下这一段代码后,发现其他的例程似乎也可以运行了,真是摸不着头脑啊,hhh……

那段代码如下:

##程序初始化##
# paddle.enable_static()
# main_program = paddle.static.Program()
# startup_program = paddle.static.Program()

希望我的情况能够对其他遇到这类BUG的朋友们有所帮助吧!

1
回复
飘渺邪君1
#14 回复于2021-04

最近我也遇到了这个问题,不知是不是平台的问题,本来就想着运行下例程玩一下,结果却是一直产生报错,一直在exe.run()的初始化那里显示错误,后来运行了一下下面两段代码后,发现其他的例程似乎也可以运行了,真是摸不着头脑啊,hhh……

那段代码如下:

##代码段1##

import paddle
paddle.enable_static()
main_program = paddle.static.Program()
startup_program = paddle.static.Program()
with paddle.static.program_guard(main_program, startup_program):
     data = paddle.static.data(name='image', shape=[None, 784, 784], dtype='float32')
     hidden = paddle.static.nn.fc(x=data, size=10, activation='relu')

 

##代码段2##
paddle.enable_static()
main_program = paddle.static.Program()
startup_program = paddle.static.Program()

希望我的情况能够对其他遇到这类BUG的朋友们有所帮助吧!

0
回复
将心比心12369
#15 回复于2021-06

解决了吗,是什么问题呢

0
回复
将心比心12369
#16 回复于2021-06
最近我也遇到了这个问题,不知是不是平台的问题,本来就想着运行例程玩一下,结果却是一直产生报错,一直在exe.run()的初始化那里显示错误,后来运行了一下这一段代码后,发现其他的例程似乎也可以运行了,真是摸不着头脑啊,hhh…… 那段代码如下: ##程序初始化## # paddle.enable_static() # main_program = paddle.static.Program() # startup_program = paddle.static.Program() 希望我的情况能够对其他遇到这类BUG的朋友们有所帮助吧!
展开

怎么解决

0
回复
将心比心12369
#17 回复于2021-06
thinc #11
.name不加影响也不大,fetch_list是把值作为输出结果

fetch_list不是接收对象,result才得到结果吗,现在到底该怎么解决呢

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