python jit报错_Python / Numba:scipy.special.gammainc()的未知属性错误

问题是gammainc不是Numba固有知道如何处理的小函数列表之一(见

http://numba.pydata.org/numba-doc/dev/reference/numpysupported.html) – 实际上没有scipy函数.这意味着你不能在“nopython”模式下使用它,不幸的是 – 它只需将它视为普通的python函数调用.

如果你删除nopython = True,它应该工作.然而,这并不是非常令人满意,因为它可能会慢一些.如果没有看到您的代码,就很难确切知道建议的内容.但是,一般来说:

即使没有nopython,也会加速>循环(不包含像gammainc这样的东西).

> gammainc是一个“ufunc”,这意味着它可以一次容易地应用于整个数组,并且无论如何都应该快速运行.

>您可以调用func.inspect_types()来查看它是否能够编译.

作为一个简单的例子:

from scipy.special import gammainc

import numba as nb

import numpy as np

@nb.jit # note - no "nopython"

def f(x):

for n in range(x.shape[0]):

x[n] += 1

y = gammainc(x,2.5)

for n in range(y.shape[0]):

y[n] -= 1

return y

f(np.linspace(0,20)) # forces it to be JIT'd and outputs an array

然后f.inspect_types()将两个循环标识为“提升的循环”,这意味着它们将被JIT并快速运行. gammainc的位不是JIT’d,而是一次应用于整个数组,所以也应该快.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Traceback (most recent call last): File "/home/a/pycharmproject/clothes_try_on_copy/11/PF-AFN-main/PF-AFN_train/train_PBAFN_stage1.py", line 134, in <module> loss_vgg = criterionVGG(x_all[num], cur_person_clothes.cuda()) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/home/a/pycharmproject/clothes_try_on_copy/11/PF-AFN-main/PF-AFN_train/models/networks.py", line 164, in forward x_vgg, y_vgg = self.vgg(x), self.vgg(y) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/home/a/pycharmproject/clothes_try_on_copy/11/PF-AFN-main/PF-AFN_train/models/networks.py", line 150, in forward h_relu5 = self.slice5(h_relu4) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/container.py", line 119, in forward input = module(input) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/modules/pooling.py", line 162, in forward return F.max_pool2d(input, self.kernel_size, self.stride, File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/_jit_internal.py", line 365, in fn return if_false(*args, **kwargs) File "/home/a/.conda/envs/clothes_try_on_copy1/lib/python3.8/site-packages/torch/nn/functional.py", line 659, in _max_pool2d return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode) RuntimeError: Given input size: (512x2x1). Calculated output size: (512x1x0). Output size is too small 进程已结束,退出代码1
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值