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

实践案例 - 使用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架构;最后训练该模型并在测试集上评估其性能。此外,还绘制了训练过程中损失值及准确率的变化曲线图,以便直观地了解模型的学习情况。

http://www.dtcms.com/a/602542.html

相关文章:

  • 柳州建设网站医学教育网站建设方案
  • 全企网建站怎么样建站之星切换模板
  • 易语言DLL反编译 | 如何有效进行易语言DLL的逆向分析与应用
  • 自己做个网站怎么赚钱网站建设的目的及目标
  • vps网站管理助手下载开发板arduino
  • 财务机器人是什么?
  • 企业网站建设的类型有哪些深圳布吉建网站公司
  • 深圳建设网站商最新73种暴利产品竞价单页网站制作带订单后台系统模板
  • 做企业网站 空间怎么买网页源代码修改了影响别人吗
  • java基础-集合
  • 网站改版用新空间好吗蜜雪冰城的网络营销方式
  • 如何确定关键需求?
  • rk3562 udp发送带宽500Mbps出现丢包问题
  • 网站首页布局修改无线网络
  • fountain实现思想与应用第六弹——MVC
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 A
  • MIPI接口的C-PHY和D-PHY
  • 什么是继承
  • 安监局网站做模拟网站管理员要干些什么
  • 2017国办网站建设规范网站建设副业
  • wordpress农业站模板下载wordpress 主题 自适应
  • [AI tradingOS] 市场数据系统 | 多交易所交易接口 | 适配器模式
  • 什么系统网站好网站建设的搜索栏怎么设置
  • 广告设计和平面设计哪个前景好济南优化网站厂家
  • Linux之中断子系统-软中断softirq 和小任务 tasklet 分析(6)
  • 陵水网站建设友创科技老房装修改造哪家好
  • 球机是一种集成彩色一体化摄像机、云台、解码器、防护罩等功能于一体的前端监控设备
  • 鼓楼网站开发手机app开发与应用
  • KVM虚拟机NAT网络模式,转发端口记录
  • 汽车商城网站模板wordpress英文版修改栏