如何实现一个给定的模型到Keras?

ippsafx7  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(140)

我目前正试图重现我在文献中发现的一维CNN方法(Ullah et al., 2022)。在该出版物中,给出了以下基线模型结构:


出于测试的目的,我也想用这个模型来处理我的数据。但是,我在理解Keras文档中关于Conv1D层的内容时遇到了困难。有人能帮助我理解如何解释图像(即25x1x3的含义)并将其转换为Keras模型吗?
我目前的模型代码看起来像这样(不确定是否正确):

import keras
from keras.models import Sequential
from keras.layers import Dense, Conv1D

model = Sequential()
model.add(Conv1D(filters=25, kernel_size=3, activation='relu', input_shape=(12,1)))
model.add(Dense(25, activation='relu'))
model.add(Conv1D(50, 3, activation='relu'))
model.add(Conv1D(100, 3, activation='relu'))
model.add(Dense(2200, activation='relu'))
model.add(Dense(2, activation='relu'))
model.add(Dense(2, activation='softmax'))
gojuced7

gojuced71#

在文中,作者说:
所提出的基网络是一个深七层网络,包含3个卷积层(分别有25、50和100个核),第一个卷积层之后是激活层,两个全连接层(分别有2200和2个神经元),最后是SoftMax层,我们使用RELU作为激活函数。
因此,与您在问题中展示的模型不同,本文中的模型具有:

  • 在第一个卷积层之后没有密集层,这是您在问题中所示的模型中添加的
  • 在第二和第三卷积层中未指定激活,因此这些层保持未激活状态

25x1x3是应用于输入向量的核的大小。这意味着将25个大小为(1,3)的核应用于输入
我想这应该就是您要寻找的体系结构

import keras
from keras.models import Sequential
from keras.layers import Dense, Conv1D, Flatten

model = Sequential()
model.add(Conv1D(filters=25, kernel_size=3, activation='relu', input_shape=(12,1)))
model.add(Conv1D(50, 3))
model.add(Conv1D(100, 3))
model.add(Flatten())
model.add(Dense(2200, activation='relu'))
model.add(Dense(2, activation='relu'))
model.add(Dense(2, activation='softmax'))

相关问题