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

小白的进阶之路系列之十二----人工智能从初步到精通pytorch综合运用的讲解第五部分

在本笔记本中,我们将针对Fashion-MNIST数据集训练LeNet-5的变体。Fashion-MNIST是一组描绘各种服装的图像瓦片,有十个类别标签表明所描绘的服装类型。

# PyTorch model and training necessities
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim# Image datasets and image manipulation
import torchvision
import torchvision.transforms as transforms# Image display
import matplotlib.pyplot as plt
import numpy as np# PyTorch TensorBoard support
from torch.utils.tensorboard import SummaryWriter# In case you are using an environment that has TensorFlow installed,
# such as Google Colab, uncomment the following code to avoid
# a bug with saving embeddings to your TensorBoard directory# import tensorflow as tf
# import tensorboard as tb
# tf.io.gfile = tb.compat.tensorflow_stub.io.gfile

在TensorBoard中显示图像

让我们首先将数据集中的样本图像添加到TensorBoard:

# Helper function for inline image display
def matplotlib_imshow(img, one_channel=False):if one_channel:img = img.mean(dim=0)img = img / 2 + 0.5     # unnormalizenpimg = img.numpy()if one_channel:plt.imshow(npimg, cmap="Greys")else:plt.imshow(np.transpose(npimg, (1, 2, 0)))if __name__ == '__main__':transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))])# Store separate training and validations splits in ./datatraining_set = torchvision.datasets.FashionMNIST('./data',download=True,train=True,transform=transform)validation_set = torchvision.datasets.FashionMNIST('./data',download=True,train=False,transform=transform)training_loader = torch.utils.data.DataLoader(training_set,batch_size=4,shuffle=True,num_workers=2)validation_loader = torch.utils.data.DataLoader(validation_set,batch_size=4,shuffle=False,num_workers=2)# Class labelsclasses = ('T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat','Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot')# Extract a batch of 4 imagesdataiter = iter(training_loader)images, labels = next(dataiter)# Create a grid from the images and show themimg_grid = torchvision.utils.make_grid(images)matplotlib_imshow(img_grid, one_channel=True)plt.show()

输出为:

在这里插入图片描述

上面,我们使用TorchVision和Matplotlib创建了一个小批量输入数据的视觉网格。下面,我们在SummaryWriter上使用add_image()调用来记录TensorBoard使用的图像,并且我们还调用flush())来确保它立即写入磁盘。

    # Default log_dir argument is "runs" - but it's good to be specific# torch.utils.tensorboard.SummaryWriter is imported abovewriter = SummaryWriter('runs/fashion_mnist_experiment_1')# Write image data to TensorBoard log dirwriter.add_image('Four Fashion-MNIST Images', img_grid)writer.flush()# To view, start TensorBoard on the command line with:#   tensorboard --logdir=runs# ...and open a browser tab to http://localhost:6006/

如果您在命令行启动TensorBoard并在新的浏览器选项卡中打开它(通常在localhost:6006),您应该在IMAGES选项卡下看到图像网格。

绘制标量以可视化训练

TensorBoard对于跟踪您的训练进度和效果非常有用。下面,我们将运行一个训练循环,跟踪一些指标,并保存数据供TensorBoard使用。

让我们定义一个模型来对图像块进行分类,以及一个用于训练的优化器和损失函数:

    class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(1, 6, 5)self.pool = nn.MaxPool2d(2, 2)self.conv2 = nn.Conv2d(6, 16, 5)self.fc1 = nn.Linear(16 * 4 * 4, 120)self.fc2 = nn.Linear(120, 84)self.fc3 = nn.Linear(84, 10)def forward(self, x):x = self.pool(F.relu(self.conv1(x)))x = self.pool(F.relu(sel
http://www.lqws.cn/news/97129.html

相关文章:

  • OpenCV CUDA模块图像处理------图像融合函数blendLinear()
  • Attention Is All You Need (Transformer) 以及Transformer pytorch实现
  • 【JavaWeb】SpringBoot原理
  • SpringBoot 自定义注解实现限流
  • 【Vmware】虚拟机安装、镜像安装、Nat网络模式、本地VM8、ssh链接保姆篇(图文教程)
  • 优化 Spring Boot API 性能:利用 GZIP 压缩处理大型有效载荷
  • 托福39-1 Early Writing Systems感悟
  • Kotlin List 操作全面指南
  • RabbitMQ 监控与调优实战指南(二)
  • JavaScript性能优化实战大纲
  • Neovim - 打造一款属于自己的编辑器(一)
  • 提取 PDF 文件中的文字以及图片中的文字
  • HALCON 深度学习训练 3D 图像的几种方式优缺点
  • 论文中pdf图片文件太大怎么办
  • 关于FPGA软核的仿真(一)
  • 基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
  • 云计算 Linux Rocky day03
  • YAML文件
  • 什么是AI芯片?
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(六):图片上传功能
  • ArcGIS Pro字段计算器与计算几何不可用,显示灰色
  • 二分查找的边界艺术:LeetCode 34 题深度解析
  • 第七部分:阶段项目 5:构建 NestJS + MySQL RESTful API 服务器
  • 基于Python学习《Head First设计模式》第五章 单件模式
  • Matlab实现LSTM-SVM回归预测,作者:机器学习之心
  • Matlab自学笔记五十七:符号运算、可变精度运算、双精度浮点型运算,三种运算精度的概念、比较、选择和应用
  • ssh登录wsl2
  • 关于 java:6. 反射机制
  • 【C++】特殊类设计
  • 开疆智能Profinet转Profibus网关连接CMDF5-8ADe分布式IO配置案例