概述
AlexNet发布于2012年,让研究界接受了深度网络在数据特征提却中的可行性。网络有5个卷集层,3个FC层,创新点有:1)增加了卷积网络的深度,由LeNet的2个卷积层变为5个, 2)pool层使用maxpooling, 3)激活函数使用relu,4)使用dropout,5)使用了大量的数据增强预处理方法。
使用mxnet进行一下代码演示。mxnet的安装方法
pip install d2l==0.14.3
pip install -U mxnet-cu101mkl==1.6.0.post0
pip install gluoncv
创建一个AlexNet网络
from d2l import mxnet as d2l
from mxnet import np,npx
from mxnet.gluon import nn
npx.set_np()
net = nn.Sequential()
net.add(
nn.Conv2D(96, kernel_size=11, strides=4, activation='relu'),
nn.MaxPool2D(pool_size=3, strides=2),
nn.Conv2D(256, kernel_size=5, padding=2, activation='relu'),
nn.MaxPool2D(pool_size=3, strides=2),
nn.Conv2D(384, kernel_size=3, padding=1, activation='relu'),
nn.Conv2D(384, kernel_size=3, padding=1, activation='relu'),
nn.Conv2D(256, kernel_size=3, padding=1, activation='relu'),
nn.MaxPool2D(pool_size=3, strides=2),
nn.Dense(4096, activation='relu'), nn.Dropout(0.5),
nn.Dense(4096, activation='relu'), nn.Dropout(0.5),
nn.Dense(10)
)
网络的输入尺寸是224*224.
打印一下输出
x = np.random.uniform(size=(1,1,224,224))
net.initialize()
for layer in net:
x = layer(x)
print(layer.name, 't', x.shape)
conv10 (1, 96, 54, 54)
pool6 (1, 96, 26, 26)
conv11 (1, 256, 26, 26)
pool7 (1, 256, 12, 12)
conv12 (1, 384, 12, 12)
conv13 (1, 384, 12, 12)
conv14 (1, 256, 12, 12)
pool8 (1, 256, 5, 5)
dense4 (1, 4096)
dropout2 (1, 4096)
dense5 (1, 4096)
dropout3 (1, 4096)
dense6 (1, 10)
加载fashion_mnist训练数据
batch_size=128
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)
训练代码
lr, num_epochs = 0.01, 10
d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr)
在T4下训练大概20分钟就可以完成了
训练结果
loss 0.333, train acc 0.879, test acc 0.893
4200.6 examples/sec on gpu(0)
训练使用 Xavier进行网络初始化,loss为 cross-entropy,使用sgd进行优化。
最后的话:
这篇文章发布在CSDN/蓝色的杯子, 没事多留言,让我们一起爱智求真吧.我的邮箱wisdomfriend@126.com
最后
以上就是怕孤独老虎为你收集整理的计算机视觉知识点-基础网络-AlexNet的全部内容,希望文章能够帮你解决计算机视觉知识点-基础网络-AlexNet所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复