如何使用 AutoKeras 进行分类和回归

AutoML 指的是自动为给定数据集发现最佳性能模型的技术。

当应用于神经网络时,这涉及到发现模型架构和训练模型所用的超参数,通常称为神经架构搜索

AutoKeras 是一个用于对深度学习模型执行 AutoML 的开源库。搜索是通过所谓的 Keras 模型,使用 TensorFlow 的 tf.keras API 来进行的。

它提供了一种简单有效的方法,可以自动为各种预测建模任务找到表现最佳的模型,包括表格数据或所谓的结构化分类和回归数据集。

在本教程中,您将了解如何使用 AutoKeras 为分类和回归任务找到优秀的神经网络模型。

完成本教程后,您将了解:

  • AutoKeras 是 AutoML 在深度学习中的一种实现,它使用神经架构搜索。
  • 如何使用 AutoKeras 为二分类数据集找到表现最佳的模型。
  • 如何使用 AutoKeras 为回归数据集找到表现最佳的模型。

让我们开始吧。

  • 更新于 2020 年 9 月:更新了 AutoKeras 版本和安装说明。
How to Use AutoKeras for Classification and Regression

如何使用 AutoKeras 进行分类和回归
图片由 kanu101 提供,保留部分权利。

教程概述

本教程分为三个部分;它们是:

  1. AutoKeras 用于深度学习
  2. AutoKeras 用于分类
  3. AutoKeras 用于回归

AutoKeras 用于深度学习

自动化机器学习(简称 AutoML)是指为预测建模问题自动寻找数据准备、模型和模型超参数的最佳组合。

AutoML 的好处在于,它能让机器学习从业者以极少的输入快速有效地解决预测建模任务,例如“即插即用”。

自动化机器学习(AutoML)已成为一个非常重要的研究课题,机器学习技术得到了广泛应用。AutoML 的目标是让机器学习背景知识有限的人能够轻松使用机器学习模型。

Auto-keras:一个高效的神经架构搜索系统,2019。

AutoKeras 是 AutoML 在深度学习模型中的一种实现,它使用了 Keras API,特别是 TensorFlow 2 提供的 tf.keras API

它通过搜索神经网络架构的过程来最好地解决建模任务,这通常被称为 神经架构搜索,简称 NAS。

…我们开发了一个广泛采用的开源 AutoML 系统,基于我们提出的方法,名为 Auto-Keras。它是一个开源的 AutoML 系统,可以本地下载和安装。

Auto-keras:一个高效的神经架构搜索系统,2019。

秉承 Keras 的精神,AutoKeras 为不同任务(如图像分类、结构化数据分类或回归等)提供了易于使用的接口。用户只需指定数据位置和要尝试的模型数量,即可获得在数据集上表现最佳(在配置的约束下)的模型。

注意:AutoKeras 提供的是 TensorFlow 2 Keras 模型(例如 tf.keras),而不是独立的 Keras 模型。因此,该库假定您已安装 Python 3 和 TensorFlow 2.3.0 或更高版本。

在撰写本文时,您需要一个名为 keras-tuner 的先决库,需要手动安装。您可以按如下方式安装此库:

如果情况再次发生变化,正如快速发展的开源项目经常发生的那样,请在此处查看官方安装说明。

现在我们可以安装 AutoKeras。

要安装 AutoKeras,您可以使用 Pip,如下所示:

您可以按如下方式确认安装成功并查看版本号:

您应该会看到类似以下的输出:

安装完成后,您就可以应用 AutoKeras 为您的预测建模任务找到一个好的或优秀神经网络模型。

我们将研究两个您可能希望使用 AutoKeras 的常见示例:分类和表格数据上的回归,即所谓的结构化数据。

AutoKeras 用于分类

AutoKeras 可用于为表格数据上的分类任务发现一个好的或优秀模型。

回顾一下,表格数据是指那些由行和列组成的数据集,例如您在电子表格中看到的表格或数据。

在本节中,我们将为海滩分类数据集开发一个模型,用于将海滩声呐返回分类为岩石或水雷。该数据集包含 208 行数据,60 个输入特征,以及目标类别标签 0(岩石)或 1(水雷)。

通过重复 10 折交叉验证,一个朴素模型可以达到约 53.4% 的分类准确率,这提供了一个下限。一个好的模型可以达到约 88.2% 的准确率,这提供了一个上限。

你可以在此处了解更多关于此数据集的信息:

无需下载数据集;我们将在示例中自动下载。

首先,我们可以下载数据集并将其划分为随机选择的训练集和测试集,其中 33% 用于测试,67% 用于训练。

完整的示例如下所示。

运行示例后,会先下载数据集并汇总形状,显示预期的行数和列数。

数据集随后被分割为输入和输出元素,然后这些元素被进一步分割为训练集和测试集。

我们可以使用 AutoKeras 为此数据集自动发现一个有效的神经网络模型。

这可以通过使用 StructuredDataClassifier 类并指定要搜索的模型数量来实现。这定义了要执行的搜索。

然后,我们可以使用加载的数据集执行搜索。

这可能需要几分钟,并会报告搜索进度。

接下来,我们可以在测试数据集上评估模型,以了解它在新数据上的表现。

然后,我们使用该模型对新行数据进行预测。

我们可以检索最终模型,该模型是 TensorFlow Keras 模型的实例。

然后,我们可以总结模型的结构,看看选择了什么。

最后,我们可以将模型保存到文件中以供将来使用,该模型可以使用 TensorFlow 的 load_model() 函数进行加载。

总而言之,下面列出了使用 AutoKeras 为海滩数据集找到有效神经网络模型的完整示例。

运行示例将报告大量关于搜索进度的调试信息。

模型和结果都保存在您当前工作目录中的一个名为“structured_data_classifier”的文件夹中。

表现最佳的模型随后在保留的测试数据集上进行评估。

注意:由于算法或评估程序的随机性,或数值精度的差异,您的结果可能会有所不同。请考虑运行示例几次并比较平均结果。

在这种情况下,我们可以看到该模型实现了约 82.6% 的分类准确率。

接下来,将报告表现最佳模型的架构。

我们可以看到一个带有两个隐藏层、dropout 和 ReLU 激活的模型。

AutoKeras 用于回归

AutoKeras 也可以用于回归任务,即预测数值的预测建模问题。

我们将使用汽车保险数据集,该数据集涉及根据索赔总数预测索赔总付款。该数据集有 63 行,一个输入变量和一个输出变量。

通过重复 10 折交叉验证,一个朴素模型可以达到约 66 的平均绝对误差 (MAE),这为预期性能提供了一个下限。一个好的模型可以达到约 28 的 MAE,这为性能提供了一个上限。

您可以在此处了解有关此数据集的更多信息:

我们可以加载数据集并将其分割为输入和输出元素,然后是训练集和测试集。

完整的示例如下所示。

运行示例后,将加载数据集,确认行数和列数,然后将数据集分割为训练集和测试集。

可以使用 StructuredDataRegressor 类将 AutoKeras 应用于回归任务,并配置要试验的模型数量。

然后可以像在分类情况下一样运行搜索并保存最佳模型。

然后,我们可以使用表现最佳的模型,在保留的数据集上对其进行评估,对新数据进行预测,并总结其结构。

总而言之,下面列出了使用 AutoKeras 为汽车保险数据集发现有效神经网络模型的完整示例。

运行示例将报告大量关于搜索进度的调试信息。

模型和结果都保存在您当前工作目录中的一个名为“structured_data_regressor”的文件夹中。

表现最佳的模型随后在保留的测试数据集上进行评估。

注意:由于算法或评估程序的随机性,或数值精度的差异,您的结果可能会有所不同。请考虑运行示例几次并比较平均结果。

在这种情况下,我们可以看到该模型实现了约 24 的 MAE。

接下来,将报告表现最佳模型的架构。

我们可以看到一个带有两个隐藏层和 ReLU 激活的模型。

进一步阅读

如果您想深入了解,本节提供了更多关于该主题的资源。

总结

在本教程中,您了解了如何使用 AutoKeras 为分类和回归任务找到优秀的神经网络模型。

具体来说,你学到了:

  • AutoKeras 是 AutoML 在深度学习中的一种实现,它使用神经架构搜索。
  • 如何使用 AutoKeras 为二分类数据集找到表现最佳的模型。
  • 如何使用 AutoKeras 为回归数据集找到表现最佳的模型。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

关于 如何使用 AutoKeras 进行分类和回归 的 72 条回复

  1. Ramesh Ravula 2020年9月2日晚上9:56 #

    AutoKeras/AutoML 是否会告诉您它选择了哪个神经网络算法?上面的示例没有说明它找到了哪个算法来获得最佳结果。

    • Jason Brownlee 2020年9月3日早上6:07 #

      是的,它会报告模型架构。我们在上面的教程中展示了这一点。

      • Mohammadreza 2020年9月3日晚上10:39 #

        亲爱的 Jason。
        我们可以在 1D CNN 中使用 autokeras 进行时间序列分类吗?

        • Jason Brownlee 2020年9月4日早上6:31 #

          或许可以试试看?

          • Tom 2020年10月26日早上8:14 #

            您知道如何在 autokeras 中使用 1d cnn 层吗?有这样的参数吗?
            默认情况下,autokeras 不使用 1d cnn 层来构建模型,对吗?

            谢谢你

          • Jason Brownlee 2020年10月26日早上8:51 #

            1D CNN 适用于序列预测问题,而不是简单的分类和回归。

            也许您可以在序列预测问题中使用 autokeras,我不确定——我建议您查看文档。

  2. Debashis 2020年9月3日下午5:32 #

    它是否应用了网格搜索技术,一个接一个地应用模型并找到最佳结果?

  3. Berns Buenaobra 2020年9月4日早上7:42 #

    在使用 Anaconda 安装 autokeras 时遇到问题?

    • Jason Brownlee 2020年9月4日早上8:00 #

      很遗憾听到这个消息,具体是什么问题?

  4. Rahul Dokania 2020年9月4日晚上7:20 #

    pip install git+https://github.com/keras-team/keras-tuner.git@1.0.2rc1

    需要在安装 autokeras 之前安装。

  5. dexter 2020年9月5日凌晨2:07 #

    你好,杰森,

    您是否考虑过写一篇关于 autokeras 和 rnnblock 的文章?
    https://autokeras.com/block/#rnnblock

  6. Jeff Doran 2020年9月5日早上8:53 #

    Jason,

    您可能需要更新上面的 autokeras 安装示例。当前的 autokeras 1.0.8 需要 keras-tuner 1.0.2rc1 才能成功安装。

    pip install git+https://github.com/keras-team/keras-tuner.git@1.0.2rc1
    pip install autokeras

    这直接来自 https://autokeras.com/install/

    • Jason Brownlee 2020年9月6日早上5:58 #

      谢谢 Jeff。

    • burhan rashid 2021年8月10日下午1:50 #

      谢谢 Jason 和 Jeff,我按照官方 Autokeras 教程安装时也遇到了麻烦。您的代码很有帮助。

  7. Martin 2020年9月8日晚上6:34 #

    嗨,Jason,

    AutoKeras for Classification 脚本(海滩数据集示例)出现错误。
    看起来是 TensorFlow 的问题。我有

    NotFoundError: Failed to create a NewWriteableFile: .\structured_data_classifier\trial_4d05b06e9169e134eb46fa62f3778824\checkpoints\ep… : The system cannot find the path specified.
    ; No such process [Op:SaveV2]

    我该如何解决这个问题?

    谢谢您的帮助,
    祝好,

    马丁

  8. Gilloux 2020年9月12日晚上11:01 #

    我也遇到了autokeras的一个问题。
    安装看起来没问题,并且我得到了与您“sudo pip show autokeras”完全相同的信息。
    我还尝试了按照上面的建议(keras-tuner.git@1.0.2rc1)卸载并重新安装,但无效。
    我的错误信息是:
    ImportError: cannot import name ‘StructuredDataClassifier’ from partially initialized module ‘autokeras’ (most likely due to a circular import) ….

    错误出现在脚本的第5行:“from autokeras import StructuredDataClassifier”

    有什么办法可以解决这个问题吗?

    我的配置是Windows 10。Python 3.8.3。以及像tensorflow、keras、theano等所有库在其他脚本中都能正常工作。

    谢谢 Gilles

  9. Anthony The Koala 2020年9月19日下午3:20 #

    尊敬的 Jason 博士
    * 我已经通过从源码安装来安装这些包。OK
    * 我特别遵循了安装建议 https://autokeras.com/install/,并使用了git bash命令进行安装。
    * 我遵循了评论者的建议,将输出定向到特定目录。

    背景信息 – 请跳过至此评论底部查看问题。谢谢。

    结果 – 两个程序都花费了“很长”的时间来完成。我不知道这是算法的随机性导致了不同的结果。

    第一个程序 – 将我的结果与您的结果进行比较
    我的准确率为0.783,您的准确率为0.826
    我运行了两次这个程序,准确率都低于您的模型。

    参数数量:我的3162,您的147313

    第二个程序
    我也运行了第二个程序,并比较了我的运行结果和您的运行结果。
    MAE – 我的运行结果和您的运行结果非常相似,24.663 对比 24.496

    但是参数数量差异很大。

    结论
    第一个程序,我运行了几次,准确率大约是0.77,而您的是0.8+
    在第一个程序中,参数数量的量级差异很大。

    第二个程序结果非常相似,但参数数量差异很大。

    此外
    我在命令行而不是IDE上运行了第二个程序。我注意到有CUDA信息。是的,我的GPU是NVIDIA,我没有安装CUDA软件和Python封装——我的机器将近10年了。
    此外,我只安装了不带GPU的Tensorflow。

    **问题:**
    * 第一个程序,为什么我的准确率只有 0.77+ 而你的有 0.8+?
    * 为什么我的参数数量差异如此之大?
    * 第二个程序的结果与你的相似。但参数数量差异很大。
    * 是否安装 CUDA 软件和用于 CUDA 的 TensorFlow 会使程序运行得更快?

    谢谢你,
    悉尼的Anthony

  10. Anthony The Koala 2020年9月20日 上午11:55 #

    尊敬的Jason博士,
    谢谢你,
    悉尼的Anthony

  11. Anthony The Koala 2020年9月20日 下午8:31 #

    尊敬的Jason博士,
    我对第一个涉及 StructuredDataClassifier 的程序进行了一些进一步的实验。

    在第一个示例中,你使用变量“row”进行了预测。

    我想看看使用 X_test 进行预测会发生什么。

    总而言之,无论 yhat 是浮点数还是整数,y_test 和 yhat 之间的相关性(无论是小数还是浮点数)都不算强,只有 0.62。这与模型的准确率为 0.811 形成对比。

    然而,当我们使用 X_train 进行预测时

    训练 Y 和拟合的 yhat5 之间的相关性为 0.879

    尽管 y_test 的长度是 y 的 0.33 倍,但为什么与训练集 y_train 的相关性为 0.88,而与测试集 y_test 的相关性却只有 0.62?

    谢谢你,
    悉尼的Anthony

    • Jason Brownlee 2020年9月21日 上午8:09 #

      干得不错。

      • Slava 2021年2月28日 上午8:36 #

        在 09/19/20,Anthony The Koala 指出他的准确率为 0.783(参数为 3162 个)。
        我认为以下行将有助于为结构化数据分类器提供数据
        search.fit(x=X_train, y=y_train, epochs=10)(见我下面的输出)。
        祝好,
        Slava

        我的输出
        Trial 10 Complete [00h 00m 02s]
        val_accuracy: 1.0

        Best val_accuracy So Far: 1.0
        Total elapsed time: 00h 00m 29s
        INFO:tensorflow:Oracle triggered exit
        第 1/10 纪元
        5/5 [==============================] – 1s 4ms/step – loss: 0.6745 – accuracy: 0.5618
        第 2/10 纪元
        5/5 [==============================] – 0s 4ms/step – loss: 0.6105 – accuracy: 0.7298
        第 3/10 纪元
        5/5 [==============================] – 0s 4ms/step – loss: 0.5654 – accuracy: 0.7744
        第 4/10 纪元
        5/5 [==============================] – 0s 5ms/step – loss: 0.5285 – accuracy: 0.8148
        第 5/10 纪元
        5/5 [==============================] – 0s 5ms/step – loss: 0.4966 – accuracy: 0.8148
        第 6/10 纪元
        5/5 [==============================] – 0s 3ms/step – loss: 0.4677 – accuracy: 0.8044
        第 7/10 纪元
        5/5 [==============================] – 0s 3ms/step – loss: 0.4411 – accuracy: 0.8296
        第 8/10 纪元
        5/5 [==============================] – 0s 3ms/step – loss: 0.4159 – accuracy: 0.8405
        第 9/10 纪元
        5/5 [==============================] – 0s 4ms/step – loss: 0.3914 – accuracy: 0.8611
        第 10/10 纪元
        5/5 [==============================] – 0s 3ms/step – loss: 0.3673 – accuracy: 0.8798
        INFO:tensorflow:Assets written to: ./structured_data_classifier/best_model/assets

  12. Steve 2020年9月28日 下午7:59 #

    很棒的 API,非常感谢您引起我们对这一点的关注。
    不幸的是,作者似乎排除了在此框架中使用样本权重(而 Keras 则平滑地集成了它们)的可能性。我尝试通过 **kwargs 传递权重矩阵,或者通过 TF Datasets 对象输入加权数据,但都没有成功。仔细查看 Autokeras 源代码后发现,它是故意写成不考虑样本权重的。我希望作者能在未来的版本中考虑添加此功能。或者是我遗漏了什么?

    • Jason Brownlee 2020年9月29日 上午5:34 #

      听到这个消息我很难过。

      也许可以在 github 项目上发布问题,让作者知道?

  13. Keyvan 2020年9月28日 下午8:33 #

    布朗利博士,您好,

    我正在尝试使用 Autokeras 对数据框执行回归。我想知道在分割训练集和测试集后是否需要对它们进行缩放?

    谢谢,
    Keyvan

  14. repore 2020年10月8日 下午1:59 #

    感谢您关于 autokeras 的精彩解释。我有一个关于 autokeras 搜索的模型的问题。我通过 autokeras 进行了 300 次尝试,找到了性能最佳的模型。我是否需要用我的数据集重新训练这个模型?我不知道这个模型是否可以直接用于解决我的问题。对于我的问题,我应该如何使用这个模型进行后续步骤?我在这方面是新手,所以可能问一些基础问题。期待您的回复。谢谢!

  15. Vivek Parekh 2020年10月14日 下午9:36 #

    嗨,Jason,

    我想知道如何从 Hdf5 文件中获取网络配置,因为 Autokeras 提出了一个带有自定义层的架构,那么是否可以手动重构 autokeras 提出的最佳架构?如果它使用了内置层,我们可以从 get_config() 函数中获取它,但这里是自定义层。你对此有什么想法吗?

    感谢您的精彩文章。

    • Jason Brownlee 2020年10月15日 上午6:09 #

      我不确定,也许可以自己尝试并找出解决方案。

  16. George 2020年10月22日 下午4:35 #

    嗨,Jason,
    AutoKeras 不支持 predict_proba 吗?有什么变通方法吗?
    谢谢

    • Jason Brownlee 2020年10月23日 上午6:03 #

      调用 predict(),因为它会直接返回概率。

      • George 2020年10月26日 下午4:47 #

        嗨 Jason,实际上 AutoKeras 返回的是
        [0.],
        [0.],
        [0.],
        [1.],
        [1.],
        [1.],
        [0.]
        predict() 函数返回的不是概率
        谢谢

        • Jason Brownlee 2020年10月27日 上午6:41 #

          有意思。

          • George 2020年10月30日 下午12:12 #

            是的,实际上如果我们导出模型后再进行预测,它会返回概率。
            model1.fit(x,y)
            model1.predict -> 返回类别
            model_export = model1..export_model()
            model_export.predict -> 返回概率
            谢谢

          • Jason Brownlee 2020年10月30日 下午1:23 #

            太棒了!

  17. susanne 2020年11月4日 上午12:56 #

    Jason,您好,感谢您的教程。

    能否请您帮忙解释一下,为什么我的损失值会出现 NaN?

    我尝试了所有我能在网上找到的方法,包括检查数据中的零值、对数据进行归一化、更改激活函数、更改损失函数类型,但仍然没有结果。

    谢谢你的回复。

    • Jason Brownlee 2020年11月4日 上午6:43 #

      对数据进行缩放,并确认在拟合模型之前数据确实已经缩放。
      同时确认原始数据中没有 NaN。

  18. Sivaramakrishnan S 2020年11月24日 下午5:53 #

    Jason,您好,我一直是您许多帖子的默默受益者。

    我有几个疑问,您能否帮我解答?

    1. 在使用 AutoKeras 之前是否需要对特征进行归一化,或者 AutoKeras 会自动处理?如果我在将其输入 AutoKeras 之前自己进行归一化,会对结果产生影响吗?

    2. 我有一个用例,需要预测两个目标变量(都是分类变量)。通过您的文章,我能够预测一个变量。如何使用 StructuredDataClassifier 或 AutoKeras 的任何其他方法,同时从相同的输入数据中预测两个分类变量?

    提前感谢

    • Jason Brownlee 2020年11月25日 上午6:41 #

      谢谢。

      是的,这是一个好主意。

      也许可以为每个变量尝试一个模型?
      也许可以尝试一个多输出模型?
      也许可以尝试一个模型,其中每个输出都有一个子模型头。

  19. Ali 2020年12月8日 上午9:39 #

    Jason,您好,我正在进行一个使用 Autokeras 的项目,并生成了一些很好的权重。然后,由于某种原因,我的 Ubuntu 系统崩溃了,现在,完全相同的训练权重不再产生相同的结果。结果要差得多,有什么建议吗?

    非常感谢您的所有工作,我从您那里学到了很多!

    • Jason Brownlee 2020年12月8日 上午10:11 #

      这很令人惊讶,相同的权重应该产生相同的预测。

      也许您的测试中存在 bug 或错误的假设?

      • Ali 2020年12月9日 下午12:53 #

        在崩溃之前,我已保存了所有文件和代码,因此所有代码行和权重都相同。我还保存了每个文件的预测结果副本,当前的所有结果都与我保存的有所不同。我查阅了互联网,有些人说不同的 Python 版本或某些操作系统相关的内部工作方式可能导致此问题,但没有解决方案或确切的解释。顺便说一句,我不知道这是否有帮助,但我将模型保存为 tf 模型。不过,如果您没有想法,不必回复此评论,我不想占用您的时间,再次感谢您的所有工作!

  20. Rafe3 2021年1月17日 上午5:30 #

    嗨!

    感谢您的文章,但您知道如何从贝叶斯搜索中保存最佳训练模型(估计器)吗?

    此致

    • Jason Brownlee 2021年1月17日 上午6:05 #

      模型都已保存,作为搜索的一部分。

      这在教程中有讨论。

  21. Garima 2021年5月11日 上午12:26 #

    你好,

    我们可以使用这种方法专门设计堆叠式自动编码器吗?您能否建议一种方法来为给定的数据集找到最佳自动编码器(超参数、隐藏层神经元、隐藏层数量等)?

  22. MJ Ahmad 2021年5月11日 下午12:20 #

    AutoKeras AutoModels 是否有等效的 History 回调?

  23. Solomon 2021年7月27日 上午8:03 #

    您好,能否请您在图中总结损失历史?我尝试了以下方法,但没有成功

    # 总结损失历史
    plt.title(‘Keras model loss’)
    plt.plot(clf[‘loss’])
    plt.plot(clf[‘val_loss’])
    plt.ylabel(‘loss’)
    plt.xlabel('epoch')
    plt.legend([‘training’, ‘validation’], loc=’upper right’)
    plt.show()

    请帮忙?

  24. Freya 2021年12月7日 下午8:08 #

    Jason,您好,感谢您的帖子,它给了我很大的帮助。
    但是当我尝试将模型保存为 h5 格式时,出现了错误。
    NotImplementedError: Save or restore weights that is not an instance of tf.Variable is not supported in h5, use save_format='tf' instead.
    但我尝试使用 save_format=’tf' 时,它会保存一个 tf 文件夹而不是一个文件。
    而且我不知道如何加载 tf 文件夹的模型。它和 h5 文件一样吗?

    • Adrian Tam
      Adrian Tam 2021年12月8日 上午8:05 #

      不,格式不同。但你为什么要保存 tf.Variable?它们不应该被保存。

  25. Pallavi 2021年12月31日 上午11:12 #

    嗨,Jason,
    首先,感谢您出色的教程!!!
    我只是想知道,为什么 AutoKeras 不支持对象检测任务(我在当前版本 1.0.16 中已检查过)。它也没有实现用于该任务的 HEAD?如果需要朝这个方向发展,我们需要在 AutoKeras 中实现哪些功能才能使其适用于对象检测?(例如自定义层、头、块等)。

    提前感谢。

  26. Ugur 2022年1月20日 下午7:38 #

    一如既往的精彩文章,谢谢。

    我试图理解在这里可训练和不可训练参数的含义?我总共有 19532 个参数,但其中 11 个是不可训练的。这可能意味着什么?

    • James Carmichael 2022年2月6日 下午1:10 #

      模型的不可训练参数是指在训练期间不会更新和优化的参数,必须预先定义或作为输入传递。例如:隐藏层的数量,每个隐藏层上的节点数。

  27. Ugur Kahveci 2022年1月26日 下午7:52 #

    你好,

    感谢提供宝贵的信息。我对“不可训练参数”感到好奇。我将上面的代码应用于我的示例,它显示我有 11 个不可训练的参数。这意味着什么?

  28. Flo 2022年4月28日 下午7:21 #

    大家好,我在回归问题上遇到一个奇怪的 autokeras 问题

    将我的训练数据第二次通过 predict 输入模型,我得到了非常糟糕的结果。即使在您这里的示例中也显而易见。我只是添加了它以解决绘图问题

    predictions = search.predict(X)

    miny = float(y.min())
    maxy = float(y.max())
    minp = float(min(predictions))
    maxp = float(max(predictions))
    plt.figure(figsize=(15,15))
    plt.scatter(y, predictions, c=’crimson’,s=5)
    p1 = max(maxp, maxy)
    p2 = min(minp, miny)
    plt.plot([p1, 0], [p1, 0], ‘b-‘)
    plt.xlabel(‘True Values’, fontsize=15)
    plt.ylabel(‘Predictions’, fontsize=15)
    plt.axis(‘equal’)
    plt.show()

    这似乎导致预测值在 0 到 1 之间,而真实值在 0 到 400 之间。我是否遗漏了标准化过程?

  29. Arch 2022年6月24日 下午2:28 #

    这可以应用于多输入和多输出神经网络吗?

  30. Trevin 2023年9月23日 下午2:28 #

    我一拟合模型就遇到这个错误

    module ‘numpy’ has no attribute ‘object’.
    np.object 是一个已弃用的别名,用于内置的 object。为了避免在现有代码中出现此错误,请单独使用 object。这样做不会修改任何行为,并且是安全的。
    这些别名最初在 NumPy 1.20 中被弃用;有关更多详细信息和指导,请参阅原始发布说明,网址为:
    https://numpy.com.cn/devdocs/release/1.20.0-notes.html#deprecations

    任何帮助都会很棒,谢谢!

    • James Carmichael 2023年9月24日 上午7:13 #

      你好 Trevin… 请提供您遇到错误的代码。这将更好地帮助我们为您提供协助。

Leave a Reply

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。