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

news2024/12/25 0:55:41

要点拓扑

在这里插入图片描述

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 ak

import 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 = 240

train_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 Image

image_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.coloradmin.cn/o/1452878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCL库学习及ROS使用

PCL库学习 c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include","/usr/local/include"],"defines": [],"compiler…

把Activity当做dialog对话框使用

1、引言 在安卓开发中对话框的使用是不可避免的,但是原生的对话框用起来总感觉差点意思,而且位置不好控制,在与界面的交互上也不够灵活,没有像activity那样的生命周期方法,以至于某些特殊的功能无法实现。此时我们就希…

深度学习主流开源框架:Caffe、TensorFlow、Pytorch、Theano、Keras、MXNet、Chainer

2.6 深度学习主流开源框架 表2.1 深度学习主流框架参数对比 框架关键词总结 框架关键词基本数据结构(都是高维数组)Caffe“在工业中应用较为广泛”,“编译安装麻烦一点”BlobTensorFlow“安装简单pip”TensorPytorch“定位:快…

数据库MySQL中出现乱码和表格不对齐怎么解决

MySQL中出现乱码问题及解决办法: 情况类似: 首先进入到数据库中,命令:mysql -h localhost -uroot -p或者mysql -uroot -p;进入数据库后选择一个你的数据库查看表中的中文是否乱码 以上是数据库中表格出现乱码情况,原…

项目架构梳理

单点登录组件 CREATE TABLE user_info (id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增主键,用户id,username varchar(30) NOT NULL COMMENT 用户姓名,password varchar(60) NOT NULL COMMENT 密码,token varchar(60) DEFAULT NULL COMMENT token,token_expire datetime DEF…

1.8 NLP自然语言处理

NLP自然语言处理 更多内容,请关注: github:https://github.com/gotonote/Autopilot-Notes.git 一、简介 seq2seq(Sequence to Sequence)是一种输入不定长序列,产生不定长序列的模型,典型的处理任务是机器翻译&#…

BUGKU-WEB game1

题目描述 题目截图如下: 进入场景看看: 是一个盖楼的游戏! 解题思路 先看看源码,好像没发现什么特别的是不是要得到一定的分数才会有对应的flag?查看下F12,请求链接发现,这不就提示了 相…

第13章 网络 Page738~741 13.8.3 TCP/UDP简述

libcurl是C语言写成的网络编程工具库,asio是C写的网络编程的基础类型库 libcurl只用于客户端,asio既可以写客户端,也可以写服务端 libcurl实现了HTTP\FTP等应用层协议,但asio却只实现了传输层TCP/UDP等协议。 在学习http时介绍…

九大问题困扰企业财务数字化转型,你准备好解决了吗?

随着数字化浪潮的推进,企业财务管理也迎来了转型的关键时刻。然而,多年的数字化转型经验告诉我们,企业在这一过程中普遍面临着许多挑战和痛点。接下来,我们将逐一深入剖析这些痛点,并探讨如何有效应对。 一、数据孤岛问…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(3)数据准备初步

今天来学习数据准备。 一个AI项目要包括构建数据集、数据清理和数据融合、数据采集、特征工程、算法改进和其他步骤。 数据采集和数据清洗,也就是数据准备,要占到人工智能项目一半以上的工作量。 训练的数据量越大,模型越准确。 建立数据标…

一篇文章入门postmain接口测试

一、了解接口和接口测试 1、什么是接口? 电脑:USB,投影机(数据传输) 软件:统称APl,application,program,interface,微信提现和充值,支付宝支付,银联支付接口。(鉴权码:token,key,appkey) 2、接口包括&…

关于umi ui图标未显示问题

使用ant design pro 时,安装了umi ui ,安装命令: yarn add umijs/preset-ui -D但是启动项目后,发现没有显示umi ui的图标 找了许多解决方案,发现 umi的版本问题,由于我使用的ant design pro官网最新版本&a…

tf.linspace时出现Could not find valid device for node.

背景: 在使用tensorflow2.x的时候,当使用tf.linspace的时候会出现如下的报错: import os os.environ[TF_CPP_MIN_LOG_LEVEL] 2import tensorflow as tf from tensorflow import keras import numpy as npdef out():# x tf.constant(np.arange(12).re…

实现低功耗设计的嵌入式系统技术

(本文为简单介绍,观点来源网络) 在嵌入式系统设计中,追求低功耗已成为一个核心指标,旨在延长设备的运行时间并提升能效。实现这一目标的途径是多元的,涉及从硬件选型到软件算法的各个层面。 首先&#xf…

顺序结构实现栈

顺序结构实现栈 1. 栈1.1 栈的概念及结构1.2栈的实现 2. 栈的各种函数实现3. 全部代码实现 1. 栈 1.1 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为…

浅析太阳能电池量子效率测试系统的主要组成部分

太阳能电池量子效率测试系统是用于对太阳能电池进行量子效率测试的设备。量子效率是指太阳能电池在接收光照射时,将光子转化为电子的效率。太阳能电池的量子效率越高,其转化光能为电能的效率就越高。主要由以下几个组成部分构成: 光源&#x…

MIT-BEVFusion系列八--onnx导出2 spconv network网络导出

这里写目录标题 export-scn.py加载模型设置每层的精度属性初始化输入参数导出模型model.encoder_layers 设置初始化参数设置 indice_key 属性更改 lidar backbone 的 forward更改lidar网络内各个层的forward带参数装饰器,钩子函数代码使用装饰器修改forward举例 跟踪…

SpringBoot实战第五天

最后在开发一个文件上传接口,结束后端部分开发 文件上传接口 先看接口文档 阅读接口文档,唯一问题就是项目暂时还没有传到服务器上,所以对文件的存储与读取暂时在项目本地进行 Controller层 RestController public class FileUploadCont…

探索设计模式的魅力:揭秘模版方法模式-让你的代码既灵活又可维护

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 一、开篇二、应用场景一坨坨代码实现存在的问题 三、解决方案模式方法结构示意图及说明用模板方法模式重构示例解决的问题 四、工作原理使用模板方法模式重写示例结构图核心结构:抽象类和具体实现 五、总结…

IDEA 的28 个天花板技巧,yyds!

IDEA 作为Java开发工具的后起之秀,几乎以碾压之势把其他对手甩在了身后,主要原因还是归功于:好用;虽然有点重,但依旧瑕不掩瑜,内置了非常多的功能,大大提高了日常的开发效率,下面汇总了常用的28个使用小技巧,学会之后,让你的撸码效率直接起飞... 注意:不同idea版本菜…