首页 > 解决方案 > 如何使用 CNN 层应用高级激活层?

问题描述

我尝试将 ReLU 和 PReLU 与 CNN 层一起应用来比较结果,并尝试了以下代码:

使用 ReLU:

model.add(Conv1D(filters, kernel_size, activation='relu'))

使用 PReLU:

model.add(Conv1D(filters, kernel_size))
model.add(PReLU())

Conv1D 层是否使用 PReLU 作为激活函数?

我怀疑是因为我打印了模型摘要,它显示了具有不同数量参数的 CNN 和 PReLU 之间的单独层,同时具有 ReLU 函数的 CNN 层它们在同一层中。

在此处输入图像描述

如果我使用了错误的代码,我该如何更正它?

标签: tensorflowkerasneural-networkconv-neural-network

解决方案


根据keras 文档

这将是等效的

model.add(Dense(64))
model.add(Activation('tanh'))

对这个

model.add(Dense(64, activation='tanh'))

不知道为什么一定要用高级激活函数作为层,而 PReLu 可以和 CNN 一起使用,完全没有问题。


推荐阅读