弦矩阵到PyTorchTensor的转换

dfddblmv  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(127)

我想把下面的矩阵转换成PyTorchTensor:

[['SELF', '', '', '', ''],
 ['nsubj', 'SELF', '', '', ''],
 ['', 'compound', 'SELF', '', ''],
 ['dobj', '', '', 'SELF', ''],
 ['pobj', '', '', '', 'SELF']]

我想有一个布尔矩阵,其中包含empty以外字符串的任何位置都将为1,否则为0。这应该很容易,但我似乎没有找到一个不需要迭代矩阵并一次构建一个单元格的Tensor的答案。
我的解决方案是:

size = len(sample["edges"])
edge_mask = torch.zeros([size, size])

for i, row in enumerate(sample["edges"]):
    for j, v in enumerate(row):
        if v != "":
            edge_mask[i, j] = 1
nx7onnlm

nx7onnlm1#

你可以把它转换成一个布尔数组,然后使用torch.from_numpy,后面跟着一个convert to int:

torch.from_numpy(np.array(sample["edges"], dtype=bool)).to(int)

相关问题