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)
推荐阅读
- angular - 如何以编程方式触发所有垫波纹?
- powerbi - DAX SUMX 超过 GROUPBY 的意外结果
- java - 从字符串恢复堆栈跟踪
- c# - 将 JSON 反序列化为引发异常的 c# 对象
- css - 如何根据孩子嵌套的特定父母的数量进行交替
- reactjs - 将路由器 v4 history.push 反应到功能组件中的相同路由(不同的查询参数)(使用 Hooks API)
- android - Xamarin Android - 无法访问绑定 Java 库的某些方法?
- java - Java JFrame 不显示所需的图形
- c# - .NET Framework 代表我在 GPU 上运行一些代码
- html - 编号列表中的文本换行