日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab内存溢出的解决方案

發(fā)布時(shí)間:2023/12/13 循环神经网络 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab内存溢出的解决方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

(1) 增加虛擬內(nèi)存:cmd -> taskmgr 打開任務(wù)管理器,查看物理內(nèi)存和虛擬內(nèi)存,可觀察matlab在運(yùn)行過程中是否超過物理內(nèi)存和虛擬內(nèi)存。若超過,增加虛擬內(nèi)存的方法是不可行的。物理內(nèi)存不足的時(shí)候可以通過將電腦的虛擬內(nèi)存設(shè)置得大一點(diǎn),可一定程度上緩解內(nèi)存不足的壓力,但緩解是非常有限,核心還是增加物理內(nèi)存。

查看虛擬內(nèi)存方法:

(1a)右擊“我的電腦”–屬性–高級系統(tǒng)設(shè)置—-系統(tǒng)屬性—–高級—-在性能框內(nèi)點(diǎn)“設(shè)置”
(1b)性能選項(xiàng)對話框,點(diǎn)第二個(gè)標(biāo)簽“高級”
(1c)頁面文件大小后面的數(shù)字就是虛擬內(nèi)存。
(1d)若分頁文件大小0,表示沒有設(shè)置虛擬內(nèi)存

增加虛擬內(nèi)存方法
重復(fù)(1a)->(1d),
(1e)點(diǎn)擊性能選項(xiàng)-高級-更改,取消選定的虛擬內(nèi)存頁面頂部的復(fù)選框,然后點(diǎn)擊系統(tǒng)所在的驅(qū)動器,接著點(diǎn)擊自定義大小,可在空白框中輸入你索要設(shè)置的虛擬內(nèi)存的大小即可。

(2)使用PACK:PACK可以將matlab中的變量導(dǎo)出到磁盤中,以增加可用內(nèi)存。

如何使用PACK:
當(dāng)內(nèi)存被分為很多碎片以后,其實(shí)本身可能有很大的空間,只是沒有作構(gòu)的連續(xù)空間即大的Block而已。如果此時(shí)Out of Memory,此時(shí)使用pack命令可以很好的解決此問題。
help文件 用法:
pack
pack filename
pack(‘filename’)

pack可以為用戶整理內(nèi)存的機(jī)制在于,pack函數(shù)重新整理MATLAB工作空間中駐留的變量,將原來斷斷續(xù)續(xù)的內(nèi)存整理的連續(xù)起來,這樣原來斷斷續(xù)續(xù)的內(nèi)存可能不足以存儲大的矩陣,而整理之后,可以很顯著的提高內(nèi)存的使用效率,最后重新分配的空間將是連續(xù)的,避免掉原來斷斷續(xù)續(xù)的內(nèi)存使用。整理步驟:
(1)將base空間以及全局變量保存到一個(gè)mat文件
(2)清空工作空間中的所有資源
(3)重新載入mat文件中保存的base空間變量和全局變量,然后刪掉mat文件

備注: pack不能提高M(jìn)ATLAB所擁有的虛擬內(nèi)存數(shù)量,如果想要增加這個(gè)數(shù)量,也就是使MATLAB單獨(dú)變量的最大size或者同時(shí)存在的變量所占有的最大空間增大,需要提高系統(tǒng)的虛擬內(nèi)存。

Change the current folder to one that is writable, run pack, and return to the previous folder.

cwd = pwd; cd(tempdir); pack cd(cwd) feature('memstats') % 查看matlab內(nèi)存使用情況

(3) 打開計(jì)算機(jī)的3GB開關(guān)(64位的WIN7不用調(diào))。

3GB切換(3GB switch):由于在windows上運(yùn)行matlab時(shí),如果內(nèi)存的使用超過約1.7G左右就要出現(xiàn)這種錯(cuò)誤,而無論你有多大的內(nèi)存也沒用。MATLAB現(xiàn)在支持3GB切換(3GB switch)啟動選項(xiàng)(boot option),配置額外的1GB的可尋址內(nèi)存到每個(gè)程序上。這增加了你可以儲存到MATLAB workspace中資料的總量約到2.7 GB。這相當(dāng)于33億的精度值。此新增的內(nèi)存區(qū)塊和MATLAB使用剩下的(內(nèi)存)并不是連續(xù)的,所以你不能建立一個(gè)數(shù)組來填滿此空間。

具體做法:修改C:\ Boot.ini文件如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS = “Microsoft Windows XP Professional”
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Microsoft Windows XP Professional” /3GB
注意后面的/3GB就是后加上的。重新啟動系統(tǒng)再次運(yùn)行matlab。
打開3GB的目的:32位系統(tǒng)(包括XP和32位的win7),默認(rèn)情況下不允許某個(gè)程序調(diào)用超過2G的內(nèi)存,一旦超過,就自動結(jié)束掉該程序。因此打開3GB,就是為了允許大型程序,比如3DMAX,調(diào)用最多3G的內(nèi)存


matlab java.lang.OutOfMemoryError

Java虛擬機(jī)內(nèi)存不夠用了.可以增加最大內(nèi)存設(shè)置.

  • 查找matlab根路徑.在matlab命令行中敲入:matlabroot
    顯示根路徑,如:D:\CMWang\MATLABR2014b
  • 2.查看當(dāng)前Java虛擬機(jī)最大堆內(nèi)存, 敲入:

    java.lang.Runtime.getRuntime.maxMemory

    3.查看Java虛擬機(jī)版本.敲入:

    version -java

    4.在 $MATLAB\bin\$ARCH 路徑下新建java.opts文件.

    MATLAB,D:\CMWang\MATLABR2014bARCH是系統(tǒng)架構(gòu).例如win64,則在D:\CMWang\MATLABR2014b\bin\win64下新建java.opts文件.

    5.用記事本打開java.opts文件,對于不同的版本的Java虛擬機(jī),輸入:

    The following table shows the default settings MATLAB uses for versions of the JVM:

    JVM Initial Heap Size Max Heap Size
    1.6.0 -Xms64m -Xmx128m (32-bit)
    -Xmx196m (64-bit)
    1.5.0 -Xms64m -Xmx96m (32-bit)
    -Xmx128m (64-bit)
    1.4.2 -Xms16m -Xmx96m
    1.3.1 -Xms16000000 -Xmx64000000
    1.2.2 -Xms16000000 -Xmx64000000
    1.1.8 -ms16000000 -mx64000000

    例如我的Java是1.4.2,在java.opts文件寫入-Xmx96m,保存就ok啦
    如果輸入錯(cuò)誤就報(bào)錯(cuò):warning : Failed to start to Java Virtual machine
    6. 重啟matlab,敲入

    java.lang.Runtime.getRuntime.maxMemory

    顯示最大內(nèi)存改變,設(shè)置成功.

    備注: 可在matlab->file->preference->General->Java Heap Memory,可以設(shè)置Java Heap Memory大小,其最大可以設(shè)置的值是內(nèi)存大小的1/4。如果想用的Java Heap Memory大于內(nèi)存的1/4,無法利用Preference進(jìn)行設(shè)置。

    采用上述在Matlab安裝目錄下添加java.opts的方法,可以任意設(shè)置Java Heap Memory的大小,當(dāng)設(shè)置的大小小于內(nèi)存的1/4時(shí),Preference中Java Heap Memory面板顯示的是相應(yīng)的值;當(dāng)大于內(nèi)存的1/4時(shí),面板顯示值是其最大值,但實(shí)際上使用的卻是我們在java.opts中設(shè)置的大小。設(shè)置Java Heap Memory面板的主要目的是防止一些人任意改變,破壞操作系統(tǒng).

    主要參考:

    http://cn.mathworks.com/matlabcentral/answers/92813-how-do-i-increase-the-heap-space-for-the-java-vm-in-matlab-6-0-r12-and-later-versions

    http://cn.mathworks.com/matlabcentral/answers/99763-why-do-i-receive-a-java-exception-when-starting-matlab-6-5-r13-or-later

    http://blog.sina.com.cn/s/blog_890c6aa30101b5fy.html

    總結(jié)

    以上是生活随笔為你收集整理的matlab内存溢出的解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。