我们有一些有效的训练和测试数据作为作业 CNN1D 创建,并将结果与另一个模型进行比较以获得考试分数
我尝试过这个模型,但是我得到了 84.18 的准确度,而竞争对手模型的准确度是 84.58。我的同学也得到了和我一样的模型,他们可以改进它以获得 85.20% 的准确率。我只是被授权更改超参数或在 fusion = concate()
谁能帮我改进一下
def CNN1D ()
n_filters=256,
dropout_rate = 0.4
conv1 = Conv1D(filters=n_filters, kernel_size=3, padding='valid', name="conv1_", activation="relu")
Dropout1 = Dropout(rate=dropout_rate, name="dropOut1_")
conv2 = Conv1D(filters=n_filters, kernel_size=3, padding='valid', name="conv2_", activation="relu")
Dropout2 = Dropout(rate=dropout_rate, name="dropOut2_")
conv3 = Conv1D(filters=n_filters*2, kernel_size=3, padding='valid', name="conv3_", activation="relu")
Dropout3 = Dropout(rate=dropout_rate, name="dropOut3_")
conv4 = Conv1D(filters=n_filters*2, kernel_size=1, padding='valid', name="conv4_", activation="relu")
Dropout4 = Dropout(rate=dropout_rate,name="dropOut4_")
globPool = GlobalAveragePooling1D()
def TwoBranchModel():
num_units=256
branch1 = CNN1D()
branch2 = CNN1D()
fusion = concate()
out = tf.keras.Sequential([
Dense(num_units,activation='relu'),
BatchNormalization(),
Dense(n_classes,activation='softmax')
])
答案 0 :(得分:0)
我建议您尝试玩以下游戏
我不确定您是否可以更改以下内容(根据您的限制)
将 globalpoolaverage 更改为 maxpool
您的过滤器大小似乎是恒定的,如果开始增加过滤器的数量是个好主意。例如以 32、64、128 等开头..
移除一些 dropout 层。