第二章 2.3.1 定义数据集训练神经网络
1.第一章: PyTorch计算机视觉实战:目标检测、图像处理与深度学习2.《Pytorch 最全入门介绍,Pytorch入门看这一篇就够了》学习3.第二章 2.3 使用Pytorch构建神经网络
4.第二章 2.3.1 定义数据集训练神经网络
5.第二章 2.4使用序贯方法构建神经网络nn.Sequential() 及打印神经网络模型摘要6.第二章 2.5 保存和加载文件中Pytorch模型7.第三章 3.1 表示图像 理解灰度图、RGB图和数组的关系8.第三章 3.3 使用pytorch的数据集9.第三章 3.4 训练神经网络10.第三章 3.6 批大小的影响11.第三章:3.8.1 绘制各层参数分布图 hist12.第三章 3.9 在训练过程中修改学习率13.第三章 3.10 构建更深的神经网络 比较有0、1、2隐含层的神经网络14.第三章 3.12 dropout 和 正则化 克服过拟合定义数据集训练神经网络# https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch
# https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch ################### Chapter Two ####################################### #数据集的库 from torch.utils.data import Dataset, DataLoader import torch import torch.nn as nn ######################################################################## x = [[1,2],[3,4],[5,6],[7,8]] y = [[3],[7],[11],[15]] X = torch.tensor(x).float() Y = torch.tensor(y).float() ########################################################################
# 如果有GPU,使用它
device = 'cuda' if torch.cuda.is_available() else 'cpu' X = X.to(device) Y = Y.to(device) print(device) ########################################################################
# 定义我的数据集 class MyDataset(Dataset): def __init__(self,x,y): self.x = x.clone().detach().requires_grad_(True) self.y = y.clone().detach().requires_grad_(False) def __len__(self): return len(self.x) def __getitem__(self, ix): return self.x[ix], self.y[ix] ds = MyDataset(X, Y) # 取出一个样本 print(ds.__getitem__(1)) ######################################################################## dl = DataLoader(ds, batch_size=2, shuffle=True) ######################################################################## # 定义我的神经元网络类 class MyNeuralNet(nn.Module): def __init__(self): super().__init__() self.input_to_hidden_layer = nn.Linear(2,8) self.hidden_layer_activation = nn.ReLU() self.hidden_to_output_layer = nn.Linear(8,1) def forward(self, x): x = self.input_to_hidden_layer(x) x = self.hidden_layer_activation(x) x = self.hidden_to_output_layer(x) return x ########################################################################
#定义我的神经网络对象、损失函数、优化算法
mynet = MyNeuralNet().to(device) loss_func = nn.MSELoss() from torch.optim import SGD opt = SGD(mynet.parameters(), lr = 0.001) ######################################################################## import time loss_history = [] start = time.time() # 训练我的神经网络 for _ in range(50): for data in dl: x, y = data print(data) opt.zero_grad() loss_value = loss_func(mynet(x),y) loss_value.backward() opt.step() loss_history.append(loss_value) end = time.time() print(end - start) ######################################################################## val_x = [[7,8]] # 使用我训练好的神经网络,计算一个输入、输出 val_x = torch.tensor(val_x).float().to(device) print(mynet(val_x))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)