[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. ...
随机推荐
- 02.Android之IPC机制问题
目录介绍 2.0.0.1 什么是Binder?为什么要使用Binder?Binder中是如何进行线程管理的?总结binder讲的是什么? 2.0.0.2 Android中进程和线程的关系?什么是IPC ...
- .NET Emit 入门教程:第一部分:Emit 介绍
前言: Emit 是开发者在掌握反射的使用后,进阶需要的知识,它能显著的改善因反射带来的性能影响. 目前能搜到的 Emit 的相关文章,都是一篇系列,通常推荐对照着反绎后的 IL 编写 Emit 代码 ...
- TP6框架--EasyAdmin学习笔记:项目上线
这是我暂时写EasyAdmin的最后一章,给大家分享下项目上线的全过程,希望对大家有所帮助,废话不多说,直接上内容 服务器我选用的是阿里云,上线时我使用的是宝塔面板来进行部署,如果你是新手,并不熟练服 ...
- FPT:又是借鉴Transformer,这次多方向融合特征金字塔 | ECCV 2020
论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设计的特征增强操作,分别用于借鉴层内特征进行增强.借鉴高层特征进行增强以及借鉴低层特征进行增强,FPT的输出维度与输入一致,能够自由嵌入到各 ...
- KingbaseES 垃圾回收原理以及如何预防膨胀更新
背景 KingbaseESV8R6支持snapshot too old 那么实际工作中,经常看到表又膨胀了,那么我们讨论一下导致对象膨胀的常见原因有哪些呢? 未开启autovacuum,对于未开启au ...
- KingbaseES V8R3集群运维案例之---备库状态‘down’修复
案例说明: Kingbase V8R3集群,集群启动正常,备库数据库服务正常,流复制状态正常.但是备库在show pool_nodes下查看是'down'状态,通过pcp_attach_node重 ...
- 论 C++ 中 double 类型的优化问题
是这样的,我在 OI 出题中,std 习惯使用 double,但是求解,在大数据的情况下用 long double,小数据用 double. 虽然这样也没什么问题,但是在 std 中我是不开启 -O2 ...
- 探索多种数据格式:JSON、YAML、XML、CSV等数据格式详解与比较
1. 数据格式介绍 数据格式是用于组织和存储数据的规范化结构,不同的数据格式适用于不同的场景.常见的数据格式包括JSON.YAML.XML.CSV等. 数据可视化 | 一个覆盖广泛主题工具的高效在线平 ...
- 【中秋国庆不断更】OpenHarmony多态样式stateStyles使用场景
@Styles和@Extend仅仅应用于静态页面的样式复用,stateStyles可以依据组件的内部状态的不同,快速设置不同样式.这就是我们本章要介绍的内容stateStyles(又称为:多态样式). ...
- 赋能千行百业数字化转型,OpenHarmony生态新成果即将亮相HDC2022
第四届华为开发者大会 2022(Together)将于11月4日-6日在东莞召开,OpenAtom OpenHarmony(以下简称"OpenHarmony")将携生态新成果亮相 ...