请对您的想法添加最少的评论,以便我可以改进我的查询。谢谢。 -)
我正在研究MNIST
数据集并写一些CNN
代码。然而,我对其中的一些观点感到困惑CNN
代码。如何知道神经网络的层数?根据我目前的理解,我认为它有 6 层和 4 个隐藏层。是对的吗?如果我需要扩展到 10 层怎么办?怎么做?
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Dropout, Flatten, MaxPooling2D
model = Sequential()
model.add(Conv2D(28, kernel_size=(3,3),
input_shape = ...))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(128, activation=tf.nn.relu))
model.add(Dropout(0.2))
model.add(Dense(10, activation=tf.nn.softmax))
在计算神经网络的层数时,我们通常只计算卷积层和全连接层。池化层与卷积层一起算作一层,Dropout 是一种正则化技术,因此也不会算作单独的层。
作为参考,VGG16模式被定义为16层模型。这 16 层只是卷积层和全连接密集层。如果计算所有池化层和激活层,它将变为 41 层模型,但事实并非如此。参考:VGG16 https://in.mathworks.com/help/deeplearning/ref/vgg16.html, VGG16纸 https://arxiv.org/pdf/1409.1556.pdf
因此,根据您的代码,您有 3 层(1 个具有 28 个神经元的卷积层、1 个具有 128 个神经元的全连接层和 1 个具有 10 个神经元的全连接层)
至于使其成为 10 层网络,您可以在输出层之前添加更多卷积层或密集层,但这对于 MNIST 数据集来说不是必需的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)