Keras高层接口

1、搭建Softmax网络层

通过 layers.Softmax(axis)类搭建 Softmax 网络层,其中 axis 参数指定进行 softmax 运算的维度。

 

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
x = tf.constant([2.,1.,0.1])        # 创建常量
print(x)
layer = layers.Softmax(axis=-1)     # 创建Softmax层 
layer(x)                # 调用softmax前向计算
print(layer(x))         # 输出概率分布

在这里介绍一下Softmax函数:

 2、网络容器Sequential

# 导入Sequential容器
import tensorflow as tf 
from tensorflow import keras
from tensorflow.keras import layers,Sequential
network = Sequential([					# 封装一个网络
	layers.Dense(3,activation=None),	# 全连接层
	layers.ReLU(),						# 激活函数层
	layers.Dense(2,activation=None),	# 全连接层
	layers.ReLU()						# 激活函数层
])
x = tf.random.normal([4,3])
network(x)		# 输入从第一层开始,逐层传播至最末层
network.summary()

结果如下:

 通过 add()方法继续追加新的网络层

import tensorflow
from tensorflow import keras
from tensorflow.keras import layers,Sequential
# 通过指定任意的 layers_num 参数即可创建对应层数的网络结构。 
layers_num = 2 # 堆叠2次
network = Sequential([])			# 先创建空的网络
for _ in range(layers_num):
	network.add(layers.Dense(3))	# 添加全连接层
	network.add(layers.ReLU())		# 添加激活函数层
network.build(input_shape=(None,4)) # 创建网络参数
network.summary()

结果如下:

可以看到 Layer 列为每层的名字,这个名字由 TensorFlow 内部维护,与 Python 的对象名不一样,Param#列为层的参数个数,Total params 统计出了总的参数量,Trainable params 为待优化的参数量,Non-trainable params 为不需要优化的参数量。

 介绍几个函数:

summary()函数可以方便打印出网络结构和参数量。

通过调用类的 build 方法并指定输入大小,即可自动创建所有层的内部张量。

Sequential 对象的trainable_variables 和 variables 包含了所有层的待优化张量列表和全部张量列表:

# 打印网络的待优化参数名与shape
for p in network.trainable_variables:
	print(p.name,p.shape)

3、模型装配、训练与测试

3.1 模型装配

用Sequential容器封装网络,compile函数指定网络使用的优化器对象、损失函数、评价指标。

3.2 模型训练

通过 fit()函数送入待训练的数据和验证用的数据集。

3.3 模型测试

 Model.predict(x)方法即可完成模型的预测。

4、模型保存与加载

4.1 张量方式 

过调用 Model.save_weights(path)方法即可讲当前的网络参数保存到 path 文件上。

4.2 网络方式

通过 Model.save(path)函数可以将模型的结构以及模型的参数保存到一个 path 文件上,在不需要网络源文件的条件下,通过 keras.models.load_model(path)即可恢复网络结构和网络参数。

4.3 SaveModel方式

通过 tf.keras.experimental.export_saved_model(network, path)即可将模型以 SavedModel方式保存到 path 目录中。

5、自定义类

5.1 自定义网络层

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值