我是靠谱客的博主 自信楼房,最近开发中收集的这篇文章主要介绍[tensorflow]tensorflow 2.1 函数API(The Functional API)1、函数API介绍2、创建模型3、训练和评估模型4、保存模型5、模型的嵌套,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
1、函数API介绍
2、创建模型
3、训练和评估模型
4、保存模型
5、模型的嵌套
1、函数API介绍
Keras的函数API是一种创建模型的方法,该模型比tf.keras.Sequential API更灵活。可以处理具有非线性拓扑的模型,具有共享层的模型以及具有多个输入或输出的模型。
2、创建模型
说明:
- 本文用tensorflow 2.1.1,python3.7进行实验
- 如无说明,所有的代码都默认引入以下包
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
实际上深度学习模型的每个图层通常都是有向无环图(DAG),考虑下面的模型:
- shape=(784,)的输入
- 三个隐藏图层
- 输出超过10个分类的概率
(input: 784-dimensional vectors)
↧
[Dense (64 units, relu activation)]
↧
[Dense (64 units, relu activation)]
↧
[Dense (10 units, softmax activation)]
↧
(output: logits of a probability distribution over 10 classes)
使用keras函数API创建模型的顺序如下:
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
#创建shape(784,)的输入
inputs = keras.Input(shape=(784,))
#打印形状信息和数据类型信息
print(inputs.shape)
print(inputs.dtype)
#创建第一个图层
dense = layers.Dense(64, activation="relu")
#把输入形状传递个第一个图层
x = dense(inputs)
#创建第二个图层
x = layers.Dense(64, activation="relu")(x)
#创建第三个图
outputs = layers.Dense(10)(x)
#创建模型
model = keras.Model(inputs=inputs, outputs=outputs, name="mymodel")
#查看模型概要
model.summary()
#把模型绘图输出
keras.utils.plot_model(model, "mymodel.png")
#把模型的每个图层细节绘图输出
keras.utils.plot_model(model, "mymodel_with_shape_info.png", show_shapes=True)
输出的模型概要:
输出的模型图形化流程:
输出的图层细节图:
3、训练和评估模型
使用函数API构建的模型,和用序列创建的模型,训练,评估和推断的工作方式完全相同。本节采用MNIST图像数据,将其整形为矢量,将模型拟合到数据上(同时在验证拆分上监视性能),然后在测试数据上评估模型。
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
#对训练数据和测试数据进行重新向量化
x_train = x_train.reshape(60000, 784).astype("float32") / 255
x_test = x_test.reshape(10000, 784).astype("float32") / 255
#编译模型
model.compile(
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
optimizer=keras.optimizers.RMSprop(),
metrics=["accuracy"],
)
#训练模型
history = model.fit(x_train, y_train, batch_size=64, epochs=2, validation_split=0.2)
#评估模型
test_scores = model.evaluate(x_test, y_test, verbose=2)
print("Test loss:", test_scores[0])
print("Test accuracy:", test_scores[1])
4、保存模型
训练完成模型后,可以保存模型为文件;方面模型复用。可以调用model.save()方法保存模型。保存后的模型文件由以下组成:
- 模型架构
- 模型权重值(在训练过程中获悉)
- 模型训练配置
- 优化程序及其状态(如果有的话)(从上次中断的地方重新开始训练)
#保存模型
model.save(r"D: 2_applicationpycharmworkspacemodelsmy_model")
#删除模型
#del model
#加载模型
#model = keras.models.load_model(r"D: 2_applicationpycharmworkspacemodelsmy_model")
保存的模型文件:
5、模型的嵌套
模型训练完成后,可以作为另一个模型的一个图层,实现创建更复杂的模型,被嵌套的模型,可以像图层一样使用。
最后
以上就是自信楼房为你收集整理的[tensorflow]tensorflow 2.1 函数API(The Functional API)1、函数API介绍2、创建模型3、训练和评估模型4、保存模型5、模型的嵌套的全部内容,希望文章能够帮你解决[tensorflow]tensorflow 2.1 函数API(The Functional API)1、函数API介绍2、创建模型3、训练和评估模型4、保存模型5、模型的嵌套所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复