机器视觉教程:MNIST数据集与图像处理
需积分: 10 11 浏览量
更新于2024-08-11
收藏 507KB PPTX 举报
"《机器视觉》郑东强_第5章4_常用代码模块5.17.pptx"
在机器视觉领域,处理图像数据是至关重要的步骤。本章介绍了如何加载批量数据集以及对图像进行展示,这些都是深度学习模型训练的基础。文件中的代码主要涉及了PyTorch框架,用于处理MNIST手写数字识别数据集。
首先,`load_train_data`函数展示了如何使用`torch.utils.data.DataLoader`加载MNIST数据集。`DataLoader`是一个迭代器,它将数据集分批加载到内存中,便于训练神经网络模型。在这个例子中,数据集被下载到`'dataSets/mnist_data'`目录下,并通过`transform`参数进行预处理。预处理包括将图像转换为Tensor(`ToTensor()`)和归一化(`Normalize()`),这里的均值和标准差分别为0.1307和0.3081,这是MNIST数据集的标准预处理步骤。
接着,`plot_image`函数用于显示灰度图片。它使用`matplotlib.pyplot`库,创建一个6个子图的布局,每个子图显示一幅图像并附上对应的标签。通过调整图像的灰度范围使其可视,`cmap='gray'`指定颜色映射为灰度,`interpolation='none'`确保无插值,保持原始像素的清晰度。
另外,`imshow`函数则用于显示彩色图像,这里同样使用了`matplotlib.pyplot`。图像首先通过除以2加0.5进行反规范化,以便在0到1之间显示。`np.transpose`用于调整图像的维度顺序,使其符合matplotlib显示的要求。
`dataiter`是一个迭代器,用于获取数据加载器`trainloader`的下一个批次的图像和标签。`images, labels = dataiter.next()`获取了一个批次的图像和对应的标签。`imshow(torchvision.utils.make_grid(images))`则使用`make_grid`方法将一批图像排列成网格,便于可视化。
最后,`Flatten`类是一个简单的PyTorch模块,用于将多维张量展平为一维。在神经网络中,这通常用于连接全连接层之前,将卷积层的输出转换为线性形式。在`__init__`方法中,它继承自`nn.Module`,并定义了前向传播`forward`方法,将输入张量`x`展平。
这段代码涵盖了机器视觉和深度学习的基本操作,包括数据加载、预处理、图像显示以及张量操作,这些都是构建和训练机器学习模型的关键步骤。对于理解如何使用PyTorch进行图像分类任务来说,这部分内容提供了很好的实践示例。
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
2021-06-02 上传
点击了解资源详情
上智了心
- 粉丝: 0
- 资源: 18
最新资源
- 掌握压缩文件管理:2工作.zip文件使用指南
- 易语言动态版置入代码技术解析
- C语言编程实现电脑系统测试工具开发
- Wireshark 64位:全面网络协议分析器,支持Unix和Windows
- QtSingleApplication: 确保单一实例运行的高效库
- 深入了解Go语言的解析器组合器PARC
- Apycula包安装与使用指南
- AkerAutoSetup安装包使用指南
- Arduino Due实现VR耳机的设计与编程
- DependencySwizzler: Xamarin iOS 库实现故事板 UIViewControllers 依赖注入
- Apycula包发布说明与下载指南
- 创建可拖动交互式图表界面的ampersand-touch-charts
- CMake项目入门:创建简单的C++项目
- AksharaJaana-*.*.*.*安装包说明与下载
- Arduino天气时钟项目:源代码及DHT22库文件解析
- MediaPlayer_server:控制媒体播放器的高级服务器