python-torchScript - 需要帮助在 gpu 上并行运行一个函数
发布时间:2022-07-14 05:56:15 256
相关标签: # node.js
我一直在尝试学习 torchScript,并且在尝试将其应用于我在 Google Colab 中工作的笔记本时遇到了一些问题。目前,我有一个高斯变换函数,如下所示:
def gaussian(x,mu,sigma):
return 1-(sigma/(((x-mu)**2) + sigma**2) / np.pi)
理想情况下,我想在 gpu 上并行运行这个函数很多次(例如 100-1000 次)。这是我当前的 torchScript 代码,主要来自https://pytorch.org/tutorials/advanced/torch-script-parallelism.html:
import numpy as np
import torch
from torch import nn
from torchvision.transforms import ToTensor
from timeit import default_timer as timer
@torch.jit.script
def example(x):
start = timer()
futures: List[torch.jit.Future[torch.Tensor]] = []
for _ in range(1000):
futures.append(torch.jit.fork(gaussian, x, 0, 1))
results = []
for future in futures:
results.append(torch.jit.wait(future))
end = timer()
print(f'elapsed time: {end - start}')
return torch.sum(torch.cat(results))
x_ax = np.linspace(-100, 100, 101)
cen = 2
sigma = 10
y_ax = gaussian(x_ax,cen,sigma)
然而,当我尝试运行此程序时,我得到以下错误:
RuntimeError:
Python builtin is currently not supported in Torchscript:
File "", line 13
@torch.jit.script
def example(x):
start = timer()
~~~~~ <--- HERE
futures: List[torch.jit.Future[torch.Tensor]] = []
for _ in range(1000):
有没有办法来解决这个问题?torchScript 是否与此函数定义完全兼容(如果不兼容,是否有任何替代方案)?任何帮助将不胜感激。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报