星期五。見面

程式 | 學習 | 日記 | 玩樂

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

前言

論文速速讀系列是從今年四月開始,我開始寫一些論文的中文讀書筆記,還記得第一篇是[論文速速讀]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

繼續閱讀

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

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

繼續閱讀

[Linux Kernel慢慢學]Linux modules載入及載入順序

前言

我們都知道(或是我知道),Linux modules的入口點在module_init(),透過module_init()把我們的程式掛載到kernel去。

不過有時候會看到有些module用的是late_initcall()或是arch_initcall() 這類macro,他們跟一般的module_init()又差在哪裡?

本文會透過trace linux source code介紹以下幾個概念

  1. module_init()這個macro背後做了什麼事情
  2. 不同的init macro背後的差異是什麼
  3. 怎麼透過不同的init macro來控制modules的載入先後順序,以及為何要控制載入的順序

(本文的linux code 版本為linux4.14.201)

繼續閱讀

[Linux Kernel慢慢學]likely and unlikely macro

前言

在linux kernel source code中,有時候會看到在if內的邏輯判斷加上likelyunlikely的敘述來幫助compiler做最佳化,例如下方的兩個例子,我們從linux kernel source code中找了一些部分程式碼:

45
46
47
48
49
50
51
52
53
54
55
56
static ssize_t display_show_contrast(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct display_device *dsp = dev_get_drvdata(dev);
ssize_t rc = -ENXIO;

mutex_lock(&dsp->lock);
if (likely(dsp->driver) && dsp->driver->get_contrast)
rc = sprintf(buf, "%d\n", dsp->driver->get_contrast(dsp));
mutex_unlock(&dsp->lock);
return rc;
}
139
140
141
 /* linux/drivers/video/display/display-sysfs.c, line=139 */
if (unlikely(!driver))
return ERR_PTR(ret);

到底這樣寫有什麼用呢? 又是如何幫助compiler做最佳化的?

下面將會做一些簡單的介紹

繼續閱讀

2020台灣設計展 in Hsinchu 參訪心得

2020台灣設計展 in Hsinchu

2020年的台灣設計展在新竹舉辦,不同於以往的策展方式,今年的台灣設計展是一個面向未來的非典型城市展,帶大家登入新竹市這個以「設計」導入城市治理的典範城市,讓設計翻轉城市,連結我們和城市之間的歷史記憶、空間地景和生活體驗!

這次的設計展總共分成三大展區,分別為

  • 新竹公園 Terminal Park ,我們讓設計創新迴游在公園、動物園、孔廟、體育館和兒童遊戲場之間
  • 城市步行廊道 Public Line,我們一起漫遊在城市當中,將轉運站、東門城、護城河和幸福廣場連起來
  • 舊城區 Living Museum,我們在舊城街弄中,尋找著老州廳、老市場、老戲院和州圖書館的風華

以及各種神奇又可愛的的新竹獸!





咦…我什麼時候變得可以打出這麼文青的文稿了?

沒有,這是引用官網的介紹內容~大家可以去官網看更詳細的內容(2020 台灣設計展| CHECK in HSINCHU — 人來風)

繼續閱讀

[論文速速讀]Deep Residual Learning for Image Recognition

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

前言

paper: https://arxiv.org/pdf/1512.03385.pdf

ResNet,ILSVRC 2015年的冠軍,透過有名的Residual block降低了梯度在深層時會gradient vanish的問題,成功的達到了歷代CNN model都不能到的深度(152層)。

這篇paper發表於CVPR 2016,搜尋這篇paper,會發現被cite的次數高達了57446次!

繼續閱讀

[Linux Kernel慢慢學]探討Designated Initializers

前言

在看別人c語言寫的程式碼中,有時可能會別人在struct會是array中使用到了”.”(點或是英文叫做dot)來進行初始化,例如下面這段struct student的宣告:

struct student s = {
.id = 1;
.name = "Just John";
.height = 180;
}

又或是,在linux kernel code中你可以看到一堆這樣的用法

/* drivers/clk/clk-aspeed.c */

static const struct aspeed_clk_soc_data ast2500_data = {
.div_table = ast2500_div_table,
.eclk_div_table = ast2500_eclk_div_table,
.mac_div_table = ast2500_mac_div_table,
.calc_pll = aspeed_ast2500_calc_pll,
};

可是如果沒用過的人可能就不知道這是什麼意思,然後這個偏偏又不是很好下關鍵字去google,因為”.”很容易被關聯到其他的問題,所以這篇就專門針對這個來進行介紹。

繼續閱讀

研發替代役替第九十梯-15天生存紀實-2

這篇是接續研發替代役替第九十梯-15天生存紀實-1的後半部分,如果沒看過第一篇的朋友建議先看過第一篇再回來看才銜接的上。

5天的EMT1證照(9/10-9/14)

9/14(一)

EMT1證照考試

五天的課程終於上完了,今天是EMT1的考試日。

考試總共分為學科跟術科(翻身+CPR, AED),一開始還有點擔心會記不住,不過其實不論是術科或是學科都有考前複習。尤其是學科考前複習,根本是把考試題目從頭念過一遍,所以考起來根本沒有難度xD

替歌練習

晚上的時候就是練習替歌競賽跟基本教練,說起替歌競賽,其實一開始我們的中隊長是說我們研替不用比的,結果過幾天突然改口跟我們說我們又要比了,才很匆忙的選出了替歌、道具跟動作小老師才開始練習。

在成功嶺的期間真的是覺得很瞎,似乎上面的人什麼事情都沒辦法好好決定跟傳達的感覺。

繼續閱讀

>