首页 > 其他分享 >第二章 2.3.1 定义数据集训练神经网络

第二章 2.3.1 定义数据集训练神经网络

时间:2024-12-12 14:09:39浏览次数:7  
标签:__ loss 定义数据 nn self torch 神经网络 2.3 hidden

定义数据集训练神经网络# 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))

 

标签:__,loss,定义数据,nn,self,torch,神经网络,2.3,hidden
From: https://www.cnblogs.com/excellentHellen/p/18602309

相关文章

  • 卷积神经网络
    整体架构输入层、卷积层、池化层、全连接层卷积做了一件什么事?我们有一张64*64的图像数据,首先是全连接神经网络(如下图所示),输入数据的特征是1×4096的特征向量,每增加一个中间层的神经元,就会增加(4096+1)个参数,神经元的个数增加到10个,则参数个数会增加到525706。针对全连接神经......
  • 神经网络入门之三 C环境部署
    此篇文章在2022年12月5日被记录入门神经网络三C环境部署为什么要部署到C环境上面两篇文章中,我们详细讲解了采集样本与样本训练,生成了一个模型文件,经过测试我们的模型成功率在90%以上,但是我们想将这个模型利用起来,实时检测我们的运动姿态,在ESP32上运行torch显然是不现实......
  • 神经网络入门之二 网络搭建
    此篇文章在2022年12月1日被记录入门神经网络二网络搭建使用哪种深度学习框架目前主流的神经网络框架有tensorflow、kears,国产的有百度的PaddlePaddle,但是我是从yolov5入坑的,yolov5官方代码使用的是pytorch框架,所以我使用torch,而且torch框架上手很简单,资源较多坑较少。......
  • 神经网络入门之一 搭建网络结构与数据采集
    此篇文章在2022年11月30日被记录转移这篇文章时,突然想到了为了采集样本在公司楼下跑步了20分钟入门神经网络一样本采集在本科的时候对神经网络颇有兴趣,感觉很神秘,特别是当时的yolov5目标检测算法,让我感觉特别震撼,计算机在图像识别上已经超过了人眼。但是这么长时间以来一直......
  • 发明图神经网络模块的人真是个天才!
    今天给大家推荐一个涨点发顶会的好方向:图神经网络(GNN)。这俩热点的结合可以轻松实现“1+1>2”的效果。图神经网络(GraphNeuralNetwork,简称GNN)是一种基于图结构的深度学习模型,专门用于处理图数据。它通过在图中的节点和边上制定一定的策略,将图结构数据转化为规范而标准的表示,......
  • 循环神经网络(RNN)原理及实现
    一、引言在深度学习领域,循环神经网络(RecurrentNeuralNetwork,RNN)是一类具有独特结构和强大功能的神经网络模型。与传统的前馈神经网络不同,RNN能够处理序列数据,如时间序列数据、文本数据等,这使得它在自然语言处理、语音识别、时间序列预测等众多领域都取得了广泛的应用和显著......
  • 初学者:神经网络(2)
          上一篇文章中我们说神经网络的基本结构,神经网络训练的基本原理,这篇文章我们先来说一说神经网络中一个特别重要的东西---激活函数。      还是引用上一篇文章的老图。      如果按照上图的结构来输出最终的结果,那么计算过程如下:hj=i=1nxicijy=j=......
  • 神经网络学习
    感知和学习RosenblattPerceptron计算流程:初始化:随机初始化权重\(\mathbf{W}\)和偏置b。循环训练:从训练集中随机选择一个样本$(\mathbf{X}_i,y_i)$。检查分类结果是否正确:如果$y_i\cdot(\mathbf{W}\cdot\mathbf{X}_i+b)\leq0\((分类错误),则更新权重和偏......
  • 线性神经网络在因果推断中的潜在用途
    线性神经网络在因果推断中的潜在用途摘要:本文深入探讨线性神经网络在因果推断领域的潜在用途。首先介绍因果推断的基本概念与重要性,阐述传统因果推断方法及其局限性。接着详细剖析线性神经网络的架构与原理,包括神经元的数学模型、前向传播与反向传播算法等核心内容。探讨......
  • 基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
    理论基础算法本质与背景层次化(Hierarchial)Softmax算法是在深度学习领域中解决大规模词嵌入训练效率问题的重要突破。该算法通过引入Huffman树结构,有效地将传统Softmax的计算复杂度从线性降至对数级别,从而在处理大规模词汇表时表现出显著的优势。在传统的神经网络词嵌入模型中,So......