繁体   English   中英

使用pytorch沿任意维度映射函数? numpy的?

Map function along arbitrary dimension with pytorch? numpy?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想知道为什么我找不到沿着复杂张量/数组/矩阵的任何维度映射自定义pytorchnumpy变换的实用程序。
我想我记得R中有这样的东西。有了这个幻想tch.map实用程序,你可以这样做:

>>> import torch as tch # or numpy

>>> # one torch tensor
>>> a = tch.tensor([0, 1, 2, 3, 4])
>>> # one torch function (dummy) returning 2 values
>>> f = lambda x: tch.tensor((x + 1, x * 2))
>>> # map f along dimension 0 of a, expecting 2 outputs
>>> res = tch.map(f, a, 0, 2) # fantasy, optimized on CPU/GPU..
>>> res
tensor([[1, 0],
        [2, 2],
        [3, 4],
        [4, 6],
        [5, 8]])
>>> res.shape
torch.Size([5, 2])

>>> # another tensor
>>> a = tch.tensor(list(range(24))).reshape(2, 3, 4).type(tch.double)
>>> # another function (dummy) returning 2 values
>>> f = lambda x: tch.tensor((tch.mean(x), tch.std(x)))
>>> # map f along dimension 2 of a, expecting 2 outputs
>>> res = tch.map(f, a, 2, 2) # fantasy, optimized on CPU/GPU..
tensor([[[ 1.5000,  1.2910],
         [ 5.5000,  1.2910],
         [ 9.5000,  1.2910]],

        [[13.5000,  1.2910],
         [17.5000,  1.2910],
         [21.5000,  1.2910]]])
>>> res.shape
torch.Size([2, 3, 2])

>>> # yet another tensor
>>> a = tch.tensor(list(range(12))).reshape(3, 4)
>>> # another function (dummy) returning 2x2 values
>>> f = lambda x: x + tch.rand(2, 2)
>>> # map f along all values of a, expecting 2x2 outputs
>>> res = tch.map(f, a, -1, (2, 2)) # fantasy, optimized on CPU/GPU..
>>> print(res)
tensor([[[[ 0.4827,  0.3043],
          [ 0.8619,  0.0505]],

         [[ 1.4670,  1.5715],
          [ 1.1270,  1.7752]],

         [[ 2.9364,  2.0268],
          [ 2.2420,  2.1239]],

         [[ 3.9343,  3.6059],
          [ 3.3736,  3.5178]]],


        [[[ 4.2063,  4.9981],
          [ 4.3817,  4.4109]],

         [[ 5.3864,  5.3826],
          [ 5.3614,  5.1666]],

         [[ 6.6926,  6.2469],
          [ 6.7888,  6.6803]],

         [[ 7.2493,  7.5727],
          [ 7.6129,  7.1039]]],


        [[[ 8.3171,  8.9037],
          [ 8.0520,  8.9587]],

         [[ 9.5006,  9.1297],
          [ 9.2620,  9.8371]],

         [[10.4955, 10.5853],
          [10.9939, 10.0271]],

         [[11.3905, 11.9326],
          [11.9376, 11.6408]]]])
>>> res.shape
torch.Size([3, 4, 2, 2])

相反,我一直发现自己弄乱了复杂的tch.stacktch.squeezetch.reshapetch.permute 等等 ,计算我手指上的尺寸不会迷路。

这样的实用程序是否存在而且由于某种原因我错过了它?
由于某些原因,这样的实用程序是不可能实现的吗

问题暂未有回复.您可以查看右边的相关问题.
1 如何在任意数组维度上映射函数(不使用列表推导)?

我正在用numpy数组做一些实验,遇到了以下问题。 我试图找到一种方法来映射作为矩阵上的输入数组的函数,以便将该函数应用于两个或多个矩阵成对的元素,其中这些元素是数组。 列表理解的问题在于,由于它们是Python功能而不是Numpy功能,因此恐怕它们效率不高。 ...

2 Numpy矩阵的映射函数

我有两个numpy矩阵。 一个包含lambda函数。 另一个包含值。 是否有一个类似于Python的map函数的函数可以让我得到预期的结果? 有没有更好的办法? ...

3 pytorch 中是否有元素映射 function?

我是 PyTorch 的新手,我来自函数式编程语言(map function 到处都在使用)。 问题是我有一个张量,我想对张量的每个元素做一些操作。 操作可能多种多样,所以我需要这样的 function: PyTorch中有这样的function吗? 我应该如何实现这样的 function? ...

2021-03-03 13:31:42 1 74   pytorch
4 跨numpy矩阵的映射函数

有没有一种方法可以轻松地将函数映射到numpy数组中的每个值? 我之前通过将其拆分为列表,使用列表理解并重新构建矩阵来完成了此操作,但似乎必须有一种更简单的方法。 ...

5 如何在numpy数组上映射函数

我希望能够在标量 numpy 一维数组或 numpy 二维数组上应用通用函数。 关键的例子是 (我的意思是将它用于等高线图)。 如果我现在改为 归结为 发布了一个“类似”问题, 在 numpy 数组上映射函数的最有效方法不同之处在于: 1. 我必须(或可能更多)参数( x , y ), ...

6 使用vnoremap映射函数

我正在尝试在Neovim中设置一个函数,该函数可以操纵可视文本块并将其绑定到键。 我已经从function-range-example文档中复制了这个: 如果我用:'<,'>call Cont()调用函数,则一切正常。 但是,当我在可视块模式下突出显示所选文本时,出现此错 ...

7 使用NumPy沿任意维度一键编码

给定一个具有任意多个维度的numpy数组,我希望能够对其中任何一个维度进行一次热编码。 例如,假设我有一个形状为(10, 20, 30, 40)的数组a ,我可能想对第二维进行热编码,即变换a ,使结果仅包含值0和1以及a[i, :, j, k]的每个选择中, i , j和k都恰好包含一个零条 ...

8 tfds.as_numpy() 在 map function 后崩溃

我尝试使用 map function 将图像旋转 20 度,并读取图像数据以确认其是否正常工作如下。 环境: 谷歌合作实验室 Tensorflow 2.2 代码: 它因未知原因而坠毁。 但是,当我删除以下代码时,它运行良好。 我不知道。 map function 是否运行良好,但 tfds.as_ ...

9 在numpy矩阵上映射函数的有效方法?

我试图在图像上重现算法,但未能在Python上实现PIL的性能。 为简单起见,我们以插值为例,假设我们有一个亮度矩阵Im 。 对于任何点(x,y) ,我们都可以通过g(x,y)=f(floor(x),floor(y))+f(floor(x)+1,floor(y))+f(floor(x), ...

10 在 numpy 数组上映射函数的最有效方法

将函数映射到 numpy 数组的最有效方法是什么? 我目前正在做: 但是,这可能效率很低,因为我使用列表推导将新数组构造为 Python 列表,然后再将其转换回 numpy 数组。 我们能做得更好吗? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM