首页 Paddle框架 帖子详情
如何使用paddle实现pytorch 的Variable
收藏
快速回复
Paddle框架 问答深度学习 1820 5
如何使用paddle实现pytorch 的Variable
收藏
快速回复
Paddle框架 问答深度学习 1820 5

 各位大佬好,初次使用paddle,想咨询下转换的问题,如我有pytorch代码:h = Variable(torch.zeros(batch_size, 32, row, col)),如何转换成paddle里的代码?

0
收藏
回复
全部评论(5)
时间顺序
DeepGeGe
#2 回复于2021-12

首先:

torch.zeros(batch_size, 32, row, col)与paddle.zeros(batch_size, 32, row, col)是等同的;

其次,pytorch中的Variable变量是可以计算梯度的参数,在PaddlePaddle中创建参数可以用:paddle.nn.Layer()类中的create_parameter()方法。

将参数指定为特定参数可以:create_parameter(shape=(batch_size, 32, row, col) default_initializer=paddle.nn.initializer.Assign(paddle.zeros(batch_size, 32, row, col)))

1
回复
v
vhonghome
#3 回复于2021-12
首先: torch.zeros(batch_size, 32, row, col)与paddle.zeros(batch_size, 32, row, col)是等同的; 其次,pytorch中的Variable变量是可以计算梯度的参数,在PaddlePaddle中创建参数可以用:paddle.nn.Layer()类中的create_parameter()方法。 将参数指定为特定参数可以:create_parameter(shape=(batch_size, 32, row, col) default_initializer=paddle.nn.initializer.Assign(paddle.zeros(batch_size, 32, row, col)))
展开

很受用,感谢大佬的解答。

0
回复
v
vhonghome
#5 回复于2021-12
该评论已删除

我看了一下文档,create_parameter是不是相当于pytorch里的nn.Parameter,paddle.nn.initializer.Assign只是完成了特定参数初始化。不知道我理解的对不对?这样的话,是不是达不到Variable的功能?

0
回复
DeepGeGe
#6 回复于2021-12
我看了一下文档,create_parameter是不是相当于pytorch里的nn.Parameter,paddle.nn.initializer.Assign只是完成了特定参数初始化。不知道我理解的对不对?这样的话,是不是达不到Variable的功能?
展开

tensor里面的参数都是Variable的形式,pytorch里的nn.Parameter只是对创建Variable的封装吧?

1
回复
DeepGeGe
#7 回复于2021-12

PaddlePaddle中只有Tensor这一个概念了。

Tensor可进一步分成Parameter,也就是网络的参数,此外还有普通Tensor,也就是数据、标签、网络计算的中间变量。

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