Python中文
首页
教程
问答
标签
搜索
登录
注册
并行化Numpy函数的数百万次迭代
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在2000万个不同的参数组合上运行下面的函数<code>compare</code>,其中<code>sample</code>是由100个1和0组成的一维数组</p> <p><code>compare</code>将其他数组与<code>sample</code>一起使用,并使用它们执行一些点积,对这些点积求幂,然后将它们相互比较。其他数组保持不变。你知道吗</p> <p>在我的笔记本电脑上,运行2000万个组合大约需要一个小时。你知道吗</p> <p>我在想办法让它走得更快。我对改进下面的代码和使用像dask这样利用并行处理的库持开放态度。你知道吗</p> <p><strong>备注:</strong></p> <ul> <li><code>compare</code>中每一行上的注释显示了该行在我的机器上花费的时间的一个非常粗略的估计。它们是%%timeit在函数外部自己联机的结果。你知道吗</li> <li>在我的用例中,<code>compare</code>的输入实际上不是随机生成的</li> </ul> <pre><code>def compare(sample, competition_exp_dot, preferences): # 140 µs sample_exp_dot = np.exp(preferences @ sample) #30.3 µs all_competitors = np.append(sample_exp_dot.reshape(-1, 1), competition_exp_dot, 1) # 5 µs all_results = all_products/all_competitors.sum(axis=1)[:,None] #27.4 µs return all_results.mean(axis=0) #20.6 µs </code></pre> <pre><code>#these inputs to the above function stay the same preferences = np.random.random((1000,100)) competition = np.array([np.random.randint(0,2,100), np.random.randint(0,2,100)]) competition_exp_dot = np.exp(preferences @ competition.T) # the function is run with 20,000,000 variations of sample population = np.random.randint(0,2,(20000000,100)) result = [share_calc(sample, competition_exp_dot, preferences) for sample in population] </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以考虑以下几点:</p> <pre><code>import torch import numpy as np x = np.array([[1,2,3],[4,5,6]]) b = torch.from_numpy(x) if torch.cuda.is_available(): device = torch.device("cuda") b = b.to(device) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
基于ajax中的表单数据,以10为基数的int()的文本无效
5 回答
基于AJAX的CRUD的Python web框架
10 回答
基于Ajax的Django多回波场
9 回答
基于ajax的jqueryhtml(文本)解析
4 回答
基于AJAX的网站的Scrapy请求有效负载格式和类型
7 回答
基于AJAX的远程在线文本edi
1 回答
基于alembic scrip的并发数据库表索引
10 回答
基于alpha-beta剪枝的minimax节点值求方向
5 回答
基于alpha-lay的PNG图像OpenCV边缘检测
10 回答
基于alpine的docker image中RobotFrameworkShLibrary的安装
8 回答
基于alt attribu的python selenium点击
9 回答
基于Altair中alt.颜色字段的排序
3 回答
基于anaconda(包括fbproph)为python创建exe
1 回答
基于Anaconda2 for pySCA教程的StructureBuilder(Biopython)中的一个错误,为什么蛋白质链是不连续的?
9 回答
基于anacond的随机森林交叉验证
6 回答
基于android的PySide QML项目
4 回答
基于ang的旋转乐高nxt
5 回答
基于ann的相关场Django滤波器
5 回答
基于anoth中匹配项的元组排序列表
4 回答
基于anoth中的值自行创建列
8 回答