星期五。見面

程式 | 學習 | 日記 | 玩樂

    [論文速速讀]系列文章介紹

前言

論文速速讀系列是從今年四月開始,我開始寫一些論文的中文讀書筆記,還記得第一篇是[論文速速讀]ReZero is All You Need: Fast Convergence at Large Depth,之後發現儘管自己已經陸續產出了幾篇文章,可是好像都沒正式的跟大家介紹這系列文章的由來xD

所以這篇文章就是來講講這系列文章到底是什麼,以及我會和會想寫這些文章。

論文速速讀系列是什麼?

由於在AI領域每年總是有一些非常重大的突破和應用,如果跟不上潮流很有可能就會錯失許多機會。例如,對NLP領域熟悉的話你一定聽過2013年的word2vec、2014年開始流行的attention、2018年的Bert…這些很有名的技術。

還記得Bert剛出的時候我好像剛進碩士實驗室,當時只知道這個技術屌打了當時一堆NLP的研究,但我想也想不到兩年後Bert已經造成如此大的影響力,一堆基於Bert的變形應用在各大領域上都取得了非常優異的結果。

因此,我想要藉由這系列的文章讓自己能夠更加快速的了解AI的新技術和研究,同時逼迫自己看論文xD

繼續閱讀

    [課程筆記]課程筆記系列總覽

本文記錄了自己在上課時所記錄的一些課程筆記,可以透過這邊文章連結到所有以往發過的課程筆記文章。

繼續閱讀

Device rebooting during deep learning training

前言

一直有個壞習慣就是看到值得一看的文章就會先加到我的最愛蒐藏起來,想說以後再看,不過總是沒有行動,日積月累下我的最愛就跟個垃圾桶沒什麼兩樣……

打這篇文章的當下本人坐在實驗室裡面,覺得剛吃飽好累喔不想做正事,所以開始清我的最愛清單,清阿清啊發現了有兩篇是之前遇到的問題,原本打算要來寫blog記錄下來的可是居然忘了,所以來寫篇廢文記錄一下順便讓自己不要那麼睏(對我來說寫blog比做正事好多了)。

問題敘述

前陣子lab server發生了一個很奇怪的現象,當有多人同時在train deep learning model的時候,可能train個一陣子server就會自動重開,一開始也不知道為什麼會這樣,不斷的透過排除法來尋找問題在哪裡,只差沒拿綠色乖乖放在server上了。後來參考下面這兩篇文章找到了問題:

繼續閱讀

[C/C++]Optimize string use: a case study閱讀筆記

文章網址: Optimize string use: a case study
Hackmd好讀版: [閱讀筆記]Optimize string use: a case study

最近真是挫折,修了C越覺得自己其實不懂C,修了OSDI的課發現越來越不懂OS…不過越是不懂就越要努力把知識補起來!
這篇是一篇介紹如何最佳化string coding(C/C++)的文章的閱讀心得&重點摘要,以及自己的一些深入研究

該篇文章很長,我也還沒看完,不過這裡記錄到了原作者的第一個最佳化case study的重點和心得。以下有著大量的文字敘述以及程式碼,請小心服用,不過看完應該能學到不少。

繼續閱讀

[論文速速讀]ReZero is All You Need: Fast Convergence at Large Depth

〖想觀看更多中文論文導讀,至[論文速速讀]系列文章介紹可以看到目前已發布的所有文章!〗

簡介

論文網址: ReZero is All You Need: Fast Convergence at Large Depth

20200310發在arXiv的論文,主要是提出了一種Residual blocks的變形,使得在深層模型的時候也能夠有效地進行back propagation,而盡量降低gradient vanish或gradient exploding的影響,並且能夠加速收斂的速度。簡單,卻很有效。

繼續閱讀

[OSDI]Qemu Emulator on Raspi3

最近在搞如何在Qemu上模擬Raspi 3,搜尋了一下發現在Qemu2.12後的內建支援raspi3,而之前的版本則需要另外設定一些東西(參考QEMU Raspberry Pi 3 support)。

繼續閱讀

2020微軟一日實習生(RDI)

87179746_3387713074578253_2576386941968711680_n

因為一些機緣報名了2020的一日微軟實習生,是一個免費體驗的活動,可以更加了解微軟實習生的資訊以及參觀微軟總部。當初是在粉絲專頁看到相關的報名資訊的,如果有其他資訊好像也都是在這裡公告。

繼續閱讀

[Linux Kernel慢慢學]Bit fields介紹

前言

之前在上一篇介紹linux kernel中build_on_zero的時候有使用到了bit fields技巧,然後我很懶的丟了一個超連結就代過了,後來越想越覺得自己對這個概念還沒是很清楚,所以痛定思痛來寫一篇介紹文順便把它搞懂。

Bit fields

bit fields是什麼?

簡單來說是可以在struct內以bit為單位來指定變數,考慮我們有一個需要紀錄4個flag的struct,如果都用bool(p.s. 題外話,c99後才在stdbool.h定義了bool這個type,我自首,我以前都沒注意…)來儲存的話則需要4*1byte = 4bytes。

但是其實每個flag只有true/false,也就是說只要一個bit來紀錄就可以了,所以我們可以用一個byte的4個bits來記錄這些flag,總共只佔了1byte。

用法如下,在struct中以冒號來指定bit field

struct bit_field_name 
{
type member_name : width;
};
繼續閱讀

>