需要源码和数据集请点赞关注收藏后评论区留言私信~~~
典型神经网络
在深度学习的发展过程中,出现了很多经典的卷积神经网络,它们对深度学习的学术研究和工业生产斗起到了促进的作用,如VGG ResNet Inception DenseNet等等,很多实际使用的卷积神经网络都是在它们的基础上进行改进的,下面主要讨论VGG卷积神经网络
VGG-16是共16层的卷积神经网络,有大约1.38亿个网络参数
网络结构图上图所示。
输入层之后 先是2个大小为3×3 卷积核数为64 步长为1 零填充的卷积层,此时数据维度大小为224×224×64 在水平方向被拉长了,然后是一个大小为2×2的最大池化层,将数据的维度降维112×112×64 再经过2个大小为3×3 卷积核数为128 步长为1 零填充的卷积层 再一次在水平方向上被拉长 变为112×112×128
然后是一个大小为2×2的最大池化层 和3个大小为3×3 卷积核数为256 步长为1 零填充的卷积层 数据维度变为56×56×256
然后是一个大小为2×2的最大池化层 和3个大小为3×3 卷积核数为512 步长为1 零填充的卷积层 数据维度变为28×28×512
然后是一个大小为2×2的最大池化层 和3个大小为3×3 卷积核数位256 步长为1 零填充的卷积层 数据维度变为14×14×256
然后是一个大小为2×2的最大池化层 数据维度变为7×7×512
然后是1个Flatten层将数据拉平
最后是三个全连接层 节点数分别为4096 4096 1000
除最后一层全连接层采用Softmax激活函数外,所有卷积层和全连接层都采用ReLU激活函数
下面用预先训练好的模型来识别一副图片 并给出预测结果
如下图 这是我们准备识别的一张狗狗图片 目标是预测这只狗狗的类别
预测结果如下 可以图片为玩具贵宾犬的概率最大 约为0.6
部分代码如下
import tensorflow.keras.applications.vgg19 as vgg19 import tensorflow.keras.preprocessing.image as imagepre # 加载预训练模型 model = vgg19.VGG19(weights='E:\\MLDatas\\vgg19_weights_tf_dim_ordering_tf_kernels.h5', include_top=True) # 加载图片并转换为合适的数据形式 image = imagepre.load_img('116.jpg', target_size=(224, 224)) imagedata = imagepr imagedata = vgg19.preprocess_input(imagedata) prediction = model.predict(imagedata) # 分类预测 results = vgg19.decode_predictions(prediction, top=3) print(results)
创作不易 觉得有帮助请点赞关注收藏~~~