---
tags: ML
---
機器學習 入門(X 認識(O 03
===
https://hackmd.io/NKAOz3geTqijBhR9r82RZw
### 笑話開場
神探狄仁傑向妻子抱怨道:「現在天道不彰,仁道不行,我名字之中有個仁字又有何用?」妻子道:「你跟我說這個幹嘛?」神探回答:「如果我是狄傑,你會愛我嗎?」
### (簽到區)
幫我用留言功能簽到
# 複習
### 監督式學習
1. 載入資料
>csv,xlxs...
2. 建立模型
>DNN,CNN...
4. 訓練模型
>次數,時間....
5. 測試
>over fiting
### DNN
模組化輸出
# 補充
Dropout
```python=
model.add(Dropout(0.2))
```
### back propragation
# CNN
總圖

## 概念
白板->
## convolution

filter 數量?
1 filter = 1 種特徵
## max pool
降低資料大小

## Flatten
展開為一維,並接上NN
>Flatten就是攤平之後,給你百八十個參數輸入,接上全連接層的腿
## 統整

### back propragation
白板->
# 實戰
[機器學習02](https://hackmd.io/TAYAmalVTsKzzUrjLAZs_g)
https://keras.io/zh/layers/convolutional/
```python=
def load_data():#
(X_train, Y_train), (X_test, Y_test) = kr.datasets.mnist.load_data()
x_train = X_train.reshape(60000, 1, 28, 28)/255
x_test = X_test.reshape(10000, 1, 28, 28)/255
y_train = np_utils.to_categorical(Y_train)
y_test = np_utils.to_categorical(Y_test)
return (x_train, y_train), (x_test, y_test)
```
```python=
model.add(Conv2D(filters=32, kernel_size=3, input_shape=(1, 28, 28), activation='relu', padding='same'))
model.add(MaxPool2D(pool_size=2, data_format='channels_first'))
model.add(Flatten())
```
原本
```python=
cv2_imshow(x_test[i])
```
改成
```python=
cv2_imshow((x_test[i]*255).reshape(28,28))
```
filters:filter 的數量
kernel_size: kernel的大小 只設一個的話就是都一樣
activation:你知道的
padding:填充
### 儲存模型
```python=
model.save('my_model.h5')
```
### 載入模型
```python=
new_model=kr.models.load_model('my_model.h5')
new_model.summary()
los=model.evaluate(x_test,y_test)
```
## 參考
https://blog.gtwang.org/programming/keras-save-and-load-model-tutorial/
https://medium.com/@CinnamonAITaiwan/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-cnn%E5%8E%9F%E7%90%86-keras%E5%AF%A6%E7%8F%BE-432fd9ea4935