# -*- coding: utf-8 -*- """ Created on Mon Aug ?2 10:16:40 2021
@author: Yang Hongyun 卷积神将网络的计算公式为: 卷积中的特征图大小计算方式有两种,分别是‘VALID’和‘SAME’,卷积和池化都适用,除不尽的结果都向上取整。 1、如果计算方式采用:padding='valid'---默认方式 N=(W-F)/S+1, 其中W为输入,F为卷积核尺寸,S为stride大小 如Input=(224,224),kernel_size=3,stride=2, 则N=(224-3)/2+1=111 2、如果计算方式采用'SAME',卷积后的特征图大小跟卷积核大小无关,只跟卷积所用的步长有关,当卷积步长是1时,卷积前后特征图大小保持不变 N=W/S。 ?默认步长stride=1 """ import tensorflow? from keras.datasets import mnist ?#数据集 from keras.layers import Dense,Dropout,Flatten,Conv2D,MaxPool2D,Input ?#神经网络层导入 from keras.models import Sequential,Model #模型类型:Sequential序列模型和Model函数模型 inputs=Input(shape=(224,224,3)) x=Conv2D(filters=32,kernel_size=3,strides=2,padding='same',activation='relu')(inputs) x=MaxPool2D(pool_size=(2,2))(x) x=Dropout(0.25)(x)
x=Conv2D(filters=64,kernel_size=(3,3),activation='relu')(x) x=MaxPool2D(pool_size=(2,2))(x) x=Dropout(0.25)(x)
x=Flatten()(x)
x=Dense(128,activation='relu')(x) x=Dropout(0.45)(x) outputs=Dense(10,activation='softmax')(x)
model=Model(input=inputs,output=outputs)
print(model.summary())
输出结果如下:
_________________________________________________________________ Layer (type) ? ? ? ? ? ? ? ? Output Shape? ? ? ? ? ? ? ? ? ? ? ? ? ? Param # ?? ================================================================= input_5 (InputLayer) ? ? ? ? (None, 224, 224, 3)? ? ? ? ? ? ? ? ?0 ? ? ? ?? _________________________________________________________________ conv2d_5 (Conv2D) ? ? ? ? ? ?(None, 112, 112, 32)? ? ? ? ? ? 896 ? ? ?? _________________________________________________________________ max_pooling2d_5 (MaxPooling2 (None, 56, 56, 32) ? ? ? ?0 ? ? ? ?? _________________________________________________________________ dropout_9 (Dropout) ? ? ? ? ?(None, 56, 56, 32)? ? ? ? ? ? ? ? ? 0 ? ? ? ?? _________________________________________________________________ conv2d_6 (Conv2D) ? ? ? ? ? ?(None, 54, 54, 64)? ? ? ? ? ? ? ?18496 ? ?? _________________________________________________________________ max_pooling2d_6 (MaxPooling2 (None, 27, 27, 64) ? ? ? ?0 ? ? ? ?? _________________________________________________________________ dropout_10 (Dropout) ? ? ? ? (None, 27, 27, 64)? ? ? ? ? ? ? ? ?0 ? ? ? ?? _________________________________________________________________ flatten_5 (Flatten) ? ? ? ? ?(None, 46656)? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ?? _________________________________________________________________ dense_9 (Dense) ? ? ? ? ? ? ?(None, 128)? ? ? ? ? ? ? ? ? ? ? ? ?5972096 ?? _________________________________________________________________ dropout_11 (Dropout) ? ? ? ? (None, 128)? ? ? ? ? ? ? ? ? ? ? ? ? ?0 ? ? ? ?? _________________________________________________________________ dense_10 (Dense) ? ? ? ? ? ? (None, 10)? ? ? ? ? ? ? ? ? ? ? ? ? ? 1290 ? ? ? ================================================================= Total params: 5,992,778 Trainable params: 5,992,778 Non-trainable params: 0 _________________________________________________________________
|