亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么即使在批大小 = 1 時也會出現內存分配錯誤?

為什么即使在批大小 = 1 時也會出現內存分配錯誤?

慕姐8265434 2022-08-16 10:13:01
我(仍然)試圖在Tensorflow 2.0后端上使用Keras實現一個簡單的Unet網絡。我的模板和蒙版是1536x1536 RGB圖像(蒙版是黑白的)。根據本文,可以測量所需的內存量。我的模型在張量 [1,16,1536,1536] 上因內存分配錯誤而崩潰。使用上面文章中給出的等式,我計算了此張量所需的內存量:1 * 16 * 1536 * 1536 * 4 = 144 MB。我有GTX 1080 Ti,其中大約9 GB可用于Tensorflow。哪里出錯了?我錯過了什么嗎?以下是幾乎完全的回溯:我正在嘗試將嗅探時間轉換為秒數。我已經在Python Pandas DataFrame中查看了將timedelta64[ns]列轉換為秒,但是該解決方案不起作用。我想也許熊貓線可能有錯。print(sniffTime)print(type(sniffTime))輸出:821693000 nanoseconds<class 'numpy.timedelta64'>錯誤AttributeError: 'numpy.timedelta64' object has no attribute 'total_seconds'在線:df['PerSec']=df['PerSec'].div(sniffTime.total_seconds())2020-03-02 15:59:13.841967: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_100.dll2020-03-02 15:59:16.083234: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX22020-03-02 15:59:16.087240: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll2020-03-02 15:59:16.210856: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.607
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

您的情況是圖像的尺寸。

它不是像其他人在評論中所說的那樣的模型尺寸,而是圖像的輸入尺寸,需要更多的GPU內存才能進行處理。

在這種情況下,解決方案是用二倍的系數對圖像進行下采樣。您需要使用完全相同的因子劃分寬度和高度,以保持寬高比,從而使網絡即使在較小的圖像上也能學習,而不會丟失太多信息并引入失真。

您將能夠在768x768的GTX 1080上使用batch_size 1進行訓練(我有一臺GTX 1080Ti,我測試了幾個具有多個輸入維度的分段網絡)。如果由于某些原因,您的GPU消耗被其他進程(例如YT或類似進程)所消耗,那么將其降低到512x512肯定會起作用(即使在batch_size = 1上使用768x768,它也應該有效)


查看完整回答
反對 回復 2022-08-16
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

當然,一個張量可能會占用那么多內存,但你還必須保存網絡中的所有變量,以及要向后傳播的值。這使得計算操作要求變得復雜(盡管并非不可能)。網絡的操作空間非常大。


查看完整回答
反對 回復 2022-08-16
  • 2 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號