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

[人工智能自学] Python包学习-Matplotlib

参考教程:
fantastic-matplotlib
matplotlib 教程
Matplotlib简明手册
Matplotlib是一个2D绘图的包。在深度学习中,训练模型时通常会记录训练损失随训练轮次(epoch)的变化,可以很好地展示变化趋势。

Matplotlib 通常与 NumPy 和 SciPy(Scientific Python)一起使用

数据可视化基础

import matplotlib.pyplot as plt
import numpy as np

# 模拟训练损失数据
epochs = np.arange(1, 11)  # 1到10个轮次
train_loss = [0.9, 0.7, 0.5, 0.4, 0.35, 0.3, 0.28, 0.26, 0.25, 0.24]

plt.plot(epochs, train_loss)
plt.xlabel('Epochs')
plt.ylabel('Train Loss')
plt.title('Training Loss over Epochs')
plt.show()

显示一个折线图。x 轴是训练轮次(1 - 10),y 轴是训练损失。从图中可以直观地看到随着训练轮次的增加,训练损失逐渐降低,这符合一般的模型训练期望。

可视化图像数据(如果深度学习涉及图像领域

显示单张图像

假设我们有一张简单的灰度图像(这里用随机数据模拟),其形状为 (100, 100)(代表高度和宽度)

import numpy as np
img_data = np.random.randint(0, 256, (100, 100))  # 生成随机灰度图像数据
plt.imshow(img_data, cmap='gray')
plt.title('Random Grayscale Image')
plt.show()

窗口中会显示一张灰度图像,图像中的每个像素点颜色由其灰度值决定。由于是随机数据,图像看起来是随机的黑白图案。

显示多张图像(例如一个批次的图像)

假设我们有一个批次大小为 4 的图像数据(同样是模拟数据),每个图像形状为 (50, 50)

batch_size = 4
img_height = 50
img_width = 50
batch_images = np.random.randint(0, 256, (batch_size, img_height, img_width))

fig, axes = plt.subplots(1, batch_size, figsize=(15, 3))
for i in range(batch_size):
    axes[i].imshow(batch_images[i], cmap='gray')
    axes[i].axis('off')
plt.show()

窗口中会显示一行 4 张灰度图像。figsize=(15, 3)参数指定了整个图形的大小,axes[i].axis(‘off’)用于关闭每个子图的坐标轴显示,使图像显示更加简洁,方便查看图像内容。这些图像也是由随机数据生成的,所以每张图像的图案各不相同。

可视化模型结构(简单示例)

对于一个简单的三层神经网络(输入层、隐藏层和输出层),我们可以用简单的图形来表示。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_nodes_from(['Input Layer', 'Hidden Layer', 'Output Layer'])
G.add_edges_from([('Input Layer', 'Hidden Layer'), ('Hidden Layer', 'Output Layer')])

pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_size=1500, node_color='skyblue', font_size=10)
plt.title('Simple Neural Network Structure')
plt.show()

窗口中会显示一个有向图,代表三层神经网络的结构。节点(Input Layer、Hidden Layer 和 Output Layer)用蓝色的圆形表示,节点之间的连线表示数据的流动方向,从输入层到隐藏层,再到输出层。通过这个简单的图形可以对神经网络的基本架构有一个直观的理解


http://www.kler.cn/a/500398.html

相关文章:

  • 如何快速适应新入职的公司
  • 【Ubuntu与Linux操作系统:四、文件与目录管理】
  • [Git] git log / git reflog
  • 【云计算】OpenStack云计算平台
  • 【习题】<HarmonyOS第一课>应用程序框架基础
  • 2025_1_12_Makefile_进度条
  • uniapp运行到IOS真机提示 错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配
  • 《PC 上的开源神经网络多模态模型:开启智能交互新时代》
  • 网络安全设备主要有什么
  • CentOS7下Spark-2.4.3-bin-without-hadoop版本安装详细图文教程
  • 宝塔安装mongodb后,写脚本监控运行状态,关闭后自动重启
  • QT Must be called on Chrome_UIThread; actually called on Unknown Thread.
  • C# OpenCV机器视觉:主色提取
  • 命令模式-Command Pattern
  • Linux 攻击Exploit编写
  • 针对数据库系统安全的漏洞扫描加固工具【WebSocket + MySQL】
  • awr报告无法生成:常见分析手段
  • jmeter使用说明
  • JAVA 冒泡排序算法
  • Notepad++上NppFTP插件的安装和使用教程