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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练

發布時間:2024/9/27 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 簡介
  • 適用場景

簡介

import torch torch.backends.cudnn.enabled = True torch.backend.cudnn.benchmark=True

cuDNN使用非確定性算法,并且可以使用torch.backends.cudnn.enabled = False來進行禁用

如果設置為torch.backends.cudnn.enabled =True,說明設置為使用使用非確定性算法
然后再設置:
torch.backends.cudnn.benchmark = True

所以我們經常看見在代碼開始出兩者同時設置:

torch.backends.cudnn.enabled = True torch.backends.cudnn.benchmark = True

適用場景

大部分情況下:
設置這個 flag 可以讓內置的 cuDNN 的 auto-tuner 自動尋找最適合當前配置的高效算法,來達到優化運行效率的問題。

設置?torch.backends.cudnn.benchmark=True?將會讓程序在開始時花費一點額外時間,為整個網絡的每個卷積層搜索最適合它的卷積實現算法,進而實現網絡的加速。

一般來講,應該遵循以下準則:
如果網絡的輸入數據維度或類型上變化不大,網絡結構固定(不是動態變化的),網絡的輸入形狀(包括 batch size,圖片大小尺寸,輸入的通道)是不變的,設置 torch.backends.cudnn.benchmark = true 可以增加運行效率;

benchmark模式會提升計算速度,但是由于計算中有隨機性,每次網絡前饋結果略有差異。如果想要避免這種結果波動,設置:torch.backends.cudnn.deterministic = True保證實驗的可重復性。

反之,如果網絡的輸入數據在每次 iteration 都變化的話,(例如,卷積層的設置一直變化、某些層僅在滿足某些條件時才被“激活”,或者循環中的層可以重復不同的次數),會導致 cnDNN 每次都會去尋找一遍最優配置,這樣反而會耗費更多的時間,降低運行效率。

總結

以上是生活随笔為你收集整理的pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。