python-3.x - 如何使 jit 与集合模块一起使用?
问题描述
我尝试通过在 GPU 上运行代码来优化我的代码,但遇到了以下错误。
另外,我对此很陌生,所以我不知道如何使用 numba 装饰器,我的目标是加快我的程序。
ValueError: cannot determine Numba type of <class 'collections.defaultdict'>
@jit(target = "cuda")
def initialize(foreign_no_of_words,foreign_l,english_l,num_dict_dutch,num_dict_eng):
probabilities = {} # Initializing proablities
#count = {} # Count
counter = 1
index = -1*(foreign_no_of_words)
num_dict_dutch = make_dict_dutch(foreign_l,num_dict_dutch)
for i in english_l.keys():
for j in foreign_l.keys():
s = i+"_"+j
probabilities[s] = 1/foreign_no_of_words
#count[s] = 0
index = write_to_file(probabilities,i,counter,PROB_FILE,foreign_no_of_words,index,num_dict_eng)
#write_to_file(count,i,counter,COUNT_FILE)
counter +=1
probabilities ={}
return True
目标是减少函数运行时间。
解决方案
Numba 不支持整个 python 语言,而是能够 jitting 其功能的(增长的)子集。请参见:
https://numba.pydata.org/numba-doc/dev/reference/pysupported.html https://numba.pydata.org/numba-doc/dev/reference/numpysupported.html
目前,numba 仅支持namedtuples
来自collections
模块。另请注意,为 GPU 编写代码更加受限:
http://numba.pydata.org/numba-doc/latest/cuda/index.html#cuda-index
推荐阅读
- mysql - 使用 docker-compose 进行后续迁移时出现 ECONNREFUSED 错误
- c - 如何使按钮读取一次单击而不是保留在arduino中
- c++ - 将接口指针数组静态声明到专用类
- reactjs - 如何将 react-simple-keyboard 与 react-table 一起使用?
- javascript - 修改函数中的对象时出现意外结果
- html - 根据 HTML 表格中的条件更改列颜色
- c++ - 使用二进制文件的用户名和登录系统
- android - 无法获取 note.dit-inc.us/down.html android studio
- html - 将 ':focus' 样式应用于输入组
- c# - 即使当前视图和其他视图已显示,也无法找到视图