舊曆年前都算今年。

工讀和兼職

交通大學社文所網站( ~ 8 月)

在大二下快結束、大約五月的時候開始接下的工讀,在今年暑假完後結束了,期間大約一年。主要的工作內容是寫從 google spreadsheet 自動更新網站內容的程式,在結束前完成了訊息公告和教師名單的頁面內容更新功能。

這個工讀是我第一個工作,並且是一次學以致用的機會。在工作過程中我做了很多研究和思考,在工作的前半年幾乎都在研究 wordpress 資料庫結構、閱讀相關技術文件,思考實作方法;後半年開始規劃程式結構和實作,而選擇使用 php 實作對我來說也是新的嘗試,因為在這之前我沒有寫過 php。我在這份工作中學到很多:練習思考潛在的問題、google 解決各種 bug 及紀錄自己實作的步驟。

感謝工作夥伴 Sean Wei,也感謝給我這份工作的 Sophi。

數位電路設計助教(2 月 ~ 6 月)

大三下接下數電助教,一開始我很興奮而且滿懷熱忱,每次 TA time 都期待有同學來問問題。但是過了幾個禮拜都沒有人來後,一開始的興奮就慢慢減淡了,後來才發現大家都是段考前和出 Lab deadline 才會來。記得很清楚有一次我解了一題大一的時候不會解的題目,解完自己還很驚訝,意識到自己這兩年還是有成長的嘛。

由於每週都有小考以及作業 lab 需要 demo,且班上有 100 多位學生,期中之後變得超忙, 即使有三個助教,我們還是忙得天翻地覆,不是改小考考卷就是改段考考卷或作業 report。感謝之前學長有留下自動評測的 script,修改一下就可以用了,省下很多時間。

期末考因為新冠肺炎的關係改成線上考,簡直是一場災難。相信很多課的助教也都很崩潰,大家都辛苦了。

即使助教工作很耗心力和時間,我很高興自己能夠幫助到同學學習,感謝教授給我當助教的機會,以及冠蓁和芷羚兩位好夥伴。

比賽(4月~7月)

記得是 3 月的時候,專題教授在實驗室群組分享了 2021 新思科技 ARC 盃 AIoT 設計應用競賽的活動。我一直有一個在大學期間參加一次團隊競賽的夢,當下的感覺就是機會來了,於是跟教授說我想參加,接著就跟實驗室的學長和同屆組成 4 人隊伍參加比賽。

參賽題目是 Adversarial Attack Detector in Self-Driving Vehicle,我負責處理訓練圖片。我寫了一兩隻 python 程式來把處理大量的圖片,之後交由 Heng-Chun Hung 和 Kyle Liu 訓練調整模型,將 pytorch model 轉成 tflite model 再轉成 c++ model.h 後,再交由 Ching-Jui Lee 放到比賽提供的 WE-I Plus 開發版上執行,非常流暢的分工。最後作品進入決賽,雖然可能是因為 latency 太大獲得評審青睞,但是在決賽中我們看到了幾個技術力很厲害的參賽隊伍,的確很佩服他們。

這段時間除了忙比賽的事情外,我最喜歡的是和實驗室的大家聊天和去 costco 買東西的時光。

感謝 Heng-Chun Hung、Kyle Liu 和 Ching-Jui Lee。

研究所申請(9月~11月)

之前印前 5 學期的成績單後就知道系排掉出 30 %,加上三下成績後又掉到 35 %,感覺推甄岌岌可危,暑假的時候買了大碩的書來讀,線代讀了半冊就覺得自己最好推甄上不要考試。推甄時只投了清大和交大的資工所,兩所都備取, 後來先備上了交大數據,之後成功轉到資工甲組。

準備備審資料的時候把大學期間做過的專案和參加過的資訊相關活動全列了出來,篩選後塞進 4 頁自傳裡,整理的時候很感謝自己大學期間做了很多事。

感謝過去三年的努力的我。

專題研究

大三上的時候參加微學分課程「深度學習硬體加速器設計」,由 Kneron CEO 劉峻誠授課,上完之後覺得很有趣,後來看到葉宗泰教授實驗室是做相關領域的,於是就決定資工專題就去他的實驗室做。前半年是和心柔做 SCALE-Sim 的驗證和延伸,結合 cacti 做不同 memory 架構的模擬,測量運行神經網路 inference 的 memory access cycle、PE usage 和 power 等數據,發現各項數據的 bottleneck 和尋找原因。這個專題做了半年,之中我覺得很有意義 是實際自己動手驗證 SCALE-sim paper 的正確性,確認論文上寫的和程式實作的計算方式是相同的,因為重現論文做法驗證其正確性是也是做研究重要的一環。

後半年改和劉育源組隊做資工專題,目標是減少深度學習模型 inference 所需的 SRAM 空間,做法是把 Tensor Splitting 概念實作在 TFLM 框架上。相較於之前微處理機實驗使用 eclipse IDE,這次是藉由 mbed OS 平台部署 TFLM 到 STM32 開發版上,並使用 pyOCD 進行除錯。我主要的貢獻是修改 TFLM Runtime Libarary 實作,繼修編譯器之後我又再一次複習了一次 OOP,還第一次自己寫 template 自己用,蠻有成就感的。

嵌入式的除錯挺麻煩的,有時候需要監看固定記憶體位置的內容,逐步看錯在哪裡,常常層層深入後忘記剛剛自己最一開始是從哪個 function 進入的。後來學會一些卡中斷點的技巧之後順利很多,也意識到自己要學的還有很多很多。

其他

修課

大四上修了一直想修的 SA 和 AAML,還有圖論概論(強迫面對自己沒學好的演算法),寫到這裡時心血來潮去學籍成績系統看了一下這學期成績,發現全 A+,把自己嚇了一跳,進大學後連 A+ 沒想過,根本沒有想過會有這麼一天,加上畢業預審結果是畢業學分已足夠,給自己一句 well done!

Side Project

暑假的時候用 pyQt 刻了一個 music player 桌面程式專門播放 DGS,整合筆記功能,後端接 Mongo DB,用得很快樂。

動機是聽 DGS 的時候想要紀錄每回的標題和內容概要,但因為想要邊聽邊記,所以只是想要在音樂播放器加上一塊區域記筆記,不太想要處理佈局設計還有寫播放功能,於是上 github 想找現成的 music player 來拆,但是找來找去自己中意的專案他們架構和功能都太複雜,像是網路連線、專輯封面或是播放清單的功能我都不需要,好不容易找到一個架構看起來比較好拆的 FeelUOwn ,本來想說只要留下視窗佈局就好,花了整個晚上拆完想說可以用了,一執行後發現一堆東西跑位,還會莫名其妙 crash,直接傻眼。於是想說與其去找 bug,不如我從頭直接刻,然後花了 3 天就生出來了。只是簡單的播放功能和筆記欄的結合,但已經很夠我用了。

未來想要增加筆記內容匯出功能,打算在這個寒假完成,等東西完整一點後也許會寫一篇 post 來紀錄。

CCCA

自從 9 月的時候就開始討論 CCCA 未來活動的籌辦,經過幾個月的討論和籌辦之後,在 1/12 辦了屬於我們的第一場活動:CCCA 職涯分享講座。這次活動除了籌備物資我也接下主持的工作,我覺得自己比去年主持 Hour of Code 時還要好很多,聲音有點抖但是不會腦內一片空白了。感謝所有參與籌備的夥伴:Jenny、Johnney、婷伃、柏宇、Terry,還有 Sophi、Jojo 和 yyc 的幫忙。希望明年社團可以慢慢茁壯起來!