公司外宣网站,wordpress数据库说明,网络程序员,佛山外贸建站目录
TensorFlow 2.x基础
1、安装 TensorFlow 2.x
2、TensorFlow 2.x 基础概念
2、1 Eager Execution
2、2 TensorFlow 张量#xff08;Tensor#xff09;
3、使用Keras构建神经网络模型
3、1 构建 Sequential 模型
3、2 编译模型
1、Optimizer#xff08;优化器Tensor
3、使用Keras构建神经网络模型
3、1 构建 Sequential 模型
3、2 编译模型
1、Optimizer优化器
2、Loss损失函数
3、Metrics评估指标
3、3 训练模型
3、4 评估模型
3、5 预测
4、使用 TensorFlow 2.x 实现自定义训练循环
5、TensorFlow 2.x 高级功能
5、1 TensorFlow Dataset数据管道
5、2 TensorFlow Serving
5、3 TensorFlow Lite模型优化和部署
总结 TensorFlow 2.x基础
TensorFlow 2.x 是一个广泛使用的深度学习框架特别适用于神经网络的构建和训练。与之前的版本相比TensorFlow 2.x 提供了更加简洁和易用的 API集成了 Keras 作为高层 API并支持动态图Eager Execution。
1、安装 TensorFlow 2.x
首先确保你已经安装了 TensorFlow 2.x。Python 3.11.4可以通过以下命令来安装pip install tensorflow 查看pip show tensorflow Name: tensorflow Version: 2.18.0
2、TensorFlow 2.x 基础概念
2、1 Eager Execution
TensorFlow 2.x 默认启用 Eager Execution这意味着操作是即时执行的计算结果会立刻返回而不需要构建图。这样使得调试更加容易代码更具可读性。
import tensorflow as tf# 启用 Eager Execution
tf.compat.v1.enable_eager_execution()# 创建一个张量并执行操作
a tf.constant([1, 2, 3])
b tf.constant([4, 5, 6])c a b # 即时执行
print(c) # 输出结果: tf.Tensor([5 7 9], shape(3,), dtypeint32)2、2 TensorFlow 张量Tensor
TensorFlow 的核心数据结构是张量tensor。张量类似于 NumPy 数组可以存储数据并在 TensorFlow 图中传递。你可以创建不同类型的张量
# 创建张量
t1 tf.constant([1, 2, 3]) # 一维张量
t2 tf.constant([[1, 2], [3, 4]]) # 二维张量
# 张量操作
t3 t1 5 # 所有元素加5
print(t3) # tf.Tensor([6 7 8], shape(3,), dtypeint32)
3、使用Keras构建神经网络模型
TensorFlow 2.x 中Keras 成为默认的高级API。通过Keras可以快速构建和训练神经网络。
3、1 构建 Sequential 模型
tf.keras.models.Sequential 是TensorFlow Keras API 中用于构建模型的一种简单方式。它允许你按顺序堆叠多个层layers以构建深度学习模型可以通过 add 方法向模型中添加层。常用的层包括全连接层Dense、卷积层Conv2D、池化层MaxPooling2D等
from tensorflow.keras import layers, models
# 创建一个简单的 Sequential 模型
model models.Sequential([#有 128 个神经元激活函数为 ReLUlayers.Dense(128, activationrelu, input_shape(784,)), # 输入层784 维的向量layers.Dropout(0.2), # Dropout 层丢弃 20% 的神经元防止过拟合layers.Dense(10, activationsoftmax) # 输出层10 个神经元激活函数为 softmax用于多分类
])# 打印模型概述
model.summary()
3、2 编译模型
在构建模型后需要编译它选择优化器、损失函数和评估指标在深度学习中optimizer、loss 和 metrics 是模型编译时的重要参数。下面将详细解释这三个参数的含义及其在模型训练中的作用。
1、Optimizer优化器
optimizeradam 指定了使用 Adam 优化器。优化器的主要作用是更新模型的权重以最小化损失函数。Adam 优化器结合了动量和自适应学习率的优点通常在许多任务中表现良好。
Adam 优化器的特点自适应学习率根据每个参数的历史梯度动态调整学习率。适合大规模数据和高维参数。通常收敛速度快效果好。
2、Loss损失函数
losssparse_categorical_crossentropy 指定了使用稀疏分类交叉熵作为损失函数。损失函数用于衡量模型预测值与真实值之间的差距。
稀疏分类交叉熵的特点适用于多分类问题且标签是整数形式而不是独热编码。计算方式是对每个样本的预测概率与真实标签的交叉熵进行求和。适合处理类别较多的分类问题。
3、Metrics评估指标
metrics[accuracy] 指定了在训练和评估过程中使用的评估指标。在这里使用的是准确率(accuracy它表示模型预测正确的样本占总样本的比例。
准确率的特点简单易懂常用于分类问题。适合类别均衡的数据集但在类别不均衡时可能会产生误导。
model.compile(optimizeradam,losssparse_categorical_crossentropy,metrics[accuracy])3、3 训练模型
训练模型时需要指定训练数据、标签、批量大小、训练的轮数epochs等参数
# 假设我们已经加载了 MNIST 数据集
(train_images, train_labels), (test_images, test_labels) tf.keras.datasets.mnist.load_data()# 预处理数据
train_images train_images.reshape((train_images.shape[0], 784)).astype(float32) / 255
test_images test_images.reshape((test_images.shape[0], 784)).astype(float32) / 255# 训练模型
history model.fit(train_images, train_labels, epochs5, batch_size64, validation_data(test_images, test_labels)) epochs表示整个训练数据集将被训练的次数。设置为5模型将遍历整个训练数据集5次 batch_size表示每次迭代中用于训练的样本数量。选择合适的 batch_size对模型的训练速度和性能有很大影响。常见的选择有32、64、128等具体选择可以根据你的数据集大小和计算资源来决定。
3、4 评估模型
训练完成后可以通过 evaluate 函数来评估模型在测试集上的表现
test_loss, test_acc model.evaluate(test_images, test_labels)
print(fTest accuracy: {test_acc})model.evaluate(test_images, test_labels)这个函数用于评估模型在测试数据集上的表现。 test_images 是测试集的输入数据通常是图像数据。 test_labels 是对应的标签表示每个测试样本的真实类别。 该函数返回两个值test_loss 和 test_acc分别表示测试集上的损失值和准确率。print(fTest accuracy: {test_acc})
准确率 (Accuracy)正确预测的样本占总样本的比例。 精确率 (Precision)正确预测为正类的样本占所有预测为正类的样本的比例。 召回率 (Recall)正确预测为正类的样本占所有实际为正类的样本的比例。 F1-score精确率和召回率的调和平均数。
3、5 预测
使用训练好的模型进行预测
predictions model.predict(test_images)
print(predictions[0]) # 打印第一个测试样本的预测结果4、使用 TensorFlow 2.x 实现自定义训练循环
虽然 Keras 提供了便捷的接口但有时我们需要更多控制特别是需要自定义训练循环时。在 TensorFlow 2.x 中你可以轻松实现自定义的训练循环。
# 自定义训练循环
for epoch in range(5): # 训练5轮for step, (images, labels) in enumerate(train_dataset):with tf.GradientTape() as tape:predictions model(images, trainingTrue)loss tf.losses.sparse_categorical_crossentropy(labels, predictions)# 计算梯度并更新模型参数grads tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(grads, model.trainable_variables))5、TensorFlow 2.x 高级功能
5、1 TensorFlow Dataset数据管道
tf.data API 用于构建高效的数据管道尤其是在处理大规模数据时。可以创建自定义的数据集、批处理和预处理操作。
# 加载数据集并进行预处理
train_dataset tf.data.Dataset.from_tensor_slices((train_images, train_labels))
train_dataset train_dataset.shuffle(10000).batch(64)# 迭代数据
for images, labels in train_dataset:print(images.shape, labels.shape)tf.data.Dataset.from_tensor_slices((train_images, train_labels))函数将训练图像和标签转换为一个 tf.data.Dataset 对象。train_images 是一个包含训练图像的张量train_labels 是对应的标签这个方法会将每个图像和其对应的标签配对形成一个数据集。
train_dataset.shuffle(10000)这个方法用于随机打乱数据集中的样本以提高模型的泛化能力。参数 10000 指定了缓冲区的大小表示在打乱时会随机选择最多10000个样本进行打乱。这个值可以根据你的数据集大小进行调整。
batch(64)这个方法将数据集分成多个批次每个批次包含64个样本。在训练过程中模型会一次处理一个批次的数据这样可以提高训练效率并减少内存占用。
5、2 TensorFlow Serving
TensorFlow Serving 是一个为生产环境提供的高效部署服务它可以帮助你在服务器端进行实时的模型推理。你可以通过 TensorFlow Serving 部署训练好的模型并通过 API 进行访问。
# 启动 TensorFlow Serving
docker run -p 8501:8501 --nametf_serving_mnist \--mount typebind,source/path/to/saved_model,destination/models/mnist \-e MODEL_NAMEmnist -t tensorflow/serving5、3 TensorFlow Lite模型优化和部署
TensorFlow Lite 允许将训练好的模型转换为适用于移动设备和边缘设备的格式。通过量化和剪枝等技术TensorFlow Lite 可以显著减少模型的大小和计算需求。
# 使用 TensorFlow Lite 转换模型
tflite_convert --saved_model_dir/path/to/saved_model --output_filemodel.tflite总结
TensorFlow 2.x 是一个功能强大且灵活的深度学习框架它集成了许多先进的功能如 Keras、高效的数据处理 API(tf.data)、Eager Execution 和自动化的模型优化工具。通过简洁的 API 和强大的性能TensorFlow 2.x 成为深度学习开发人员的首选框架之一。 文章转载自: http://www.morning.frcxx.cn.gov.cn.frcxx.cn http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.gbljq.cn.gov.cn.gbljq.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.iznek.com.gov.cn.iznek.com http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn http://www.morning.llcsd.cn.gov.cn.llcsd.cn http://www.morning.wglhz.cn.gov.cn.wglhz.cn http://www.morning.pigcamp.com.gov.cn.pigcamp.com http://www.morning.fwlch.cn.gov.cn.fwlch.cn http://www.morning.kflpf.cn.gov.cn.kflpf.cn http://www.morning.yunease.com.gov.cn.yunease.com http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com http://www.morning.npbkx.cn.gov.cn.npbkx.cn http://www.morning.yrck.cn.gov.cn.yrck.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.fstesen.com.gov.cn.fstesen.com http://www.morning.mphfn.cn.gov.cn.mphfn.cn http://www.morning.wrtbx.cn.gov.cn.wrtbx.cn http://www.morning.kqbwr.cn.gov.cn.kqbwr.cn http://www.morning.ntqnt.cn.gov.cn.ntqnt.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.tgcw.cn.gov.cn.tgcw.cn http://www.morning.xdttq.cn.gov.cn.xdttq.cn http://www.morning.qrksj.cn.gov.cn.qrksj.cn http://www.morning.hxfrd.cn.gov.cn.hxfrd.cn http://www.morning.rqkck.cn.gov.cn.rqkck.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.qhln.cn.gov.cn.qhln.cn http://www.morning.baguiwei.com.gov.cn.baguiwei.com http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn http://www.morning.kflzy.cn.gov.cn.kflzy.cn http://www.morning.rwbh.cn.gov.cn.rwbh.cn http://www.morning.bntgy.cn.gov.cn.bntgy.cn http://www.morning.kfcz.cn.gov.cn.kfcz.cn http://www.morning.zffps.cn.gov.cn.zffps.cn http://www.morning.fkwgk.cn.gov.cn.fkwgk.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.ntzfj.cn.gov.cn.ntzfj.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.rwxnn.cn.gov.cn.rwxnn.cn http://www.morning.nrchx.cn.gov.cn.nrchx.cn http://www.morning.jcxzq.cn.gov.cn.jcxzq.cn http://www.morning.ffgbq.cn.gov.cn.ffgbq.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.grfhd.cn.gov.cn.grfhd.cn http://www.morning.jnhhc.cn.gov.cn.jnhhc.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.mpmtz.cn.gov.cn.mpmtz.cn http://www.morning.brwei.com.gov.cn.brwei.com http://www.morning.jgttx.cn.gov.cn.jgttx.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.fypgl.cn.gov.cn.fypgl.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn http://www.morning.ykklw.cn.gov.cn.ykklw.cn http://www.morning.c7630.cn.gov.cn.c7630.cn http://www.morning.yccnj.cn.gov.cn.yccnj.cn http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn http://www.morning.nnmnz.cn.gov.cn.nnmnz.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn http://www.morning.tnthd.cn.gov.cn.tnthd.cn http://www.morning.mtxrq.cn.gov.cn.mtxrq.cn http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn http://www.morning.dygqq.cn.gov.cn.dygqq.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.tymnr.cn.gov.cn.tymnr.cn http://www.morning.txgjx.cn.gov.cn.txgjx.cn http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn http://www.morning.tdqhs.cn.gov.cn.tdqhs.cn