精华内容
下载资源
问答
  • pytorch出现RuntimeError: CUDA out of memory.

    万次阅读 多人点赞 2019-03-21 16:09:02
    无论batch-size设置多小也是会出现这个问题的,我的原因是我将...RuntimeError: CUDA out of memory. Tried to allocate 823.88 MiB (GPU 0; 7.93 GiB total capacity; 6.96 GiB already allocated; 189.31 MiB fr...

    无论batch-size设置多小也是会出现这个问题的,我的原因是我将pytorch升级到了1.0.1,然后出现了这个问题

    RuntimeError: CUDA out of memory. Tried to allocate 823.88 MiB (GPU 0; 7.93 GiB total capacity; 6.96 GiB already allocated; 189.31 MiB free; 10.26 MiB cached)
    

    你可以监控一下之GPU的使用情况 ,使用下面的命令

    watch -n 0.1 nvidia-smi
    

    在期间会出现GPU的使用率达到99%,估计是没有释放GPU内存吧。

    解决方法

    我出现问题的代码,在输入到网络里面 ,如下:

    output = net(input,inputcoord)

    将这个代码做如下修改,其中torch.no_grad()是禁用梯度计算的上下文管理器,一般是在validate或者test会使用,只需要计算网络的输出,而无需计算梯度了

    with torch.no_grad():
        output = net(input,inputcoord)

    附带

    在调试低版本的pytorch源程序的时候也会出现警告

     UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.

     也可以在前面添加下面的解决这个问题

    with torch.no_grad():

     

    参考

    https://blog.csdn.net/xijuezhu8128/article/details/86594478

    https://pytorch.org/docs/stable/generated/torch.no_grad.html?highlight=torch%20no_grad#torch.no_grad

    展开全文
  • 解决Python memory error的问题(四种解决方案)

    万次阅读 多人点赞 2018-08-08 21:35:51
    昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条。。。。下面说一下几个解题步骤。。。。一般就是用下面...

    (作者:陈玓玏)

    分享一个朋友的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助http://www.captainbed.net/luanpeng

    博客推荐:http://www.data-master.net/

    昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条。。。。下面说一下几个解题步骤。。。。一般就是用下面这些方法了,按顺序试试。

    一、逐行读取

    如果你用pd.read_csv来读文件,会一次性把数据都读到内存里来,导致内存爆掉,那么一个想法就是一行一行地读它,代码如下:

    data = []
    with open(path, 'r',encoding='gbk',errors='ignore') as f:
        for line in f:
            data.append(line.split(','))
            
    data = pd.DataFrame(data[0:100])
    

    这就是先用with open把csv的每一行读成一个字符串,然后因为csv都是靠逗号分隔符来分割每列的数据的,那么通过逗号分割就可以把这些列都分离开了,然后把每一行的list都放到一个list中,形成二维数组,再转换成DataFrame。

    这个方法有一些问题,首先读进来之后索引和列名都需要重新调整,其次很多数字的类型都发生了变化,变成了字符串,最后是最后一列会把换行符包含进去,需要用replace替换掉。

    不知道为什么,用了这个操作之后,还是出现了Memory error的问题。基于这些缺点以及遗留问题,考虑第二种解决方案。

    二、巧用pandas中read_csv的块读取功能

    pandas设计时应该是早就考虑到了这些可能存在的问题,所以在read功能中设计了块读取的功能,也就是不会一次性把所有的数据都放到内存中来,而是分块读到内存中,最后再将块合并到一起,形成一个完整的DataFrame。

    f = open(path)
    
    data = pd.read_csv(path, sep=',',engine = 'python',iterator=True)
    loop = True
    chunkSize = 1000
    chunks = []
    index=0
    while loop:
        try:
            print(index)
            chunk = data.get_chunk(chunkSize)
            chunks.append(chunk)
            index+=1
    
        except StopIteration:
            loop = False
            print("Iteration is stopped.")
    print('开始合并')
    data = pd.concat(chunks, ignore_index= True)
    

    以上代码规定用迭代器分块读取,并规定了每一块的大小,即chunkSize,这是指定每个块包含的行数。

    这个方法能够保持数据的类型,也不需要自己费心思去调整列名和index,比较方便。但不幸的是,我的还是出现了这个问题,如果你的用了这种方法还是出现memory error,你可以继续往下看。

    三、扩充虚拟内存

    我在运行代码的过程中发现,出现memory error错误的时候,其实我的内存只用到了40+%,所以其实不太可能会出现这个错误啊,所以我查了下,发现有说是内存被限制了,考虑关掉一些可能限制内存的软件啦,扩大虚拟内存啦,这些的。

    扩大虚拟内存的方法(我的系统是win8,不过应该都大同小异):
    1、打开 控制面板
    2、找到 系统 这一项;
    3、找到 高级系统设置 这一项;
    4、点击 性能 模块的 设置 按钮;
    5、选择 高级面板,在 虚拟内存 模块点击更改;
    6、记得 不要 选中“自动管理所有驱动器的分页文件大小”,然后选择一个驱动器,也就是一个盘,选中自定义大小,手动输入初始大小和最大值,当然,最好不要太大,更改之后能在查看盘的使用情况,不要丢掉太多空间。
    7、都设置好之后,记得点击 “设置”, 然后再确定,否则无效,最后 重启电脑 就可以了。

    悲剧的是我在设置完这一步之后还是出现了内存错误,到这一步就没有问题了的朋友就可以不用看下面一种解法了,如果还是有问题,可以接下来看。

    四、更新Pandas和Numpy库为64位

    如果你的Python用的是32位的,那么你的pandas和Numpy也只能是32位的,那么当你的内存使用超过2G时,就会自动终止内存。发现这个错误也是因为我察觉到报内存溢出的错误的时候,我的内存明明显示只用了40+%,然后错误提示是在pandas的core中,所以查了一下,发现原来还有这么个大坑。

    解决方法就是:先检查一下你的python是多少位的,在shell中输入python,查看位数,如果是32位,那么就重装Python,装一个64位的,但同时你的库也需要重新装了。不过我执行完这一步之后,问题就完美解决了!

    五、如果还有内存溢出的错

    以上四种方法,按顺序逐一使用,到哪一步错误消失了就可以停止啦。当然了,如果你的内存显示使用达到了99%+,那么就是内存真的不够用,不是别的问题,如果不是数据量特别大,那就是写代码的时候的习惯问题,虽然Python有垃圾回收机制,但是有时候可能来不及回收,尤其是在循环迭代这些过程中,往往会循环完毕了才来得及收拾垃圾,所以记得及时把不要的变量del掉,或者用gc这个垃圾回收库,这样内存自然就一直清清爽爽啦~

    展开全文
  • memory currentMemory memballooon

    千次阅读 2015-08-02 10:53:54
    http://www.espenbraastad.no/post/memory-ballooning/ ...KVM/Xen and libvirt: currentMemory, memory and ballooning. Where did my memory go? Mon, Sep 24, 2012 KVM and Xen provide a method to change

    http://www.espenbraastad.no/post/memory-ballooning/

    KVM/Xen and libvirt: currentMemory, memory and ballooning. Where did my memory go?

    KVM and Xen provide a method to change the amount of memory in use by guests at runtime. The method is called memory ballooning [12], and it must be supported by the guest operating system to work.

    In libvirt, memory allocation (and hence the ballooning capability) for a guest can be configured using thememorycurrentMemory and memballoon tags:

    <domain type='kvm'>
      [...]
      <memory unit='KiB'>16777216</memory>
      <currentMemory unit='KiB'>1048576</currentMemory>
      [...]
      <devices>
        <memballoon model='virtio'/>
      </devices>
    </domain>
    

    The guest can never use more memory than specified in the memory tag and it is the amount of memory the guest will use at boot time. The currentMemory tag, if set, should be less than or equal (default) to memory. The guest will, when the balloon driver is loaded some time during the boot process, adjust itself to use the amount of memory specified by currentMemory. The memballoon tag is being added automatically, so there is really no need to specify it.

    The command line tool virsh can later be used on the host to see the current memory configuration for each guest:

    [root@host ~]# virsh dominfo guest
    Id:             -
    Name:           guest
    UUID:           4f610a1f-7539-47cf-8299-9534500b340d
    OS Type:        hvm
    State:          shut off
    CPU(s):         1
    Max memory:     16777216 kB
    Used memory:    1048576 kB
    Persistent:     yes
    Autostart:      disable
    Managed save:   no
    

    So far, so good. At this point it makes sense to set memory really high on all guests to ensure that we are able to reallocate memory on the fly for all our Linux guests. Doing this might not be a good idea.

    Linux as a guest, even though it has a balloon driver, does not seem to behave like one would expect. Whenmemory is set higher than currentMemory, the guest operating system does not see (or use) the amount of memory that it should. Ideally, the value that libvirt reports as Used memory at the host should be visible inside the guest also.

    The graphs below show different guests (RHEL6, SL6 and Ubuntu Precise) on KVM (SL6) and Xen (RHEL5). The Y-axis show the amount of memory visible inside the guest (as reported by free -m), while the X-axis show the value of memory. The value of currentMemory is 1024M in all plots – which means that the guests should use 1024M of memory and that the graphs should stay flat out at 1024M, given zero overhead. The graphs show that this is not the reality.

    KVM, Ubuntu Precise, 1024 MB ram

    KVM, RHEL6, 1024 MB ram

    Xen, SL6, 1024 MB ram

    Xen, Ubuntu Precise, 1024 MB ram

    The graphs with KVM do not have values for 32G memory because the guests went ballistic and OOM-ed.

    展开全文
  • Error: php share memory not exist, need create new share memory 描述: k8s环境中, 软件在编译安装后, 运行时提示 php share memory not exist, need create new share memory 错误,php日志文件不停重建 原因 ...

    Error: php share memory not exist, need create new share memory

    描述:

    k8s环境中, 软件在编译安装后, 运行时提示 php share memory not exist, need create new share memory 错误,php日志文件不停重建

    原因

    该组件运行所在的node节点资源,无法分配额外的存储空间给该pod,导致运行时无法获取内存,导致服务不同的重启

    解决

    在该组件的 deployment 的 request 中, 分配更多的资源

    ...
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
    ...
    
    展开全文
  • JVM Heap Memory和Native Memory

    千次阅读 2018-12-07 11:46:00
    JVM管理的内存可以总体划分为两部分:Heap Memory和Native Memory。前者我们比较熟悉,是供Java应用程序使用的;后者也称为C-Heap,是供JVM自身进程使用的。Heap Memory及其内部各组成的大小可以通过JVM的一系列...
  • Cannot allocate memory

    万次阅读 2019-03-19 14:25:13
    系统ssh连接都有问题,服务显示不能创建新的线程,执行命令会出现Cannot allocate memory这种异常: ssh 多尝试连接几次,连不上就重启机器 运行 free 发现内存是够用的 1 查看系统设置的最大进程数: sysctl ...
  • 127.0.0.1:6380> info memory# Memoryused_memory:4189334840used_memory_rss:4692721664mem_fragmentation_ratio:1.12mem_allocator:jemalloc-3.6.0used_memory: Total number of bytes allocated by...
  • PCIe memory base and memory limit

    千次阅读 2016-08-26 08:48:46
    PCIe memory base and memory limit
  • Memory Networks

    千次阅读 2017-12-13 22:51:22
    Memory Networks是由Facebook的Jason Weston等人提出的一个神经网络框架,通过引入长期记忆组件(long-term memory component)来解决神经网络长程记忆困难的问题。在此框架基础上,发展出许多Memory Networks的变体...
  • am-memory,driver-memory,executor-memory

    千次阅读 2019-10-17 11:12:11
    先搞清几个概念: spark 提交任务方式 spark 提交任务有两种...yarn-cluster的ApplicationMaster在任一一台NodeManager上启动,此方式ApplicationMaster包含driver,am的内存:driver.memory+driver.memoryOverhea...
  • SAP Memory & ABAP Memory

    千次阅读 2016-05-06 08:10:07
    以前做enhancement的时候用过parameter id 和 memory id, 但很多其他语法用法我是没接触过的, 今天看了Palm同鞋做的文档SAP Memory & ABAP Memory, 做了一些测试, 本文几乎所有内容来自Palm同鞋的文档. 1、...
  • Shared Memory

    千次阅读 2018-04-16 13:42:59
    1、引言 在global memory部分,数据对齐和连续是提升性能的很重要的因素,当使用L1 cache的时候,对齐问题不再是问题,但是非连续的获取内存依然会降低性能。依赖于算法本质,某些情况下,非连续访问是不可避免的。...
  • SPARK 中 DriverMemory和ExecutorMemory

    万次阅读 2018-01-10 19:05:02
    spark中,不论spark-shell还是spark-submit,都可以设置memory大小,但是有的同学会发现有两个memory可以设置。分别是driver memory 和executor memory。 从名字上大概可以猜出大概。具体就是说driver memory并不...
  • Global memory: large, on-board memory and characterized by relatively high latencies. Shared memory;smaller, low-latency on-chip memory that offers much higher bandwidth than global memory. You ca.....
  • Memory scrubbing

    2018-06-13 10:59:39
    转自维基:https://en.wikipedia.org/wiki/Memory_scrubbingMemory scrubbing consists of reading from each computer memory location, correcting bit errors (if any) with an error-correcting code (ECC)...
  • System memory,AGP memory和video memory

    千次阅读 2013-07-05 09:35:35
    system memory (main memory) :  就是电脑的内存条上的,一般都很大。显卡不能访问 。 video memory:  就是显示卡上的显存,一般是32,64,128M这样,速度最快,显卡可直接访问 。用来描述电脑上一些可写...
  • Memory Debuggers

    千次阅读 2015-06-09 11:01:24
    http://elinux.org/Memory_Debuggers Memory Debuggers ...Several tools exist for finding memory leaks or for reporting individual memory allocations of a program. These tools help analy
  • Heap memory和Stack memory的区别

    千次阅读 2016-11-30 10:20:29
    1.Heap Memory是堆内存,Stack Memory是栈内存。 2.Stack memory内存空间由操作系统自动分配和释放,Heap Memory内存空间手动申请和释放的,Heap Memory内存常用new关键字来分配。 3.Stack Memory内存空间有限,...
  • 启动tomcat部署项目时,报This is very likely to create a memory leak. Stack trace of thread错误。 29-May-2018 12:30:09.322 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext....
  • JVM的Heap Memory和Native Memory

    万次阅读 多人点赞 2016-04-20 20:49:52
    JVM管理的内存可以总体划分为两部分:Heap Memory和Native Memory。前者我们比较熟悉,是供Java应用程序使用的;后者也称为C-Heap,是供JVM自身进程使用的。Heap Memory及其内部各组成的大小可以通过JVM的一系列...
  • cuda memory

    千次阅读 2014-03-16 13:23:08
    转自:... CUDA存储器模型: ...GPU片内:register,shared memory;...板载显存:local memory,constant memory, texture memory, texture memory,global memory; host
  • MEMORY ID

    千次阅读 2017-02-19 10:43:53
    MEMORY ID 就是在SAP内定义的一段内存区域,方便你从里边读出数据或者往里边写入数据。MEMORY ID pid 使用内存默认值。从SAP内存(该内存是用户相关的公有内存区域,可以在一个用户使用的不同会话之间传递)中给参数...
  • exec memory hdfs # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = exec a1.sources.r1.command = tail -F /...
  • MemoryCache

    千次阅读 2014-12-11 17:27:17
    MemoryCache模块是负责网页加载的一个庞大机制,loader的一部分。这里(https://www.webkit.org/blog/427/webkit-page-cache-i-the-basics/)可以了解更多。本文只谈Memory Cache,以及它内部的一些组件,不涉及到...
  • Memory Monitor

    万次阅读 2016-01-13 09:50:08
    Heap Viewer,Memory Monitor和Allocation Tracker是用来可视化你的app使用内存的补充工具。  使用Memory Monitor Tool来发现是否有不好的内存回收时间导致你的性能问题。  运行Heap Viewer来确定获取或者...
  • RunTime Error : cuda out of memory

    万次阅读 多人点赞 2019-08-21 17:38:09
    cuda out of memory 分为两种情况 第一种 CUDA out of memory. Tried to allocate 16.00 MiB 错误信息: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 7.93 GiB total capacity; 6.68 GiB already ...
  • Memory Analyzer基本使用

    千次阅读 2019-10-20 12:09:42
    Memory Analyzer 使用讲解[下载 Memory Analyzer](https://www.eclipse.org/mat/downloads.php)生成Hrof 文件使用Memory Analyzer打开转换后的文件开始排查根据包名查看使用查看Memory Analyzer线程使用Memory ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 493,263
精华内容 197,305
关键字:

memory