2015年12月16日 星期三

Neural network 的 forward/backward propagation (二)

修改係數 W 的流程前一篇中講了 forward propagation 的目的有二

  1. testing 階段用來猜出 label
  2. training 階段看猜出的 label 離答案多遠,藉此可以在 backward propagation 計算係數矩陣 W 要作什麼修改
這邊說明修改係數矩陣 W 的流程

Neural network 的 forward/backward propagation (一)

因為種種需要,所以重新看了一下 neural network (NN) 的教學
http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
其實這篇講的蠻清楚的
不過這邊試著自己用比較圖像、直觀的方式自己解釋一次
如果以後自己要複習的時候比較好用

2015年9月21日 星期一

攔截 dynamic library 裡面的函數 - 3

前面的文章中
Part 1 說明了如何用 LD_PRELOAD 替換掉 dynamic library 的函數
Part 2 說明了如果是 dlopen 開啟的 dynamic library 要如何處理

2015年9月20日 星期日

攔截 dynamic library 裡面的函數 - 2

Part 1 中說明了如何使用 LD_PRELOAD
攔截 link stage 階段包進去的 dynamic library
這些 library 可以夠過 ldd 看到
不過有時候 dynamic library 是透過 dlfcn.h 下的 dlopen 實現的

攔截 dynamic library 裡面的函數 - 1

這兩天從某位學弟大大學到了不少東西
主要是如何讓一個寫好的程執行檔呼叫你自己寫的 code
這好像也叫做 hook

2015年5月13日 星期三

寫 leetcode 小感想

最近偶而會找一點時間寫 leetcode 的題目
目前剛剛清空 easy 等級,正在挑戰 medium
常常看到別人提供的解答,會發現為什麼 code 可以這麼短

2015年4月30日 星期四

整數定數除法的代換 (constant integer division)

不論是 CPU 或是硬體,裡面的除法都很慢
可以的話都要避免
而對於整數的常數除法,有一些方法可以用乘法代換掉
想法很簡單,既然是整數的話只要足夠近似就行了
例如在 gcc 裡面,以下這個東西編譯出來的組合語言相當於 (x*3435973837)>>35

echo "unsigned int f(unsigned int x){return x/10;}" | g++ -S -xc - -o -
接下來說明如何在 unsigned integer 達成這件事
主要參考了 libgmp 大數運算 library 的文件

2015年4月27日 星期一

Terasic DE5-NET Altera Stratix V FPGA PCIe 使用(一)

因為某些需求
花了一個禮拜研究怎麼使用 DE5 FPGA
希望可以使用到上面的 DRAM 跟 PCIe 界面
雖然說實驗的平台是 DE5
不過應該對於 DE4, DE2 150i 等等有 PCIe 的 FPGA 都或多或少適用
標題裡面有個(一),因為我應該不會想一次打完

2015年4月17日 星期五

Linux kernel module 嘗試 (1)

因為最近說不定有機會用到 kernel driver
所以藉此看了一下基本的使用
大致研究了一下,基本上這東西一般被認為不難寫
寫起來很無聊,只要照著硬體的 spec 去呼叫就會動
會寫的人就覺得很簡單,難的是如何呼叫到正確的函數

2015年2月25日 星期三

Altera USB Blaster Linux 問題排除紀錄

Mint 17.1 安裝好 Quatrus 13.1 或是 14.1 之後
依照官網說明設定 USB 權限之後
燒錄時遇到裝置顯示 USB blaster variant,然後不能燒錄
出現 JTAG error, return code 89 的訊息
奇怪了,以前在我電腦上是可以用的啊(工程師的常用藉口)

2015年2月8日 星期日

在 Linux Mint 17.1 上面安裝 Altera OpenCL 14.1 (三)

標題怎樣不管了
這是之二
這邊整理了 Altera OpenCL 特有的一些屬性
可以對 kernel, pointer 標記一些優化用的性質
或是一些特有功能

2015年2月7日 星期六

在 Linux Mint 17.1 上面安裝 Altera OpenCL 14.1 (二)

這是之一

其實內容跟標題已經不太一樣了
本篇紀錄的是如何從無到有
使用 Altera OpenCL 的模擬模式
最少限度的重現了官方網站中 Altera 向量加法的範例
順便實驗性地嘗試 C++11 跟 glog (Google logger) 的一些功能

2015年2月5日 星期四

在 Linux Mint 17.1 上面安裝 Altera OpenCL 14.1 (一)

因為最近實驗室要買友晶的 DE5 跑 OpenCL
所以就嘗試了一下如何安裝
因為板子還沒來,所以(一)就是軟體模擬的部份(使用官網的 14.1 範例)
希望會有 (二)跟 (三)之類的