# 層
層結構是AADeepLearning核心組建,定義層方式如下
~~~
# 網絡結構,數據將從上往下傳播
net = [
{
# 層名
"name": "convolutional_1",
# 層類型,卷積層
"type": "convolutional",
# 卷積核個數
"kernel_number": 1,
# 卷積核高
"kernel_height": 2,
# 卷積核寬
"kernel_width": 2,
# 填充數,1:在圖片最外層填充1圈0,2:填充2圈0,以此類推
"padding": 1,
# 滑動步長
"stride": 1,
# 權重初始化 gaussian/msra
"weight_init": "msra"
},
{
# 層名
"name": "relu_1",
# 層類型, 激活函數層
"type": "relu"
},
{
# 層名
"name": "pooling_1",
# 層類型,池化層
"type": "pooling",
# 模式 max(最大池化)/average(平均池化)
"mode": "max",
# 池化核高
"kernel_height": 2,
# 池化核寬
"kernel_width": 2,
# 滑動步長
"stride": 1
},
{
# 層名,無限制
"name": "flatten_1",
# 層類型,將數據展平為適合神經網絡的結構,用于輸入層或者卷積層和全連接層中間。 (60000, 1, 28, 28) ——> (784, 60000)
"type": "flatten"
},
{
# 層名
"name": "fully_connected_1",
# 層類型,全連接層
"type": "fully_connected",
# 神經元個數
"neurons_number": 256,
# 權重初始化方式 msra/xavier/gaussian
"weight_init": "msra"
},
{
# 層名
"name": "relu_2",
# 層類型(激活層) 可選,relu,sigmoid,tanh,
"type": "relu"
},
{
# 層名
"name": "fully_connected_2",
# 層類型,全連接層
"type": "fully_connected",
# 神經元個數
"neurons_number": 10,
# 權重初始化方式 msra/xavier/gaussian
"weight_init": "msra"
},
{
# 層名
"name": "softmax_1",
# 層類型,分類層,最終輸出十分類的概率分布
"type": "softmax"
}
]
~~~
> 前向傳播時:數據將從上往下傳播,例如第一層的輸出是第二層的輸入,第二層的輸出是第三層的輸入,以此類推
> 反向傳播時:數據將從下往上傳播,例如第四層的輸出是第三層的輸入,第三層的輸出是第二層的輸入,以此類推
- 序言
- 安裝
- 快速體驗
- 配置
- 層(layer)
- 展平(flatten)
- 全連接(fully connected)
- 卷積(convolutional)
- 池化(pooling)
- 標準化(batch normalization)
- 失活(dropout)
- 循環(RNN)
- 長短期記憶(LSTM)
- 激活函數(activation)
- relu
- sigmoid
- tanh
- 損失(loss)
- 交叉熵損失(softmax)
- 折頁損失(SVM或Hinge)
- 優化器(optimizer)
- 帶動量學習率自適應(adam)
- 動量(momentum)
- 學習率自適應(rmsprop)
- 隨機梯度下降(sgd)
- 模型(model)
- 保存(save)
- 載入(reload)
- 繼續訓練(continue train)
- 數據集(datasets)
- 手寫數字(mnist)
- 時尚物品(Fashion-MNIST)
- 10種物體分類(cifar10)
- 100種物體分類(cifar100)
- 電影評論情感分類(imdb)
- 路透社新聞主題分類(reuters)
- 可視化(visualization)
- 損失曲線(loss)
- 準確率曲線(accuracy)