顯示具有 機器學習 標籤的文章。 顯示所有文章
顯示具有 機器學習 標籤的文章。 顯示所有文章

2016年1月28日 星期四

Deep Learning: 安裝開源函式庫TensorFlow於Python3.3+

關於Deep Learning,相關的中文網站資源非常得少,繁體的資源幾乎沒有。
讓在學習這領域的我非常地困擾和不方便。

Deep Learning的開源庫主要有兩種:
1. google 推出的 TensorFlow
2. UC Berkeley 維護的 Caffe

我因為離C太遠太久了,加上用mac後,不太用Xcode去寫C,
所以都比較偏向用Python作為接口。
但Caffe不知道為什麼安裝上一直卡住,所以暫時先擺著好了。

因為本人只是小小的MacBookAir,沒有獨顯GPU。
所以安裝TensorFlow可能也是剛剛好吧。
(TensorFlow在Mac版只支援CPU,但其在Linux版有支援GPU。)

如果已安裝好Python3.X (目前環境是3.5)以及numpy等函式庫的人,
其實安裝TensorFlow就只要一個步驟就解決了。
在Terminal下:
sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py3-none-any.whl

然後去shell command window去測試一下:
import tensorflow as tf
tf.__version__   
=> '0.6.0'

就OK了!!!!

如果要安裝在Python2.7下的話,安裝這個:
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.6.0-py2-none-any.whl

但我不知道為什麼我安裝Python2的版本會一直有問題,無法安裝上。
還好我也只用Python3.X,所以安裝不上的問題我就無視了。

關於deep learning,估狗大神最近佛心來著放上了免費的教學課程。
註冊Udacity帳號後就可以加入該課程了:

尤其Convolutional Neural Networks (CNN)在影像分類上比起以前的方法有很大的突破。
也讓deep learning成為各家科技巨擘必爭之地:
Google (Google brain and Google dream) 
Facebook (LeCun)
Baidu (Andrew Ng)

關於CNN下次再寫一個專門的介紹好了。

2015年10月12日 星期一

Python下自訂module

我最喜歡Python的地方就是可以很容易地開發自己的函式庫。
當初剛接觸matlab時,發現其可以在同一個folder下呼叫自己的函式.m檔。
真的覺得很方便開發,可以很開心的編輯自己的函式庫。
而且如果要使用從網路下載的他人開發的函式,就放在同一個folder下就行了。
不過函式.m檔的檔名必須要和函式名一樣,所以一個.m擋下可以很多個函式嗎?
我不知道,沒試過。如果可以的話就好了,不然會有好多個.m擋。

Python的module就真的很不錯。一個.py檔,裡面可以放很多的def函式。
把.py檔放在同一個folder下就可以import module。
或把.py檔放在系統的預設的路徑之中,系統就會在import時去搜尋module。

首先先看目前的工作路徑:
import os
os.getcwd()  #get current working directory

再看看系統預設的路徑有什麼:
import sys
sys.path

可以把module其.py檔的路徑增加進去:
sys.path.append('Users/david/Google Drive/Python Lab')
然後再看看sys.path有沒有真的加了進去了。
再來import該module就OK了。
不過可惜的是,新增進去後,下次再打開IDLE就沒有了。
所以退而求其次,要把module的.py檔放在sys.path的其中之一。
要怎麼把module函式庫的folder設為永久系統預設路徑之一,我目前還沒找到方法。

使用函式庫也很方便。
例如我最近試把以前的一些機器學習的演算法寫成一個ML.py檔。
只要把ML.py檔放在工作路徑下或系統預設路徑之一,就可以載入呼叫裡面的函式。

import ML
trainSet = ML.csvRead('TrainData.csv')
w = ML.LinearRegression(trainSet)

python的module對於自訂函式的開發真的蠻方便的。

我希望能逐步完成我的ML函式庫,接著LA函式庫。
https://github.com/ntudavid/ML_lab
https://github.com/ntudavid/LA_lab
https://github.com/ntudavid/CV_lab
加油!




AdaBoost演算法及其驗證

AdaBoost真的蠻厲害的,想到的人很了不起。
能想得到如此證明的步驟真的是神等級的。
連我當初花好幾天想到如何把Lemma1證到Lemma6,就被叫數學大師了。