通過nn.Sequential構(gòu)造LeNet ,MXNet將自動構(gòu)造向前函數(shù),按順序執(zhí)行添加的LeNet 卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的多層神經(jīng)網(wǎng)絡(luò)。與幾乎所有其他神經(jīng)網(wǎng)絡(luò)一樣,它們都經(jīng)過了反向傳播算法的訓(xùn)練。它們的不同之處在于體系結(jié)構(gòu)。
卷積神經(jīng)網(wǎng)絡(luò)是設(shè)計用來直接從像素圖像中識別視覺模式的最小預(yù)處理。
它們能夠識別具有極端可變性的模式(例如手寫字符),并且對扭曲和簡單幾何變換具有魯棒性。
from mxnet.gluon import nnnet = nn.Sequential()#創(chuàng)建卷積神經(jīng)網(wǎng)絡(luò)net.add(#卷積層+池化層+卷積層+池化層+3個密集層,最后輸出的第二維度為10nn.Conv2D(channels=6, kernel_size=5, activation='relu'),nn.MaxPool2D(pool_size=2, strides=2),nn.Conv2D(channels=16, kernel_size=3, activation='relu'),nn.MaxPool2D(pool_size=2, strides=2),nn.Dense(120, activation="relu"),nn.Dense(84, activation="relu"),nn.Dense(10))print(net)Sequential((0): Conv2D(None -> 6, kernel_size=(5, 5), stride=(1, 1))(1): MaxPool2D(size=(2, 2), stride=(2, 2), padding=(0, 0), ceil_mode=False)(2): Conv2D(None -> 16, kernel_size=(3, 3), stride=(1, 1))(3): MaxPool2D(size=(2, 2), stride=(2, 2), padding=(0, 0), ceil_mode=False)(4): Dense(None -> 120, Activation(relu))(5): Dense(None -> 84, Activation(relu))(6): Dense(None -> 10, linear))net.initialize()#x shape:(batch_size, color_channels, height, width)x = nd.random.uniform(shape=(4,1,28,28))y = net(x)print(y.shape)print(net[0].weight.data().shape, net[5].bias.data().shape)
Sequential((0): Conv2D(None -> 6, kernel_size=(5, 5), stride=(1, 1))(1): MaxPool2D(size=(2, 2), stride=(2, 2), padding=(0, 0), ceil_mode=False)(2): Conv2D(None -> 16, kernel_size=(3, 3), stride=(1, 1))(3): MaxPool2D(size=(2, 2), stride=(2, 2), padding=(0, 0), ceil_mode=False)(4): Dense(None -> 120, Activation(relu))(5): Dense(None -> 84, Activation(relu))(6): Dense(None -> 10, linear)
)
(4, 10)
(6, 1, 5, 5) (84,)
總結(jié)
以上是生活随笔為你收集整理的mxnet基础到提高(5)-- 卷积神经网络基础(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。