如何用群晖做自己的网站,建网站服务器,广西互联网企业,海拉尔做网站多少钱1 需求
包懂#xff0c;40分钟掌握PyTorch深度学习框架#xff0c;对应神经网络算法理论逐行讲解用PyTorch实现图像分类代码_哔哩哔哩_bilibili 10分钟入门神经网络 PyTorch 手写数字识别_哔哩哔哩_bilibili
pytorch tutorial: PyTorch 手写数字识别 教程代码 从零设计并训…1 需求
包懂40分钟掌握PyTorch深度学习框架对应神经网络算法理论逐行讲解用PyTorch实现图像分类代码_哔哩哔哩_bilibili 10分钟入门神经网络 PyTorch 手写数字识别_哔哩哔哩_bilibili
pytorch tutorial: PyTorch 手写数字识别 教程代码 从零设计并训练一个神经网络你就能真正理解它了_哔哩哔哩_bilibili
https://github.com/xhh890921/mnist_network 2 接口 3 豆包生成代码 import torch
import torch.nn as nn
import torch.optim as optim
import torchvision.datasets as datasets
import torchvision.transforms as transforms# 定义超参数
batch_size 128
learning_rate 0.001
num_epochs 10# 数据预处理
transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))
])# 加载 MNIST 数据集
train_dataset datasets.MNIST(root./data, trainTrue, transformtransform, downloadTrue)
test_dataset datasets.MNIST(root./data, trainFalse, transformtransform)train_loader torch.utils.data.DataLoader(datasettrain_dataset, batch_sizebatch_size, shuffleTrue)
test_loader torch.utils.data.DataLoader(datasettest_dataset, batch_sizebatch_size, shuffleFalse)# 定义 MLP 模型
class MLP(nn.Module):def __init__(self):super(MLP, self).__init__()self.fc1 nn.Linear(784, 512)self.fc2 nn.Linear(512, 256)self.fc3 nn.Linear(256, 10)def forward(self, x):x x.view(-1, 784)x torch.relu(self.fc1(x))x torch.relu(self.fc2(x))x self.fc3(x)return x# 实例化模型
model MLP()# 定义损失函数和优化器
criterion nn.CrossEntropyLoss()
optimizer optim.Adam(model.parameters(), lrlearning_rate)# 训练模型
for epoch in range(num_epochs):for batch_idx, (data, targets) in enumerate(train_loader):# 前向传播outputs model(data)loss criterion(outputs, targets)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()if batch_idx % 100 0:print(fEpoch [{epoch 1}/{num_epochs}], Step [{batch_idx 1}/{len(train_loader)}], Loss: {loss.item()})# 在测试集上评估模型
model.eval()
with torch.no_grad():correct 0total 0for data, targets in test_loader:outputs model(data)_, predicted torch.max(outputs.data, 1)total targets.size(0)correct (predicted targets).sum().item()accuracy correct / totalprint(fTest Accuracy: {accuracy * 100:.2f}%) 3
import torch
from torch.utils.data import DataLoader
from torchvision import transforms
from torchvision.datasets import MNIST
import matplotlib.pyplot as pltclass Net(torch.nn.Module):def __init__(self):super().__init__()self.fc1 torch.nn.Linear(28 * 28, 64)self.fc2 torch.nn.Linear(64, 64)self.fc3 torch.nn.Linear(64, 64)self.fc4 torch.nn.Linear(64, 10)def forward(self, x):x torch.nn.functional.relu(self.fc1(x))x torch.nn.functional.relu(self.fc2(x))x torch.nn.functional.relu(self.fc3(x))x torch.nn.functional.log_softmax(self.fc4(x), dim1)return xdef get_data_loader(is_train):to_tensor transforms.Compose([transforms.ToTensor()])data_set MNIST(, is_train, transformto_tensor, downloadTrue)return DataLoader(data_set, batch_size15, shuffleTrue)def evaluate(test_data, net):n_correct 0n_total 0with torch.no_grad():for (x, y) in test_data:outputs net.forward(x.view(-1, 28 * 28))for i, output in enumerate(outputs):if torch.argmax(output) y[i]:n_correct 1n_total 1return n_correct / n_totaldef main():train_data get_data_loader(is_trainTrue)test_data get_data_loader(is_trainFalse)net Net()print(initial accuracy:, evaluate(test_data, net))optimizer torch.optim.Adam(net.parameters(), lr0.001)for epoch in range(2):for (x, y) in train_data:net.zero_grad()output net.forward(x.view(-1, 28 * 28))loss torch.nn.functional.nll_loss(output, y)loss.backward()optimizer.step()print(epoch, epoch, accuracy:, evaluate(test_data, net))for (n, (x, _)) in enumerate(test_data):if n 3:breakpredict torch.argmax(net.forward(x[0].view(-1, 28 * 28)))plt.figure(n)plt.imshow(x[0].view(28, 28))plt.title(prediction: str(int(predict)))plt.show()if __name__ __main__:main() 4 参考资料
PyTorch——手写数字识别_pytorch 手写数字-CSDN博客
Python MNIST手写数据集识别 手写板程序 最详细直接放心大胆地抄跑不通找我我包教_手写数字数据集-CSDN博客
Python人工智能--实现手写数字识别-CSDN博客