构建网络基础

顺序模型用的多
# Sequential按顺序构成的模型
from keras.models import Sequential
# 构建一个顺序模型
model = Sequential()

#model中添加层
#方法一
# 构建一个顺序模型
model = Sequential()
# 在模型中添加一个全连接层
# 1-10-1
model.add(Dense(units=10,input_dim=1,activation='relu'))
# model.add(Activation('tanh'))
model.add(Dense(units=1,activation='relu'))
# model.add(Activation('tanh'))
#方法二
# 创建模型
model = Sequential([
        Dense(units=200,input_dim=784,bias_initializer='one',activation='tanh',kernel_regularizer=l2(0.0003)),
        Dense(units=100,bias_initializer='one',activation='tanh',kernel_regularizer=l2(0.0003)),
        Dense(units=10,bias_initializer='one',activation='softmax',kernel_regularizer=l2(0.0003))
    ])
    
#全连接层
# Dense全连接层
from keras.layers import Dense

# 构建一个顺序模型
model = Sequential()
# 在模型中添加一个全连接层
# 1-10-1
model.add(Dense(units=10,input_dim=1,activation='relu'))
# model.add(Activation('tanh'))
model.add(Dense(units=1,activation='relu'))
# model.add(Activation('tanh'))
# 创建模型,输入784个神经元,输出10个神经元
model = Sequential([
      Dense(units=10,input_dim=784,bias_initializer='one',activation='softmax')
    ])
#卷积的层
from keras.layers import Dense,Dropout,Convolution2D,MaxPooling2D,Flatten

# 第一个卷积层
# input_shape 输入平面
# filters 卷积核/滤波器个数
# kernel_size 卷积窗口大小
# strides 步长
# padding padding方式 same/valid
# activation 激活函数
model.add(Convolution2D(
    input_shape = (28,28,1),
    filters = 32,
    kernel_size = 5,
    strides = 1,
    padding = 'same',
    activation = 'relu'
))
# 第一个池化层
model.add(MaxPooling2D(
    pool_size = 2,
    strides = 2,
    padding = 'same',
))
# 第二个卷积层
model.add(Convolution2D(64,5,strides=1,padding='same',activation = 'relu'))
# 第二个池化层
model.add(MaxPooling2D(2,2,'same'))
# 把第二个池化层的输出扁平化为1维
model.add(Flatten())
# 第一个全连接层
model.add(Dense(1024,activation = 'relu'))
# Dropout
model.add(Dropout(0.5))
# 第二个全连接层
model.add(Dense(10,activation='softmax'))
#指定优化器
#定义优化器,loss function,训练过程中计算准确率
model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy'])

#optimizer:这个可以使用keras准备好的优化器,'adam',sgd但是这些优化算法参数固定。可以自己定义
#loss:损失函数,交叉熵:'categorical_crossentropy'。均方误差:'mse'

 

posted @ 2020-08-30 09:37  yunshangyue  阅读(256)  评论(0编辑  收藏  举报