python - 如何将“只读”查找表传递给 numpy 以避免 GIL
问题描述
我正在计算一个“相似度函数”,它主要类似于余弦相似度度量,尽管我应用了一些技巧来处理序数值和缺失值。
这些技巧基本上包括从一些动态生成的(尽管“只读”)查找表(基于一些数据分布)中获取一些预先计算的值。
我遇到的问题是,当我将函数转换为numpy
's ufunc
withnp.frompyfunc
时,函数正在访问“全局”python 对象这一事实使得无法numpy
跳过 GIL,因此它无法矢量化/并行化该功能的执行。
有没有办法将预先计算的查找表的“完全所有权”(以避免 GIL)赋予这些“ufunc”(可能传递一个副本)?(考虑到在“编码时”这些值是未知的)。
先感谢您。
解决方案
推荐阅读
- c++ - 我想计算字符串中的大写字符。为什么我的代码给出错误的输出?
- php - 为什么在 php 中使用准备好的语句而不是 mysqli_real_escape_string()?
- embedded - 去抖计算
- c - 如何在C程序中的2个单独文件中获取具有相同名称的全局静态变量的值
- javascript - 循环通过 Angular QueryList
- mongodb - 无法使用 Golang 从 MongoDB 集合中获取数据
- c# - 如何使用框架生成 csproj
- css - 如何创建从中心开始的水平滚动菜单?
- java - 用于 Java 4 应用程序的 TLS 1.2
- flutter - Flutter Row 没有占用完整的 Scaffold 高度