当前位置:实例文章 » 其他实例» [文章]【动手学深度学习】--09.PyTorch神经网络基础

【动手学深度学习】--09.PyTorch神经网络基础

发布人:shili8 发布时间:2025-01-13 11:38 阅读次数:0

**PyTorch神经网络基础**

在前面的章节中,我们已经了解了什么是深度学习,以及如何使用PyTorch进行基本的计算。现在,它是时候来探索PyTorch神经网络的基础。

###1. PyTorch中的Tensor在PyTorch中,Tensor是最基本的数据结构。它可以看作是一个多维数组,可以存储数字、浮点数等类型的数据。

import torch# 创建一个一维Tensortensor = torch.tensor([1,2,3])
print(tensor)

# 创建一个二维Tensortensor = torch.tensor([[1,2], [3,4]])
print(tensor)


###2. PyTorch中的AutogradPyTorch的Autograd是用于计算梯度的机制。它可以自动计算神经网络中每个参数的梯度。

import torchimport torch.autograd as autograd# 创建一个Tensortensor = torch.tensor([1,2], requires_grad=True)

# 对Tensor进行操作result = tensor **2# 计算梯度result.backward()
print(tensor.grad)


###3. PyTorch中的ModulePyTorch的Module是用于构建神经网络模型的类。它可以包含多个层,包括线性层、激活函数等。

import torch.nn as nn# 创建一个线性层linear = nn.Linear(5,3)

# 创建一个激活函数relu = nn.ReLU()

# 将层和激活函数组合起来model = nn.Sequential(
 linear,
 relu,
 linear,
 relu)


###4. PyTorch中的Loss FunctionPyTorch的Loss Function是用于计算损失的函数。它可以根据预测值和真实值来计算损失。

import torch.nn as nn# 创建一个交叉熵损失函数criterion = nn.CrossEntropyLoss()

# 计算损失loss = criterion(torch.tensor([0.5,0.5]), torch.tensor([1]))
print(loss)


###5. PyTorch中的OptimizerPyTorch的Optimizer是用于更新模型参数的类。它可以根据损失值来更新参数。

import torch.optim as optim# 创建一个随机梯度下降优化器optimizer = optim.SGD(model.parameters(), lr=0.01)

# 更新模型参数optimizer.zero_grad()
loss.backward()
optimizer.step()


###6. PyTorch中的Training LoopPyTorch的Training Loop是用于训练模型的循环。它可以根据损失值来更新模型参数。

import torch.optim as optim# 创建一个随机梯度下降优化器optimizer = optim.SGD(model.parameters(), lr=0.01)

# 训练模型for epoch in range(10):
 optimizer.zero_grad()
 output = model(input)
 loss = criterion(output, target)
 loss.backward()
 optimizer.step()


###7. PyTorch中的Evaluation LoopPyTorch的Evaluation Loop是用于评估模型的循环。它可以根据损失值来评估模型。

import torch.optim as optim# 创建一个随机梯度下降优化器optimizer = optim.SGD(model.parameters(), lr=0.01)

#评估模型for epoch in range(10):
 optimizer.zero_grad()
 output = model(input)
 loss = criterion(output, target)
 loss.backward()
 optimizer.step()

 #评估模型 eval_loss =0 for i in range(len(eval_input)):
 output = model(eval_input[i])
 loss = criterion(output, eval_target[i])
 eval_loss += loss.item()
 print(f'Epoch {epoch+1}, Eval Loss: {eval_loss / len(eval_input)}')


以上就是PyTorch神经网络基础的内容。通过这些例子和注释,你应该能够理解如何使用PyTorch进行基本的计算、训练模型和评估模型。

相关标签:基础pytorch
其他信息

其他资源

Top