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

中小企业网站建设济南兴田德润电话百度竞价开户多少钱

中小企业网站建设济南兴田德润电话,百度竞价开户多少钱,游戏网站建设方案书,wordpress 免费摄影主题这个系列笔记用来记录学习pytorch的完整过程,我第一次接触pytorch已经是2018年,当时还是0.X的版本,在使用过一段时间后就完全没有再用,现在pytorch已经迭代到2.X,所以我认为有必要从头开始完整地学习一遍。与其他学习系…

这个系列笔记用来记录学习pytorch的完整过程,我第一次接触pytorch已经是2018年,当时还是0.X的版本,在使用过一段时间后就完全没有再用,现在pytorch已经迭代到2.X,所以我认为有必要从头开始完整地学习一遍。与其他学习系列笔记一样,这个笔记也是紧跟官网教程。

【注意】:

  1. 这个系列笔记我会以jupyter notebook为主,因为可以更方便的看到可视化结果。但在使用jupyter的时候也要注意定shutdown kernel,否则有可能会一直占用着显存导致后面的代码无法运行的情况。
  2. 我的演示环境是 torch==2.6.0torchvision==0.17.0torchaudio==2.6.0
  3. 这个系列笔记需要你对python有一定的使用基础,并且对神经网络有一定的的了解;

以下是这篇文章涉及到资源连接:

  • 官方链接:https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html;
完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwd=aa2m 提取码: aa2m 

Quickstart

在完成官网安装之后 Learn the Basics 的第一篇文章就是这个笔记,也是使用pytorch的第一步。


Working with data

pytorch用 torch.utils.data.DataLoadertorch.utils.data.Dataset. Dataset 作为数据处理的基本工具,其中 Dataset 实现了存储data与label的标签,DataLoader 用来将数据打包成迭代器以供 训练推理

pytorch还提供了一些特定领域的工具如 TorchTextTorchVisionTorchAudio 以提供更方便的数据加载与处理。这里以 TorchVision 为例。

Step1. 导入必要的包

import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor

Step2. 拉取数据集

training_data = datasets.FashionMNIST(root="data",train=True,download=True,transform=ToTensor()
)test_data = datasets.FashionMNIST(root="data",train=False,download=True,transform=ToTensor()
)

Step3. 初始化DataLoader

batch_size=64train_dataloader = DataLoader(training_data, batch_size=batch_size)
test_dataloader = DataLoader(test_data, batch_size=batch_size)for X, y in test_dataloader:print(f"Shape of X [N, C, H, W]: {X.shape}")print(f"Shape of y: {y.shape}, {y.type}")break

Step4. 构造模型

【注意】:如果你使用的 torch 版本不是 2.6.0 那么官网这部分的代码是不可用的,我常用的版本是 2.6.02.2.0 但是不确定在这两个版本之间的能否使用,建议手动尝试然后根据报错信息设置device:

if "2.6.0" in torch.__version__:device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"print(f"Using {device} device")
else:if torch.cuda.is_available():print("CUDA is available. Using GPU.")device = torch.device("cuda")else:print("CUDA is not available. Using CPU.")device = torch.device("cpu")

这里构造一个经典的全连接+Relu的多层感知机:

class NerualNetwork(nn.Module):def __init__(self):super().__init__()self.flatten = nn.Flatten()self.linear_relu_stack = nn.Sequential(nn.Linear(28*28, 512),nn.ReLU(),nn.Linear(512, 512),nn.ReLU(),nn.Linear(512, 10))def forward(self, x):x = self.flatten(x)logits = self.linear_relu_stack(x)return logits

实例化模型并将其转移到device上

model = NerualNetwork().to(device)
print(model)

Step5. 定义损失函数、优化器、训练与测试函数

定义损失函数和优化器:

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)

定义训练模型的函数:

def train(dataloader, model, loss_fn, optimizer):size = len(dataloader.dataset)for batch, (X,y) in enumerate(dataloader):X, y = X.to(device), y.to(device)# 计算losspred = model(X)loss = loss_fn(pred, y)# 反向传播给优化器loss.backward()optimizer.step()optimizer.zero_grad()if batch % 100 == 0:loss, current = loss.item(), (batch+1) * len(X)print(f"Loss: {loss:>7f}[{current:>5d}/{size:>5d}]")

定义测试模型的函数:

def test(dataloader, model, loss_fn):size = len(dataloader.dataset)num_batches = len(dataloader)model.eval()test_loss, correct=0, 0with torch.no_grad():for X, y in dataloader:X,y = X.to(device), y.to(device)pred = model(X)test_loss += loss_fn(pred, y).item()correct += (pred.argmax(1)==y).type(torch.float).sum().item()test_loss /= num_batchescorrect /= sizeprint(f"Test Error:\n  Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f}\n")

Step6. 启动训练与测试

epochs = 5
for t in range(epochs):print(f"Epoch {t+1}\n--------------------------")train(train_dataloader, model, loss_fn, optimizer)test(test_dataloader, model, loss_fn)
print("Done")

Step7. 保存模型参数到本地

torch.save(model.state_dict(), "model.pth")
print("Saved PyTorch Model state to model.pth")

Step8. 从本地加载模型参数

model = NeuralNetwork().to(device)
model.load_state_dict(torch.load("model.pth", weights_only=True))
print(model)

Step9. 用加载进来的参数推理

将离散数字映射为文字的列表:

classes = ["T-shirt/top","Trouser","Pullover","Dress","Coat","Sandal","Shirt","Sneaker","Bag","Ankle boot",
]

执行推理:

model.eval()
x,y = test_data[0][0], test_data[0][1]
with torch.no_grad():x = x.to(device)pred = model(x)predicted, actual = classes[pred[0].argmax(0)], classes[y]print(f"Predicted: {predicted}, Actual: {actual}")

在这里插入图片描述

http://www.dtcms.com/wzjs/436504.html

相关文章:

  • 简单的网站设计模板下载百度上怎么发布信息啊
  • 网站建设案例要多少钱海外市场推广做什么的
  • 有什么兼职做设计的网站好优化设计五年级下册语文答案
  • 东莞做企业网站googleplaystore
  • 做请柬网站谷歌网站
  • 客户说做网站价格高广州网站seo地址
  • 界面漂亮的网站中国大数据平台官网
  • 源码建网站广告推广一个月多少钱
  • 某女性门户源码含数据模板不错分类全适合做女性网站介绍网络营销的短文
  • 甘肃城乡建设局网站西安疫情最新通知
  • 企业网站标题如何设置武汉网络优化知名乐云seo
  • 深圳家居网站建设公司重庆疫情最新数据
  • 网站的内链是什么意思前端seo是什么意思
  • 自助网站建设费用奶茶软文案例300字
  • 郑州做网站和域名网络服务器价格
  • 景观设计公司资质seo主要做什么
  • 上虞网站建设正规推广平台有哪些
  • 重庆今天刚刚发生的新闻事件湖北网络推广seo
  • 微博网站建设宁德网站建设制作
  • 手机可以搭建网站吗计算机培训班有用吗
  • 黄山网站建设黄山网站建设方案书 模板
  • 网站建设到维护谷歌seo优化排名
  • 网站开发的层级结构html制作网页代码
  • 网站备案号在哪儿查询app用户量排名
  • 网站模板购买 优帮云深圳app推广平台
  • 会计网站建设广州今日头条新闻最新
  • 关于做摄影的网站重庆关键词优化
  • WordPress管理员邮件关键词优化seo费用
  • 望牛墩仿做网站深圳品牌seo
  • 有没有免费的推广平台网站排名优化软件哪家好