TensorFlow2.0学习笔记之一些高阶API

一、tf.keras高阶API概览

高阶API代码实现
activationstf.keras.actibations包含了当前主流的激活函数,可以直接通过该API进行激活函数的调用。
applicationstf.keras.applications包含的是已经进行预训练的神经网络模型,可以直接进行预测或者迁移学习。目前该模块中包含了主流的神经网络结构。
backendtf.keras.backend包含了Keras后台的一些基础API接口,用于实现高阶API或者自己构建神经网络。
datasetstf.keras.datasets包含了常用的公开数据训练集,可以直接进行使用(需要翻墙),数据集有CIFAR-100、Boston Housing等。
layerstf.keras.layers包含了已经定义好的常用的神经网络层。
lossestf.keras.losses包含了常用的损失函数,可以根据实际需求直接进行调用。
optimizerstf.keras.optimizers包含了主流的优化器,可以直接调用API使用。比如Adm等优化器可以直接调用,然后配置所需要的参数即可。
preprocessingtf.keras.preprocessing包含了数据处理的一些方法,分为图片数据处理、语言序列处理、文本数据处理等,比如NLP常用的pad_sequences等,在神经网络模型训练前的数据处理上提供了非常强大的功能。
regularizerstf.keras.regularizers提供了常用的正则化方法,包括L1、L2等正则化方法。
wrapperstf.keras.wrappers是一个Keras模型的包装器,当需要进行跨框架迁移时,可以使用该API接口提供与其他框架的兼容性。
Sequential类tf.keras.Sequential可以让我们将神经网络层进行线性组合形成神经网络结构。

二、tf.keras高阶API编程

  • 将以构建一个线性回归模型为例介绍TensorFlow 2.0高阶API的使用。
import tensorflow as tf
import numpy as np

# 使用tf.keras高阶API构建神经网络模型
# 实例化一个tf.keras.Sequential
model = tf.keras.Sequential()
# 使用Sequential的add方法添加一层全连接神经网络
model.add(tf.keras.layers.Dense(input_dim=1,units=1))
# 使用Sequential的compile方法对神经网络模型进行编译,loss函数使用MSE,optimizer使用SGD(随机梯度下降)
model.summary()
model.compile(loss='mse',optimizer='sgd')

# 使用tf.keras高阶API训练神经网络模型
# 随机生成一些训练数据,在-10到10的范围内生成700个等差数列作为训练输入
X = np.linspace(-10,10,700)
# 通过一个简单的算法,生成Y数据,模拟训练数据的标签,700, 为数组
Y=2*X+100+np.random.normal(0,0.1,(700,))
# 开始训练,“verbose=1”表示以进度条的形式显示训练信息,"epochs=200"表示训练的epochs为200,"validation_split=0.2"表示分离20%的数据作为验证数据
model.fit(X,Y,verbose=1,epochs=200,validation_split=0.2)

# 使用tf.keras高阶API保存神经网络模型
filename = 'line_model.h5'
model.save(filename)
print("保存模型为line_model.h5")

# 使用tf.keras高阶API加载模型进行预测
x = tf.constant([0.5])
model = tf.keras.models.load_model(filename)
y= model.predict(x)
print(y)

结果显示:
Epoch 1/200
18/18 [==============================] - 0s 15ms/step - loss: 6472.1372 - val_loss: 11034.5996
Epoch 2/200
18/18 [==============================] - 0s 1ms/step - loss: 3540.1726 - val_loss: 6997.1821
...
Epoch 198/200
18/18 [==============================] - 0s 1ms/step - loss: 0.0089 - val_loss: 0.0098
Epoch 199/200
18/18 [==============================] - 0s 1ms/step - loss: 0.0089 - val_loss: 0.0099
Epoch 200/200
18/18 [==============================] - 0s 1ms/step - loss: 0.0088 - val_loss: 0.0109
保存模型为line_model.h5
[[100.99787]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值