【如何在python和C/C++中使用共享内存】教程文章相关的互联网学习教程文章

如何在python进程中限制内存使用【代码】

我在具有16GB Ram和64位操作系统的Linux机器上运行Python 2.7.我编写的python脚本可以将太多数据加载到内存中,这会使机器速度降低到我甚至无法再杀死进程的程度. 虽然我可以通过调用来限制内存:ulimit -v 12000000在运行脚本之前的shell中,我想在脚本本身中包含一个限制选项.在我看的每个地方,资源模块被引用为具有与ulimit相同的功能.但是打电话:import resource _, hard = resource.getrlimit(resource.RLIMIT_DATA) resource....

python – 创建并流式传输大型存档,而不将其存储在内存或磁盘上

我想允许用户一次下载多个大文件的存档.但是,文件和存档可能太大而无法存储在我的服务器的内存或磁盘上(它们可以动态地从其他服务器流入).当我将其传输给用户时,我想生成存档. 我可以使用Tar或Zip或其他最简单的东西.我正在使用django,它允许我在我的响应中返回一个生成器或类文件对象.该对象可用于泵送过程.但是,我无法弄清楚如何围绕zipfile或tarfile库构建这种东西,我担心它们可能不支持读取文件,或者在构建时读取存档. 这个答案...

python – Keras:进行超参数网格搜索时内存不足【代码】

我正在运行多个嵌套循环来进行超参数网格搜索.每个嵌套循环遍历超级参数值列表,并且在最内层循环内部,每次使用生成器构建和评估Keras顺序模型. (我没有做任何训练,我只是随机初始化,然后多次评估模型,然后检索平均损失). 我的问题是,在这个过程中,Keras似乎填满了我的GPU内存,所以我最终得到了一个OOM错误. 在评估模型后,是否有人知道如何解决这个问题并释放GPU内存? 在评估之后我根本不需要模型,我可以在内循环的下一次传递中构建...

python – PyTorch内存模型:“torch.from_numpy()”vs“torch.Tensor()”【代码】

我正在尝试深入了解PyTorch Tensor内存模型的工作原理.# input numpy array In [91]: arr = np.arange(10, dtype=float32).reshape(5, 2)# input tensors in two different ways In [92]: t1, t2 = torch.Tensor(arr), torch.from_numpy(arr)# their types In [93]: type(arr), type(t1), type(t2) Out[93]: (numpy.ndarray, torch.FloatTensor, torch.FloatTensor)# ndarray In [94]: arr Out[94]: array([[ 0., 1.],[ 2., 3....

python – 是否可以np.concatenate内存映射文件?【代码】

我用np.save()保存了几个numpy数组,并且放在一起它们非常庞大. 是否有可能将它们全部作为内存映射文件加载,然后连接并切换所有这些文件而不将任何内容加载到内存中?解决方法:使用numpy.concatenate显然将数组加载到内存中.为避免这种情况,您可以在新文件中轻松创建第三个memmap数组,并从要连接的数组中读取值.以更有效的方式,您还可以将新数组附加到磁盘上现有的文件中. 对于任何情况,您必须为数组选择正确的顺序(行主要或列主要)...

从内存中恢复Python脚本,我搞砸了

帮忙,我搞砸了. 我有一个有点复杂的python脚本,目前正在一个putty窗口中运行到Ubuntu服务器. 我不小心使用另一个putty窗口覆盖了脚本,因此硬盘驱动器上的副本现在已经消失,但脚本仍在第一个窗口中从内存运行. 这是在我有机会为此文件夹运行备份之前发生的. 有没有办法从第一个putty窗口的内存中获取脚本(当前正在运行)? 我没有停止剧本,我的猜测是,一旦我停止它,它将永远消失. 我可以以某种方式将它发送到后台进程(一些热键,然后)...

如何从python ctypes中取消引用内存位置?【代码】

我想在python ctypes中复制以下c代码:main() {long *ptr = (long *)0x7fff96000000;printf("%lx",*ptr); }我可以弄清楚如何将此内存位置称为函数指针,但不仅仅是执行正常的取消引用:from ctypes import * """ >>> fptr = CFUNCTYPE(None, None) Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/lib/python2.6/ctypes/__init__.py", line 104, in CFUNCTYPEclass CFunctionType(_CFuncPtr): Ty...

Python – 使用请求直接下载文件到内存【代码】

目标是从互联网上下载文件,并从中创建一个文件对象,或者像对象这样的文件,而不必触摸硬盘.这只是为了我的知识,想知道它是否可行或实用,特别是因为我想看看我是否可以避免编写文件删除行. 这就是我通常从网上下载内容并将其映射到内存的方式:import requests import mmapu = requests.get("http://www.pythonchallenge.com/pc/def/channel.zip")with open("channel.zip", "wb") as f: # I want to eliminate this, as this writes ...

python – 为什么元组在内存中占用的空间少于列表?【代码】

元组在Python中占用更少的内存空间:>>> a = (1,2,3) >>> a.__sizeof__() 48而列表需要更多的内存空间:>>> b = [1,2,3] >>> b.__sizeof__() 64Python内存管理内部会发生什么?解决方法:我假设您正在使用CPython和64位(我在CPython 2.7 64位上获得了相同的结果).在其他Python实现中可能存在差异,或者如果您有32位Python. 无论实现如何,列表都是可变大小的,而元组是固定大小的. 因此元组可以直接在结构中存储元素,另一方面,列表需要...

如何从内存中删除多个pandas(python)数据帧以节省RAM?【代码】

我有许多数据帧作为预处理的一部分创建.由于我有6GB内存限制,我想从RAM中删除所有不必要的数据帧,以避免在scikit-learn中运行GRIDSEARCHCV时内存不足. 1)是否只有列出的功能,当前加载到内存中的所有数据帧? 我尝试了dir()但它提供了许多除dataframe之外的其他对象. 2)我创建了一个要删除的数据帧列表del_df=[Gender_dummies,capsule_trans,col,concat_df_list,coup_CAPSULE_dummies]&安培;跑for i in del_df:del (i)但它没有删除数...

Python中包含一百万个元素的列表会占用多少内存?【代码】

根据redditmetrics.com,Reddit上有超过一百万个子评价. 我写了一个脚本,反复查询this Reddit API endpoint,直到所有的subreddits都存储在一个数组all_subs中:all_subs = [] for sub in <repeated request here>:all_subs.append({"name": display_name, "subscribers": subscriber_count})该脚本已经运行了近十个小时,大约已经完成了一半(每三个或四个请求就会受到速率限制).当它完成后,我期待一个像这样的数组:[{ "name": "AskR...

我可以使用Python将内存中的对象上传到FTP吗?【代码】

这就是我现在正在做的事情:mysock = urllib.urlopen('http://localhost/image.jpg') fileToSave = mysock.read() oFile = open(r"C:\image.jpg",'wb') oFile.write(fileToSave) oFile.close f=file('image.jpg','rb') ftp.storbinary('STOR '+os.path.basename('image.jpg'),f) os.remove('image.jpg')将文件写入磁盘然后立即删除它们似乎是应该避免的系统上的额外工作.我可以使用Python将内存中的对象上传到FTP吗?解决方法:由于...

python – 使用openpyxl从内存中读取文件【代码】

我在python中下载了一个google-spreadsheet作为对象. 如何使用openpyxl使用工作簿而不先将其保存到磁盘? 我知道xlrd可以通过以下方式实现:book = xlrd.open_workbook(file_contents=downloaded_spreadsheet.read())使用“downloaded_spreadsheet”将我下载的xlsx文件作为对象. 而不是xlrd,我想使用openpyxl,因为更好的xlsx支持(我读). 到目前为止我正在使用它…#!/usr/bin/pythonimport openpyxlimport xlrd# which to use..?imp...

python – 在子进程启动后访问共享内存

如果数据仅在子进程生成后可用(使用multiprocessing.Process),如何让子进程访问共享内存中的数据? 我知道multiprocessing.sharedctypes.RawArray,但我无法弄清楚如何让我的子进程访问在进程已经开始之后创建的RawArray. 数据由父进程生成,并且事先不知道数据量. 如果不是GIL,我将使用线程代替,这将使这项任务更简单.使用非CPython实现不是一种选择. 在muliprocessing.sharedctypes的引擎盖下,看起来共享的ctype对象被分配了using ...

python – 直接在Scipy稀疏矩阵上使用Intel mkl库来计算A点A.T,内存较少【代码】

我想从python中调用mkl.mkl_scsrmultcsr.目标是计算compressed sparse row格式的稀疏矩阵C.稀疏矩阵C是A与A的转置之间的矩阵乘积,其中A也是csr格式的稀疏矩阵.当用scipy计算C = A点(AT)时,scipy似乎(?)分配新的内存来保存A(AT)的转置,并且肯定为新的C矩阵分配内存(这意味着我不能使用现有的C矩阵).所以,我想尝试直接使用mkl c函数来减少内存使用量. Here是一个适用于另一个mkl函数的答案.在那个答案中,mkl函数速度提高了4倍. 以下...