首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定隐层中的神经元数目进行分类

如何确定隐层中的神经元数目进行分类
EN

Data Science用户
提问于 2021-04-06 07:07:17
回答 2查看 375关注 0票数 2

利用Iris数据集进行3层神经网络分类

我决定用:

3个神经元输入,因为它有3个特征,

3个神经元输出,因为它有3个类别和

在隐藏层中,在这种情况下,最好的神经元数目是多少?

EN

回答 2

Data Science用户

发布于 2021-04-06 07:54:26

这个问题没有一个明确的答案。您应该尝试并评估模型如何执行不同的配置测试。但基本上,接下来的两个前提如下:

  • 更多的神经元每层->更复杂的模型,你可能会获得更好的准确性.
  • 更多的隐藏层->更复杂的模型,再一次,你可能会获得更好的准确性。
  • 警告两种方法都增加了模型的复杂性,从而增加了过度拟合的可能性。您需要通过统计稳健的模型选择过程来仔细评估它们,例如交叉验证。

请注意,增加模型的复杂性将增加计算过程,并且,如前所述,要小心过度拟合。

我建议先尝试少量的神经元,然后逐步增加,看看模型是否有一些改进。

票数 1
EN

Data Science用户

发布于 2021-04-06 13:35:08

为了使评估自动化,您可以使用诸如Keras Tuner https://keras-team.github.io/keras-tuner/这样的工具。

从他们的文档中,示例设置应该如下所示。

单位的最小-最大值是你为你的情况调整它的地方。

代码语言:javascript
复制
from tensorflow import keras
from tensorflow.keras import layers
from kerastuner.tuners import RandomSearch


def build_model(hp):
    model = keras.Sequential()
    model.add(layers.Dense(units=hp.Int('units',
                                        min_value=32,
                                        max_value=512,
                                        step=32),
                           activation='relu'))
    model.add(layers.Dense(10, activation='softmax'))
    model.compile(
        optimizer=keras.optimizers.Adam(
            hp.Choice('learning_rate',
                      values=[1e-2, 1e-3, 1e-4])),
        loss='sparse_categorical_crossentropy',
        metrics=['accuracy'])
    return model
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/92609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档