草庐IT

OPTIMIZATION

全部标签

python - 在考虑周期性边界条件的同时优化 Python 距离计算

我编写了一个Python脚本来计算3D空间中两点之间的距离,同时考虑周期性边界条件。问题是我需要对很多很多点进行计算,而且计算速度很慢。这是我的功能。defPBCdist(coord1,coord2,UC):dx=coord1[0]-coord2[0]if(abs(dx)>UC[0]*0.5):dx=UC[0]-dxdy=coord1[1]-coord2[1]if(abs(dy)>UC[1]*0.5):dy=UC[1]-dydz=coord1[2]-coord2[2]if(abs(dz)>UC[2]*0.5):dz=UC[2]-dzdist=np.sqrt(dx**2+dy**2+dz

Python:内存泄漏?

在Python解释器中查询:Python2.7.3(default,Apr102012,23:31:26)[MSCv.150032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>k=[iforiinxrange(9999999)]>>>importsys>>>sys.getsizeof(k)/1024/102438>>>在这里-看看它从RAM中占用了多少:语句delk后的内存使用情况:在gc.collect()之后:为什么预期大小为38Mb的整数列表需要160Mb?UP

python - Cython Numpy 代码并不比纯 python 快

首先我知道SO上有很多类似主题的问题,但经过一天的搜索、阅读和测试,我找不到解决方案。我有一个python函数,它计算numpyndarray(mxn)的成对相关性。我最初只是在numpy中这样做,但该函数还计算了倒数对(即除了计算矩阵的A行和B行之间的相关性外,它还计算了B行和A行之间的相关性。)所以我采取了略有不同的方法对于大m的矩阵大约快两倍(我的问题的实际大小是m~8000)。这很好,但仍然有点慢,因为会有很多这样的矩阵,并且全部完成需要很长时间。所以我开始研究用cython来加快速度。我从我读过的内容中了解到,cython不会真正加快numpy的速度。这是真的吗,还是我遗漏了

python - 将 1.2GB 的边列表转换为稀疏矩阵

我有一个1.2GB的文本文件中图形的边列表。我的ubuntuPC有8GB内存。输入中的每一行看起来像287111206357850135我想将其转换为稀疏邻接矩阵并将其输出到文件。我的一些数据统计:Numberofedges:around62500000Numberofvertices:around31250000我之前在https://stackoverflow.com/a/38667644/2179021上问过很多同样的问题并得到了很好的答案。问题是我无法让它工作。我首先尝试使用np.loadtxt加载文件,但速度很慢并且占用了大量内存。因此,我转而使用速度非常快的pandas.r

python - 在 Python 中处理大文件的最快方法

我们需要处理的各个目录中有大约500GB的图像。每张图片的大小约为4MB,我们有一个python脚本来一次处理每张图片(它读取元数据并将其存储在数据库中)。每个目录可能需要1-4小时来处理,具体取决于大小。在GNU/Linux操作系统上,我们有一个2.2Ghz四核处理器和16GBRAM供我们使用。当前脚本仅使用一个处理器。利用其他内核和RAM来更快地处理图像的最佳方法是什么?启动多个Python进程来运行脚本是否会利用其他内核?另一种选择是使用Gearman或Beanstalk之类的工具将工作外包给其他机器。我查看了多处理库,但不确定如何使用它。 最佳答案

python 2 vs python 3 随机性能,特别是 `random.sample` 和 `random.shuffle`

python随机模块的性能问题,特别是random.sample和random.shuffle出现在thisquestion中。.在我的电脑上,我得到以下结果:>python-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.07usecperloop>python3-mtimeit-s'importrandom''random.randint(0,1000)'1000000loops,bestof3:1.3usecperloop与python2相比,python3的性能下降了20%以上。情况变得

python - 为什么我的 DQN 代理无法在非确定性环境中找到最优策略?

编辑:以下似乎也是FrozenLake-v0的情况.请注意,我对简单的Q学习不感兴趣,因为我想看到适用于连续观察空间的解决方案。我最近创建了banana_gymOpenAI环境。场景如下:你有一根香蕉。它必须在2天内卖掉,因为它在第3天就会变坏。你可以选择价格x,但是香蕉只会以概率售出奖励是x-1。如果第三天没有卖掉香蕉,奖励是-1。(直觉:你为香蕉支付了1欧元)。因此,环境是不确定的(随机的)。Actions:您可以将价格设置为{0.00,0.10,0.20,...,2.00}中的任何值观察:剩余时间(source)我计算了最优策略:Optatstep1:price1.50hasva

python - 代码重复和性能之间的权衡

Python作为一种动态语言,提供了多种方法来实现相同的功能。这些选项在可读性、可维护性和性能方面可能有所不同。尽管我通常用Python编写的脚本是一次性的,但我现在有一个我正在从事的(学术)项目必须是可读的、可维护的并且性能相当好。由于我之前没有用Python进行过任何认真的编码,包括任何类型的分析,所以我需要帮助来决定上面提到的三个因素之间的平衡。这是我正在处理的科学包中的一个模块的代码片段。它是一个具有非常基本骨架结构的n叉树类。这是在考虑继承和子类的情况下编写的。注意:在下面的代码中,树与节点相同。每棵树都是同一类Tree的实例。classTree(object):def__i

python - macOS Python 和 numpy 在训练神经网络方面比 Julia 更快

我尝试移植NN代码here给Julia,希望能提高网络训练的速度。在我的桌面上,事实证明是这样。然而,在我的MacBook上,Python+numpy远远击败了Julia。使用相同的参数进行训练,Python的速度是Julia的两倍多(4.4svs10.6sforoneepoch)。考虑到Julia在我的桌面上比Python快(大约2秒),似乎Python/numpy在mac上使用了一些Julia没有使用的资源。即使并行化代码也只能让我下降到~6.6s(尽管这可能是因为我在编写并行代码方面没有那么丰富的经验)。我认为问题可能是Julia的BLAS比mac中本地使用的vecLib库慢,但

python - 赋值问题,一个 NumPy 函数?

自assignmentproblem可以以单个矩阵的形式构成,我想知道NumPy是否有解决这种矩阵的功能。到目前为止我还没有找到。也许你们中有人知道NumPy/SciPy是否有赋值-问题-求解函数?编辑:与此同时,我在http://software.clapper.org/munkres/找到了一个Python(不是NumPy/SciPy)实现。.我仍然认为NumPy/SciPy实现会更快,对吧? 最佳答案 在sklearn/utils/linear_assignment_.py下的scikit-learn中现在有一个munkres