python - pytorch 在张量的某个维度上调用 unique_consecutive() 的最佳方法?

标签 python pytorch

在张量的特定维度上调用 unique_consecutive() 并用指定​​值填充剩余部分的最佳方法是什么? 为简单起见,我们可以使用 2D 张量作为示例:

input = tensor([[3, 3, 5, 5, 5],
                [3, 3, 2, 2, 3]])

如果指定padding值为-1,我希望得到的是:

output = tensor([[3, 5, -1, -1, -1],
                 [3, 2, 3, -1, -1]])

此外,为了节省内存,如果可能的话,我更愿意就地这样做。 谢谢!

最佳答案

从 PyTorch 论坛找到了一个不错的解决方案 https://discuss.pytorch.org/t/best-way-to-run-unique-consecutive-on-certain-dimension/112662 ,此处引用以供快速引用。


    x = tensor([[3, 3, 5, 5, 5],
                [3, 3, 2, 2, 3]])
    unique_x, indices = torch.unique_consecutive(x, return_inverse=True)
    indices -= indices.min(dim=1, keepdims=True)[0]
    result = -torch.ones_like(x)
    result = result.scatter_(1, indices, x)

关于python - pytorch 在张量的某个维度上调用 unique_consecutive() 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66325767/

相关文章:

python - 深度学习: save and load a universal machine model through different libraries

machine-learning - 如何在 NLP 中创建词缀(前缀 + 后缀)嵌入

amazon-web-services - 如何在 Microsoft Azure 上部署 Ultralytics YOLOv8?

python - Django-Rest-Framework JWT 单元测试说 "No Authentication Provided"

python - 如何在 python 中以优雅的方式动态创建对象?

python - 无法使用 Selenium 在 Pycharm 中运行基本 Py 程序

python - 透明地链接(组合)装饰器

python - Pandas 在两列之间删除重复项

python - Pytorch:将值从一个掩码分配给另一个掩码,由自身掩码

python - Pytorch如何像for循环一样堆叠张量