生成了一个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}%')

相关推荐
AI视觉网奇2 小时前
语音识别dolphin 学习笔记
笔记·学习
killer Curry2 小时前
B站 XMCVE Pwn入门课程学习笔记(6)
笔记·学习
墨风如雪3 小时前
代码生成提速5.4倍!字节跳动这把剑,斩向GPT的“慢”时代
aigc
小猪扒饭4 小时前
C基础 12_day
c语言·笔记·学习·算法
筏.k4 小时前
知识随记-----使用现代C++客户端库redis-plus-plus实现redis池缓解高并发
c++·经验分享·redis·microsoft
Eli_Optics6 小时前
《通信原理》学习笔记——第六章
笔记·学习
算家计算6 小时前
告别“AI味”图像!最新开源AI模型FLUX.1-Krea实现真实光影生成
人工智能·开源·aigc
嵌入式小小怪下士6 小时前
ATF 运行时服务
笔记·lx2160/lx2080
安思派Anspire7 小时前
GraphRAG 工作原理分步解析(二)
aigc·openai·agent