人工智能:PyTorch深度學習框架
作者:郝光明
PyTorch是一個基于Torch的Python機器學習框架。它是由Facebook的人工智能研究小組在2016年開發的,解決了Torch因為使用Lua編程語言普及度不高的問題,故采用了集成非常廣泛的Python編程語言來實現。
今天給大家講解一下PyTorch深度學習框架的一些基礎知識,希望對大家理解PyTorch有一定的幫助!
1、PyTorch
PyTorch是一個基于Torch的Python機器學習框架。它是由Facebook的人工智能研究小組在2016年開發的,解決了Torch因為使用Lua編程語言普及度不高的問題,故采用了集成非常廣泛的Python編程語言來實現。
2、PyTorch常用的工具包
- torch:類似于Numpy的通用數組庫,可以在將張量類型轉換為(torch.cuda.TensorFloat)并支持在GPU上進行計算。
- torch.autograd:主要用于構建計算圖形并自動獲取漸變的包
- torch.nn:具有共同層和成本函數的神經網絡庫
- torch.optim:具有通用優化算法(如SGD,Adam等)的優化包
- torch.utils:數據載入器。具有訓練器和其他便利功能
- torch.legacy(.nn/.optim) :處于向后兼容性考慮,從 Torch 移植來的 legacy 代碼
- torch.multiprocessing:python 多進程并發,實現進程之間 torch Tensors 的內存共享
3、PyTorch特點
- 動態神經結構:PyTorch通過一種反向自動求導的技術,可以做到零延遲地任意改變神經網絡的行為,避免因為構建神經網絡完成后,如果需要調整神經網絡結構,只能從頭開始的麻煩,采用PyTorch大大節省了人力和時間成本。
- Debug調試方便:PyTorch 的設計思路是線性、直觀且易于使用的,當你執行一行代碼時,一步步去執行,不涉及異步調試的繁瑣,所以當代碼出現Bug 的時候,可以通過很方便定位代碼的位置,避免因為bug錯誤的指向或者異步和不透明的引擎造成查詢問題的麻煩。
- 代碼簡潔易懂:PyTorch的代碼相對于Tensorflow更加簡潔容易讀懂,并且PyTorch本身源代碼閱讀起來也要友好很多這樣更容易深入理解PyTorch。
- 社區活躍度高:PyTorch 擁有一個非常活躍的社區和論壇(discuss.pytorch.org)。它的文檔(pytorch.org)梳理的非常清晰,初學者入門很快;并且它與 PyTorch 版本保持同步,并提供一組完整教程。PyTorch 使用起來非常簡單,所以學習成本也就比較低。
4、PyTorch不足之處
- 可視化監控能力弱:缺少直接可用監控和可視化接口:
- 不如TensorFlow應用廣泛:PyTorch 不是端到端的機器學習開發工具;實際應用程序的開發需要將 PyTorch 代碼轉換為另一個框架,例如 Caffe2,轉換后將應用程序部署到服務器、工作站和移動設備。
責任編輯:武曉燕
來源:
IT技術分享社區