如何使用paddle实现pytorch 的Variable
收藏
各位大佬好,初次使用paddle,想咨询下转换的问题,如我有pytorch代码:h = Variable(torch.zeros(batch_size, 32, row, col)),如何转换成paddle里的代码?
0
收藏
请登录后评论
首先:
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)))
很受用,感谢大佬的解答。
我看了一下文档,create_parameter是不是相当于pytorch里的nn.Parameter,paddle.nn.initializer.Assign只是完成了特定参数初始化。不知道我理解的对不对?这样的话,是不是达不到Variable的功能?
tensor里面的参数都是Variable的形式,pytorch里的nn.Parameter只是对创建Variable的封装吧?
PaddlePaddle中只有Tensor这一个概念了。
Tensor可进一步分成Parameter,也就是网络的参数,此外还有普通Tensor,也就是数据、标签、网络计算的中间变量。