标签: low-memory

如何避免 PyTorch 中的“CUDA 内存不足”

我认为对于 GPU 内存较低的 PyTorch 用户来说,这是一个非常普遍的信息:

RuntimeError: CUDA out of memory. Tried to allocate  MiB (GPU ;  GiB total capacity;  GiB already allocated;  MiB free;  cached)
Run Code Online (Sandbox Code Playgroud)

我想为我的课程研究对象检测算法。许多深度学习架构需要大容量的 GPU 内存,所以我的机器无法训练这些模型。我尝试通过将每一层加载到 GPU 然后将其加载回来来处理图像:

RuntimeError: CUDA out of memory. Tried to allocate  MiB (GPU ;  GiB total capacity;  GiB already allocated;  MiB free;  cached)
Run Code Online (Sandbox Code Playgroud)

但它似乎不是很有效。我想知道在使用很少的 GPU 内存的同时训练大型深度学习模型是否有任何提示和技巧。提前致谢!

编辑:我是深度学习的初学者。如果这是一个愚蠢的问题,请道歉:)

python object-detection low-memory deep-learning pytorch

39
推荐指数
6
解决办法
10万
查看次数

内存映射文件和低内存方案

在低内存情况下,iOS平台如何处理内存映射文件?在低内存情况下,我的意思是操作系统将UIApplicationDidReceiveMemoryWarningNotification通知发送给应用程序中的所有观察者.

我们的文件使用+[NSData dataWithContentsOfMappedFile:]以下文档映射到内存中:

映射文件使用虚拟内存技术来避免将文件页面复制到内存中,直到实际需要它们为止.

这是否意味着操作系统也会在页面不再使用时取消映射?是否可以将页面标记为不再使用?如果更改方案,则此数据是只读的.如果我们mmap()直接使用怎么样?这会更好吗?

memory-management low-memory memory-mapped-files ios

38
推荐指数
3
解决办法
1万
查看次数

Android:内存不足时静态变量null

我有一个应用程序,它有一些静态变量.这些变量存储在一个名为DataContext的独立类中.这些变量在应用程序启动时从原始文件初始化(在MyApplication的onCreate()中调用名为DataContext.initConstant()的方法,该方法扩展了Application).

(编辑:initConstant方法使用AsyncTask从文件加载此数据).

当我的应用程序在后台运行一段时间或者我的应用程序用于大量内存时,这些静态变量将变为null.

  1. 如何预防?

  2. 如果不是我应该怎么做我的静态变量?

    我有其他数据存储在静态变量中以用于不同的活动,但我清除它们或在onLowMemory()MyApplication 中将它们传递给null .

  3. 如果这些数据太大而无法在Intent中序列化,数据库无法使用(无论出于何种原因),并且无法通过序列化存储在文件中,那么在活动之间保持一些数据可访问的最佳方法是什么?

memory static android low-memory

25
推荐指数
2
解决办法
1万
查看次数

上传文件时Chrome移动浏览器内存错误

嗨,

是否可以创建自定义文件上传以防止chrome unable to complete previous operation due to low memory错误"?

它在桌面版Chrome上完美运行.实际上我使用输入类型="文件"控件,我在Chrome移动浏览器上遇到此错误:


在此输入图像描述

mobile google-chrome file-upload low-memory input-type-file

19
推荐指数
1
解决办法
1万
查看次数

如何强制重启服务?

我有一个后台服务,当内存不足时,它有时会被操作系统杀死.

  1. 如何模拟这种行为,以便我可以调试它?

开发指南简单地说"如果您的服务已启动,那么您必须将其设计为优雅地处理系统重新启动.如果系统终止您的服务,它会在资源再次可用时立即重新启动".

  1. 从被杀死到完成重启的调用顺序是什么?

在一个(相关的)问题上,当服务被操作系统杀死时,在服务中启动的主动运行的AsyncTask会发生什么,即没有service.onDestroy被调用?它是否继续运行或与服务一起静静地撕开?

service android restart low-memory kill-process

16
推荐指数
1
解决办法
1万
查看次数

对于低内存使用,Conway的生命游戏的有效实施是什么?

我正在寻找一种快速且节省内存的方法来实现Conway的生命游戏.

限制因素:96x128板,大约2kB RAM和52MHz处理器(请参阅技术规范:http://www.getinpulse.com/features).

我目前的天真解决方案将每个单元表示为矩阵中的单个位(96*128/8 = 1,536字节),但速度太慢.可以使用哪些技巧来提高性能?

存储活细胞的坐标(例如在此实现中http://dotat.at/prog/life/life.html)会占用太多内存.

embedded low-memory conways-game-of-life

13
推荐指数
1
解决办法
4463
查看次数

如何在低内存系统上使用RVM编译ruby?

rvm install 1.9.3
Run Code Online (Sandbox Code Playgroud)

导致make.log中的错误:

...
compiling ./enc/trans/emoji_sjis_docomo.c
compiling ./enc/trans/emoji_sjis_kddi.c
gcc: internal compiler error: Killed (program cc1)
gcc: internal compiler error: Killed (program cc1)
gcc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
...
Run Code Online (Sandbox Code Playgroud)

dmesg 节目

[180031.341709] send sigkill to 3705 (cc1), adj 0, size 3394
Run Code Online (Sandbox Code Playgroud)

free 显示在某些时候运行配置过程:

             total       used       free     shared    buffers     cached
Mem:        241668     238676       2992          0         92       2020
-/+ buffers/cache:     236564       5104
Swap:       262140     262140          0
Run Code Online (Sandbox Code Playgroud)

所以我假设256MB RAM和256MB Swap不足以在其上编译Ruby. …

ruby gcc install low-memory rvm

13
推荐指数
1
解决办法
3414
查看次数

iOS应用程序内存不足而没有收到内存不足警告

我有一个现有的应用程序,我做了一些最近的更改,我一直在测试这些更改.该应用程序在我测试的每个iPad上运行得非常好(iOS 4和iOS 5).在我的应用程序加载多个(50+)大量图像的意见后,我收到了内存不足的警告,我viewDidUnload方法被调用,他们正确零出所有的控制和我的内存图像缓存清除本身并应用只是继续精细.

但是,在iPhone 4和iPhone4s(iOS 5.0.1和iOS 5.1)上,我遇到了一个问题,即我的应用程序内存不足而没有收到低内存警告.在加载了几个不同的视图后,最终会出现一个新的视图并且大部分是空白的,在控制台上我看到了内存分配消息,整个手机都没有响应,有时会杀死我的应用程序.

发生这种情况的特定视图每次都是不同的,因此它与任何一个视图无关,只是随着时间的推移而积累的内存.我也确认我也没有任何内存泄漏.

这个现有问题是类似的:

IOS应用程序因低内存而被杀死,但未收到内存警告

并且这个答案表明,如果我陷入循环,这可能会发生,但我很确定我的代码不会卡在任何循环中.我只是在UINavigationController中从一个视图点击到另一个视图,并在每个视图中加载了几个图像.另外,另一个问题是专门在iPad上发生的,我没有在iPad上看到这个问题,只有iPhone.

顺便说一下,我已经尝试通过NotificationCenter注册低内存通知,并在我的app委托中有一个applicationDidReceiveMemoryWarning方法,并且两者都有断点,并且都没有被调用.此外,调试器控制台中也没有显示低内存消息.

关于可能发生的事情的任何想法?


在2012年3月26日添加:

有趣的是,当我在新iPad上测试我的应用程序时,它有同样的问题,我在iPhone 4和4s上看到没有收到低内存通知.所以我想知道我是否看到了与其他线程相同的问题:

新iPad:低内存警告没有出现?

但该线程上的开发人员正在测试仅限iPad的应用程序,因此不会在任何iPhone上测试和发现同样的问题.

我做了一些广泛的测试,并有一个设备列表,我正确地收到了低内存警告和我从未收到它的设备.到目前为止,我只看到iOS5或更高版本的问题,但是在iOS1和iOS5的iPad1上我没有看到问题,因此它不仅仅是iOS 5上所有设备上的问题.

这是那个清单:

适当的低内存警告

iPad1 4.2.1
iPad1 5.0
iPad1 5.1
iPad2 4.3.3
iPhone3G 4.2.1
iPod 3G 4.3.3
iPhone4 4.3.3
Run Code Online (Sandbox Code Playgroud)

没有低内存警告

iPhone4 5.1
iPhone4s 5.0.1
iPad3 5.1
Run Code Online (Sandbox Code Playgroud)

notifications low-memory ios

12
推荐指数
1
解决办法
6427
查看次数

具有内存压力感知的NodeJS内存缓存

我来自Java世界,并且有很多(本地)内存缓存的实现.此外,在Java世界中有SoftReferenceWeakReference,根据定义,它们是缓存实现的理想选择.

我知道JavaScript没有类似的东西,所以我想知道是否有可能有某种缓存功能,如果存在"低内存压力",它将删除/释放(所有)缓存对象.到目前为止,我知道lru-cache模块,但它的实现将对象保存到某个数字/大小,这很好,但还不够好,因为当然,如果没有足够的内存,你会期望缓存释放对象.

当进程内存不足时,甚至可以从系统中获取NodeJS中的某些事件吗?

或者也许是一些可以举办活动的图书馆,例如:

var cmmm = require('cool_memory_management_module');

cmmm.on('low_memory', function(){
    //signaling to clear cache entries
});
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经找到了npm memwatchnpm使用模块,但仍然无法将所有这些部分组合在一起.

memory caching weak-references low-memory node.js

8
推荐指数
1
解决办法
1846
查看次数

Java ArrayList <String>的紧凑替代品

我需要存储一个大型自然语言词典 - 最多120,000,具体取决于语言.这些需要保存在内存中,因为分析表明利用阵列的算法是系统中的时间瓶颈.(它本质上是一种拼写检查/自动更正算法,但细节并不重要.)在具有16MB内存的Android设备上,与Java相关的内存开销String导致我们的空间不足.请注意,每个String都有一个与之相关38字节开销,这会产生高达5MB的开销.

乍一看,一个选项是替代char[]String.(或者甚至byte[],因为UTF-8在这种情况下更紧凑.)但同样,内存开销是个问题:每个Java数组都有32字节的开销.

另一种替代方法ArrayList<String>是创建一个具有相同接口的类,该类在内部将所有字符串连接成一个巨大的字符串,例如表示为单个字符串,byte[]然后将偏移存储到该巨大的字符串中.每个偏移量将占用4个字节,从而提供更节省空间的解决方案.

我的问题是a)是否有任何其他解决问题的方法,同样低开销*和b)是现成的任何解决方案吗?通过Guava,trovePCJ集合库搜索没有任何结果.

*我知道可以将开销降到4字节以下,但收益递减.

NB.是否支持在HotSpot JVM中删除压缩字符串?表明JVM选项-XX:+UseCompressedStrings在这里没有帮助.

java string android arraylist low-memory

8
推荐指数
1
解决办法
1829
查看次数