当前位置: 首页 > news >正文

TensorFlow中使用Keras

目录

  • 前言
  • 创建模型
  • 配置layers
  • 训练和评估
    • 配置模型
    • 训练
    • 评估和预测

前言

keras集成在tf.keras中。

创建模型

创建一个简单的模型,使用tf.keras.sequential。

model = tf.keras.Sequential()
# 创建一层有64个神经元的网络:
model.add(layers.Dense(64, activation='relu'))
# 添加另一层网络:
model.add(layers.Dense(64, activation='relu'))
# 输出层:
model.add(layers.Dense(10, activation='softmax'))

配置layers

layers包含以下三组重要参数:

activation: 激活函数, ‘relu’, ‘sigmoid’, ‘tanh’.
kernel_initializer 和 bias_initializer: 权重和偏差的初始化器. Glorot uniform是默认的初始化器.一般不用改.
kernel_regularizer 和 bias_regularizer: 权重和偏差的正则化.L1, L2.

以下是配置模型的例子:

# 激活函数为sigmoid:
layers.Dense(64, activation='sigmoid')
# Or:
layers.Dense(64, activation=tf.sigmoid)# 权重加了L1正则:
layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l1(0.01))# 给偏差加了L2正则
layers.Dense(64, bias_regularizer=tf.keras.regularizers.l2(0.01))# 随机正交矩阵初始化器:
layers.Dense(64, kernel_initializer='orthogonal')# 偏差加了常数初始化器
layers.Dense(64, bias_initializer=tf.keras.initializers.constant(2.0))

训练和评估

配置模型

使用compile配置模型, 主要有以下几组重要参数.

optimizer: 优化器, 主要有:tf.train.AdamOptimizer, tf.train.RMSPropOptimizer, or tf.train.GradientDescentOptimizer.
loss: 损失函数. 主要有:mean square error (mse, 回归), categorical_crossentropy(多分类), and binary_crossentropy(二分类).
metrics: 算法的评估标准, 一般分类用accuracy.

以下是compile的 实例:

# 配置均方误差的回归.
model.compile(optimizer=tf.train.AdamOptimizer(0.01),loss='mse',       # mean squared errormetrics=['mae'])  # mean absolute error# 配置多分类的模型.
model.compile(optimizer=tf.train.RMSPropOptimizer(0.01),loss=tf.keras.losses.categorical_crossentropy,metrics=[tf.keras.metrics.categorical_accuracy])

训练

使用model的fit方法进行训练, 主要有以下参数:

epochs: 训练次数
batch_size: 每批数据多少
validation_data: 测试数据

对于小数量级的数据,可以直接把训练数据传入fit.

import numpy as npdata = np.random.random((1000, 32))
labels = random_one_hot_labels((1000, 10))val_data = np.random.random((100, 32))
val_labels = random_one_hot_labels((100, 10))model.fit(data, labels, epochs=10, batch_size=32,validation_data=(val_data, val_labels))

对于大数量级的训练数据,使用tensorflow中dataset.

# 把数据变成dataset
dataset = tf.data.Dataset.from_tensor_slices((data, labels))
# 指定一批数据是32, 并且可以无限重复
dataset = dataset.batch(32).repeat()val_dataset = tf.data.Dataset.from_tensor_slices((val_data, val_labels))
val_dataset = val_dataset.batch(32).repeat()# 别忘了steps_per_epoch, 表示执行完全部数据的steps
model.fit(dataset, epochs=10, steps_per_epoch=30)model.fit(dataset, epochs=10, steps_per_epoch=30,validation_data=val_dataset,validation_steps=3)

评估和预测

使用tf.keras.Model.evaluateandtf.keras.Model.predict进行评估和预测. 评估会打印算法的损失和得分.

data = np.random.random((1000, 32))
labels = random_one_hot_labels((1000, 10))
#  普通numpy数据
model.evaluate(data, labels, batch_size=32)
# tensorflow dataset数据
model.evaluate(dataset, steps=30)

预测:

result = model.predict(data, batch_size=32)
print(result.shape)

相关文章:

  • Vscode开发STM32标准库
  • Linux网络编程 多进程UDP聊天室:共享内存与多进程间通信实战解析
  • 反转字符串
  • 【数据结构入门训练DAY-19】总结数据结构中的栈
  • OkHttp入门
  • python——函数
  • EMQX学习笔记
  • CCF-GESP认证的学习资源与知识点详细指南
  • (mamba_ssm)安装踩坑指南
  • 远程桌面-文件传输
  • ECMAScript
  • STM32——相关软件安装
  • GPU虚拟化实现(一)
  • 矩阵-螺旋矩阵
  • Kafka 如何理解Kafka的高可用
  • 从本地存档到协作开发的Git简单使用
  • 解决go项目构建后不能夸Linux平台的问题
  • 使用IntersectionObserver实现目标元素可见度的交互
  • Franka机器人ROS 2来袭:解锁机器人多元应用新可能
  • [密码学基础]商用密码应用安全性评估(密评):网络安全新风口,高薪紧缺人才必备技能
  • 一季度全国纪检监察机关共处分18.5万人,其中省部级干部14人
  • 第八届进博会将致力于打造“五个高”,为展商增值赋能
  • 对话地铁读书人|财务管理孟先生:老婆让我看《三体》
  • 上海群文创作大检阅,102个节目角逐群星奖
  • 马上评|机器人马拉松,也是具身智能产业的加速跑
  • 外交部回应美新任驻日大使涉华言论:外交官的职责不应是抹黑别国、煽动对抗