[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. ...
随机推荐
- [Raspberry Pi]树莓派多线程下串口收发数据
[Raspberry Pi]树莓派多线程下串口收发数据 鼠鼠用的是python开发树莓派,因为python是最优美的语言! 少废话,直接上代码: import threading import ser ...
- 记录--一个好用的轮子 turn.js 实现仿真翻书的效果
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 国际惯例,官网链接 官网传送门 Github地址 github上有几个demos例子,介绍了基础用法. 我参考官网的例子,写了一个demo ...
- Ubuntu系统部署springcloud+nacos遇到的问题。
1,部署上的jar包运行正常,但是通过浏览器不能访问,telnet +IP+端口连接不通.小皮面板访问后台接口也是不通但是小皮面板可以通过浏览器访问.具体问题暂未解决. 2,改用docker部署,将j ...
- redis安装启动脚本
#!/bin/bash # sudo yum install -y gcc # sudo yum install -y ruby build-essential BASE=/usr/local ps ...
- RSA进阶(一)
本篇为RSA进阶篇,继RSA入门 [RSA3]P1(扩展欧几里得) 题目 from Crypto.Util.number import * flag = b'******' m1 = bytes_to ...
- 高德地图和echarts结合实现地图下钻(二)
一.学习ajax发送异步请求 1 $(function(){ 2 //请求参数 3 var list = {}; 4 // 5 $.ajax({ 6 //请求方式 7 type : "POS ...
- 5W1H聊开源之Why——为什么要参与开源?
中国开源的发展速度发展加快,个人和组织对于为开源作贡献有着前所未有的激情.据<2020年IT行业项目管理调查报告>,约四成受访者以自己开发开源项目.为他人提交项目代码.作为成员开发维护项目 ...
- #倍增,LCA,Kruskal#JZOJ 1092 洛谷 4180 [BJOI 2010] 次小生成树
题目 给出一个无向图,问它的严格次小生成树(数据保证有解) 分析 首先先找一棵最小生成树,然后对于每条非树边\((x,y,w)\)可以找到最小生成树上\(x,y\)路径上略小于\(w\),首先如果能找 ...
- #网络流,分层图#洛谷 4400 [JSOI2008] Blue Mary的旅行
题目 分析 考虑答案一定最大不超过\(n\),那么可以建分层图, 若当前最大流等于\(n\),直接输出枚举的天数 \((x,x')\)容量为\(inf\),\((x,y')\)容量为一个航班最多的票数 ...
- #左偏树,树形dp#洛谷 1552 [APIO2012]派遣
题目 分析 那我指定管理层之后,选择薪水越小的人越好, 考虑小根堆,由于需要合并,所以采用左偏树 代码 #include <cstdio> #include <cctype> ...