AutoKeras(Python自动化机器学习)多模态数据和多任务

要点拓扑

在这里插入图片描述

AutoKeras 拓扑

在这里插入图片描述

要点

  1. 常规机器学习:scikit-learn示例探索性数据分析和数据预处理,线性回归,决策树
  2. 图像分类ResNet模型示例,合成数据集DenseNet模型示例
  3. 绘图线性回归和决策树模型
  4. 使用Python工具seaborn、matplotlib、pandas、scikit-learn进行特征分析,数据处理
  5. Tensorflow和Keras实现多测感知器、卷积神经网络CNN和递归神经网络RNN及应用示例
  6. AutoKeras案例实现:新闻热点预测、垃圾邮件检测、CIFAR-10图像分类、事故率、MNIST识别、话题分类、情绪分析

自动化机器学习

自动化机器学习是一种自动化各种机器学习模型开发流程的过程,以便数据科学和机器学习方面专业知识有限的个人和组织能够更容易地使用机器学习。 它拥有一组技术和工具,可以自动选择和微调机器学习模型的过程。 其目标是让数据科学专业知识有限的人们更轻松地构建和部署高性能机器学习模型。

Predicting
Training
模型训练
超参数调整模型选择
验证
特征工程
新数据
预测
目标
特征工程
原始数据和目标
训练集
验证集
测试集
机器学习
模型

它使用户能够将机器学习技术应用于不同的领域,从简单的表格数据分析到图像识别、自然语言处理和预测等更复杂的任务。它不仅仅停留在模型训练上,涵盖了整个生命周期,包括评估、验证、部署以及持续监控和维护。

自动化目标可以自动化构建机器学习模型所涉及的多个步骤。其中一些如下:

  • 数据准备:处理缺失值、缩放特征、编码分类变量以及将数据拆分为训练集和测试集
  • 特征工程:从原始数据中提取有用的特征。
  • 模型选择和训练:选择合适的机器学习算法和超参数。
  • 超参数调整:微调机器学习模型的设置以优化性能。
  • 集成建模:组合多个模型以提高性能。
  • 部署:将经过训练的模型投入生产
  • 监控和维护:模型部署后可以根据新数据进行维护和监控

自动机器学习用于简化和自动化将机器学习应用于现实世界问题的端到端过程:

  • 使机器学习可供更广泛的受众使用,包括机器学习专业知识有限的个人。通过自动化复杂的任务,它降低了非数据科学专家的用户的进入门槛。
  • 减少了开发有效的机器学习模型所需的时间和精力。其工具通常提供直观、用户友好的界面或 API,让用户提供数据并接收优化的机器学习模型,而无需深入了解底层算法和技术。
  • 机器学习涉及处理各种算法、超参数和数据预处理技术。机器学习可以自动为特定任务选择最合适的算法和超参数,从而降低用户的复杂性。
  • 擅长自动优化超参数,这对于实现最佳模型性能至关重要。这个过程可能非常耗时并且需要专业知识,因此自动化非常有益。

可用于执行各种机器学习任务,包括分类、回归、聚类、深度学习,甚至预测。 它们能够执行从简单的表格数据分析到更复杂的图片识别或自然语言处理的任务。

  • 表格数据:分类和回归
  • 图像数据:计算机视觉
  • 文本数据:自然语言处理 (NLP)

使用 AutoKeras 进行图像分类的示例。

  1. 导入所需类:
import os
import pathlib
import numpy as np
import tensorflow as tf
import autokeras as akimport warnings
warnings.filterwarnings('ignore')
  1. 加载数据库
dataset_url = "https://storage.gapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
data_dir = pathlib.Path(data_dir)
  1. 分类训练、测试、验证集
batch_size = 32
img_height = 240
img_width = 240train_data = ak.image_dataset_from_directory(data_dir,validation_split=0.15,subset="training",seed=23,image_size=(img_height, img_width),batch_size=batch_size,
)test_data = ak.image_dataset_from_directory(data_dir,validation_split=0.15,subset="validation",seed=23,image_size=(img_height, img_width),batch_size=batch_size,
)

输出

Found 3670 files belonging to 5 classes.
Using 3120 files for training.
Found 3670 files belonging to 5 classes.
Using 550 files for validation.
  1. 构建自动化机器学习模型
image_classifier = ak.ImageClassifier(num_classes = 5,multi_label = True,overwrite=True, max_trials=1)image_classifier.fit(train_data, epochs=5)

输出

Search: Running Trial #1
Value             |Best Value So Far |Hyperparameter
vanilla           |vanilla           |image_block_1/block_type
True              |True              |image_block_1/normalize
False             |False             |image_block_1/augment
3                 |3                 |image_block_1/conv_block_1/kernel_size
1                 |1                 |image_block_1/conv_block_1/num_blocks
2                 |2                 |image_block_1/conv_block_1/num_layers
True              |True              |image_block_1/conv_block_1/max_pooling
False             |False             |image_block_1/conv_block_1/separable
0.25              |0.25              |image_block_1/conv_block_1/dropout
32                |32                |image_block_1/conv_block_1/filters_0_0
64                |64                |image_block_1/conv_block_1/filters_0_1
flatten           |flatten           |classification_head_1/spatial_reduction_1/reduction_type
0.5               |0.5               |classification_head_1/dropout
adam              |adam              |optimizer
0.001             |0.001             |learning_rate
Trial 1 Complete [00h 08m 02s]
val_loss: 0.3753296434879303
Best val_loss So Far: 0.3753296434879303
Total elapsed time: 00h 08m 02s
INFO:tensorflow:Oracle triggered exit
Epoch 1/5
98/98 [==============================] - 110s 1s/step - loss: 0.9031 - accuracy: 0.4234
Epoch 2/5
98/98 [==============================] - 114s 1s/step - loss: 0.3507 - accuracy: 0.6224
Epoch 3/5
98/98 [==============================] - 109s 1s/step - loss: 0.2060 - accuracy: 0.8490
Epoch 4/5
98/98 [==============================] - 112s 1s/step - loss: 0.0995 - accuracy: 0.9497
Epoch 5/5
98/98 [==============================] - 106s 1s/step - loss: 0.0795 - accuracy: 0.9686
  1. 评估模型
image_classifier.evaluate(test_data)

输出

18/18 [==============================] - 5s 276ms/step - loss: 0.5662 - accuracy: 0.5600
[0.5662239789962769, 0.5600000023841858]
  1. 加载图像并进行预测
from PIL import Imageimage_path = "sunflower.jpeg"new_image = Image.open(image_path)
resized_image = new_image.resize((img_height, img_width))
resized_image
  1. 预测
preprocessed_image = np.expand_dims(resized_image, axis=0)predictions = image_classifier.predict(preprocessed_image)
print(predictions)

输出

1/1 [==============================] - 0s 48ms/step
1/1 [==============================] - 0s 16ms/step
[['sunflowers']]
参阅一:计算思维
参阅二:亚图跨际

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示 一问题描述:1.docker若是直接简单使用run命令,但不挂载容器数据卷等参数,则可以启动Redis容器2.docker复杂使用run命令,使用指定redis.co…

SIFT 3D关键点检测以及SAC-IA粗配准

一、SIFT 3D关键点检测 C #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/common/io.h> #include <pcl/visualization/pcl_visualizer.h> #include <boost/thread/thread.hpp> #include &…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十二)(3)

实验十二&#xff1a;微分方程模型 练习三 1.分别用数值解命令ode23t和ode45 计算示例3中微分方程的数值解,同用命令ode23 算得的数值解以及解析解比较,哪种方法精度较高?你用什么方法比较它们之间的精度? clc;clear; f(x,y)2*yx2; figure(1) [x,y]ode23t(f,[1,2],1); plo…

对称密钥密码体制、公钥密码体制

1 对称密钥密码体制 加密密钥与解密密钥都使用相同密钥的密码体制。 数据加密标准 DES DES 属于对称密钥密码体制&#xff0c;是一种分组密码。 在加密前&#xff0c;先对整个明文进行分组。每一个组长为 64 位。 然后对每一个 64 位 二进制数据进行加密处理&#xff0c;…

C++重新认知:智能指针

0/# 一、为什么要有智能指针 内存泄露是我们开发大型项目时最为头疼的问题&#xff0c;当我们将对象建立在堆上时&#xff0c;因为需要我们自己手动释放&#xff0c;因此避免不了忘记删除&#xff0c;或者删除时没有考虑清楚情况的问题&#xff0c;从而造成悬挂指针或者是野指针…

Sora技术报告——Video generation models as world simulators

文章目录 1. 视频生成模型&#xff0c;可以视为一个世界模拟器2. 技术内容2.1 将可视数据转换成patches2.2 视频压缩网络2.3 Spacetime Latent Patches2.4 Scaling transformers 用于视频生成2.5 可变的持续时间&#xff0c;分辨率&#xff0c;宽高比2.6 抽样的灵活性2.7 改进框…

【Linux】Framebuffer 应用

# 前置知识 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Frame 是帧的意思&#xff0c; buffer 是缓冲的意思&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。 Framebuffer 中保存着一帧图像的每一个像素颜色值&…

4核8G服务器支持多少人同时在线访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

Unity类银河恶魔城学习记录7-7 P73 Setting sword type源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

基于SringBoot+Vue的大学生社团管理系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 1.1 研究背景 1.…

C语言之日历问题

一、代码展示 #include<stdio.h> int leapyear(int year)//判断是不是闰年函数 {if (year % 4 0 && year % 100 ! 0 || year % 400 0)return 1;elsereturn 0; } int days(int year, int month, int* day)//判断一个月有几天 {if (month ! 2)return day[month…