位置: IT常识 - 正文

AI模型大杀器----Amazon SageMaker 实现高精度猫狗分类(ai模拟)

编辑:rootadmin
原力计划AI模型大杀器----Amazon SageMaker 实现高精度猫狗分类

推荐整理分享AI模型大杀器----Amazon SageMaker 实现高精度猫狗分类(ai模拟),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:ai模型训练平台,aidam模型,ai模拟,ai模型设计,aida模型,ai模型设计,ai模型是什么意思,ai模型设计,内容如对您有帮助,希望把文章链接给更多的朋友!

前言: Hello大家好,我是Dream。 最近受邀参与了 亚马逊云科技【云上探索实验室】 活动,基于他们的sagemaker实现了机器学习中一个非常经典的案例:猫狗分类。最让我惊喜的是的模型训速度比想象中 效果要好得多,而且速度十分迅速,而且总体感觉下来整个过程十分便利,使用起来也是得心应手。 那接下来跟随我的视角,来一起复盘一下整体做的过程,来感受一下其强大便利之处。

在我们的日常生活和学习中,尤其是针对人工智能专业的学生以及工作者而言,机器学习、神经网络是我们每天都要接触的工作,复杂多样的环境配置以及高要求的运行配置总让我们十分头疼,正因此我推荐大家去使用AmazonSageMaker,轻松解决你的烦恼。Amazon SageMaker是亚马逊云计算(Amazon Web Service)的一项完全托管的机器学习平台服务,算法工程师和数据科学家可以基于此平台快速构建、训练和部署机器学习 (ML) 模型,而无需关注底层资源的管理和运维工作。它作为一个工具集,提供了用于机器学习的端到端的所有组件,包括数据标记、数据处理、算法设计、模型训练、训练调试、超参调优、模型部署、模型监控等,使得机器学习变得更为简单和轻松;同时,它依托于 Amazon 强大的底层资源,提供了高性能 CPU、GPU、弹性推理加速卡等丰富的计算资源和充足的算力,使得模型研发和部署更为轻松和高效。

Amazon SageMaker由以下三大主要部分组成: 创作: 无需进行任何设置,使用Jupyter Notebook IDE就能进行数据探索、清洁与预处理。我们可以在常规实例类型或GPU驱动型实例当中运行此类工作负载。 模型训练: 一项分布式模型构建、训练与验证服务。我们可以利用其中的内置常规监督与无监督学习算法及框架,或者利用Docker容器创建属于自己的训练机制。其模型训练规模可囊括数十个实例,以支持模型构建加速。训练数据读取自S3,训练后的模型成果亦可存放在S3存储桶内。最终得出的模型结果为数据相关模型参数,而非模型当中进行推理的代码。 模型托管: 模型托管服务可配合HTTP端点以调用模型进行实时推理。这些端点可进行规模扩展,从而支持实际流量;我们也可以同时对多套模型进行A/B测试。此外,我们也可以使用内置的SDK构建这些端点,或者选择Docker镜像提供自己的配置选项。

上述组成部分皆可独立使用,这意味着Amazon SageMaker将能够轻松填补现有流程中的空白环节。换句话来说,当开发人员以端到端方式使用该服务时,将能够享受到由其提供的强大功能。那本文我们就来使用Amazon SageMaker快速实现高精度猫狗分类问题。

一、环境准备1. 登录Amazon SageMaker控制台,选择“笔记本实例”。

Amazon SageMaker提供了一个完全集成的机器学习开发环境,能有效提高我们构建模型的效率和能力。我们可以在一键式Jupyter notebooks帮助下,以闪电般的速度进行构建和协作。Sagemaker还为这些notebooks提供了一键式共享工具。整个编程的结构都会被自动捕获,同时我们可以毫无障碍地与其他人协同工作,分享我们的训练效果和新心得。

2. 在“笔记本实例”页面上,单击“创建笔记本实例”。

在“创建笔记本实例”页面中,输入名称、选择实例类型和计算资源等配置信息,并新建安全组。 在新的界面下,输入该 Notebook 实例的名称,并在 Notebook instance type 处选择实例的类型。同时,设置该实例的存储磁盘大小,默认是 5GB,截图中我们手动改为 30GB,该容量后期同样可以调大。 最后选择创建笔记本实例,SageMaker 就将创建该 Notebook 实例。在 笔记本实例 界面可以看当前的实例列表及其状态,如果状态为 InService,在操作列有 打开 Jupyter |打开 JupyterLab 的选项。 在机器学习中,Notebook 已经是常见的形式了,很多云平台都采用了这种编辑形式。因为可以与代码交互,用它来开发机器学习代码实在是再合适不过了。在 SageMaker Studio 中,除了 Notebook 传统擅长可视化,还额外加了一些可视化组件管理模型的实验过程。 本来用 Notebook 写轻量代码就非常方便,再加上 SageMaker 自己提供的大量精炼 API,它们之间的配合特别融洽。对于那些费时费力的底层资源管理繁杂过程,交给 SageMaker API 就行了,剩下的只要在 Notebook 写下算法逻辑,这才是机器学习开发者最高效的姿势。 点击 Open Jupyter,将自动弹出一个新的页面,加载完成后,出现我们熟悉的 Jupyter Notebook 界面。 其中在 SageMaker Examples 页面下,在右侧 New 下拉菜单中,您可以选择创建的开发环境,此处我们选择 conda_python3 以进行后面的内容。

3.创建存储桶用来存放本次实验数据

猫狗数据集介绍: 猫狗数据集包括25000张训练图片,12500张测试图片,包括猫和狗两种图片。在此次实验中为了训练方便,我们取了一个较小的数据集。 数据解压之后会有两个文件夹,一个是 “train”,一个是 “test”,顾名思义一个是用来训练的,另一个是作为检验正确性的数据。

在train文件夹里边是一些已经命名好的图像,有猫也有狗。而在test文件夹中是只有编号名的图像。

图片展示 下面是数据集中的图片展示:

class_names = ['cats', 'dogs']plt.figure(figsize=(10, 10))for images, labels in train_dataset.take(1): for i in range(9): ax = plt.subplot(3, 3, i + 1) plt.imshow(images[i].numpy().astype("uint8")) plt.title(class_names[labels[i]]) plt.axis("off")

🌟🌟🌟 这里是输出的结果:✨✨✨

二、下载数据集并将其进行数据预处理

数据集加载,数据是通过这个网站下载的猫狗数据集:http://aimaksen.bslience.cn/cats_and_dogs_filtered.zip,实验中为了训练方便,我们取了一个较小的数据集。

path_to_zip = tf.keras.utils.get_file( 'data.zip', origin='http://aimaksen.bslience.cn/cats_and_dogs_filtered.zip', extract=True,)PATH = os.path.join(os.path.dirname(path_to_zip), 'cats_and_dogs_filtered')train_dir = os.path.join(PATH, 'train')validation_dir = os.path.join(PATH, 'validation')BATCH_SIZE = 32IMG_SIZE = (160, 160)数据集管理

使用image_dataset_from_director进行数据集管理。

train_dataset = image_dataset_from_directory(train_dir, shuffle=True, batch_size=BATCH_SIZE, image_size=IMG_SIZE)validation_dataset = image_dataset_from_directory(validation_dir, shuffle=True, batch_size=BATCH_SIZE, image_size=IMG_SIZE)加载预训练模型:val_batches = tf.data.experimental.cardinality(validation_dataset)test_dataset = validation_dataset.take(val_batches // 5)validation_dataset = validation_dataset.skip(val_batches // 5)三、构建、训练和部署您的模型。

在Jupyter Notebook中使用SageMaker Python SDK来构建、训练和部署模型。

1.Stable Diffusion 模型介绍

在此次训练中,我们用到了亚马逊用于预测产品的需求和销售趋势的一种模型—Stable Diffusion 模型。 它基于随机漫步和稳定性假设,能够描述价格波动的实际情况。该模型认为价格变化由两个部分组成:一个稳定的长期趋势和一个随机的短期波动。 该模型有四个主要参数:稳定指数alpha、漂移参数beta、标准差sigma和时间间隔delta。其中alpha表示价格波动的稳定程度,越大则波动越不稳定;beta表示价格的长期趋势;sigma表示价格离散度或者说波动大小,越大则价格波动越大;delta表示时间间隔。 总体体验下来,该模型给我以下的感觉:

可以处理缺失值: Stable Diffusion 模型可以有效地处理数据中的缺失值,这使其在面对现实中的不完整数据时更加可靠。考虑市场饱和度: 该模型能够考虑市场饱和度对产品需求的影响,从而预测产品在市场上的销售情况。能够灵活应用: 该模型十分灵活,可以根据不同类型的产品和市场需求进行调整和改进,因此适用范围广泛。

Stable Diffusion 模型在预测产品销售趋势方面具有较高的准确度和可靠性,是亚马逊在产品销售策略制定中的重要工具之一。

2.训练AI模型大杀器----Amazon SageMaker 实现高精度猫狗分类(ai模拟)

做机器学习的朋友应该都了解,ML 中的数据预处理是最麻烦的,而在 IDE 处理数据需要特别好用的可视化,从而给我们关于数据最直观的理解。与此同时,手动调参也需要特别好的可视化,来帮助我们对比不同算法和超参训练出来的模型效果。 而Amazon SageMaker正好可以为我们提供很好的可视化效果,为我们的训练以及调参带俩极大的便利。作为一个完全托管的机器学习平台,SageMaker把软件技能抽象化,能让我们通过一组直观并且易于使用的工具,就能构建、训练想要的机器学习模型。

inital_input = tf.keras.applications.mobilenet_v2.preprocess_inputIMG_SHAPE = IMG_SIZE + (3,)base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE, include_top=False, weights='imagenet')base_model.trainable = Falsebase_model.summary()

🌟🌟🌟 这里是输出的结果:✨✨✨

3.训练结果可视化

用图表显示准确率和损失函数

# 训练结果可视化,用图表显示准确率和损失函数acc = history.history['accuracy']val_acc = history.history['val_accuracy']loss = history.history['loss']val_loss = history.history['val_loss']epochs_range=range(initial_epochs)plt.figure(figsize=(8,8))plt.subplot(2,1,1)plt.plot(epochs_range, acc, label="Training Accuracy")plt.plot(epochs_range, val_acc,label="Validation Accuracy")plt.legend()plt.title("Training and Validation Accuracy")plt.subplot(2,1,2)plt.plot(epochs_range, loss, label="Training Loss")plt.plot(epochs_range, val_loss,label="Validation Loss")plt.legend()plt.title("Training and Validation Loss")plt.show()

🌟🌟🌟 这里是输出的结果:✨✨✨ 托管与实时推断现在我们的模型已经完成了训练,并可用于进行实际预测!利用之前提到的代码,这里创建并启动一个端点。

predictor = m.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')

而后运行以下命令调用该端点: predictor.predict(img_input)! 就这么简单,只需要不足100行代码,我们的端到端机器学习流程即构建完成。

四、 运行文件,查看模型的训练和评估结果

AWS Tensorflow optimization通过其庞大的256 GPU,可以提高最多90%的扩展性。这样,在很短的时间内,我们就可以体验到精确、复杂的训练模型。而且,Amazon Sagemaker附带的Managed Spot Training,还可以降低培训成本的90%。因为在本地总会因为配置问题使的运行速度非常缓慢甚至中途报废,所以说对运行的结果以及速度我还是非常期待的。

1.输出训练的准确率# 输出训练的准确率test_loss, test_accuracy = model.evaluate(test_dataset)print('test accuracy: {:.2f}'.format(test_accuracy))

🌟🌟🌟 这里是输出的结果:✨✨✨ 然后我们借用cnn工具可视化一批数据的预测结果

label_dict = { 0: 'cat', 1: 'dog'}test_image_batch, test_label_batch = test_dataset.as_numpy_iterator().next()# 编码成uint8 以图片形式输出test_image_batch = test_image_batch.astype('uint8')cnn_utils.plot_predictions(model, test_image_batch, test_label_batch, label_dict, 32, 5, 5)

🌟🌟🌟 这里是输出的结果: ✨✨✨

2.数据输出# 数据输出,数字化特征图test_image_batch, test_label_batch = train_dataset.as_numpy_iterator().next()img_idx = 0random_batch = np.random.permutation(np.arange(0,len(test_image_batch)))[:BATCH_SIZE]image_activation = test_image_batch[random_batch[img_idx]:random_batch[img_idx]+1]cnn_utils.get_activations(base_model, image_activation[0])

🌟🌟🌟 这里是输出的结果: ✨✨✨ Amazon SageMaker 在数据导入,输出方面具有明显优势,易用性方面国内部分厂商也同样优秀。同时对于 TensorFlow 和 PyTorch的支持度都比较好。

3.图像结果输出

🌟🌟🌟 这里是输出的结果:✨✨✨ 运行之后,我们发现计算结果准确性高达了0.97,可以说是准确度相当之高了,经过可视化之后输出的图像也是肉眼可见的准确!而且相比于在本地运行其简便性十分突出,这次技术体验比我想象的好太多,技术体验耗时不到 10 分钟,解决了最头疼的配置和调优问题,简化了开发流程,提升了开发效率,可以快速帮助我们构建、训练和评估模型。并且训练速度极快,0.1s内就可以将所有项目输出结果全盘脱出!

五、使用体验总结

Amazon SageMaker 的优势在于不必安装,也不需要手动扩展,只要保证网络畅通,有兼容的浏览器保证运行即可。它提供了一个完整的机器学习套件,其中包括 IDE,API,调试、监控工具等,可以在机器学习建模的各个流程环节处理好关键事项。 相对于传统的机器学习开发,使用 Amazon SageMaker 可以带来以下几个方面的优势:

快速构建和测试: Amazon SageMaker 提供了内置算法和模型模板,可以快速构建、训练和评估模型。此外,您还可以使用 Amazon SageMaker Studio 和 Amazon SageMaker Notebook Instance 进行交互式开发和调试。

易于部署和扩展: 使用 Amazon SageMaker,您可以轻松地将训练好的模型部署到实时终端节点或批处理推理作业中。您还可以根据需要自动缩放模型推理容量。

成本效益: Amazon SageMaker 提供了灵活的定价模型,使您的机器学习应用程序能够按需缩放,从而节约成本。

安全性和合规性: Amazon SageMaker 采用多层安全措施来保护您的数据和模型。此外,Amazon SageMaker 还符合多种合规标准,如 HIPAA、PCI、SOC 1/2/3 等。

强大的生态系统: Amazon SageMaker 集成了许多其他 AWS 服务,例如 Amazon S3、Amazon Redshift、Amazon Athena 等,让您的机器学习工作流程更加无缝。

按使用量付费: Amazon SageMaker的付费方式是按使用量付费,您只需支付您使用的资源和服务,这使得使用Amazon SageMaker非常灵活和经济。

总之,Amazon SageMaker 为您提供了一个全面的、高度托管的机器学习平台, 可以使用大规模分布式计算集群,使得我们的模型训练速度更快,能够应对大规模数据和复杂模型训练,对于那些想要利用机器学习技术但不想花费大量时间和资源来构建自己的环境的用户来说,是一个非常有价值的工具。而且SageMaker 提供了自动模型调优工具,根据我们提供的数据和模型类型,自动找到最佳的超参数组合,从而提高模型的准确率,使得机器学习建模变得更加简单和高效。 SageMaker 的强大不仅来自于 AWS 多年积累的技术,也源于这家公司与众多使用者、合作伙伴共同建立起的生态。通过云上探索实验室,开发者可以学习实践云上技术,同时将自己的技术心得分享给其他开发者小伙伴。一同创造分享,互助启发,玩转云上技术。云上探索实验室不仅是体验的空间,更是分享的平台! 欢迎大家一起参与云上探索实验室,用技术实验、产品体验、案例应用等方式,亲身感受最新、最热门的亚马逊云科技开发者工具与服务。发挥您的想象和创造,以文章、视频、代码 Demo 等形式分享见解。 让我们一起分享,帮助更多开发者进行学习与开发,为技术实践提供更多的可能性:https://dev.amazoncloud.cn/experience 🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了,我们下期再见! ❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~

最后,有任何问题,欢迎关注下面的公众号,获取第一时间消息、作者联系方式及每周抽奖等多重好礼! ↓↓↓

本期推荐:

Python从入门到精通(微课精编版)(软件开发视频大讲堂) 《Python从入门到精通(微课精编版)》 使用通俗易懂的语言、丰富的案例,详细介绍了Python语言的编程知识和应用技巧。全书共24章,内容包括Python开发环境、变量和数据类型、表达式、程序结构、序列、字典和集合、字符串、正则表达式、函数、类、模块、异常处理和程序调试、进程和线程、文件操作、数据库操作、图形界面编程、网络编程、Web编程、网络爬虫、数据处理等,还详细介绍了多个综合实战项目。

本文链接地址:https://www.jiuchutong.com/zhishi/299781.html 转载请保留说明!

上一篇:Vue中computed和watch区别(vue中computed和watch)

下一篇:node版本、npm版本随意切换(node-gyp版本)

  • 推荐十一种最常见最基本的团购网络推广方法(推荐几种)

    推荐十一种最常见最基本的团购网络推广方法(推荐几种)

  • 华为手机闪光灯怎么关(华为手机闪光灯怎么打开)

    华为手机闪光灯怎么关(华为手机闪光灯怎么打开)

  • 苹果手表如何解除绑定(苹果手表如何解绑esim)

    苹果手表如何解除绑定(苹果手表如何解绑esim)

  • mrpii是什么(mrp什么意思)

    mrpii是什么(mrp什么意思)

  • vivox7隐藏图标密码忘了怎么解除(vivo隐藏图标的密码在哪里设置)

    vivox7隐藏图标密码忘了怎么解除(vivo隐藏图标的密码在哪里设置)

  • 快手主页的联系电话图标怎么开通的(快手主页的联系电话怎么设置视频教程)

    快手主页的联系电话图标怎么开通的(快手主页的联系电话怎么设置视频教程)

  • keep电脑能用吗(keep有电脑板么)

    keep电脑能用吗(keep有电脑板么)

  • 手机号未核验什么意思(手机号未核验怎么登录又不记得密码)

    手机号未核验什么意思(手机号未核验怎么登录又不记得密码)

  • 淘宝封永久还能解封吗(淘宝被永久封还能开吗)

    淘宝封永久还能解封吗(淘宝被永久封还能开吗)

  • ass是什么文件的格式(.ass是什么文件格式,怎样打开手机)

    ass是什么文件的格式(.ass是什么文件格式,怎样打开手机)

  • 苹果11锁屏后自动亮屏(苹果11锁屏后自动亮度)

    苹果11锁屏后自动亮屏(苹果11锁屏后自动亮度)

  • qq被别人举报了会封号吗(qq被别人举报了怎么办怎么才能恢复)

    qq被别人举报了会封号吗(qq被别人举报了怎么办怎么才能恢复)

  • 苹果x老是黑屏白苹果(苹果x老是黑屏怎么办)

    苹果x老是黑屏白苹果(苹果x老是黑屏怎么办)

  • 一级标题二级标题三级标题怎么设置(一级标题二级标题三级标题格式范文)

    一级标题二级标题三级标题怎么设置(一级标题二级标题三级标题格式范文)

  • 无线局域网的特点包括(无线局域网的特点是安全性较差)

    无线局域网的特点包括(无线局域网的特点是安全性较差)

  • 华为手机怎么删除桌面软件(华为手机怎么删除下载的软件)

    华为手机怎么删除桌面软件(华为手机怎么删除下载的软件)

  • 手机自动上网怎么回事(手机自动上网怎么解决)

    手机自动上网怎么回事(手机自动上网怎么解决)

  • 魅族16T怎么打开个人助理(魅族16t怎么打开隐藏空间)

    魅族16T怎么打开个人助理(魅族16t怎么打开隐藏空间)

  • 金立s10怎么设置双卡使用(金立s10怎么设置返回键图标)

    金立s10怎么设置双卡使用(金立s10怎么设置返回键图标)

  • 如何修改唯品会登陆名(如何修改唯品会绑定的银行卡)

    如何修改唯品会登陆名(如何修改唯品会绑定的银行卡)

  • 微信三朵玫瑰代表什么(微信三朵玫瑰是什么意思)

    微信三朵玫瑰代表什么(微信三朵玫瑰是什么意思)

  • 华为p30nfc感应区在哪里(华为p30nfc不灵敏)

    华为p30nfc感应区在哪里(华为p30nfc不灵敏)

  • iphone x壁纸怎么缩小(苹果x壁纸怎么动起来)

    iphone x壁纸怎么缩小(苹果x壁纸怎么动起来)

  • 苹果xr使用小常识(iphone xr用法大全)

    苹果xr使用小常识(iphone xr用法大全)

  • 手机qq文件失效怎么恢复(手机qq文件失效怎么恢复没有电脑怎么办)

    手机qq文件失效怎么恢复(手机qq文件失效怎么恢复没有电脑怎么办)

  • vivos1上市时间(vivos16e上市时间)

    vivos1上市时间(vivos16e上市时间)

  • command.exe是病毒进程吗 command进程安全吗(cmt.exe病毒)

    command.exe是病毒进程吗 command进程安全吗(cmt.exe病毒)

  • 购买汽车的印花税要计入汽车原值吗
  • 债权投资借贷方向是什么一年内的
  • 车间加班视频
  • 小规模纳税人未开票收入填在哪里
  • 长期应付款是什么科目 借方
  • 融资租赁出租方会计处理
  • 货运代理公司会计涉及的科目
  • 营改增医院增值税
  • 生产出口退税企业内部加工费占多少比例
  • 公司收到现金货款需要存入银行吗
  • 将外购货物分配给客户
  • 营改增后建筑业
  • 一般纳税人当月只有进项没有销项怎么做账
  • 加油票不打公司会怎么样
  • 小规模纳税人免税怎么做账
  • 税务登记五证合一是哪五证
  • 变更公司财务人员,需要本人去吗
  • 地税局完税证明去哪里办理
  • 建筑企业法定代表人和建筑公司资质不是一个人
  • 混合销售行为的名词解释
  • 银行对账单怎么修改
  • 王者荣耀中刘邦技能解析以及如何连招
  • 其他应付款贷方增加
  • 文化事业建设费减免政策
  • 什么是应交税费科目
  • 广告公司的工程师好做吗
  • explorer.exe是啥意思
  • linux安装常用命令
  • 一般合同怎么写才有效
  • 临时用工账务处理流程
  • 米苏拉塔是哪个国家
  • 减免增值税会计处理
  • rgb to hex
  • chattr i
  • 交易性金融资产是什么意思
  • c语言中有哪些循环结构
  • 应收账款周转天数减少说明什么
  • 房企预缴税款会退税吗
  • 厂区道路不应该使用哪种材料
  • 帝国cms8.0
  • 发票勾选后什么时候开票
  • 生产企业生产车间人员密度是多少
  • 股份有限公司个人股份
  • 哪些企业可以不计提盈余公积
  • 内账中采购另付的税点算成本还是费用
  • 外经证办好了后怎么开票
  • 小微企业免征增值税优惠政策
  • 如何理解当期损益
  • 金税四期来了我们前期要准备什么
  • 合并资产负债表与母公司资产负债表要看那一个好
  • 企业合并的流程
  • 白条抵库现象
  • 应该是先付款还是先开发票
  • 出售无形资产损失
  • 公司成本包含什么
  • 小企业应该如何发展
  • sqlserver数据库显示单个用户
  • mysql理论知识
  • Usrshuta.exe - Usrshuta是什么进程
  • ubuntu下source、sh、bash、./执行脚本的区别详细介绍
  • macos手势
  • linux 的ll
  • win8.1技巧
  • information_schema翻译
  • win7桌面右下角
  • 安装音乐库
  • unity控制相机
  • jquery链式操作原理
  • python os.access
  • bootstrap要学吗
  • 表单元素的属性
  • nodejs增删改查
  • 贝塞尔曲线生成器
  • python连接Oracle数据库
  • 广州地税预约网官网
  • 关注龙江医保
  • 无锡吴氏字辈
  • 法国进囗红酒
  • 通用机打发票明细怎么导出电子版
  • 资源税的计税依据是含税还是不含税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设