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

大连网站流量优化定制北京有限公司

大连网站流量优化定制,北京有限公司,佛山免费建站公司,广东做网站公司目录 TensorFlow 2.x基础 1、安装 TensorFlow 2.x 2、TensorFlow 2.x 基础概念 2、1 Eager Execution 2、2 TensorFlow 张量(Tensor) 3、使用Keras构建神经网络模型 3、1 构建 Sequential 模型 3、2 编译模型 1、Optimizer(优化器&a…

目录

TensorFlow 2.x基础

1、安装 TensorFlow 2.x

2、TensorFlow 2.x 基础概念

2、1 Eager Execution

2、2 TensorFlow 张量(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,), dtype=int32)

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,), dtype=int32)

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, activation='relu', input_shape=(784,)),  # 输入层784 维的向量layers.Dropout(0.2),  # Dropout 层丢弃 20% 的神经元,防止过拟合layers.Dense(10, activation='softmax')  # 输出层10 个神经元,激活函数为 softmax用于多分类
])# 打印模型概述
model.summary()

3、2 编译模型

在构建模型后,需要编译它,选择优化器、损失函数和评估指标:在深度学习中,optimizer、loss 和 metrics 是模型编译时的重要参数。下面将详细解释这三个参数的含义及其在模型训练中的作用。

1、Optimizer(优化器)

optimizer='adam' 指定了使用 Adam 优化器。优化器的主要作用是更新模型的权重,以最小化损失函数。Adam 优化器结合了动量和自适应学习率的优点,通常在许多任务中表现良好。

Adam 优化器的特点:自适应学习率:根据每个参数的历史梯度动态调整学习率。适合大规模数据和高维参数。通常收敛速度快,效果好。

2、Loss(损失函数)

loss='sparse_categorical_crossentropy' 指定了使用稀疏分类交叉熵作为损失函数。损失函数用于衡量模型预测值与真实值之间的差距。

稀疏分类交叉熵的特点:适用于多分类问题,且标签是整数形式(而不是独热编码)。计算方式是对每个样本的预测概率与真实标签的交叉熵进行求和。适合处理类别较多的分类问题。

3、Metrics(评估指标)

metrics=['accuracy'] 指定了在训练和评估过程中使用的评估指标。在这里,使用的是准确率(accuracy它表示模型预测正确的样本占总样本的比例。

准确率的特点:简单易懂,常用于分类问题。适合类别均衡的数据集,但在类别不均衡时可能会产生误导。

model.compile(optimizer='adam',loss='sparse_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, epochs=5, batch_size=64, 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(f'Test accuracy: {test_acc}')

model.evaluate(test_images, test_labels):这个函数用于评估模型在测试数据集上的表现。
test_images 是测试集的输入数据,通常是图像数据。
test_labels 是对应的标签,表示每个测试样本的真实类别。
该函数返回两个值:test_loss 和 test_acc,分别表示测试集上的损失值和准确率。print(f'Test 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, training=True)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 --name=tf_serving_mnist \--mount type=bind,source=/path/to/saved_model,destination=/models/mnist \-e MODEL_NAME=mnist -t tensorflow/serving

5、3 TensorFlow Lite(模型优化和部署)

TensorFlow Lite 允许将训练好的模型转换为适用于移动设备和边缘设备的格式。通过量化和剪枝等技术,TensorFlow Lite 可以显著减少模型的大小和计算需求。

# 使用 TensorFlow Lite 转换模型
tflite_convert --saved_model_dir=/path/to/saved_model --output_file=model.tflite

总结

TensorFlow 2.x 是一个功能强大且灵活的深度学习框架,它集成了许多先进的功能,如 Keras、高效的数据处理 API(tf.data)、Eager Execution 和自动化的模型优化工具。通过简洁的 API 和强大的性能,TensorFlow 2.x 成为深度学习开发人员的首选框架之一。

http://www.tj-hxxt.cn/news/115106.html

相关文章:

  • 有帮忙做幻灯片的网站么网站点击量 哪里查询
  • 教育培训门户网站源码网站访问量统计工具
  • 网站建设 山西新手怎么做销售
  • 国外房产中介网站成都百度推广
  • 网站设计怎么做视频bt磁力天堂torrentkitty
  • 成都网站搜索引擎优化网站建设解决方案
  • 建设专门网站 强化信息宣传武汉网站提升排名
  • 宜昌市住房和城乡建设局网站360收录入口
  • 做一家网站需要多少钱电商网络推广
  • 有没有做外贸的网站啊抖音广告
  • 营销型网站建设试卷市场调研报告范文3000字
  • 打广告型的营销网站爱站网关键词查询系统
  • 网站建设产品成都网站seo收费标准
  • 哪种企业适合做网站网络营销课程速成班
  • 网站都有服务器吗外贸网站外链平台
  • 医疗美容 手机网站建设全球外贸b2b网站
  • 做网站需要租服务器么社区推广
  • 怎样在b2b网站做推广有效果b站视频推广app
  • 电子商务平台网站建设方式seo文章代写平台
  • 成都水高新区建设局官方网站免费建站网站一级
  • 商业网站页面中国唯一没有疫情的地方
  • 永久网站推广烟台网站建设
  • 做互联网小程序 和网站有没有前景seo引擎优化是做什么的
  • 有人打电话说请我做网站 骗子网店推广方案策划书
  • 公司做网站算什么费用阿里云域名注册网站
  • 被网上教开网店的骗了怎么办台州关键词优化推荐
  • 网站做担保交易 是否资质百度快照入口官网
  • 泰安网站搭建公司手机seo关键词优化
  • 电子商务网站建设的技术综述论文b2b自动发布信息软件
  • 网站建设的商业目的西安网站制作推广