欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

There are no operators in the program to be executed 可能的原因

程序员文章站 2023-10-16 08:39:19
使用paddle框架import paddle.fluid as fluidimport numpy as np# Creates a variable with fixed size [3, 2, 1]# User can only feed data of the same shape to xx = fluid.data(name='x', shape=[3, 2, 1], dtype='float32')# Creates a variable with changable batc...

出现场合:

使用paddlepaddle框架,运行以下代码:

import paddle.fluid as fluid
import numpy as np

# Creates a variable with fixed size [3, 2, 1]
# User can only feed data of the same shape to x
x = fluid.data(name='x', shape=[3, 2, 1], dtype='float32')

# Creates a variable with changable batch size -1.
# Users can feed data of any batch size into y,
# but size of each data sample has to be [2, 1]
y = fluid.data(name='y', shape=[-1, 2, 1], dtype='float32')

z = x+1

# In this example, we will feed x and y with np-ndarry "1"
# and fetch z, like implementing "1 + 1 = 2" in PaddlePaddle
feed_data = np.ones(shape=[3, 2, 1], dtype=np.float32)

exe = fluid.Executor(fluid.CPUPlace())
exe.run(fluid.default_startup_program())
out = exe.run(fluid.default_main_program(),
              feed={
                  'x': feed_data,
                  'y': feed_data
              },
              fetch_list=[z.name])

# np-ndarray of shape=[3, 2, 1], dtype=float32, whose elements are 2
print(out)

出现如下警告:

UserWarning: There are no operators in the program to be executed. If you pass Program manually, please use fluid.program_guard to ensure the current Program is being used.

解决方案:

去掉

exe.run(fluid.default_startup_program())

提示就没有了。

原因分析:

没有需要进行的初始化操作,所以不运行初始化程序就没有此警告。

本文地址:https://blog.csdn.net/yzlh2009/article/details/107325915