Posts

If I didn't write it down, I'll forget eventually.

Setup Slurm Cluster

Slurm 是一個專門拿來做分散式平行運算的平台,已被各式超級運算電腦群集採用[1]。跟 Hadoop 其實有點像,但是我個人感覺是 Slurm 好用太多,更穩定更快速,而且不用會 Java…XD
最近剛好有機會需要建立以及管理一個 Slurm Cluster,就想說來記錄一下過程以及一些雷。

Read More...

Mac 維修小記

前陣子我的 Macbook pro 13” (2015) 出現奇怪的問題,突然一直跳出訊息叫我連接藍芽滑鼠,內建觸控板跟鍵盤完全失靈,看著電腦登入畫面我卻什麼都做不了,超級崩潰…

後來稍微多重開機試幾次發現這種狀況有時候會消失,查一下網路發現大概有幾種可能,一是主機板壞了,二是鍵盤跟滑鼠的連接到主機板的排線壞了。但是這兩種壞法修的價格可差距不少,所以我就堅信只是排線壞了(X

Read More...

Use PyTorch to solve FizzBuzz

FizzBuzz 是一個常見的程式考題,題目很簡單,就是給一個整數,如果可以被 15 整除就回傳 FizzBuzz;可以被 3 整除就回傳 Fizz;被 5 整除就回傳 Buzz;都不能整除就回傳原本的數字。

用 Python 可以簡單幾行就寫出來:

1
2
3
4
5
6
7
8
9
def fizz_buzz(num):
if num % 15 == 0:
return 'FizzBuzz'
elif num % 3 == 0:
return 'Fizz'
elif num % 5 == 0:
return 'Buzz'
else:
return str(num)

不過有狂人就把這當作分類問題,用 tensorflow 來解這個問題,原文在此,是篇很有趣的文章 XD

Read More...

搞懂 JavaScript 原型鍊

最近突然看到許多關於 js 原型鍊的介紹,這東西我從來沒搞懂過也沒認真想要搞懂過 XD
說真的好像不懂也不會影響甚麼,畢竟實戰上基本用不到這些比較底層的東西…
但是當作是邊緣冷知識來看看也是挺不錯的~

Read More...

Deep CORAL: Correlation Alignment for Deep Domain Adaptation

雖然現在可以透過 Deep neural networks 來訓練出非常強大的能力,但卻難以學到比較通用的知識,通常最後訓練出的 model 會只適合處理類似於 training data 的資料。
Domain adaption 是目前在 machine learning 比較新的問題,是希望可以讓 network 學到比較跨領域的 features ,進而使訓練出來的模型可以應用在不同 domain 的資料上。

這篇論文[1] (Deep CORAL: Correlation Alignment for Deep Domain Adaptation, B Sun, K Saenko, ECCV 2016) 提出一個 CORAL loss,通過對 source domain 和 target domain 進行線性變換來將他們各自的的二階統計量對齊 (minimizing the difference between source/target correlations).

Read More...

Using PyTorch in Windows 10

最近開始在使用 PyTorch 寫些東東,他支援 MacOS/Linux 使用,唯獨 Windows 不支援…
所以我一直都是使用 Mac 寫相關的東西。

但是我的桌機都是 Windows,在可以用桌機的環境下卻必須使用小小的 Mac 打字真的不是很高興…
正好最近從學長那邊得知有個方法可以讓 Windows 使用 PyTorch ,就趕緊來試試!

Read More...

Multi-server GPU status monitor

隨著實驗室 GPU 資源日益增加,
有越來越多人在抱怨搶不到 GPU、不知道哪台有空的 GPU 、有人佔用太多 GPU 資源等等問題,
這些問題似乎跟沒有一個方法可以「一目瞭然的知道所有 GPU 的狀況」有關。

對,就像是 cml-status 一樣,
假設有個 GPU 版的 cml-status,應該就可以讓大家更輕易地找到閒置的 GPU,如果有人佔用過多運算資源也容易發現。

於是 CMLab GPU Status 就誕生拉~

Read More...

接案三兩事

最近終於結束了一個搞了很久的 case 。
我其實沒什麼接案經驗,這次也是剛好算是學校單位找我做個活動的宣傳網站,我心想既然是學校的應該也不太容易被騙,就來試試看所謂的接案。
在這次經驗中其實也是學到不少東西、踩了很多雷,大部份都是因為沒什麼經驗導致踩到的很多很多算專案管理相關的雷。
如果還有下次的話,一定要注意一些事情才可以讓整個案子的進行更加順利。

Read More...

Coherent Line Drawing

線條藝術畫(line drawing) 是最簡單的一種視覺呈現圖畫的方式,僅僅是幾條線條即能清楚的表示出圖片中的物件。
這篇論文(Coherent Line Drawing’ by Kang et al, Proc. NPAR 2007)提出一個全自動的方法,可以將相片轉換成簡單、高品質的線條畫風格圖片。

輸入一張影像,即可產生出一張線條藝術風格畫。 輸入一張影像,即可產生出一張線條藝術風格畫。
Read More...

Panorama image stitching

全景照(panorama) 現在已普遍存在手機的相機軟體中,是一種可以拍攝數張照片然後接在一起使整個視野變更大的方法,全景照常比較常見的是往同一方向拍攝的,但也是有上下左右都全景的那種(Photo Sphere)。
以一般往同方向拍攝的一系列照片來說,要合出一張完整的全景照理論上就是將這一系列的照片重疊的部分對齊就可以了。
但實際上還是需要經過一系列的方法,才能接合出比較良好的全景照。

Read More...