import d2lzh as d2l
from mxnet import nd
from mxnet.gluon import loss as gloss
#讀取資料集
batch_size=256
train_iter,test_iter=d2l.load_data_fashion_mnist(batch_size)
#定義模型引數
num_inputs,num_outputs,num_hiddens=784,10,256
w1=nd.random.normal(scale=0.01,shape=(num_inputs,num_hiddens))
b1=nd.zeros(num_hiddens)
w2=nd.random.normal(scale=0.01,shape=(num_hiddens,num_outputs))
b2=nd.zeros(num_outputs)
params=[w1,b1,w2,b2]
for param in params:
param.attach_grad()
#定義啟用函式
def relu(x):
return nd.maximum(x,0)
#定義模型
def net(x):
x=x.reshape((-1,num_inputs))
h=relu(nd.dot(x,w1)+b1)
return nd.dot(h,w2)+b2
#定義損失函式
loss=gloss.softmaxcrossentropyloss()
#訓練模型
#定義模型
net=nn.sequential()
net.add(nn.dense(256,activation='relu'),nn.dense(10))
net.initialize(init.normal(sigma=0.01))
#訓練模型
多層感知機
1 單輸出多層感知機 單輸出多層感知機 圖中各變數滿足公式 假如現在有乙個樣本 x 1,x2 t 用該樣本訓練網路時,網路優化的目標為lossfun最小。lossfun是乙個關於變數w和v多元函式。網路的訓練又變成多元函式求極值的問題。求v1的梯度 同理可得v i的梯度 求w11的梯度 同理,可得w...
多層感知機
知識拓展 多層感知機就是含有至少乙個隱藏層的由全連線層組成的神經網路,且每個隱藏層的輸出通過啟用函式進行變換。多層感知機按以下方式計算輸出 多層感知機中最為重要的自然是 多層 兩個線性層復合,是不可行的,無論多少層線性層復合最後得到的結果仍然是等價於線性層。tanh函式的導數。當輸入為0時,tanh...
多層感知機MLP
關於感知機 1.什麼是感知機 perceptron 感知機是最簡單的神經網路,具備神經網路的必備要素。感知機也稱為感知器,是一種雙層神經網路,即只有輸入層和輸出層而沒有隱層的神經網路。感知機是一種二類分類的線性分類器,其輸入為例項的特徵向量,輸出為例項的類別,感知機屬於判別模型,旨在求出將訓練資料進...