python - PyTorch,按元素应用不同的函数

标签 python pytorch

我定义了一个这样的张量

t_shape = [4, 1]
data = torch.rand(t_shape)

我想对每一行应用不同的函数。

funcs = [lambda x: x+1, lambda x: x**2, lambda x: x-1, lambda x: x*2]  # each function for each row.

我可以用下面的代码来做到这一点

d = torch.tensor([f(data[i]) for i, f in enumerate(funcs)])

如何使用 PyTorch 中定义的更高级 API 以正确的方式完成此操作?

最佳答案

我认为你的解决方案很好。但它不适用于任何张量形状。您可以按如下方式稍微修改解决方案。

t_shape = [4, 10, 10]
data = torch.rand(t_shape)

funcs = [lambda x: x+1, lambda x: x**2, lambda x: x-1, lambda x: x*2]

# only change the following 2 lines
d = [f(data[i]) for i, f in enumerate(funcs)]
d = torch.stack(d, dim=0) 

关于python - PyTorch,按元素应用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58533136/

相关文章:

python - 为什么在执行 python 脚本时会出现 No such file or directory 错误?

python - 如何从本地 Jupyter Notebook 到 Docker 容器中的 Spark master 运行 PySpark 作业?

python - 为什么不在 Pytorch 中使用 super().__init__(Model,self)

python - 在 PyTorch 中实现 dropout 到全连接层

max - 如何有效地检索 Torch 张量中最大值的索引?

python - PyTorch 模型未进行训练

python - 指定文件名路径时出现问题

python - 从模型中引用 Django 登录名

python - Python 中惯用的文件级注释?

lstm - 需要帮助理解 ConvLSTM 代码在 pytorch 中的实现