<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          7個實用小技巧,提升PyTorch技能,還帶示例演示

          共 1732字,需瀏覽 4分鐘

           ·

          2021-05-19 20:15

          (點擊上方快速關(guān)注并設(shè)置為星標(biāo),一起學(xué)Python)

          機器之心報道

          編輯:陳萍


          這里有 7 個技巧可以幫助你提高 PyTorch 技能。


          PyTorch 是一種非常靈活的深度學(xué)習(xí)框架,它允許通過動態(tài)神經(jīng)網(wǎng)絡(luò)(例如利用動態(tài)控流——如 if 語句或 while 循環(huán)的網(wǎng)絡(luò))進(jìn)行自動微分。它還支持 GPU 加速、分布式訓(xùn)練以及各類優(yōu)化任務(wù),同時還擁有許多更簡潔的特性。

          今年 3 月初,官方團(tuán)隊發(fā)布了 PyTorch 1.8 版本,整合了自去年 10 月 1.7 版本發(fā)布以來的 3000 多次 commit,并提供了編譯、代碼優(yōu)化、科學(xué)計算前端 API 方面的更新和新特性。值得一提的是,該版本還新增了對 AMD ROCm 的支持。

          長期以來,為了充分挖掘 PyTorch 的特性,研究人員也提出了各種各樣的小技巧,比如如何加快深度學(xué)習(xí)模型訓(xùn)練的使用、訓(xùn)練完模型以后如何保存模型、如何使用多卡訓(xùn)練以及如何在訓(xùn)練過程中讓學(xué)習(xí)率進(jìn)行衰減等。這些小技巧或多或少都可以提升 PyTorch 的使用效率。

          近日,reddit 出現(xiàn)了一個關(guān)于 PyTorch 使用技巧的帖子:「PyTorch 的七個實用技巧」,還提供了相關(guān)示例,引發(fā)網(wǎng)友熱議。


          7 個技巧提升 PyTorch 技能

          發(fā)帖人總結(jié)了 7 個有助于提升 PyTorch 使用技能的技巧。這些技巧都是發(fā)帖人經(jīng)常出錯或者忘記的內(nèi)容總結(jié)。此外,發(fā)帖人還在 Colab 上展示了一些應(yīng)用示例和視頻講解。


          1、在目標(biāo)設(shè)備上使用 device 參數(shù)直接創(chuàng)建 tensors;

          2、使用 Sequential 層獲得更干凈的代碼;

          3、不要列出層 list,因為不會被 nn.Module 類正確注冊。相反,應(yīng)該將 list 作為未打包的參數(shù)傳遞到 Sequential 層中;

          4、PyTorch 為 distributions 提供了一些很棒的對象和函數(shù),但它們在 torch.distribution 中沒有得到充分利用;

          5、當(dāng)在兩個 epoch 之間存儲張量指標(biāo)時,確保調(diào)用. detach() 以避免內(nèi)存泄漏;

          6、使用 torch.cuda.empty_cache() 清除 GPU 緩存,如果你想在使用 notebook 時刪除并重新創(chuàng)建一個大模型,這很有用;

          7、在開始測試之前,不要忘了調(diào)用 model.eval()。


          以下兩個示例分別為技巧 6 和技巧 7 的代碼示例:

          技巧 6:從 GPU 刪除模型示例。

          技巧 7:在測試之前,調(diào)用 eval()。

          網(wǎng)友評價

          上述 7 個 PyTorch 使用技巧,網(wǎng)友也給出了自己的評價。一位用戶評論道:「即使我用 PyTorch 工作了多年,現(xiàn)在我仍然忘記調(diào)用 eval(),我發(fā)誓?!?/span>


          還有用戶表示:「為什么不使用 nn.Sequential?出于研究目的,我經(jīng)常需要檢查特定層的情況,例如,檢查權(quán)重、梯度、激活,甚至有條件地執(zhí)行一些代碼。在 nn.ModuleList 中執(zhí)行這些操作非常直觀,因為只需將所有層都像數(shù)組的元素一樣對待,然后使用 split 分割數(shù)組索引 [i:j],這樣會更好。」


          還有用戶表示:「謝謝分享,這些看起來非常有用。我通過復(fù)現(xiàn)工作中經(jīng)常使用的常見模型來深入了解 PyTorch,例如邏輯回歸、決策樹等。(但我們現(xiàn)在還沒有使用 DL 的示例。)你們了解 PyTorch 中關(guān)于 ML 的一些好的資源嗎,比如,你可以在 sklearn 中做的事情?」


          最后,雖然發(fā)帖人強調(diào)了這 7 個技巧是 ta 自己經(jīng)常犯錯或者忘記的內(nèi)容。不過,這些技巧或許依然適用于你。

          Colab 示例地址:https://colab.research.google.com/drive/15vGzXs_ueoKL0jYpC4gr9BCTfWt935DC?usp=sharing

          參考鏈接:
          https://www.reddit.com/user/SlickBlueML/
          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕日产乱码中 | 最新草比视频网站 | 亚洲AV无码成人精品一区 | 欧美黑人操逼视频 | 日韩尤物在线播放 |