keras中常用类的解释

keras中用来搭建网络的方法有两种

【     

          Sequential models:这种方法用于实现一些简单的模型。你只需要向一些存在的模型中添加层就行了。

          Functional API:Keras的API是非常强大的,你可以利用这些API来构造更加复杂的模型,比如多输出模型,有向无环图等

  】

 

 

 

sequential 方法是最常见的一种搭建网络的方法,使用sequential 搭建模型的方法就是一个一个的将网络层 累加起来。

也就是说,你只要按顺序(使用add()方法)像搭积木一样,一层一层地顺序地添加网络层就可以了。

实例如下:

#  先是初始化一个model
model = Sequential()
#  add一个卷积层
model.add(Conv2D(32, (3, 3), padding='same',input_shape=x_train.shape[1:]))
#  add一个激活层
model.add(Activation('relu'))
#  同理。。。
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

 

Dense表示全连接层,此时它需要接收两个参数,即输入的节点数及输出的节点数,特别地,在一层一层地构建NN时,Keras还可以根据上一层的输出来推断下一次的输入,所以有些全连接层参数可以省略。

 

一般来说,在搭建分类网络的时候,dense 与flatten 经常搭配使用;Flatten层的实现在Keras.layers.core.Flatten()类中。

Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。


from keras.models import Sequential
from keras.layers.core import Flatten
from keras.layers.convolutional import Convolution2D
from keras.utils.vis_utils import plot_model
 
 
model = Sequential()
model.add(Convolution2D(64,3,3,border_mode="same",input_shape=(3,32,32)))
# now:model.output_shape==(None,64,32,32)
 
model.add(Flatten())
# now: model.output_shape==(None,65536)
 
plot_model(model, to_file='Flatten.png', show_shapes=True)

 

 

部分参考自: https://blog.csdn.net/program_developer/article/details/80853425

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值