PyTorch中“参差不齐的张量”的解决方法是什么?

时间:2019-10-08 14:00:45

标签: python pytorch jagged-arrays ragged

Tensorflow提供参差不齐的张量(https://www.tensorflow.org/guide/ragged_tensor)。但是,PyTorch不提供这种数据结构。有没有在PyTorch中构造类似内容的解决方法?

import numpy as np
x = np.array([[0], [0, 1]])
print(x)  # [list([0]) list([0, 1])]

import tensorflow as tf
x = tf.ragged.constant([[0], [0, 1]])
print(x)  # <tf.RaggedTensor [[0], [0, 1]]>

import torch
# x = torch.Tensor([[0], [0, 1]])  # ValueError

2 个答案:

答案 0 :(得分:3)

PyTorch正在实现一个名为NestedTensors的东西,似乎与Tensorflow中的RaggedTensors具有几乎相同的目的。您可以遵循RFC并前进here

答案 1 :(得分:2)

在PyTorch中无法执行此操作。问题是您为什么要这样的功能?

您可以使用Python的控制流torch.Tensorfor .. in的列表进行遍历,以对每个列表进行操作。您还可以填充它们以使用torch特定的操作,例如乘法或加法。您也可以pack与递归神经网络一起使用。