[TensorFlow 2.0] Keras 简介
Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。
keras的3个优点: 方便用户使用、模块化和可组合、易于扩展
简单点说就是,简单、好用、快(构建)
引用方法:
import tensorflow as tf
from tensorflow.keras import layers
简单构建一个模型
先上代码
input_x = tf.keras.Input(shape=(72,))
hidden1 = layers.Dense(32, activation='relu')(input_x)
hidden2 = layers.Dense(16, activation='relu')(hidden1)
pred = layers.Dense(10, activation='softmax')(hidden2)
model = tf.keras.Model(inputs=input_x, outputs=pred)
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=['accuracy'])
model.fit(train_x, train_y, batch_size=32, epochs=5)
tf.keras.Input
实例化一个 Keras tensor.
doc:
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/Input
方法定义如下:
tf.keras.Input(
shape=None,
batch_size=None,
name=None,
dtype=None,
sparse=False,
tensor=None,
**kwargs
)
tf.keras.layers.Dense
定义你的神经网络
这里官方在文档里加了一个 “densely-connected”来形容
doc:
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/layers/Dense

tf.keras.Model
Model groups layers into an object with training and inference features.
额,不知道该怎么翻译了
我的理解就是把你的之前定义的网络给链接起来
跟上上面的代码可能不太好理解,等看后面把模型按照面向对象的思想构建的时候,就方便理解了。
当然,你可以自己去看下文档
doc:
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/Model
tf.keras.Model.compile
配置模型训练时的相关数据
配置模型训练时,使用的相关参数。
比如,学习率、loss 等等
doc:
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/Model#compile

model.fit
进行模型训练
doc:
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/Model#fit

模型-OOP
通过OOP的思想,进行设计我们的模型
先看代码
class MyModel(tf.keras.Model):
def __init__(self, num_classes=10):
super(MyModel, self).__init__(name='my_model')
self.num_classes = num_classes
self.layer1 = layers.Dense(32, activation='relu')
self.layer2 = layers.Dense(num_classes, activation='softmax')
def call(self, inputs):
h1 = self.layer1(inputs)
out = self.layer2(h1)
return out
def compute_output_shape(self, input_shape):
shape = tf.TensorShape(input_shape).as_list()
shape[-1] = self.num_classes
return tf.TensorShape(shape)
model = MyModel(num_classes=10)
model.compile(optimizer=tf.keras.optimizers.RMSprop(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=['accuracy'])
model.fit(train_x, train_y, batch_size=16, epochs=5)
如果我们需要通过类来构造我们的模型,那么以下几点是必须的
1.继承tf.keras.Model
2.在__init__中调用以下父类,并构造我们的模型
super(MyModel, self).__init__(name='my_model')
self.num_classes = num_classes
self.layer1 = layers.Dense(32, activation='relu')
self.layer2 = layers.Dense(num_classes, activation='softmax')
3.在call中实现forward
4.compute_output_shape这个方法,在文档中,说明只有当模型修改了输入数据的形状时,才需要进行定义,否则没有必要。
但具体的效果,没有找到样例来参考。如果有懂得大神,希望举个例子。
模型保存
单独保存权重
model.save_weights('./weights/model')
model.load_weights('./weights/model')
model.save_weights('./model.h5')
model.load_weights('./model.h5')
单独保存模型结构
#json
model.to_json()
#yam
model.to_yaml()
保存整个模型
model.save('all_model.h5')
[TensorFlow 2.0] Keras 简介的更多相关文章
- 『TensorFlow2.0正式版』TF2.0+Keras速成教程·零:开篇简介与环境准备
此篇教程参考自TensorFlow 2.0 + Keras Crash Course,在原文的基础上进行了适当的总结与改编,以适应于国内开发者的理解与使用,水平有限,如果写的不对的地方欢迎大家评论指出 ...
- TensorFlow 2.0 新特性
安装 TensorFlow 2.0 Alpha 本文仅仅介绍 Windows 的安装方式: pip install tensorflow==2.0.0-alpha0 # cpu 版本 pip inst ...
- 三分钟快速上手TensorFlow 2.0 (后续)——扩展和附录
TensorFlow Hub 模型复用 TF Hub 网站 打开主页 https://tfhub.dev/ ,在左侧有 Text.Image.Video 和 Publishers 等选项,可以选取关注 ...
- Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理
前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...
- TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN
原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...
- 【深度学习与TensorFlow 2.0】卷积神经网络(CNN)
注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”. ...
- Tensorflow 2.0 datasets数据加载
导入包 import tensorflow as tf from tensorflow import keras 加载数据 tensorflow可以调用keras自带的datasets,很方便,就是有 ...
- 独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了
机器之心报道 作者:邱陆陆 8 月中旬,谷歌大脑成员 Martin Wicke 在一封公开邮件中宣布,新版本开源框架——TensorFlow 2.0 预览版将在年底之前正式发布.今日,在上海谷歌开发者 ...
- 极简安装 TensorFlow 2.0 GPU
前言 之前写了几篇关于 TensorFlow 1.x GPU 版本安装的博客,但几乎没怎么学习过.之前基本在搞 Machine Learning 和 Data Mining 方面的东西,极少用到 NN ...
随机推荐
- 【Mybatis】传入参数 对象+单参
Integer update( @Param(value="bean") TXNJSTXNDetailTBBean bean, @Param(value="table&q ...
- Scheme、Claim、ClaimsIdentity、ClaimsPrincipal介绍
在 token 创建.校验的整个生命周期中,都涉及到了 Scheme.Claim.ClaimsIdentity.ClaimsPrincipal 这些概念,如果你之前有使用过微软的 Identity ...
- I/O管理杂记
这是一篇杂记,记录了操作系统层面与I/O管理的零散知识点,用于温习使用.由于I/O管理是一个很大的范畴,后续会不断按照自己的生产需求来补充用的到的知识点.计算机系统是人造系统,没有绝对的对错(相对于自 ...
- postMessage的使用
一.简介 1.postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档.多窗口.跨域消息传递 2.postMessage(data,origin)方法接受两个参数 ...
- [RN] React Native 使用 阿里 ant-design
React Native 使用 阿里 ant-design 实例效果如图: 一.安装 npm install antd-mobile-rn --save npm install babel-plugi ...
- ZROI 暑期高端峰会 A班 Day3 字符串
FBI Warning:本文含有大量人类的本质之一 后缀树 反正后缀树就是反串的后缀自动机的 Parent 树,就不管了. 然而 SAM 也忘了 好的假装自己会吧--dls 后缀自动机 大概记得,不管 ...
- Android Studio 之 ROM【2】, LiveData+ViewModel+AsyncTask+Repository
改造上一节 ROM[1], 1.利用 LiveData<List<Word>> 与 observe 中的 onChanged 配合,删除掉之前的textView更新函数(upd ...
- Linux将一个文件夹或文件夹下的所有内容复制或移动到另一个文件夹
1.将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp ...
- 可能是全网最好的MySQL重要知识点 | 面试必备
可能是全网最好的MySQL重要知识点 | 面试必备 mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后 ...
- QFIL软件烧写镜像
1.准备好需要烧写的文件 烧写之前,需要先准备好需要的文件,如下: 2.打开QFIL程序 接下来运行QFIL程序,如下: 3.选择端口 程序运行后,选择合适的端口,如下: 点击端口选择,然后选择Por ...