0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习构建ML模型实践

jf_pJlTbmA9 来源:NVIDIA 作者:NVIDIA 2023-07-05 16:30 次阅读

本系列介绍 开发和部署 ( M L ) 模型。在这篇文章中,您 训练并保存 ML 模型,因此它可以作为 ML 系统的一部分部署。 第 1 部分给出了一个 ML 工作流概括 ,考虑了使用机器学习和数据科学实现商业价值所涉及的各个阶段。第 3 部分介绍 如何部署 ML 模型到 Google 云平台( GCP )。

培训一个可以作为机器学习系统一部分的模型需要了解您的数据、业务目标以及许多其他技术和组织要求。

在本文中,您创建了一个 Python 脚本,当执行该脚本时,它训练一个 ML 模型,然后将其保存以供将来使用。

首先,我强调了为应用程序训练 ML 模型时的一些重要考虑事项。

培训模型前的注意事项

从模型选择到数据集的复杂性和大小,数据从业者必须战略性地规划资源和期望的需求。在培训模型之前要考虑的因素包括:

型号的选择

解释能力

模型超参数

硬件的选择

数据大小

型号的选择

您可以使用许多类 ML 模型来解决问题。您选择的模型取决于您的用例和可能的约束。

解释能力

如果要将您的模型部署为在受监管行业(如金融或医疗保健)中运行的系统的一部分,则您的模型可能是 explainable 。这意味着,对于模型做出的任何预测,都可以说明模型做出该决定的原因。

在这种情况下,您可能希望使用易于解释的 linear regression 或 logistic regression 等模型。

模型超参数

模型具有可调超参数。了解这些超参数对应于什么以及它们如何影响模型非常重要。

根据超参数的选择,模型的性能可能会发生很大变化。

硬件的选择

大多数数据从业者都知道,模型训练通常可以在 GPU 上加速。但即使在您进入模型训练阶段之前, GPU 也可以极大地帮助您的数据科学工作流。

从预处理管道到数据探索和可视化,一切都可以加快。这有助于您更快地迭代并尝试更昂贵的计算技术。

数据大小

当处理比一个内核或机器上的内存更大的数据时,重要的是要考虑充分利用所有数据的技术。

也许使用 RAPID 等工具转移到 GPU 来加速 pandas 和 scikit-learn 风格的工作流是有意义的。或者你可能想研究一个扩展框架,比如 Dask ,它可以扩展模型训练和数据处理,无论你是在 CPU 还是 GPU 上工作。

了解数据集

在本文中,您在一个经典数据集上训练一个模型: UCI Machine Learning Repository 中的 Iris Dataset 。这个数据集包含 150 朵鸢尾花的花瓣长度和宽度以及萼片长度和宽度的记录。每个虹膜属于三种类型之一: setosa 、 virginica 或 versicolor 。

你使用这些数据来训练分类模型,目的是根据花瓣和萼片的尺寸来预测虹膜的类型。

CPU 培训

在部署 ML 模型之前,必须首先构建一个 ML 模型。首先下载流行的 Iris Dataset 。本示例假设虹膜数据集已下载并保存为当前工作目录中的iris.data。

要训练逻辑回归模型,请执行以下步骤:

阅读培训数据。

将训练数据拆分为要素和标签

将数据分成训练和测试集( 75% 是训练数据, 25% 是测试数据)。

训练 Logistic Regression 模型。

坚持训练后的模型。

import joblib
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

def run_training():
    """
    Train the model
    """
    # Read the training data
    dataset = pd.read_csv(
        filepath_or_buffer="iris.data",
        names=["sepal_length_cm", "sepal_width_cm", "petal_length_cm", "petal_width_cm", "class"]
        )

    # Split into labels and targets
    X = dataset.drop("class", axis=1).copy()
    y = dataset["class"].copy()

    # Create train and test set
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.25, random_state=26)

    # Training the model
    model = LogisticRegression(random_state=26)
    model.fit(X_train, y_train)

    # Persist the trained model
    joblib.dump(model, "logistic_regression_v1.pkl")

if __name__ == "__main__":
    run_training()

train_test_split和LogisticRegression调用中的random_state参数有助于确保该脚本每次运行时都产生相同的结果。

运行脚本会生成一个保存在文件logistic_regression_v1.pkl中的模型,您可以使用该模型根据花瓣和萼片的尺寸对其他虹膜进行分类。

GPU 加速模型训练

在本例中,您使用的是一个小数据集,仅包含 150 行数据。由于数据的简单性,该模型在 CPU 上几秒钟就能训练。

然而,在处理真实世界数据集时,模型训练成为瓶颈并不罕见。在这种情况下,通常可以通过使用 GPU 而不是 CPU 来加快工作流的模型训练阶段。

例如, RAPIDS 提供了一套开源软件工具,使数据科学家和工程师能够在 GPU 上快速运行工作负载和数据科学管道。通过模仿常见数据科学库(如pandas和scikit-learn)的 API ,您可以通过少量代码更改来加快机器学习模型训练(以及探索性数据科学)。

接下来是什么?

现在您已经有了一个经过培训的模型,可以考虑将其部署到生产环境中。在下一篇文章 Machine Learning in Practice: Deploy an ML Model on Google Cloud Platform 中,您将学习在 GCP 上部署模型的三种方法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4595

    浏览量

    101724
  • AI
    AI
    +关注

    关注

    87

    文章

    26458

    浏览量

    264072
  • 机器学习
    +关注

    关注

    66

    文章

    8126

    浏览量

    130570
收藏 人收藏

    评论

    相关推荐

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型
    的头像 发表于 01-08 09:25 361次阅读
    如何使用TensorFlow<b class='flag-5'>构建</b><b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>

    机器学习实践指南——案例应用解析

    机器学习实践指南——案例应用解析
    发表于 04-13 16:40

    eIQ软件对ML模型有何作用

    随着产品越来越复杂,具有了更强大的处理能力和更高的速度,使得机器学习ML)技术逐渐扩展到边缘应用。借助eIQ软件,现在可以非常轻松地将新的ML模型
    发表于 12-20 07:01

    什么是机器学习? 机器学习基础入门

    本文旨在为硬件和嵌入式工程师提供机器学习(ML)的背景,它是什么,它是如何工作的,它为什么重要,以及 TinyML 是如何适应的机器学习是一
    发表于 06-21 11:06

    部署基于嵌入的机器学习模型

    还需要处理模型的更新。模型更新的速度甚至可以非常高,因为模型需要定期地根据最新的数据进行再训练。  本文将描述一种更复杂的机器学习系统的一般
    发表于 11-02 15:09

    NanoEdgeAIStudio机器学习ML)技术相关资料介绍

    NanoEdge™ AI Studio(NanoEdgeAIStudio)是一种新的机器学习ML)技术,可轻松为最终用户带来真正的创新。只需几个步骤,开发人员就可以基于最少量的数据为其项目创建最佳的
    发表于 11-29 07:37

    怎样在iOS机器学习框架Core ML

    2017年的WWDC上,苹果发布了Core ML这个机器学习框架。现在,开发者可以轻松的使用Core ML机器
    发表于 09-25 15:59 0次下载
    怎样在iOS<b class='flag-5'>机器</b><b class='flag-5'>学习</b>框架Core <b class='flag-5'>ML</b>

    ML-Bench 1.0构建和分析机器学习基准

    本讲座描述了用于构建机器学习基准的分析方法。
    的头像 发表于 11-13 06:32 2257次阅读

    微软推出开源跨平台的机器学习框架 ML.NET

    微软最近推出了ML.NET,这是一个用于构建自定义机器学习库解决方案的框架。
    的头像 发表于 05-22 14:17 2688次阅读

    如何才能正确的构建机器学习模型

    组织构建一个可行的、可靠的、敏捷的机器学习模型来简化操作和支持其业务计划需要耐心、准备以及毅力。各种组织都在为各行业中的众多应用实施人工智能项目。这些应用包括预测分析、模式识别系统、自
    发表于 01-11 19:25 14次下载

    探究机器学习 (ML) 模型的性能

    机器学习 (ML) 模型的性能既取决于学习算法,也取决于用于训练和评估的数据。算法的作用已经得到充分研究,也是众多挑战(如 SQuAD、GL
    的头像 发表于 04-13 14:37 2369次阅读

    六个构建机器学习模型需避免的错误

    近年来,机器学习在学术研究领域和实际应用领域得到越来越多的关注。但构建机器学习模型不是一件简单的
    发表于 05-05 16:39 1272次阅读

    物联网结合机器学习(ML)的应用场景

    本篇博客文章介绍了物联网结合机器学习(ML)的应用场景,以及如何基于Silicon Labs(亦称“芯科科技”)的无线SoC平台展开机器学习
    的头像 发表于 06-13 16:26 1402次阅读

    如何部署ML模型到Google云平台

    实践中的机器学习:在 Google 云平台上部署 ML 模型
    的头像 发表于 07-05 16:30 425次阅读
    如何部署<b class='flag-5'>ML</b><b class='flag-5'>模型</b>到Google云平台

    开发和部署ML模型介绍

    实践中的机器学习ML 工作流
    的头像 发表于 07-05 16:30 539次阅读
    开发和部署<b class='flag-5'>ML</b><b class='flag-5'>模型</b>介绍