首页 > 其他分享 >PyTorch 深度学习实践第八讲(Dataset and DataLoader)

PyTorch 深度学习实践第八讲(Dataset and DataLoader)

时间:2022-12-22 17:00:58浏览次数:41  
标签:__ torch nn self DataLoader Dataset PyTorch data def

上课代码

import torch
import numpy as np
from torch.utils.data import Dataset #Data是一个抽先类
from torch.utils.data import DataLoader

class DiabetesDataset(Dataset):
def __init__(self,filepath):
xy = np.loadtxt(filepath,delimiter = ',',dtype = np.float32)
self.len = xy.shape[0]
self.x_data = torch.from_numpy(xy[:,:-1])
self.y_data = torch.from_numpy(xy[:,[-1]])

def __getitem__(self,index):
return self.x_data[index],self.y_data[index]

def __len__(self):
return self.len

dataset = DiabetesDataset('diabetes.csv.gz') #实例化
train_loader = DataLoader(dataset = dataset,batch_size = 32,shuffle = True,num_workers = 2)

class Model(torch.nn.Module):
def __init__(self): #构造函数
super(Model,self).__init__()
#进行降维
self.linear1 = torch.nn.Linear(8,6)
self.linear2 = torch.nn.Linear(6,4)
self.linear3 = torch.nn.Linear(4,1)
self.sigmoid = torch.nn.Sigmoid() #改变激活函数

def forward(self,x):
x = self.sigmoid(self.linear1(x)) #加入逻辑变换
x = self.sigmoid(self.linear2(x))
x = self.sigmoid(self.linear3(x))
return x #全程只用一个x

model = Model() #模型实例化

criterion = torch.nn.BCELoss(size_average = False) #将原来MSE变为BCE
optimizer = torch.optim.SGD(model.parameters(),lr = 0.01) #优化器

if __name__ == '__main__':
for epoch in range(100):
for i,data in enumerate(train_loader,0):
#prepare data
inputs,labels = data
#forward
y_pred =model(inputs)
loss = criterion(y_pred,labels)
print(epoch,i,loss.item())
#backward
optimizer.zero_grad()
loss.backward()
#update
optimizer.step()

标签:__,torch,nn,self,DataLoader,Dataset,PyTorch,data,def
From: https://blog.51cto.com/u_15698454/5963005

相关文章

  • pytorch train demo
    一、用pytorch实现lenet类似网络的训练1.网络结构2.代码mporttorch......
  • PyTorch 深度学习实践第七讲(处理多维特征的输入)
    基本原理降维基本原理备注:读文档和基本架构能力很重要,具备此技能能够拥有强的泛化能力上课代码importtorchimportnumpyasnpimporttorch.nn.functionalasFimportmatp......
  • PyTorch 深度学习实践第六讲(逻辑回归)
    LogisticFunctionSigmoidFunctions交叉熵备注:BCE越小分布越接近,越好深度学习基本框架上课代码importtorchimportnumpyasnpimporttorch.nn.functionalasFimportmat......
  • 用一个图像分类实例拿捏Pytorch使用方法
    写在最前边这篇文章要写的内容看封面,就是要用一篇文章讲解一下,怎么用Fashion-MNIST数据集,我们自己建一个神经网络,训练好之后用它做图片分类。importtorchfromtorchim......
  • PyTorch 深度学习实践第五讲(用PyTorch实现线性回归)
    基本步骤上课代码importtorchx_data=torch.Tensor([[1.0],[2.0],[3.0]])y_data=torch.Tensor([[2.0],[4.0],[6.0]])#x与y必须是矩阵classLinearModel(torch.n......
  • PyTorch 深度学习实践第四讲(反向传播)
    简单回顾关于w的更新神经网络原理备注:最后加入惩罚项反向传播原理备注:后期对权重进行更新,先进行前馈过程,再反向相应代码importtorchx_data=[1.0,2.0,3.0]y_data=[2.0,4......
  • PyTorch 深度学习实践(梯度下降算法)
    梯度下降上课代码importnumpyasnpimportmatplotlib.pyplotaspltx_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]w=1.0defforward(x):returnx*wdefcost(xs,y......
  • PyTorch 深度学习实践第二讲(线性模型)
    写在前面:B站刘二大人 ,传送门 ​​PyTorch深度学习实践——线性模型​​​​学习步骤准备数据集模型的选择和设计训练的过程(确定权重)推理和测试工作(infering) Traininglo......
  • 论文《LIBRE: The Multiple 3D LiDAR Dataset》笔记
    前倾摘要:最近在调研关于雷达性能评测的相关资料。于是就写一下笔记记录一下调研过程经过上个周的调研,一共找到两份相关参考资料:汽车的智能化发展让车载激光雷达变成一桩热......
  • PyTorch 深度学习实践第一讲
    写在前面:B站刘二大人 传送门​​Pytorch深度学习实践第一讲​​预备知识线性代数和概率论与数理统计(至少知道分布)Python(了解面向对象、类)引言:HumanIntelligence推理能力......