搭配資料:https://github.com/fastai/courses/blob/master/deeplearning1/nbs/mnist.ipynb
MNIST
手寫數字資料集,每個數字解析度都相同,固定為 28 x 28 的大小,ML界中的"Hello World!"在 keras 中的匯入方式很簡單
```
from keras.datasets import mnist
```
np.expand_dims (numpy.expand_dims)
增加"一個"指定的維度在傳入的資料上,指定維度的範圍為被操作資料維度(n)的 n+1 中
例如:傳為的資料為 2 維資料,所以可以增度的維度為 0, 1, 2
在 mnist.ipynb 中,增加第二個維度,用以代表字體的灰階
Test code: http://ec2-35-163-5-73.us-west-2.compute.amazonaws.com:8888/notebooks/workspace/%5Btest%5D%20expand_dims%20.ipynb#
# 參數1:被操作的資料(不一定要是 Array )
# 參數2:增加在那一個維度
X_test = np.expand_dims(X_test,1)```
onehot (OneHotEncoder)
簡化資料的一種手段,類似把填空變成選擇題
例如:原本的有[白天]、[晚上]兩種資料,經過 on hot encoder 後就會變為 [1,0] [0,1]
又例如,[眼睛][鼻子][嘴巴][耳朵]會轉換為[1,0,0,0][0,1,0,0][0,0,1,0][0,0,0,1]
在 mnist.ipynb 中用來轉換 0-9 的數字,數字5 就變成 [ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.]
pn.mean
求取均值,義意不明pn.std
求標準差,義意不明
Sequential
Linear stack of layers
Flatten
把Array 從多維變單維
Test code: http://ec2-35-163-5-73.us-west-2.compute.amazonaws.com:8888/notebooks/workspace/%5Btest%5D%20Flatten.ipynb
Linear model
第一層:Lambda - normalize 圖檔,每張圖的資訊為 彩度灰階 1, 寬 28, 高 28px
第二層:Flatten - 攤平圖檔資訊 1x28x28
第三層:Dense - 歸類為 10 類 ( 數字 0-9)