%matplotlib inline
import d2lzh as d2l
from mxnet import gluon, init
from mxnet.gluon import loss as gloss, nn
在給出**之前,先介紹一下該資料集。fashion-mnist
資料集是比mnist
資料集更複雜的資料集。其中,
**如下:
batch_size =
256# root表示存放資料集的路徑
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, root=
'...'
)
net = nn.sequential(
)net.add(nn.dense(10)
)# softmax回歸輸出大小為10
net.initialize(init.normal(sigma=
0.01
))
# softmax運算和交叉熵損失函式合在乙個函式裡
# 且gluon提供的這個函式比手動實現的穩定性更好
loss = gloss.softmaxcrossentropyloss(
)
trainer = gluon.trainer(net.collect_params(),
'sgd'
,)
num_epochs =
5d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, batch_size,
none
,none
, trainer)
%matplotlib inline
import d2lzh as d2l
from mxnet import gluon, init
from mxnet.gluon import loss as gloss, nn
## 讀取資料
batch_size =
256# root表示存放資料集的路徑
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, root=
'...'
)## 定義模型並初始化
net = nn.sequential(
)net.add(nn.dense(10)
)# softmax回歸也是乙個單層全連線層,輸出大小為10
net.initialize(init.normal(sigma=
0.01))
## softmax運算和交叉熵損失函式
# softmax運算和交叉熵損失函式合在乙個函式裡
# 且gluon提供的這個函式比手動實現的穩定性更好
loss = gloss.softmaxcrossentropyloss(
)## 定義優化演算法
trainer = gluon.trainer(net.collect_params(),
'sgd',)
## 訓練模型
該電子書在「softmax回歸從0實現」部分有一些操作的小技巧,我準備也記錄在這裡。
1. 計算分類的準確率
假設y_hat
是2個樣本在3個類別的**概率**的概率分布,y
是這2個樣本的標籤類別,那麼計算準確率函式如下:
def
accuracy
(y_hat, y)
:return
(y_hat.argmax(axis=1)
== y.astype(
'float'))
.mean(
).asscalar(
)
2.
(好像沒有2了。。)
深度學習基礎系列(四) 理解softmax函式
深度學習最終目的表現為解決分類或回歸問題。在現實應用中,輸出層我們大多採用softmax或sigmoid函式來輸出分類概率值,其中二元分類可以應用sigmoid函式。而在多元分類的問題中,我們預設採用softmax函式,具體表現為將多個神經元的輸出,對映到0 1的區間中,按概率高低進行分類,各概率之...
數值問題 深度學習 Softmax
softmax函式 上溢和下溢數值穩定 s of tmax xi exi iex softmax x i frac e softma x xi i ex exi 問題 假設所有的x ix i xi 都等於某個常數c textbf c,理論上對所有x ix i xi 上式結果為1 n frac n1 ...
深度學習之softmax回歸
前言 softmax回歸 首先,我們看一下sigmod啟用函式,如下圖,它經常用於邏輯回歸,將乙個real value對映到 0,1 的區間 當然也可以是 1,1 這樣可以用來做二分類。接下來,我們再看一下softmax函式,其函式型別如下 那麼,softmax又是怎麼實現的呢?softmax把乙個...