生成了一个AI算法

import torch

import torch.nn as nn

import torch.optim as optim

from torchvision import datasets, transforms

1. 数据预处理

transform = transforms.Compose([

transforms.ToTensor(),

transforms.Normalize((0.5,), (0.5,)) # MNIST单通道归一化

])

train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform)

test_data = datasets.MNIST(root='./data', train=False, transform=transform)

2. 模型定义

class NeuralNetwork(nn.Module):

def init(self):

super().init()

self.flatten = nn.Flatten()

self.layers = nn.Sequential(

nn.Linear(28*28, 128), # 输入层

nn.ReLU(), # 激活函数

nn.Dropout(0.2), # 防过拟合

nn.Linear(128, 10) # 输出层(10分类)

)

def forward(self, x):

x = self.flatten(x)

return self.layers(x)

3. 训练配置

model = NeuralNetwork()

criterion = nn.CrossEntropyLoss()

optimizer = optim.Adam(model.parameters(), lr=0.001)

batch_size = 64

train_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, shuffle=True)

4. 训练循环

for epoch in range(10):

for images, labels in train_loader:

outputs = model(images)

loss = criterion(outputs, labels)

optimizer.zero_grad()

loss.backward()

optimizer.step()

5. 评估

test_loader = torch.utils.data.DataLoader(test_data, batch_size=256)

correct = 0

with torch.no_grad():

for images, labels in test_loader:

outputs = model(images)

_, predicted = torch.max(outputs, 1)

correct += (predicted == labels).sum().item()

print(f'准确率: {100 * correct / len(test_data):.2f}%')

相关推荐
同学小张8 小时前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
Yawesh_best12 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
Ccjf酷儿14 小时前
操作系统 蒋炎岩 3.硬件视角的操作系统
笔记
倔强的石头_14 小时前
Rokid AI眼镜:连接现实与数字的桥梁,探索下一代智能应用开发
aigc
习习.y15 小时前
python笔记梳理以及一些题目整理
开发语言·笔记·python
撸码猿15 小时前
《Python AI入门》第10章 拥抱AIGC——OpenAI API调用与Prompt工程实战
人工智能·python·aigc
在逃热干面15 小时前
(笔记)自定义 systemd 服务
笔记
DKPT17 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
QT 小鲜肉18 小时前
【孙子兵法之上篇】001. 孙子兵法·计篇
笔记·读书·孙子兵法