首页 Paddle框架 帖子详情
怎么将numpy转换成variable
收藏
快速回复
Paddle框架 问答深度学习 2365 4
怎么将numpy转换成variable
收藏
快速回复
Paddle框架 问答深度学习 2365 4

# 定义网络结构
def convolutional_neural_network_org(img):
# 第一层卷积层
def conv_2d(input, out_channel, filter_size, padding):
return fluid.layers.conv2d(
input=input,
num_filters=out_channel,
filter_size=filter_size,
stride=1,
padding=padding,
act='relu')
# 全连接层
con_v1 = conv_2d(img, 30, 3, 1)
return con_v1

a = cv2.imread('IMG_1.jpg')

b = convolutional_neural_network_org(a)

 

 

你好我使用一个卷积,想对一张图片做卷积操作,输入的type是numpy,paddle报错,TypeError: Input of conv2d layer should be Variable or sequence of Variable,输入数据的type必须是variable,那么请问,如何将numpy数据转换为Variable,就像pytorch里面,我要转成tensor,只要a = torch.Tensor(a),就变成一个tensor了,这里需要怎么操作

0
收藏
回复
全部评论(4)
时间顺序
A
AIStudio792091
#2 回复于2018-07

需要构造网络feed numpy数据,请参考一下fluid book里的例子,和PyTorch不一样。

0
回复
A
AIStudio99794
#3 回复于2019-08

请问怎么解决这个问题?

 

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

简单说就是“构造网络,Feed数据”,思路跟2楼类似,具体实现可以参考以下代码:

import cv2
import paddle.fluid as fluid

# 读取数据
img = cv2.imread('xiaoxin.jpg')

# 搭建网络
data = fluid.data('img', shape=[-1, 960, 960, 3])
hidden = fluid.layers.conv2d(data, 64, 3)

place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
0
回复
星光ld1
#5 回复于2020-05

@Mr_One573,我的实现如下(开始想复现一下看看#4楼有没有问题,没有就不回答了,结果4楼结果直接报错,我做了一些适配调整,上述代码可以跑通)

import cv2
from paddle import fluid
def convolutional_neural_network_org(img):
# 第一层卷积层
    def conv_2d(input, out_channel, filter_size, padding):
        return fluid.layers.conv2d(
            input=input,
            num_filters=out_channel,
            filter_size=filter_size,
            stride=1,
            padding=padding,
            act='relu'
        )
    # 全连接层
    con_v1 = conv_2d(img, 30, 3, 1)
    return con_v1

a = cv2.imread('your_img.png')
img_shape = a.shape

x = fluid.data('x', shape=[-1, *img_shape])
b = convolutional_neural_network_org(x)

cpu = fluid.core.CPUPlace()
exe = fluid.Executor(cpu)
exe.run(fluid.default_startup_program())
feeder = fluid.DataFeeder(place=cpu, feed_list=[x])
outs = exe.run(
    program=fluid.default_main_program(),
    feed=feeder.feed(zip(a.reshape(-1, *img_shape))),
    fetch_list=[b.name]
)
0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户