[文章推薦] 深度學習框架(Frameworks)簡史:TensorFlow 與 PyTorch 的前世今生(簡中)
「深度学习框架简史:TF和PyTorch双头垄断,未来十年迎来黄金时期」
網址: https://bit.ly/37niIM8
----------
今天想要分享給大家的,雖然不是什麼了不起的文章。不過我覺得對於想知道「TensorFlow、PyTorch」這兩個深度學習框架的朋友,應該有一定程度的幫助。所以還是轉念分享給大家!
「深度學習」已經是人工智慧領域裡,很熱門的一個學科。它可以幫助你把「照片」、「文章」這些「非結構化資料」,自動抽取其特徵,然後送入神經網路裡面去學習、進而變成一個成熟的「神經網路模型」,持續辨認、分類相似的照片與文章。
在 2016 年之前,你想寫一個神經網路模型,得經過重重磨難,學習微積分、梯度...等大量數學概念後,才有辦法做到。但 2016 年 TensorFlow、PyTorch 橫空出世,讓撰寫一個神經網路模型,只要短短十行左右的程式碼,接著就是把資料集丟入寫好的程式碼就可以了。什麼偏微分、梯度下降...等數學或最佳化演算法,TensorFlow 或 PyTorch 都可以幫你搞定。
經過 2016~2020 四年的神經網路框架戰國時代,目前 TensorFlow 與 PyTorch 儼然已經成為神經網路框架的雙霸主。對於初學者,大部分的書籍都會推薦你去學 TensorFlow(嚴格來說,是架構在 TensorFlow 上面的另一個更簡單的框架 Keras)。但對於已經有經驗的神經網路工程師,則偏好 PyTorch 的靈活與可控制性。
拿個不太精確的比喻來說,TensorFlow 像手排車,架構在 TensorFlow 之上的 Keras 像是自排車。而 PyTorch 就像手自排。真正的賽車好手,可能會硬杠 TensorFlow(手排)。而一般民眾,可能會喜歡 Keras(自排)。但是介於「賽車手」與「一般民眾」之間的「發燒車友」,就會喜歡 PyTorch(手自排)。
如果您也想稍微了解一下深度學習框架的來龍去脈,不妨參考一下這篇文章。說不定會得到更多關鍵字,讓你能在 Google 上找到更多你想學習的深度框架細節喔~
希望今天的分享大家會喜歡!祝福大家收穫多多喔!
PS: 本文歡迎轉發、按讚、留言鼓勵我一下!您的隻字片語,都是讓我繼續提供好物的動力喔!
--------
看更多的紀老師,學更多的程式語言:
● YOTTA Python 課程購買: https://bit.ly/2k0zwCy
● YOTTA 機器學習 課程購買: https://bit.ly/30ydLvb
● Facebook 粉絲頁: https://goo.gl/N1z9JB
● YouTube 頻道: https://goo.gl/pQsdCt
如果您覺得這個粉絲頁不錯,請到「評論區」給我一個好評喔!
https://www.facebook.com/pg/teacherchi/reviews/
「keras念法」的推薦目錄:
- 關於keras念法 在 紀老師程式教學網 Facebook
- 關於keras念法 在 蕭瑟寡人 Facebook
- 關於keras念法 在 DeepBelief.ai 深度學習 Facebook
- 關於keras念法 在 Re: [請益] 畢業生vs非本科系差在哪? - 看板Soft_Job 的評價
- 關於keras念法 在 Keras #6 CNN 卷积神经网络(教学教程tutorial) - YouTube 的評價
- 關於keras念法 在 TensorFlow 怎麼唸?|工程師一定要唸對的英文專有名詞 的評價
- 關於keras念法 在 python 發音在Youtube上受歡迎的影片介紹|2022年08月 的評價
keras念法 在 蕭瑟寡人 Facebook 八卦
【台灣的軟體工程師都跑哪裡去了?】
台灣的軟體工程師都跑哪裡去了?這是一個困擾我很多年的問題。台灣有那麼多的資訊相關科系,每年有那麼多的畢業生,但是我們公司要找軟體工程師的時候,卻總覺得很難找。我原本以為是我們公司小,所以有些軟體工程師不願意來上班,但是我問了一些在大型軟體公司工作的老闆或是高階研發主管,他們也是一直在抱怨,說很難找到好的軟體工程師。我們只是依稀的知道,有很多的軟體工程師跑到硬體公司上班去了,但究竟為什麼會這樣?我一直搞不懂,而我的那些軟體業的朋友們也搞不懂。
直到最近,我為了找軟體工程師到我們公司開發機器學習相關產品,才突然對這件事情有了更深一層的領悟。
最近機器學習 (Machine Learning) 這個議題實在太紅了,所以我就像大部分的公司老闆一樣,心裡有很強的焦慮感。我原本打算用高薪僱用一個熟悉這個領域的工程師,先來研究如何將機器學習技術應用在我們的產品上面。結果我問了一些專家,他們都說這個領域最近的發展很快,資深工程師往往反而不了解,所以要找就乾脆找一些剛畢業的、在學校學過機器學習相關課程的資訊系畢業生。
但是我們公司的在網路上刊登的求才訊息放了一個多月,一直都沒有什麼好手來應徵。我又去問了一些朋友,才知道機器學習這個議題真的實在太紅了,所以大部分剛畢業的好手都被硬體公司用高薪網羅了。
於是我就開始在網路上找資料,自己研究機器學習技術。結果我研讀了一、兩個禮拜,發覺這個領域雖然在最近有著長足的進步,但基本原理跟二、三十年前沒有什麼大改變,像是Neural Net、Convolution、Recursion、Machine Learning等等,都是我以前就很熟悉的技術與概念,感覺上就像是跟二、三十年前認識的老朋友重逢一樣,非常的親切。
於是我轉念一想,既然這些基本觀念我都懂,只是不熟悉一些新的機器學習開發工具而已,那我為什麼不花個五十萬台幣外包,請幾個資訊系在學的大學生或是研究所學生,花兩、三個月幫我們把開發環境架設起來,然後再由我們公司現有的資深軟體工程師接手就好了?而對接這個外包案的學生們來說,五十萬台幣也許是一筆大錢,但對我們公司來說,這比起我們自己花一百萬年薪請個菜鳥工程師來做開發,至少可以省五十萬台幣以上。
但想來機器學習真的是太紅了,所以過了一兩個禮拜,我們開價五十萬台幣要找人外包的事情也還是沒有進展,一直沒有辦法找到合適的人選。萬般無奈之下,我只好自己買了一本書,嘗試自己架設做機器學習產品開發所需要的軟體開發環境,像是Python,TensorFow, Keras 等等。
沒想到,我自己花不到兩個小時的時間,就很順利的把這些開發環境架設起來了。而我自己用一些零散的時間寫一些程式,居然也在兩個禮拜內取得了不少進展,至少,我們已經證明了我們原先的產品設想是可行的。
我心中得意非凡,不但在實驗上得到了很多的樂趣與成就感,同時也覺得又省下了五十萬台幣。
所以仔細想想,一個剛畢業的資訊相關科系學生,到硬體公司上班一定比來我們公司上班幸福多了。台灣大多數的硬體公司都很有錢,花得起高薪請工程師。而硬體公司的老闆通常每隔幾年就要像發燒一樣,決定大舉投資軟體業,同時接受媒體訪問,說台灣的未來在軟體,不在硬體。然後他們在網際網路剛興起的時候投資網際網路軟體公司,在APP當紅的時候轉投資APP軟體公司,在雲端運算紅的的時候轉投資雲端運算軟體,在大數據當紅的時候轉投資大數據軟體公司,而現在 AI 機器學習正紅,他們當然也要轉投資 AI 機器學習的軟體公司。
軟體工程師在大型硬體公司的軟體部門或是轉投資軟體公司工作,即使位階不高,也經常會有機會跟郭台銘、施振榮、林百里、施崇棠這種國際巨星等級的大老闆開會。在會議中隨便亂講也不會有事,因為那些硬體大老闆們通常不會懂這些軟體工程到底是在講什麼,他們只能不斷的點頭微笑,然後轉頭跟媒體記者們說,就是因為他們不懂軟體,所以更要給這些軟體工程師很大的創新與犯錯的空間。
而軟體工程師到我們這樣的中小型軟體公司上班,就只能跟我這種名不見經傳的老闆一起開會,而且對於技術的事情不能亂講。如果亂講,就算我能忍住不罵人,也很難忍住不發笑。
硬體公司的大老闆通常對軟體工程師很大方,他們給高薪,通常還會覺得很划算,因為這些軟體工程師帶來了一些他們公司原本沒有的技術,感覺上就是很厲害,邊際效益很高;而軟體公司的老闆通常對軟體工程師比較小氣,他們給薪水,通常都還要考慮軟體工程師本身的能力,他們只願意給有能力的軟體工程師高薪,而不願意給平庸的工程師高薪。
軟體工程師到硬體公司上班,就像是台灣的演員參與美國好萊塢年度大片的拍攝一樣,不但薪水高,而且就算只是擔任個小配角或臨時演員、戲份不重,也會有機會跟國際巨星說上幾句話。就算他們的演技不好,國外的觀眾也會以為華人講話的表情天生就是這樣。
而軟體工程師到軟體公司工作,就像是台灣的演員在本土連續劇中演戲一樣,就算演的是主角還是第一男配角,也沒有什麼好向親朋好友炫耀的。而如果在戲中台語發音不標準,馬上就會被導演跟觀眾罵。
當然,雖然台灣的大型硬體公司在過去三十年來不斷的投資各種軟體事業,但他們好像也從來沒有做出過什麼偉大的軟體產品,也沒有拆分出什麼偉大的軟體公司。硬體大老闆們的軟體熱,通常過了幾年就自然退燒了。現在他們早已經忘了那些關於網際網路、APP軟體的投資,而對於雲端運算與大數據好像也沒有那麼熱衷了。
於是那些到大型硬體公司上班的軟體工程師,通常在五年、十年之後就會失寵,然後就會出來找軟體公司的工作,但是他們往往期望很高的薪水,卻只能做一些很基本的軟體開發工作,他們在硬體公司工作的那些年,軟體技術往往沒有什麼長進,甚至可能退步了。而原來他們所熟悉擅長的先進技術,通常也退流行了。
找那些在大型硬體公司工作多年的軟體工程師到軟體公司工作,就像是找那些在好萊塢大片中當過臨時演員的華人回來演本土劇一樣,總會覺得哪裡怪怪的。
所以說,一切都是非常合理的。台灣許多的軟體公司找不到合適的年輕工程師,而台灣許多的軟體工程師在中年之後遇到職涯瓶頸,這都是非常合理,而且可以解釋的。
只是在這所有合理的現象之下,我還是找不到有能力的年輕軟體工程師來幫我們公司開發機器學習相關產品,我還是必須跟幾個現有的資深工程師自己搞。
這實在很不合理啊。
keras念法 在 DeepBelief.ai 深度學習 Facebook 八卦
其實我覺得並不是tensorflow殺了keras,而是keras堅守靜態圖的路線把自己堵死了,我在開發trident api時一開始在掙扎在整入tensorflow時該不該沿用keras,我後來決定棄守keras,keras對外包裝出簡潔的api,但背後代碼雜亂臃腫,若只是開發新的layer沒問題,但是要達到我希望做到讓tensorflow與pytorch共用相同api的目標鐵定是沒辦法的,尤其是涉及動態圖的功能幾乎都無法實現,所以我後來是基於tf.module為基礎整個重寫了對tensorflow的api
https://mp.weixin.qq.com/s/PqXmFPi0qdSQWu-1hOREXw
keras念法 在 Keras #6 CNN 卷积神经网络(教学教程tutorial) - YouTube 的八卦
![影片讀取中](/images/youtube.png)
本节代码: https://github.com/MorvanZhou/tutorials/blob/master/kerasTUT/6-CNN_example.py CNN 一般用来处理图片. 他在图片识别上有很多优势. ... <看更多>
keras念法 在 TensorFlow 怎麼唸?|工程師一定要唸對的英文專有名詞 的八卦
![影片讀取中](/images/youtube.png)
TensorFlow 怎麼發音?放在句子裡時該怎麼唸?在這一系列「工程師一定要唸對的英文專有名詞」的影片中,我們會從前端、後端、各種框架和服務的英文專 ... ... <看更多>
keras念法 在 Re: [請益] 畢業生vs非本科系差在哪? - 看板Soft_Job 的八卦
真的很想回一下這篇
我之前有碰過一點SVM,但因為公司想要做AI這塊,所以我就跑去念了一大堆關於
deep learning的資料,也去學了包括像是Keras和Tensorflow這樣的Framework
AI在現在真的是一個------紅海
Machine learning要上手難嗎? 把Keras blog上的範例複製加貼上,分類器就真的會動了
耶!要入門簡不簡單?! 我曾經跟我主管講,要是只是要找會讓程式動的人,那其實你去找
高中畢業的工讀生就可以了。"讓程式動"跟"知道為何會這樣"有時是天差地遠的兩件事
會跑Keras或是Tensorflow不代表完全知道甚麼叫做machine learning了
ReLu為何會比sigmoid好用?
convolution layer中的kernel怎麼來的?
Dropout為何會讓訓練的表現更好
.....
還有一大堆一大堆的問題,這些問題除了是經驗之外,更重要的就是來自於基礎的數學
本身
研究所跟資工系念的東西,前面已經有大師貼過了,這些真的是要打底練功的
(如果到了研究所還要教授教你寫程式,那真的是太廢了吧QQ)
這些基本功夫可能不會直接跟寫"程式本身有關係",可是如果要把程式寫的好,能夠有效
率的debug和為什麼,那這些基本功就絕對派得上用場了。
我在大學時也不是資工系本科的,但是在念書時需要跑大量的數值分析,然後就踏上了寫
程式這條路,自己也寫了十幾年,雖然還是弱炮一個,但是我對於資工系那些所教的基本
工卻非常的有感覺。
有時一個演算法想破頭都想不出來,翻一下演算法的書,課本上卻寫得清清楚楚的
這種事情見怪不怪,只怪自己基礎沒有打好
最後,我真的很想問原po,倘若有一種語言,你花三個月就可以輕鬆學會(無須任何背景,
而且是很輕鬆地學會),而且還可以解決一大堆複雜的演算法問題,那請問一下,等你工
作了一段時間之後,你是要如和與學了三個月的文組學店菜鳥做市場的區隔呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.11.209
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1531213869.A.277.html
... <看更多>