实践案例 - 使用Python和TensorFlow构建简单的图像分类模型

这里我们将利用TensorFlow库来创建一个基本的卷积神经网络(CNN),用于识别MNIST手写数字数据集中的图片。这个例子展示了如何轻松地应用深度学习技术解决问题。

```python

import tensorflow as tf

from tensorflow.keras import datasets, layers, models

import matplotlib.pyplot as plt

加载数据

(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()

数据预处理

train_images = train_images.reshape((60000, 28, 28, 1))

test_images = test_images.reshape((10000, 28, 28, 1))

归一化像素值到 0, 1 区间

train_images, test_images = train_images / 255.0, test_images / 255.0

构建CNN模型

model = models.Sequential()

model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))

model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Conv2D(64, (3, 3), activation='relu'))

model.add(layers.MaxPooling2D((2, 2)))

model.add(layers.Conv2D(64, (3, 3), activation='relu'))

添加全连接层

model.add(layers.Flatten())

model.add(layers.Dense(64, activation='relu'))

model.add(layers.Dense(10))

编译模型

model.compile(optimizer='adam',

loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),

metrics='accuracy')

训练模型

history = model.fit(train_images, train_labels, epochs=5,

validation_data=(test_images, test_labels))

评估模型

test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)

print('\nTest accuracy:', test_acc)

绘制训练过程中的损失和准确率变化

plt.figure(figsize=(12, 4))

plt.subplot(1, 2, 1)

plt.plot(history.history'loss', label='Training Loss')

plt.plot(history.history'val_loss', label='Validation Loss')

plt.legend()

plt.title('Loss over Epochs')

plt.subplot(1, 2, 2)

plt.plot(history.history'accuracy', label='Training Accuracy')

plt.plot(history.history'val_accuracy', label='Validation Accuracy')

plt.legend()

plt.title('Accuracy over Epochs')

plt.show()

```

这段代码首先加载了MNIST数据集并对图像进行了预处理;接着定义了一个包含三个卷积层和两个全连接层的简单CNN架构;最后训练该模型并在测试集上评估其性能。此外,还绘制了训练过程中损失值及准确率的变化曲线图,以便直观地了解模型的学习情况。

相关推荐
liangshanbo12158 小时前
什么是CSS原子化?它的优劣势是什么?
前端·css·tensorflow·css原子化
zhanghaha13149 天前
HTML系列教程:18_HTML / CSS 颜色零基础详解
css·html·tensorflow
落魄大学生之流水线上谋生计13 天前
ROS2从0到企业级完整教程
tensorflow
Thomas.Sir16 天前
第48课:TensorFlow|TF模型线上部署入门【本地服务封装、接口快速开发】
人工智能·python·tensorflow
Thomas.Sir16 天前
第49课:TensorFlow|项目性能调优全方案【训练提速、推理提速、资源占用优化】
人工智能·python·tensorflow
Thomas.Sir17 天前
第45课:TensorFlow|异常检测实战【工业设备数据故障识别模型搭建】
人工智能·python·tensorflow
Thomas.Sir17 天前
第42课:TensorFlow|计算机视觉实战二【图像分割基础流程与数据标注规范】
人工智能·计算机视觉·tensorflow
Thomas.Sir18 天前
第40课:TensorFlow|模型推理部署前置知识【离线推理、接口调用基础】
人工智能·python·tensorflow
Thomas.Sir19 天前
第38课:TensorFlow|可视化工具TensorBoard全用法【日志写入、指标监控、网络可视化】
人工智能·python·tensorflow
Thomas.Sir20 天前
第34课:TensorFlow|TF迁移学习实战【调用官方预训练模型微调训练】
tensorflow·neo4j·迁移学习