我是靠谱客的博主 自信楼房,最近开发中收集的这篇文章主要介绍[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、创建模型

说明:

  1. 本文用tensorflow 2.1.1,python3.7进行实验
  2. 如无说明,所有的代码都默认引入以下包
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

实际上深度学习模型的每个图层通常都是有向无环图(DAG),考虑下面的模型:

  1. shape=(784,)的输入
  2. 三个隐藏图层
  3. 输出超过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()方法保存模型。保存后的模型文件由以下组成:

  1. 模型架构
  2. 模型权重值(在训练过程中获悉)
  3. 模型训练配置
  4. 优化程序及其状态(如果有的话)(从上次中断的地方重新开始训练)
#保存模型
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、模型的嵌套所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部