首頁>技術>

下面就讓這位大佬聊聊他在 GitHub 和一位專案作者互道“你好”後聊了些什麼、搞出了什麼好玩的東西~

https://github.com/awslabs/djl

正在找增強學習的例子,然後目前全網提供的方案也沒什麼 Java 的實現和實戰專案。

https://github.com/kingyuluk/FlappyBird

該專案結構十分清晰,程式碼也很規範,我感覺自己的某些東西被觸動了。於是乎,我就給這個專案提了一個 issue:

如上圖,我打完招呼就直切主題,說明我的來意:您有沒有興趣用 DJL 做一個 RL 的憤怒小鳥,就是用深度學習框架 DJL 賦予這個小鳥“永生”,做個“不死鳥”。

二、他不理我了

FlappyBird 專案的作者叫:kingyuluk(後面就稱呼他為“K”)

Issue 是開發者之間有效的溝通手段,但我發完 issues 後,雖然 K 當時說感興趣,然後就沒然後了...過了差不多三個月,突然有一天,他回覆了這個 issue:

K 說他在用 DJL 實現的過程中遇到了問題。原來他自己悶頭去搞了,現在遇到問題才想起我!

哼~雖然等待有些難熬,但我還是開心地開始幫他看程式碼,最開始只是在這個專案裡開了一個分支,但是後來越做改的東西越多,於是作者 K 就開了一個新的專案來做這件事情。

https://github.com/kingyuluk/RL-FlappyBird

三、辦法總比困難多

我和 K 開始在新的專案進行正式開發,期間出現了各種波折和奇奇怪怪的問題:

從一開始專案跑不起來,到中間連續跑兩天都沒好效果,到最後在 GPU 上做效能最佳化改進。

眨眼兩個月時間過去了,我很多次都擔心 K 會半途而廢,放棄不做了。因為這些對於一個大三剛接觸 Java 半年的本科學生來說真的有些困難。

讓我們繼續開發下去的動力就是經過多次改動和最佳化之後,這個“笨”鳥終於能稍微變得聰明些了,但是離“不死”還差很遠。然後我就拉來了同為 DJL 維護者的 Zach 他比我更懂 RL,來幫我們:

開始幫我解決相關的效能問題並提供了一些解決思路,在他們的認真回答和熱心指導下,問題總算解決了!然後訓練就變得快的飛起,幾個小時就跑了 300 萬步,最後這個不死鳥就誕生了!

詳細的實現過程,會在本週的另外一篇文章《用 Java 訓練出“不死鳥”》細細道來~

四、故事的結尾

這個故事起於一個 “Say hi” 的 issue,結束的時候我和專案的作者成為了朋友。開源都是用課餘和休息時間,真的很容易半途而廢。

契而不捨的精神是開源必備的精神,花幾天、幾周、幾個月拼命的想把自己的開源專案做好,過程雖然很難,但是看到有人用、能夠把自己想法展示在大家面前,就會感覺很開心,便覺得一切值了。

DJL 一直致力於發掘 Java 在深度學習領域的應用。我們會經常去思考,如何更好的將深度學習和 Java 結合在一起,希望我們的付出能夠給開源社群帶來不一樣的東西!

五、HG 想說的話

做開源專案很難,做好更難,HG 願陪你一起變好。

我問 K 在收到 Lanking 大佬的 issue 時的感受,他說出乎意料,因為他覺得自己的 FlappyBird 只是一個很基礎的專案,竟然收到的來自亞馬遜大佬的關注。

其實只要你的專案能讓其它開源愛好者(大佬)看到閃光點和愛❤️,那麼他們就願意給出建議、貢獻和指導,如此以往你的技術提高只是時間問題。

10
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 類的奇幻漂流——類載入機制探秘