想學著自己實現乙個深度學習框架該如何入手?

時間 2021-05-11 12:32:06

1樓:hadxu

這裡安利一下去年剛讀研時候跟著陳天奇在華盛頓大學開的一門dlsys,自己跟著課程手動寫了自己的深度學習框架Thunder。

使用C++編寫無縫切換在CPU與GPU之間的資料結構實現自動求導機制Auto Grad。

編譯成動態鏈結庫,便於高階語言呼叫。

封裝底層演算法,用高階語言宣告方法。

其中比較困難的為GPU端的操作,需要熟悉CUDA程式設計,我當時將全連線實現完成後發現,對於很多深度學習庫來說卷積或者LSTM操作都是封裝在CUDNN中了,也就是呼叫一下NVIDIA的庫即可,Thunder框架也是到全連線實現完成就不再開發了,後期有時間將CUDNN的一些操作也新增進來。

2樓:一棵有思想的韭菜

自己之前做過類似練習,寫過乙個很簡陋的框架。但就算完全忘掉腦殼裡面的深度學習框架知識,自己再抽象,去實現乙個新框架,也大部分會和已有的框架概念體系重合,因為路就那麼幾條。

平時用的深度學習框架包涵很廣,gpu加速底層要和CUDA打交道,分布式多機多卡要和網路打交道,每一部分背後都是乙個team在搞。

所以自己寫的深度框架就限定在用numpy搭建網路各種層,自動微分,還有訓練評估這些功能。本質都是對權重,op做各種操作。

自己寫乙個深度學習底層框架(像tensorflow),現實嗎? 目前學習了1年深度學習理論和實踐 ?

monkeyfu 現實,你看我就寫了乙個玩兒 Seq2SeqSharp是乙個用純C 打造的基於張量 Tensor 的帶有自動求導計算圖模型的深度學習框架。基於這個框架,用C 寫神經網路可以像用Python一樣簡單。其同時支援CPU與多GPU CUDA 效能方面CPU部分主要基於Intel MKL及其...

應該如何開始學習第乙個框架?

大U哥 我雖然很少用web.py開發,但是我用我其他框架的學習經歷來回答問題。如有錯誤請指正。首先,在學些第乙個框架之前,我覺得了解清楚 WSGI 協議是很重要的,很多python流行框架都基於這個協議。http www.python.org dev peps pep 0333 接下來呢,可以按照 ...

如何勸乙個不想學習的人去學習?

劉珏烜 謝晗笑邀 別勸,隨她去 青春期的孩子是不聽勸的 尤其當大人用豐富的經驗教育ta時,更加聽不進 其實學習超好的人和你朋友本質上是沒什麼區別的 都是特別執拗 執拗到偏執的人 只是執拗的點不一樣而已 這麼說吧,學霸為了取得更好的成績,和一道道難題死磕 和乙個個知識點較勁,在自己不擅長的地方死纏爛打...