在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

那些年在pytorch上過的當

jf_78858299 ? 來源:天宏NLP ? 作者:tianhongzxy ? 2023-02-22 14:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

起因

最近在修改上一個同事加載和預處理數據的代碼,原版的代碼使用tf1.4.1寫的,數據加載也是完全就是for循環讀取+預處理,每讀入并預處理好一個batch就返回丟給模型訓練,如此往復,我覺得速度實在太慢了,而且我新寫的代碼都是基于pytorch,雖然預處理的過程很復雜,我還是下決心自己改寫。

用pytorch加載預處理數據,最常用的就是torch.utils.data.Datasettorch.utils.data.DataLoader組合起來,把數據預處理都在Dataset里寫好,再在DataLoader里設定batch_size, shuffle等參數去加載數據,網上的教程非常多,這里我就不展開講了。

過程

現在我已經獲得了train_loadertest_loader,可以從它們里面每次讀取一個batch出來訓練,可照理說加載Dataset時占用了大量內存是正常的,因為數據都預加載好了,就只需要用DataLoader讀取就行了,但在訓練的過程中,內存不應該隨著訓練而逐漸增加。我眼睜睜看著內存占用從8、9個g,逐漸漲到了25個g,程序最終因為占滿內存而崩潰。檢查了半天自己的代碼都沒找出問題所在,后來用memory_profiler查看內存占用情況,發現問題主要出現在這一行代碼:actual_labels += list(correctness)correctness的類型是torch.FloatTensoractual_labelspython原生的list。

圖片

predcorrectness是同類型同長度的tensor,在將其轉換為list再添加到已有的list中時,占用的內存相差了約5個Mb,于是我將上面代碼改寫為:

圖片

問題解決了!

為什么下面的代碼就沒事,上面直接將Tensor轉為list就會發生這種奇怪的現象?我去github和知乎看到了遇到類似問題的issue與文章,下面是鏈接

  1. https://github.com/pytorch/pytorch/issues/13246
  2. https://zhuanlan.zhihu.com/p/86286137
  3. https://github.com/pytorch/pytorch/issues/17499

結論

目前得到的結論大概是python list的design有問題,導致了這種情況發生,pytorch團隊雖然竭力修復,但他們表示因為這是python設計的缺陷,超出了他們的能力范圍,上面第一個issue主要是針對DataLoadernum_workers>0時會導致內存泄漏,里面也提到了list與tensor互轉亦會發生內存泄漏,這個issue已經一年多了還沒能close。

因此,在使用pytorch時,應該盡力避免list的使用,一定不能讓tensor和list直接互相轉換,如果一定要做,應該將tensor從cuda轉到cpu上,轉為numpy.array,最后轉為list,反之亦然。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4895

    瀏覽量

    70527
  • for循環
    +關注

    關注

    0

    文章

    61

    瀏覽量

    2700
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

    13895
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Pytorch模型訓練實用PDF教程【中文】

    ?模型部分?還是優化器?只有這樣不斷的通過可視化診斷你的模型,不斷的對癥下藥,才能訓練出一個較滿意的模型。本教程內容及結構:本教程內容主要為在 PyTorch 中訓練一個模型所可能涉及到的方法及函數,并且
    發表于 12-21 09:18

    Pytorch自動求導示例

    Pytorch自動微分的幾個例子
    發表于 08-09 11:56

    Pytorch入門之的基本操作

    Pytorch入門之基本操作
    發表于 05-22 17:15

    PyTorch如何入門

    PyTorch 入門實戰(一)——Tensor
    發表于 06-01 09:58

    PyTorch10的基礎教程

    PyTorch 10 基礎教程(4):訓練分類器
    發表于 06-05 17:42

    Pytorch AI語音助手

    想做一個Pytorch AI語音助手,有沒有好的思路呀?
    發表于 03-06 13:00

    如何安裝TensorFlow2 Pytorch

    如何安裝TensorFlow2 Pytorch
    發表于 03-07 07:32

    如何往星光2板子里裝pytorch

    如題,想先gpu版本的pytorch只安裝cpu版本的pytorch,pytorch官網提供了基于conda和pip兩種安裝方式。因為咱是risc架構沒對應的conda,而使用pip安裝提示也沒有
    發表于 09-12 06:30

    基于PyTorch的深度學習入門教程之PyTorch簡單知識

    本文參考PyTorch官網的教程,分為五個基本模塊來介紹PyTorch。為了避免文章過長,這五個模塊分別在五篇博文中介紹。 Part1:PyTorch簡單知識 Part2:PyTorch
    的頭像 發表于 02-16 15:20 ?2485次閱讀

    基于PyTorch的深度學習入門教程之PyTorch的自動梯度計算

    本文參考PyTorch官網的教程,分為五個基本模塊來介紹PyTorch。為了避免文章過長,這五個模塊分別在五篇博文中介紹。 Part1:PyTorch簡單知識 Part2:PyTorch
    的頭像 發表于 02-16 15:26 ?2261次閱讀

    PyTorch1.8和Tensorflow2.5該如何選擇?

    發布。而 PyTorch 則由 Facebook 的團隊開發,并于 2017 年在 GitHub 上開源。 為了充分發揮不同機器學習框架的優勢,許多機器
    的頭像 發表于 07-09 10:33 ?1816次閱讀

    那些年在pytorch上踩過的坑

    今天又發現了一個pytorch的小坑,給大家分享一下。手上兩份同一模型的代碼,一份用tensorflow寫的,另一份是我拿pytorch寫的,模型架構一模一樣,預處理數據的邏輯也一模一樣,測試發現模型推理的速度也差不多。一份預處理代碼是為
    的頭像 發表于 02-22 14:18 ?1316次閱讀
    <b class='flag-5'>那些</b><b class='flag-5'>年在</b><b class='flag-5'>pytorch</b>上踩過的坑

    tensorflow和pytorch哪個更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個易于使用、靈活且具有強大社區支持的框架,PyTorch可能是一個更好的選擇。如果您需要一個在
    的頭像 發表于 07-05 09:45 ?1425次閱讀

    PCB板上過孔太多如何解決

    PCB板上過孔太多是一個在電子設計中常見的問題,它可能由多種因素引起,如設計不合理、走線復雜、信號需求等。解決PCB板上過孔太多的問題,需要從設計、布局、走線以及與制造廠商的溝通等多個方面入手。
    的頭像 發表于 07-16 15:25 ?7106次閱讀

    pytorch怎么在pycharm中運行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個開源的機器學習庫,用于構建和訓練神經網絡。要在PyCharm中使用PyTorch,首先需
    的頭像 發表于 08-01 16:22 ?2465次閱讀
    主站蜘蛛池模板: 日韩欧美不卡片 | 9色网站| 一区二区免费播放 | 欧美成人午夜片一一在线观看 | 日韩午夜免费 | 午夜久久久精品 | 资源种子在线观看 | 五月婷婷丁香 | 五月亭亭免费高清在线 | 亚洲成a人片在线网站 | 男女一进一出抽搐免费视频 | 四虎永久在线精品视频免费观看 | 无毒不卡在线观看 | 免费又爽又黄1000禁片 | 天天综合在线视频 | 曰本在线| 欧美日韩性高爱潮视频 | 精品一区二区三区自拍图片区 | 永久免费看的啪啪网站 | 男女视频在线观看免费高清观看 | 欧美成人性动漫在线观看 | 天堂中文最新版www 天堂资源8中文最新版在线 | 久久成人亚洲 | 在线看视频你懂的 | avtt加勒比手机版天堂网 | 日日干夜夜欢 | 欧美精彩狠狠色丁香婷婷 | 一区二区三区网站 | 色精品一区二区三区 | 天天色天天干天天射 | 黄在线看 | 国产女同视频 | 777色淫网站女女免费 | 狠狠干b | 天堂网在线资源 | 国产美女作爱全过程免费视频 | 91网站在线播放 | 天天干免费视频 | www.xxx国产| 欧美视频一区二区三区四区 | 伊人男人天堂 |