返回

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 是否与此函数定义完全兼容(如果不兼容,是否有任何替代方案)?任何帮助将不胜感激。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
下一篇
java-从结果集中提取列表 2022-07-14 03:56:12