如何设定一个N层CNN的Layer,CNN初始化

前言

目前人工智能已经融入到我们的生活,大数据模型也是层出不穷。那我们就学习一些简单的模型设置。

干货

代码

# 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
    

解释

  1. 这里面input_layer需要自己去设计,如何切数据请根据自己的情况来设置;
  2. Conv1D(x,y)函数建议x参数成倍数增长,y参数递减;
  3. 建议把每层的数据进行标准化BatchNormalization()
  4. 优于我们创建了这么多layer数据,建议随机剔除一些来避免过拟合:
    • 当x参数越来越大,建议把Dropout(rate = 【rate】) 逐渐调大,根据自己的模型来调整,个人不建议调太大;
  5. 还想加啥函数请自行调整,DL这玩意儿每个人有每个人的理解和需求;
  6. 需要导入什么库请自己搜吧,我也懒得列出来了。XD

结语

希望大家有所收获,有不明白的欢迎大家留言。

12-11 16:22