paddle复现pytorch踩坑(三):paddleAPI对照表(后续补充)

在实际论文复现中遇到的API对照缺失进行补充

Pytorch的API名称 Paddle的API名称
torch.clamp fluid.layers.clip
torch.meshgrid fluid.layers.meshgrid
torch.view fluid.layers.reshape
torch.repeat fluid.layers.expand
torch.from_numpy fluid.dygraph.to_variable
torch.type_as fluid.layers.cast

1. fluid.layers.meshgrid用法

# pytorch code
p_n_x, p_n_y = torch.meshgrid(
    torch.arange(-(self.kernel_size-1)//2, (self.kernel_size-1)//2+1),
    torch.arange(-(self.kernel_size-1)//2, (self.kernel_size-1)//2+1))
    
# paddlepaddle code
p_n_x, p_n_y = fluid.layers.meshgrid(
[fluid.layers.range(-(self.kernel_size - 1) // 2, (self.kernel_size - 1) // 2 + 1, step=1, dtype=dtype),
 fluid.layers.range(-(self.kernel_size - 1) // 2, (self.kernel_size - 1) // 2 + 1, step=1, dtype=dtype)])
 

2. fluid.layers.reshape和fluid.layers.expand用法

# pytorch code
p_0_x = torch.flatten(p_0_x).view(1, 1, h, w).repeat(1, N, 1, 1)

# paddlepaddle code
p_0_x = fluid.layers.expand(fluid.layers.reshape(p_0_x, shape=[1, 1, h, w]), expand_times=[1, N, 1, 1])

3. fluid.layers.cast用法

# pytorch code
q_lt[:, :, :, :N].type_as(p)
    
# paddlepaddle code
fluid.layers.cast(q_lt[:, :, :, :N], p.dtype)

4. fluid.layers.pad用法

# pytorch code
self.zero_padding = nn.ZeroPad2d(padding)
x = self.zero_padding(x)
    
# paddlepaddle code
x = fluid.layers.pad(x=x, paddings=[0, 0, 0, 0, self.padding, self.padding, self.padding, self.padding])

你可能感兴趣的:(模型转换论文复现,深度学习,pytorch,paddlepaddle)