如何设定一个N层CNN的Layer,CNN初始化
前言
目前人工智能已经融入到我们的生活,大数据模型也是层出不穷。那我们就学习一些简单的模型设置。
干货
代码
python
# This is the original CNN layer setup,
def build_cnn(input_layer):
cnn = Conv1D(9,9,padding="same")(input_layer)
cnn = BatchNormalization()(cnn)
cnn = Dropout(rate = 0.05)(cnn)
cnn = Conv1D(18,7,padding="same")(cnn)
cnn = BatchNormalization()(cnn)
cnn = Dropout(rate = 0.07)(cnn)
cnn = Conv1D(36,5,padding="same")(cnn)
cnn = BatchNormalization()(cnn)
cnn = Dropout(rate = 0.1)(cnn)
cnn = Conv1D(72,3,padding="same")(cnn)
cnn = BatchNormalization()(cnn)
cnn = Dropout(rate = 0.1)(cnn)
return cnn
解释
- 这里面
input_layer
需要自己去设计,如何切数据请根据自己的情况来设置; Conv1D(x,y)
函数建议x参数成倍数增长,y参数递减;- 建议把每层的数据进行标准化
BatchNormalization()
; - 优于我们创建了这么多layer数据,建议随机剔除一些来避免过拟合:
- 当x参数越来越大,建议把
Dropout(rate = 【rate】)
逐渐调大,根据自己的模型来调整,个人不建议调太大;
- 当x参数越来越大,建议把
- 还想加啥函数请自行调整,DL这玩意儿每个人有每个人的理解和需求;
- 需要导入什么库请自己搜吧,我也懒得列出来了。XD
结语
希望大家有所收获,有不明白的欢迎大家留言。