[torch 参数更多]torch.sparse_csr_tensor

torch.sparse_csr_tensor

torch.sparse_csr_tensor(crow_indices, col_indices, values, size=None, *, dtype=None, device=None, requires_grad=False, check_invariants=None)

paddle.sparse.sparse_csr_tensor

paddle.sparse.sparse_csr_tensor(crows, cols, values, shape, dtype=None, place=None, stop_gradient=True)

PyTorch 相比 Paddle 支持更多其他参数,具体如下:

参数映射

PyTorch PaddlePaddle 备注
crow_indices crows 每行第一个非零元素在 values 的起始位置,仅参数名不一致。
col_indices cols 一维数组,存储每个非零元素的列信息,仅参数名不一致。
values values 一维数组,存储非零元素。
size shape 稀疏 Tensor 的形状,仅参数名不一致。
dtype dtype 创建 tensor 的数据类型。
device place 创建 tensor 的设备位置,仅参数名不一致。
requires_grad stop_gradient 是否阻断 Autograd 的梯度传导,两者参数功能相反,需要转写。
check_invariants - 是否检查稀疏 Tensor 变量,Paddle 无此参数,一般对网络训练结果影响不大,可直接删除。

转写示例

requires_grad 参数:是否阻断 Autograd 的梯度传导

# PyTorch 写法
crows = [0, 2, 3, 5]
cols = [1, 3, 2, 0, 1]
values = [1, 2, 3, 4, 5]
dense_shape = [3, 4]
csr = torch.sparse_csr_tensor(crows, cols, values, dense_shape, requires_grad=False)

# Paddle 写法
crows = [0, 2, 3, 5]
cols = [1, 3, 2, 0, 1]
values = [1, 2, 3, 4, 5]
dense_shape = [3, 4]
csr = paddle.sparse.sparse_csr_tensor(crows, cols, values, dense_shape, stop_gradient= True)