网站单个页面301重定向到新网站,女性时尚网站源码,seo优化排名营销,安徽省建设工程信息网官网首页基础介绍 学习基础知识机器学习的基本流程 快速入门一个简单的目标分类任务执行过程 学习基础知识
机器学习的基本流程
数据处理创建模型优化模型参数保存训练的模型
快速入门
一个简单的目标分类任务
识别衣服的类型
import torch
from torch import nn
from torch.util… 基础介绍 学习基础知识机器学习的基本流程 快速入门一个简单的目标分类任务执行过程 学习基础知识
机器学习的基本流程
数据处理创建模型优化模型参数保存训练的模型
快速入门
一个简单的目标分类任务
识别衣服的类型
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets
from torchvision.transforms import ToTensor# Define model
class NeuralNetwork(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 logitsdef train(dataloader, model, loss_fn, optimizer):size len(dataloader.dataset)model.train()for batch, (X, y) in enumerate(dataloader):X, y X.to(device), y.to(device)# Compute prediction errorpred model(X)loss loss_fn(pred, y)# Backpropagationloss.backward()optimizer.step()optimizer.zero_grad()if batch % 100 0:loss, current loss.item(), (batch 1) * len(X)print(floss: {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(fTest Error: \n Accuracy: {(100*correct):0.1f}%, Avg loss: {test_loss:8f} \n)if __name__ __main__:# 处理数据# Download training data from open datasets.training_data datasets.FashionMNIST(rootdata,trainTrue,downloadTrue,transformToTensor(),)# Download test data from open datasets.test_data datasets.FashionMNIST(rootdata,trainFalse,downloadTrue,transformToTensor(),)batch_size 64# Create data loaders.train_dataloader DataLoader(training_data, batch_sizebatch_size)test_dataloader DataLoader(test_data, batch_sizebatch_size)for X, y in test_dataloader:print(fShape of X [N, C, H, W]: {X.shape})print(fShape of y: {y.shape} {y.dtype})break# 创建模型# Get cpu, gpu or mps device for training.device (cudaif torch.cuda.is_available()else mpsif torch.backends.mps.is_available()else cpu)print(fUsing {device} device)model NeuralNetwork().to(device)print(model)# 优化模型参数# 损失函数loss_fn nn.CrossEntropyLoss()# 优化器optimizer torch.optim.SGD(model.parameters(), lr1e-3)epochs 20for t in range(epochs):print(fEpoch {t 1}\n-------------------------------)train(train_dataloader, model, loss_fn, optimizer)test(test_dataloader, model, loss_fn)print(Done!)# 保存模型torch.save(model.state_dict(), model.pth)print(Saved PyTorch Model State to model.pth)# 加载模型model NeuralNetwork().to(device)model.load_state_dict(torch.load(model.pth))# 使用训练的模型进行预测“t恤/顶”,“裤子”,“套衫”,“衣服”,“外套”,“凉鞋”,“衬衫”,“运动鞋”,“包”,“踝靴”,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(fPredicted: {predicted}, Actual: {actual})执行过程 /Users/futuredeng/anaconda3/envs/pyspide6_study/bin/python -X pycache_prefix/Users/futuredeng/Library/Caches/JetBrains/PyCharm2024.1/cpython-cache /Applications/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py --multiprocess --qt-supportauto --client 127.0.0.1 --port 52646 --file /Users/futuredeng/PycharmProjects/pyspide6_study/s_torch/demo.py
已连接到 pydev 调试器(内部版本号 241.14494.19)Shape of X [N, C, H, W]: torch.Size([64, 1, 28, 28])
Shape of y: torch.Size([64]) torch.int64
Using mps device
NeuralNetwork((flatten): Flatten(start_dim1, end_dim-1)(linear_relu_stack): Sequential((0): Linear(in_features784, out_features512, biasTrue)(1): ReLU()(2): Linear(in_features512, out_features512, biasTrue)(3): ReLU()(4): Linear(in_features512, out_features10, biasTrue))
)
Epoch 1
-------------------------------
loss: 2.298847 [ 64/60000]
loss: 2.291248 [ 6464/60000]
loss: 2.278691 [12864/60000]
loss: 2.270169 [19264/60000]
loss: 2.247777 [25664/60000]
loss: 2.226532 [32064/60000]
loss: 2.221170 [38464/60000]
loss: 2.191688 [44864/60000]
loss: 2.186391 [51264/60000]
loss: 2.159593 [57664/60000]
Test Error: Accuracy: 48.9%, Avg loss: 2.151264 Epoch 2
-------------------------------
loss: 2.160394 [ 64/60000]
loss: 2.149280 [ 6464/60000]
loss: 2.097811 [12864/60000]
loss: 2.111865 [19264/60000]
loss: 2.052902 [25664/60000]
loss: 2.002435 [32064/60000]
loss: 2.016076 [38464/60000]
loss: 1.941067 [44864/60000]
loss: 1.946122 [51264/60000]
loss: 1.868463 [57664/60000]
Test Error: Accuracy: 58.9%, Avg loss: 1.870417 Epoch 3
-------------------------------
loss: 1.907855 [ 64/60000]
loss: 1.873430 [ 6464/60000]
loss: 1.759730 [12864/60000]
loss: 1.795776 [19264/60000]
loss: 1.683292 [25664/60000]
loss: 1.641434 [32064/60000]
loss: 1.654433 [38464/60000]
loss: 1.561658 [44864/60000]
loss: 1.587600 [51264/60000]
loss: 1.478837 [57664/60000]
Test Error: Accuracy: 60.4%, Avg loss: 1.501103 Epoch 4
-------------------------------
loss: 1.573581 [ 64/60000]
loss: 1.536037 [ 6464/60000]
loss: 1.387229 [12864/60000]
loss: 1.457505 [19264/60000]
loss: 1.340816 [25664/60000]
loss: 1.339017 [32064/60000]
loss: 1.352573 [38464/60000]
loss: 1.279530 [44864/60000]
loss: 1.314921 [51264/60000]
loss: 1.217413 [57664/60000]
Test Error: Accuracy: 63.3%, Avg loss: 1.242960 Epoch 5
-------------------------------
loss: 1.320792 [ 64/60000]
loss: 1.301409 [ 6464/60000]
loss: 1.135017 [12864/60000]
loss: 1.243455 [19264/60000]
loss: 1.120873 [25664/60000]
loss: 1.144230 [32064/60000]
loss: 1.168045 [38464/60000]
loss: 1.104519 [44864/60000]
loss: 1.145055 [51264/60000]
loss: 1.060252 [57664/60000]
Test Error: Accuracy: 64.9%, Avg loss: 1.082238 Done!
Saved PyTorch Model State to model.pth
Predicted: Ankle boot, Actual: Ankle boot进程已结束退出代码为 0