10个实用的机器学习建议

【AI】用iOS的ML(机器学习)创建自己的AI App 在机器学习中,一切都始于模型,这是进行预测或识别的系统。教计算机学习涉及使用训练数据的机器学习算法进行学习。从训练中生成的输出通常称为机器学习模型。有不同类型的机器学习模型来解决同一个问题(例如对象识别),但使用不同的算法。是其中一些机器学习算法。 阅读详情

点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”

原文:https://medium.com/modern-nlp/10-great-ml-practices-for-python-developers-b089eefc18fc

作者:Pratik Bhavsar

导语

有时候作为一名数据科学家,我们可能会忘记自己的主要职责。我们首先是开发者,接着是研究者,最后还可能是数学家。因此,我们最重要的责任就是快速开发出一个没有错误的解决方案。

只因为我们能创建模型,并不意味着我们就是神,这不会带给我们可以写出糟糕的代码的自由。

从我开始进入这个领域,我曾经犯下很多错误,并考虑分享一些我所知道的对于机器学习工程开发中最常用的技能。在我看来,这些也是工业界目前最缺乏的一些技能。

如果必须在一个优秀的数据科学家和一个优秀的机器学习工程师中选择招聘一个,我会选择后者。

下面就开始介绍 10 个实用的机器学习建议吧。


1. 学会写抽象类

当你开始写抽象类的时候,你就知道它可以让你的代码库变得很清晰明了,它们会强制采用一样的方法和方法名字。如果同个项目有多个人参与,并且每个人都用不同方法,那会产生不必要的混乱情况。

下面是一个代码例子:

import os
from abc import ABCMeta, abstractmethod


class DataProcessor(metaclass=ABCMeta):
    """Base processor to be used for all preparation."""
    def __init__(self, input_directory, output_directory):
        self.input_directory = input_directory
        self.output_directory = output_directory

    @abstractmethod
    def read(self):
        """Read raw data."""

    @abstractmethod
    def process(self):
        """Processes raw data. This step should create the raw dataframe with all the required features. Shouldn't implement statistical or text cleaning."""

    @abstractmethod
    def save(self):
        """Saves processed data."""


class Trainer(metaclass=ABCMeta):
    """Base trainer to be used for all models."""

    def __init__(self, directory):
        self.directory = directory
        self.model_directory = os.path.join(directory, 'models')

    @abstractmethod
    def preprocess(self):
        """This takes the preprocessed data and returns clean data. This is more about statistical or text cleaning."""

    @abstractmethod
    def set_model(self):
        """Define model here."""

    @abstractmethod
    def fit_model(self):
        """This takes the vectorised data and returns a trained model."""

    @abstractmethod
    def generate_metrics(self):
        """Generates metric with trained model and test data."""

    @abstractmethod
    def save_model(self, model_name):
        """This method saves the model in our required format."""


class Predict(metaclass=ABCMeta):
    """Base predictor to be used for all models."""

    def __init__(self, directory):
        self.directory = directory
        self.model_directory = os.path.join(directory, 'models')

    @abstractmethod
    def load_model(self):
        """Load model here."""

    @abstractmethod
    def preprocess(self):
        """This takes the raw data and returns clean data for prediction."""

    @abstractmethod
    def predict(self):
        """This is used for prediction."""


class BaseDB(metaclass=ABCMeta):
    """ Base database class to be used for all DB connectors."""
    @abstractmethod
    def get_connection(self):
        """This creates a new DB connection."""
    @abstractmethod
    def close_connection(self):
        """This closes the DB connection."""

2. 固定好随机种子

实验的可复现是非常重要的一件事情,而随机种子可能会造成实验结果无法复现。因此必须固定好随机种子,否则会导致不同的训练集和测试集,以及神经网络的不同初始化权重,这些都会导致不一样的实验结果。

def set_seed(args):
    random.seed(args.seed)
    np.random.seed(args.seed)
    torch.manual_seed(args.seed)
    if args.n_gpu > 0:
        torch.cuda.manual_seed_all(args.seed)

3. 先展示少量数据

如果你的数据量非常大,然后你接下来要做的工作是类似于清洗数据或者建模,那么可以每次采用少量的数据来避免一次加载大量的数据。当然这个做法的前提是你只是希望测试代码,而不是实际开始实现相应的工作。

这个做法非常实用,特别是你本地电脑的配置不足以加载全部数据集的时候,但你又想在本地电脑采用 Jupyter/ VS code/ Atom 做实验。

代码例子如下:

df_train = pd.read_csv(‘train.csv’, nrows=1000)

4. 预估可能的错误(一个成熟开发者的标志)

记得每次都要检查数据是否存在空数据(NA),因为这将带来代码出错。当然,即便当前数据中不存在,这并不意味着在后续的训练步骤中不会出现这种情况,所以需要保持这种检查。

比如采用下述的代码:

print(len(df))
df.isna().sum()
df.dropna()
print(len(df))

5. 展示处理进度

当在处理大量的数据的时候,如果能够知道总共需要的时间以及当前的处理进度是非常有帮助的。

这里有几种方法:

第一种方法:采用 tqdm 库,代码例子:

from tqdm import tqdm
import time

tqdm.pandas()

df['col'] = df['col'].progress_apply(lambda x: x**2)

text = ""
for char in tqdm(["a", "b", "c", "d"]):
    time.sleep(0.25)
    text = text + char

第二种方法--fastprogress

from fastprogress.fastprogress import master_bar, progress_bar
from time import sleep
mb = master_bar(range(10))
for i in mb:
    for j in progress_bar(range(100), parent=mb):
        sleep(0.01)
        mb.child.comment = f'second bar stat'
    mb.first_bar.comment = f'first bar stat'
    mb.write(f'Finished loop {i}.')

效果如下图所示:

6.  Pandas 可能会很慢

如果你采用 pandas 库,那么你会发现有的时候它的速度会有多慢,特别是采用 groupby 函数的时候。不需要想尽办法来寻找更好的加速方法,只需要修改一行代码即可,如下所示,采用 modin 即可解决这个问题:

import modin.pandas as pd

7. 计算函数运行的时间

不是所有的函数运行时间都是一样的。

即便你的代码都跑通了,但也不表示你写出一手好代码。有些软性错误(soft-bugs)可能会导致你的代码运行算的变慢,因此很有必要找到这些问题。可以采用下述装饰器来打印函数的运行时间。

import time
from functools import wraps


def timing(f):
    """Decorator for timing functions
    Usage:
    @timing
    def function(a):
        pass
    """

    @wraps(f)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = f(*args, **kwargs)
        end = time.time()
        print('function:%r took: %2.4f sec' % (f.__name__,  end - start))
        return result
    return wrapper

使用的例子如下所示:

from time import sleep
@timing
def count_nums():
    sleep(1)

结果如下所示:

8. 不要在云服务器方面花太多钱

没有人会喜欢一个浪费云资源的工程师

有些实验是需要跑上数十个小时的,这些实验很难进行跟踪并在实验完成的时候关闭云服务器的实例。我曾经犯过这样的错误,同时也看到其他人也曾经因为这个忘记关闭好几天。

这种情况通常发现在周五的时候,然后让其一直运行到周一。

为了避免发生这种情况,可以在代码的最后加入下列代码。

不过,注意要主要代码放在 try catch中进行捕获异常,以防止发生错误。这种情况也是很可能发生的。

import os

def run_command(cmd):
    return os.system(cmd)
    
def shutdown(seconds=0, os='linux'):
    """Shutdown system after seconds given. Useful for shutting EC2 to save costs."""
    if os == 'linux':
        run_command('sudo shutdown -h -t sec %s' % seconds)
    elif os == 'windows':
        run_command('shutdown -s -t %s' % seconds)

9. 创建并保存报告

在训练模型后,所有的想法最终都是来自错误和评判指标的分析。因此需要创建并保存好一个格式不错的报告,以便进行汇报。

下面是一个代码例子:

import json
import os

from sklearn.metrics import (accuracy_score, classification_report,
                             confusion_matrix, f1_score, fbeta_score)

def get_metrics(y, y_pred, beta=2, average_method='macro', y_encoder=None):
    if y_encoder:
        y = y_encoder.inverse_transform(y)
        y_pred = y_encoder.inverse_transform(y_pred)
    return {
        'accuracy': round(accuracy_score(y, y_pred), 4),
        'f1_score_macro': round(f1_score(y, y_pred, average=average_method), 4),
        'fbeta_score_macro': round(fbeta_score(y, y_pred, beta, average=average_method), 4),
        'report': classification_report(y, y_pred, output_dict=True),
        'report_csv': classification_report(y, y_pred, output_dict=False).replace('\n','\r\n')
    }


def save_metrics(metrics: dict, model_directory, file_name):
    path = os.path.join(model_directory, file_name + '_report.txt')
    classification_report_to_csv(metrics['report_csv'], path)
    metrics.pop('report_csv')
    path = os.path.join(model_directory, file_name + '_metrics.json')
    json.dump(metrics, open(path, 'w'), indent=4)

10. 写好接口

你可以很好完成数据清理和训练模型,但是也还可能在最后制造很大的错误,比如没有写好服务接口。我的经验告诉我,很多人其实不知道如果写出一个好的服务接口,文档说明和服务安装配置。后面我会写另一篇文章介绍,但现在先简单介绍一下。

下面是一个很好的用于经典的机器学习和深度学习的部署策略,但注意是请求数量不大的时候,比如每分钟1000次。

一个组合:Fastapi + uvicorn + gunicorn

  • Fastest--采用 fastapi  写接口是非常快速的,正如[1]中的报告展示,以及原因可以参考[2];

  • 文档-- fastapi有免费的官方文档以及可以通过 http:url/docs 进行测试,并且这个链接可以自动生成以及随着我们修改代码而自动改变;

  • Workers--采用 gunicorn 服务器部署接口是因为它具有开始多于 1 个 worker 的功能,并且你应该至少保持 2 个。

运行下列命令可以部署使用 4 个 wokers ,另外可以通过测试来优化这个 workers 的数量。

pip install fastapi uvicorn gunicorn

gunicorn -w 4 -k uvicorn.workers.UvicornH11Worker main:app

一个运行例子如下图所示:


参考

  1. https://www.techempower.com/benchmarks/#p=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7

  2. https://fastapi.tiangolo.com/benchmarks/

完)

Spark 2.0 机器学习 ML 库:常见的机器学习模型(Scala 版) 一、前言 机器学习中,人为地设计算法,需要一定的知识积淀。 而使用别人设计好的机器学习库如 Spark 2.0 ML,那是基本不需要什么基础的,开箱即用。 首先,看一个简单、完整、规范的案例,无疑是最好的方式。 之前的文章(内含短小精悍的案例): Spark 2.0 机器学习 ML 库:特征提取、转化、选取(Scala 版) Spark 2.0 机器学习 ML 库:机器学... 阅读详情

相关推荐

使用 Spark ML Pipeline 进行机器学习

Spark ML Pipeline 的引入,是受到scikit-learn的启发,虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理,或是在学习过程中,要使用多个转化器 (Transformer) 和预测器 (Estimator),这种情况下使用 MLlib 将会让程序结构极其复杂。所以,一个可用于构建复杂机器学习工作流应用的新库已经出现了,它就是 Spark 1.2 ...

小数据研究院 7294

关于云服务器上pytorch固定随机种子无法复现结果的问题

然后最近在云服务器上用.py跑的时候,神奇的事情发生了,用了上面代码固定随机种子,第一个epoch的结果可以完全复现,然后莫名其妙开始飘了,导致后面的epoch结果都不一样了,固定不住啊。但是当在ipynb文件里的时候,好像还是没法固定,每次跑出来结果还是不一样,当时就很懵,不知道啥原因,但是问题不大,用py文件就行了。关于云服务器上pytorch固定随机种子无法复现结果的问题。然后你运行,就可以知道你的结果是否可以复现了。好了,至此结果完全可以复现,不会乱飘了。这样的代码,就能保证结果可复现了。

学习笔记 1748

ML4T工作流程:从ML模型到策略回测(交易中的机器学习)

除了大量活跃的个人交易者社区,也有几家银行和交易公司使用backtrader来原型和测试新策略,然后将其移植到生产就绪的平台,如Java。例如,您可以使用我们在本书中遇到的scikit-learn等通用ML库设计和测试生成信号的ML模型,并将模型输出输入单独的回测引擎。这些对象相互作用,以便于输入数据的处理和因子计算,制定和执行策略,接收和执行订单,以及跟踪和度量业绩。简单地说,回测引擎遍历历史价格(和其他数据),将当前值传递给您的算法,收到订单作为回报,并跟踪所得仓位及其价值。

weixin_41908924的博客 1611

同样的随机种子,前几次可以复现,但不知道动了哪里,复现不了以前的结果了

同样的随机种子,前几次可以复现,但昨天突然就复现不了了。 可以按照以下步骤检查一下: 1.首先检查各种设置,如batch size , learning rate、优化器等等。 如果以上各种设置都没问题那么问题极大概率还是出在模型里面了。 2.然后如果使用的是pytoch框架的话可以检查forwad()函数中模型整体的网路结构和以前是否一样(不能有一丝偏差)。 3.最后检查在forwad()中使用的模块、层在__init__()中是否有偏差。在这里需要特别注意一个问题,我的问题就是出现在这里。因为我昨天在_

qq_44901346的博客 2238

Java机器学习库ML之一Dataset和Instance

Java机器学习库ML官网:http://java-ml.sourceforge.net/ 对于一个机器学习库来说,最基础就是数据处理能力,ml库给了dataset和instance两个类,dataset是矩阵,instance是行(可以理解是一个list,或一个double数组)。 本文给出最基本的Dataset和Instance操作,可以完成对一个矩阵的遍历,定位到每一行里的每一个列,可惜

医疗影像检索 6045

ZYNQ程序固化实战:从BOOT.bin生成到QSPI/SD卡双启动模式详解

本文详细解析了ZYNQ 7000系列程序固化的完整流程,重点解决了程序断电丢失问题。通过实战演示,从生成BOOT.bin文件到配置QSPI与SD卡双启动模式,逐步指导开发者实现程序在外部存储中的永久驻留,确保产品脱离调试器独立运行。

weixin_29193259的博客 518

使用Pytorch Geometric库 固定随机种子后,结果还是无法复现

但是,转成SpaseTensor后,pyg中的GCN就不可以处理带有批次的(batchsize)的数据了,翻源码gcn_conv.py是这么写的。使用 torch.use_deterministic_algorithms(True) 详见参考链接【1】PS:参考链接【2】说可以用的别人自己写的GCN代码或者pygcn里的GCN代码。

LLauraChen的博客 1352

使用buildroot系统的qmake编译QT出现Unknown module(s) in QT: xxxx 的错误解决方法

可以看到,我这里使用的是 qt5base-5.15.2 目录下的qmake,这个qmake只包含了基础的qt模块,而额外添加的qt模块没有包含进去,需要使用。可以看到我这里是有的,如果你跟我一样,模块存在,但是还是报找不到对应模块的错误的话,大概率是跟我一样,用错qmake了,看第二点。在包含 qt5base 目录下查看,是否有对应模块的目录,如果没有的话,需要通过make menuconfig 添加一下。目录下的qmake才可以。

T541132的博客 2490

跟李沐学AI——实用机器学习(入门版)

机器学习目录 2.1 探索性数据分析 2.2 数据清理 2.3 数据变换 2.4 特征工程 2.5 数据科学家的日常 Stanford University Practical machine learning 2.1 探索性数据分析 ​ 对目标的ftr数据进行处理,针对不同的信息做出不同的图形 输出数据集的行数和列数以及前十行元素 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seabor

日常发呆 1503

游戏开发实战:5种AOI算法对比(九宫格 vs 灯塔 vs 十字链表)

本文深入对比了游戏开发中五种主流AOI算法(九宫格、灯塔、十字链表等)的性能与适用场景,帮助开发者根据项目规模选择最优解决方案。通过详细的技术分析和实战数据,揭示不同算法在万人同屏等极端场景下的表现差异,为MMORPG等大型多人在线游戏提供关键性能优化指南。

weixin_29268385的博客 476

18、地下矿山中人工智能在区分真实微震事件与噪声信号的应用

本文提出一种基于遗传编程(GP)的新型经验模型,用于地下矿山中真实微震事件与噪声信号(特别是爆破信号)的自动区分。针对传统方法和常见机器学习算法存在的黑箱问题、过拟合及准确性不足等局限,GP模型通过符号回归和进化机制生成可解释的数学表达式,具备自动特征选择能力,有效提升了分类准确率。研究使用包含100个样本的真实数据库,结合敏感性分析优化模型参数,并与线性判别分析(LDA)进行对比,结果表明GP模型在分类性能上更具优势。该模型可应用于实时微震监测系统,提高矿山安全生产水平,降低误判带来的成本开销,具有良好的

assembly8low的博客 95

训练过程不可复现原因解决

今天在打比赛的过程中,发现代码不能够复现是一个很头痛的问题,相同的代码在同样的电脑上跑两次结果不一样,查阅资料之后发现,可以通过如下的方式解决: torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # if you are using multi-GPU. np.random.seed(seed) # Numpy module. random.seed(seed) # Python

小姑仔的博客 2950

【回眸】Tessy集成测试软件使用指南(一)新手使用篇

这个专栏的文章前4篇都在记录如何使用Tessy进行单元测试,集成测试需要有一定单元测试基础,且做集成测试之前,需要做好单元测试,否则将会大幅增加软件单元代码纠错的代价。集成测试所花费的时间通常远远超过单元测试。如果直接从单元测试到系统测试,结果往往是不理想的。集成测试可以检测由于单元相互交互而导致的错误,通常由一组专业的测试人员执行。

啤酒鸭的物联网开发记录博客 5290

[机器学习]10个实用的机器学习建议

原文:https://medium.com/modern-nlp/10-great-ml-practices-for-python-developers-b089eefc18fc 作者:Pratik Bhavsar 声明 本博客来源于: 算法猿的成长 导语 有时候作为一名数据科学家,我们可能会忘记自己的主要职责。我们首先是开发者,接着是研究者,最后还可能是数学家。因此,我们最重要的责任就是...

摩登都市天空---专栏 869

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 449

基于深度学习的垃圾邮件识别

垃圾邮件的大量存在严重威胁着电子邮件系统的安全和效率。基于深度学习的垃圾邮件识别技术已经成为目前最有效的解决方案之一。本文将详细介绍使用深度学习技术进行垃圾邮件识别的方法,并提供相应的代码实现。 随着电子邮件的广泛应用,垃圾邮件的数量不断增加,传统的规则和统计方法已经无法满足对垃圾邮件进行准确识别的需求。深度学习技术以其强大的模式识别能力和自动特征提取能力成为解决垃圾邮件识别难题的有效工具。

一键难忘的博客 1095

Core ML模型实战指南:10个成功应用案例深度解析

Awesome-CoreML-Models是iOS开发者的机器学习宝库,汇集了超过50种经过优化的Core ML模型,涵盖图像识别、文本处理、音频分析等多个领域。作为苹果Core ML框架最全面的模型集合,这个项目为开发者提供了即插即用的AI解决方案,让移动端机器学习应用开发变得前所未有的简单高效。🚀 [![Core ML模型应用](https://raw.gitcode.com/gh_mir

gitblog_00269的博客 505

YOLO26改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLO26中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLO26,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 255

【吴恩达机器学习笔记】第十章 应用机器学习的建议

搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货 csdn:https://blog.youkuaiyun.com/qq_36645271 github:https://github.com/aimi-cn/AILearners 第十章 应用机器学习的建议 10.1 决定下一步做什么 10.1.1 机器学习中的一些问题 在懂机器学习的人当中,依...

qq_36645271的博客 530

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ML.NET 机器学习实用指南(三)

在本章的整个过程中,我们深入探讨了从原始目的问题到训练模型的生产就绪模型训练所涉及的内容。通过这次深入探讨,我们检查了创建详细特征所需的工作量,这些特征是通过生产思维过程和特征工程实现的。然后,我们回顾了挑战、解决训练的方法以及如何测试数据集问题。最后,我们还深入探讨了实际模型构建管道的重要性,使用完全自动化的流程。在下一章中,我们将在一个 WPF 应用程序中使用预构建的 TensorFlow 模型来确定提交的图像是否包含某些对象。

龙哥盟 1301

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

10个必学的ML.NET机器学习示例:machinelearning-samples实战教程

想要快速掌握ML.NET机器学习的核心技能吗?🤔 这个开源的machinelearning-samples项目包含了大量实用的ML.NET示例代码,是学习.NET机器学习的绝佳资源。ML.NET作为微软推出的开源跨平台机器学习框架,让.NET开发者能够轻松构建和部署智能应用。 ## 🔥 ML.NET的核心优势 **统一的技术栈**:ML.NET让开发者完全使用C#进行机器学习开发,无需切换

gitblog_00260的博客 1031

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

如何用ml5.js快速构建机器学习项目:10个提升代码质量的实用技巧

ml5.js是一个友好的Web机器学习库,它让开发者能够轻松地在浏览器中实现各种机器学习功能。无论是图像分类、姿态检测还是神经网络训练,ml5.js都提供了简洁的API和丰富的示例,帮助新手快速入门机器学习项目开发。本文将分享10个实用技巧,帮助你提升ml5.js项目的代码质量和开发效率。 ## 1. 合理选择模型初始化方式 ml5.js提供了多种模型初始化方式,选择合适的方式可以显著提升代码

gitblog_00399的博客 817

Unity机器学习1 ML-Agents环境搭建

第一步,创建一个新的Unity项目 我起名为MLApp 第二部,首先安装python3.7 https://www.python.org/downloads/windows/ py exit() 第三步,Unity项目中创建虚拟环境的脚本运行库模块 cd UnityProject\MLApp py -m venv venv 完成后可以看到多了一个venv目录。 通过activeate.bat激活环境脚本,不会影响到其他的python的运行环境。 我们运行他。 运行后: 安装数据流执行计算的开源图,首

thinbug的专栏 2872

使用C# 探索 ML.NET 中的不同机器学习任务

ML.NET 是 Microsoft 开源的针对 .NET 应用程序的 跨平台机器学习库,允许您使用 C#、F# 或任何其他 .NET 语言执行机器学习任务。此外,ML.NET 支持在其他机器学习框架中构建的模型,如TensorFlow,ONNX,PyTorch 等,它也具有极高的性能,可用于各种机器学习任务。 对于那些还没有深厚的数据科学技能和各种机器学习算法知识的人来说,ML.NET 还提供AutoML,Auto ML 是 ML.NET 的子集,它抽象出选择机器学习算法、为这些算法调整超参数以及相互比

寒冰屋的专栏 2161

如何在Windows 10中使用Azure ML

微软为鼓励在Azure中使用机器学习模型做了很多工作,但在其生态系统的许多其他部分中仍有使用它们的范围。 在Windows PC上,一种越来越重要的用途是将经过训练的模型带到您的台式机或嵌入式设备上。 借助本地机器学习支持,无需担心将数据传送到云服务,尤其是在带宽可能成为问题的地方。 您还可以在隐私可能成为问题以及法规控制数据传输和存储的地方保护数据。 此模型在金融服务或医疗保健中可能很重...

cxw9087的博客 147
上一篇: 英国全能数学家John Conway因新冠去世,他曾发明风靡一个时代的电脑游戏,还能心算万年历...
下一篇: 用python分析了5000部票房,发现赚钱的电影都有这些特征~
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值