[ML] 工程师使用 Keras 的步骤指引

设置
import numpy as np
import tensorflow as tf
from tensorflow import keras
介绍
在训练模型之前准备数据(将其转换为 NumPy 数组或 tf.data.Dataset 对象)。
进行数据预处理,例如 特性归一化 或词汇索引。
使用 Keras Functional API 建立一个将您的数据转化为有用的预测的模型。
使用内置的 Keras fit() 方法训练模型,同时注意检查点,指标监视和容错能力。
根据测试数据评估模型,以及如何将其用于推断新数据。
自定义 fit() 的功能,例如构建GAN。
利用多个 GPU 加快训练速度。
通过超参数调整来优化模型。
在本指南的最后,您将获得指向端到端示例的指引,以巩固这些概念:
图片分类
文字分类
信用卡欺诈检测
1. 数据加载 & 处理
* 数据加载
Keras 模型接受三张类型的输入,NumPy arrays, TensorFlow Dataset objects (针对大数据集和GPU优化),Python generators。
Keras 提供一系列工具帮助把 硬盘上的原始数据 转换为 Dataset,比如:
tf.keras.preprocessing.image_dataset_from_directory
tf.keras.preprocessing.text_dataset_from_directory
tf.data.experimental.make_csv_dataset
* 使用 Keras 对数据处理
理想的机器学习模型应是端到端的。一般,尽可能把数据预处理包含进模型,避免不必要的额外影响。理想的模型应该期望输入尽可能接近原始数据的东西:图像模型应该期望RGB像素值在[0,255]范围内,而文本模型应该接受utf-8字符的字符串。这样使用者不需要关注的外部的预处理过程。
使用 Keras 预处理层。好处是可以被包含进模型,使模型具备可移植性。预处理层包括:
矢量化文本字符串通过 TextVectorization 层。
特征归一化通过 Normalization 层。
图片重新缩放、裁剪,或图像数据增强。
包含状态的预处理层:
TextVectorization (矢量化)保存将单词或符号映射到整数标记的索引。
Normalization (标准化)保存了特征的平均值和方差。
预处理层的状态是通过对训练数据的一个样本(或全部)调用 layer.adapt(data) 来获得的。
2. 使用 Keras 功能API 构建模型
“模型”是层的有向无(循)环图。你可以将模型看作一个“更大的层”,它包含多个子层,并且可以通过暴露于数据进行训练。
3. 使用 fit() 训练模型
4. 使用 fit() 定制训练步骤
5. 使用 即时执行 调试模型
6. 使用多个 GPUs 加速训练
7. 在设备上同步执行预处理,而在主机CPU上异步执行预处理
8. 通过超参数调优找到最佳模型配置
9. 端到端示例
专业术语参考:
| English | 中文 |
|---|---|
| arguments | 参数 |
| boolean | 布尔 |
| data augumentation | 数据增强 |
| deep learning | 深度学习 |
| float | 浮点数 |
| Functional API | 函数式 API |
| Fuzz factor | 模糊因子 |
| input shape | 输入尺寸 |
| index | 索引 |
| int | 整数 |
| layer | 层 |
| loss function | 损失函数 |
| metrics | 评估标准 |
| nD tensor | nD 张量 |
| Numpy Array | Numpy 矩阵 |
| objective | 目标 |
| optimizer | 优化器 |
| output shape | 输出尺寸 |
| regularizer | 正则化器 |
| return | 返回 |
| recurrent | 循环 |
| Sequential Model | 顺序模型 |
| shape | 尺寸 |
| target | 目标 |
| testing | 测试 |
| training | 训练 |
| wrapper | 封装器 |
Tool:ChatAI
Docs:https://keras.io/getting_started/intro_to_keras_for_engineers/
Link:https://www.cnblogs.com/farwish/p/13973938.html
[ML] 工程师使用 Keras 的步骤指引的更多相关文章
- 一位ML工程师构建深度神经网络的实用技巧
一位ML工程师构建深度神经网络的实用技巧 https://mp.weixin.qq.com/s/2gKYtona0Z6szsjaj8c9Vg 作者| Matt H/Daniel R 译者| 婉清 编辑 ...
- 机器学习规则:ML工程最佳实践----rules_of_ml section 1【翻译】
作者:黄永刚 机器学习规则:ML工程最佳实践 本文旨在指引具有机器学习基础知识的工程师等人,更好的从机器学习的实践中收益.介绍一些应用机器学习需要遵循的规则,类似于Google C++ 风格指南等流行 ...
- C#中的深度学习(五):在ML.NET中使用预训练模型进行硬币识别
在本系列的最后,我们将介绍另一种方法,即利用一个预先训练好的CNN来解决我们一直在研究的硬币识别问题. 在这里,我们看一下转移学习,调整预定义的CNN,并使用Model Builder训练我们的硬币识 ...
- ubuntu系统theano和keras的安装
说明:系统是unbuntu14.04LTS,32位的操作系统,以前安装了python3.4,现在想要安装theano和keras.步骤如下: 1,安装pip sudo apt-get install ...
- Java工程师的终极书单
本份Java工程师的终极书单只在专业的Java技术博客–天天编码上发布,没有授权任何网站与个人转载. 坚持阅读好书是学习Java技术的好方式.但是,市面上与Java技术相关的书籍可谓数不胜数,如何从这 ...
- Keras Model Sequential模型接口
Sequential 模型 API 在阅读这片文档前,请先阅读 Keras Sequential 模型指引. Sequential 模型方法 compile compile(optimizer, lo ...
- 关于ML.NET v0.6的发布说明
ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...
- 微软发布ML.NET 1.0
原文地址:https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/ 我们很高兴地宣布今天发布ML.NET 1.0. ML.NET是一个 ...
- [翻译] 使用 TensorFlow 进行分布式训练
本文以两篇官方文档为基础来学习TensorFlow如何进行分布式训练,借此进入Strategy世界.
- [源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇
[源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇 目录 [源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇 1. ...
随机推荐
- python面向对象(继承)
一 继承 1.什么是继承1)继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类子类会遗传父类的属性2)需要注意的是:python支持多继承 在python中,新建的类可以继承 ...
- HDU 2045:不容易系列之(3)—— LELE的RPG难题(动态规划)
一.原题链接 Problem - 2045 (hdu.edu.cn) 二.题面 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole&quo ...
- Python 利用pandas多列分组多列求和
一.需求描述: 如下Excel数据 需要按 ASIN.SKU.品名.店铺 对 1-31 的列进行分组求和,实际数据是有很多重复的SKU数据 二.代码实现 import pandas as pd # 从 ...
- 快速上手系列:Oracle
一 简介 1.为何需要数据库?存储大量数据,方便检索和访问. 2.文件组成: 数据文件:扩展名是.DBF,用于存储数据库数据的文件,数据库表和数据文件不存在一对一对应关系 控制文件:扩展名是.CTL, ...
- [Java]Socket套接字(网络编程入门)
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/129907893 出自[进步* ...
- vue中elementui组件el-dialog拖拽(已处理边界情况)
全局注册 Vue.directive("elDialogDrag", (el) => { const header = el.querySelector(".el- ...
- C#添加自定义控件
1.vs 控件工具箱添加选项卡 2.输入选项卡名称 我这里是Emgucv 3.点击选择项 4.点击浏览 找到Emgu.CV.Platform.NetFramework.dll 这是emgucv的C#控 ...
- keycloak~在认证的action中自定义重定向地址
场景与实现逻辑 我的登录接口,在输入账号密码成功后进行中间页 中间页可以通过添加Authenticator的实现类来写逻辑 authenticate方法是渲染页面的,action方法是提交表单后的逻辑 ...
- 使用 rollup 打包可按需加载的 NPM 包
安装 rollup npm install rollup --save-dev 配置文件 rollup.config.js export default { input: 'src/index.js' ...
- 华为运动健康服务Health Kit 6.10.0版本新增功能速览!
华为运动健康服务(HUAWEI Health Kit)6.10.0 版本新增的能力有哪些? 阅读本文寻找答案,一起加入运动健康服务生态大家庭! 一. 支持三方应用查询用户测量的连续血糖数据 符合申请H ...