从 numba jitted 函数调用非 jitted 函数

2024-01-19

我的代码如下所示:

@jit(nopython=True)
def sum_fn(arg1, arg2, ...argn):
    .....
    for i in xrange(len(arg2)): #For each bin
        l, p = fn1(arg1, arg2...argn) 
        res = res + fn2(arg1, arg2, arg3) 
    return res

@jit(nopython=True)
def fn1(a1, a2,...an):
    ....
    return r1, r2

def fn2(l_lk, l_pk, l_lvals):
        f_i = interp1d(l_lk, l_pk,kind='linear') #Scipy.interpolate.interp1d
        ftmp = fn3(f_i,l_lk,l_pk)
        return 10**ftmp(l_lvals)

看来调用 fn2 会出错,因为它没有被导入到 numba 编译过程中,这与 fn1 不同,fn1 是即时编译的。不幸的是,我无法 jit fn2,因为它使用 Numba 无法识别的 scipy.interpolate.interp1d 函数。我该如何解决这个问题?


您不能从使用 jitted 的函数中调用非 jitted 函数nopython=True。前者根据定义是一个 python 函数。你唯一真正的选择是编写你自己的版本interp1d作为一个 jitted 函数(再次使用nopython=True)。有时,通过查看原始 scipy 或 numpy 函数的源代码来删除所需的功能很简单。不幸的是,有时这非常困难。

以下库可能会有所帮助:

https://github.com/EconForge/interpolation.py https://github.com/EconForge/interpolation.py

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 numba jitted 函数调用非 jitted 函数 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 如何解决使用 Spark 从 S3 重新分区大量数据时从内存中逐出缓存的表分区元数据的问题?

    在尝试从 S3 重新分区数据帧时 我收到一个一般错误 Caused by org apache spark SparkException Job aborted due to stage failure Task 33 in stage 1
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 使用 Firefox 绕过弹出窗口下载文件:Selenium Python

    我正在使用 selenium 和 python 来从中下载某些文件web page http www oceanenergyireland com testfacility corkharbour observations 我之前一直使用设
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户

随机推荐

  • Grafana:如何获得选定时间段的持续时间

    I can t find the correct mathematical formula to compute a SLA availability with Grafana I have graph to show the durati
  • 如何合并 Spark 数据集中的行以合并字符串列

    我需要将数据集中的两行或更多行合并为一行 分组必须基于id柱子 要合并的列是一个字符串 我需要在合并列中获取逗号分隔的字符串 我如何在Java中实现这一点 输入行 col1 col2 1 abc 2 pqr 1 abc1 3 xyz 2 p
  • go中如何获取当前包的名称?

    有没有办法在运行时获取当前包的名称 package main import fmt func main pkgName some magic here fmt Println pkgName 结果应该是 main 现在我正在使用常量 例如
  • Eclipse 无法识别任何导入

    我似乎在 Eclipse 中搞砸了一些事情 它无法识别我尝试导入的任何库 以下是一些未被识别的事情 import java util ArrayList import android content Intent import com go
  • 匹配正则表达式并在单行代码中分配结果

    我希望能够对变量进行正则表达式匹配并将结果分配给变量本身 最好的方法是什么 我想将第 2 行和第 3 行合并到一行代码中 variable some string variable find something variable 1 有没有
  • 如何为 Swagger API 响应指定通用类型类

    我有大约 40 个 API 它们具有类似的基本响应结构 如下所示 lastAccessed 2015 30 08 14 21 45T createdOn 2015 30 07 09 04 10T lastModified 2015 30 0
  • Emscripten 的 CMake 项目

    我想与 CMake 和 Emscripten 成为朋友 在 Emscripten 项目网站上没有找到更多或更少的信息文档 但他们提供了 CMake 工具链文件 所以我认为这应该是可能的 到目前为止 没有高级参数的非常基本的编译工作正常 但我
  • 如何在一定数量的请求后停止 scrapy 蜘蛛?

    我正在开发一个简单的抓取工具来获取 9 个搞笑帖子及其图像 但由于一些技术困难 我无法停止刮刀 它会继续刮这是我不想要的 我想增加计数器值并在 100 个帖子后停止 但是 9gag 页面的设计方式是在每次响应中只提供 10 个帖子 每次迭代
  • Vulkan 验证层无法在 Linux 上加载/工作

    我有基本的 Vulkan 应用程序 Hello Triangle 源自本教程 https vulkan tutorial com 在调试模式下 我使用两个验证层 VK LAYER KHRONOS validation and VK LAYE
  • 将 Jar 文件添加到 WEB-INF/lib [重复]

    这个问题在这里已经有答案了 我是 Eclipse Java 和 Linux 的新手 我搜索这个问题 但没有找到答案 我想编写一个操作 HBase 表的程序 所以我有一些与 HBase 相关的 Jar 文件 在普通的 Java 应用程序中 我
  • PHP 和 MySQL 与 Highchart

    有人可以帮助我 我是 php 和 highcharts 的新手 我尝试使用 mysql 和 php 填充我的图表 但是当我尝试运行它时 图表没有出现 我只看到一个空白网页 并且没有出现错误 她是我的代码 抱歉代码混乱
  • 作业完成完整执行后调用函数

    我们正在使用 Quartz Net 在 Windows 服务中按计划触发作业 我有一种情况 我必须每次触发一个工作5 minutes from Start DateTime till End DateTime 工作完成后我们需要计算Next
  • 函数gapi.client.load('oauth2', 'v2', function());不管用

    我已经使用网站中的 javascript sdk 使用 google plus 登录 两天前它就可以工作了 但现在它不起作用 因为 gapi client load oauth2 v2 function 未加载 即不工作 请帮忙 下面是我的
  • Perl 脚本内的 XML 编辑

    我正在尝试使用 perl pi e 编辑 xml 文件中的一行 如果我从命令行运行 perl pi e 命令 它工作正常 但是一旦我放入脚本并使用系统命令 我就会收到下面列出的错误 su 无效选项 i 尝试 su help 以获取更多信息
  • MySQL性能,内连接,如何避免使用临时和文件排序

    我有表1和表2 表格1 零件号 ID BRAND partnum 是主键 id brand 已 编入索引 表2 ID BRAND BRAND NAME id brand 是主键 Brand name 已 编入索引 表 1 包含 100 万条
  • Visual Studio 2015:更新 3 失败后出现多个包加载错误:Windows 10

    更新 我修好了 请参阅下面的答案 Visual Studio 2015 更新 3 失败后出现多个包加载错误 Windows 10 https stackoverflow com questions 38717145 visual studi
  • 如何隐藏配置文件以防止直接访问?

    我正在使用 Laravel 作为网络应用程序 上传了生产环境中的所有内容 发现有些文件可以通过 url 直接访问 例如http example com composer json http example com composer json
  • “pip install jq”在 Mac 和 Windows 上生成错误

    重复此issue https stackoverflow com questions 39785890 unable to install jq via pip 但第一个答案是错误的 jqWindows 上支持 第二个指的是brew所以我猜
  • 将 int 数组发布到 MVC 控制器 - 正确的方法签名是什么?

    下面是我发送到 ASP NET MVC2 控制器的 POST 请求的屏幕截图 使用 Firebug Net 面板 这是接收 POST 请求的控制器 操作方法 public ActionResult Search int skill int
  • 从 numba jitted 函数调用非 jitted 函数

    我的代码如下所示 jit nopython True def sum fn arg1 arg2 argn for i in xrange len arg2 For each bin l p fn1 arg1 arg2 argn res re