Pytorch入门学习笔记(三)—— 神经网络

Pytorch入门学习笔记 定义两层卷积层 + 三层全连接层的神经网络: class Net(nn.Module): def __init__(self): # 定义神经网络结构 super(Net, self).__init__() # 第一层(卷积层) self.conv1 = nn.Conv2d(1,6,3) # 输入频道1,输出频道6,卷积大小3*3 ... 阅读详情

本文结合小土堆的教学视频PyTorch深度学习快速入门教程进行学习

一、 基本骨架 Containers

1. torch.nn.Module

Module 类是所有神经网络模块的基类,还可以包含其他模块,允许他们嵌套在树状结构中。

当继承 Module 父类时,需要调用 __init__() 函数进行初始化处理,并且在该函数中必须调用父类的初始化函数。同时还可以调用 forward() 函数进行前向传播。

具体代码实现如下

import torch

# 继承Module模块,创建一个属于自己的类
class Model(torch.nn.Module):

    # 类的初始化
    def __init__(self):
        super().__init__()

    # 调用forward函数
    def forward(self, input):
        output = input + 1
        return output

model = Model()
x = torch.tensor(1.0)
output = model(x)
print(output)

程序运行结果输出  tensor(2.) 

2.torch.nn.Sequential

Sequential 类继承自Module 类,是一个有顺序的容器,将特定神经网络模块按照在传入容器的顺序依次执行

具体代码实现如下

from torch import nn

# 创建Sequential实例
model = nn.Sequential(
          nn.Conv2d(1,20,5),    # 第一次卷积操作
          nn.ReLU(),            # 第一次非线性激活
          nn.Conv2d(20,64,5),   # 第二次卷积操作
          nn.ReLU()             # 第二次非线性激活
        )
print(model)

程序运行结果如下

Sequential(
  (0): Conv2d(1, 20, kernel_size=(5, 5), stride=(1, 1))
  (1): ReLU()
  (2): Conv2d(20, 64, kernel_size=(5, 5), stride=(1, 1))
  (3): ReLU()
)

二、 卷积层 Convolution Layers

功能实现:提取输入图像中的特征信息

Conv2d:对二维数据进行卷积层的处理

1. torch.nn.functional.conv2d

函数定义:

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) 

参数含义:input 表示传入要进行处理的图像数据; weight  表示权重,即卷积核;bias 表示形状的可选偏置张量,默认值为 None; stride  表示卷积的步幅,默认值为1; padding  表示图像边沿填充的数目,默认值为0

具体代码实现如下

import torch
import torch.nn.functional as F
# 输入矩阵
input = torch.tensor([[1,2,0,3,1],
                      [0,1,2,3,1],
                      [1,2,1,0,0],
                      [5,2,3,1,1],
                      [2,1,0,1,1]])
# 卷积核
kernel = torch.tensor([[1,2,1],
                       [0,1,0],
                       [2,1,0]])
# 由于直接使用torch.tensor传入的数据只有2个尺寸形式,而conv2d的传参要求需要4个尺寸形式
# 对输入矩阵和卷积核的尺寸进行转变
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))

# 输出卷积结果
output = F.conv2d(input,kernel,stride=1)            # 卷积核步长为1,边缘无填充
output2 = F.conv2d(input,kernel,stride=2)           # 卷积核步长为2,边缘无填充
output3 = F.conv2d(input,kernel,stride=1,padding=1) # 卷积核步长为1,边缘填充一圈
print(output)
print(output2)
print(output3)

程序运行结果如下

tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
tensor([[[[10, 12],
          [13,  3]]]])
tensor([[[[ 1,  3,  4, 10,  8],
          [ 5, 10, 12, 12,  6],
          [ 7, 18, 16, 16,  8],
          [11, 13,  9,  3,  4],
          [14, 13,  9,  7,  4]]]])

2. torch.nn.Conv2d

计算公式为  out(N_i,C_{outj})=bias(C_{outj})+\sum_{k=0}^{C_{in}-1}weight(C_{outj},k) \times input(N_i,k)

其中 N 是批量大小,C 表示多个通道,H 是输入平面的高度(以像素为单位),W 是宽度(以像素为单位)

函数定义:

torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None) 

参数含义: in_channels  表示输入图像中的通道数(通常为 RGB 3通道); out_channels  表示经过卷积后输出图像的通道数; kernel_size  表示卷积核的大小,输入整数 size 表示大小为 size × size,输入序列 (h,w) 表示大小为 h × w; stride  表示卷积的步幅,默认值为1; padding  表示图像边沿填充的数目,默认值为0;padding_mode 表示边沿填充模式

具体代码实现如下

import torch
from torch import nn
from torch.nn import Conv2d
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

# 准备并加载测试数据集
dataset = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloder = DataLoader(dataset,batch_size=64)

# 创建model类(继承Module)
class Model(nn.Module):
    # 类的初始化
    def __init__(self):
        super().__init__()    # 父类的初始化
        self.conv1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)  # 定义卷积层
    # forward函数
    def forward(self,x):
        x = self.conv1(x)    # 对输入进来的x进行卷积操作
        return x

model = Model() # 创建类的实例
step = 0
writer = SummaryWriter("logs")
# 通过for循环遍历数据集中的每个子集
for data in dataloder:
    imgs,targets = data
    output = model(imgs)    # 传入图片进行卷积操作
    writer.add_images("input",imgs,step)    # 显示输入图片
    output = torch.reshape(output,(-1,3,30,30)) # 转变输出图片尺寸(经过卷积之后图片变成30×30)
    # -1表示不清楚该值要设置为多少,系统会自动根据后面的值进行计算;3表示将图片转化为三通道
    writer.add_images("output",output,step) # 显示输出图片
    step += 1
writer.close()

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,结果显示如下

三、 池化层 Pooling Layers

功能实现:提取窗口的特征数据,保留输入的特征,减小需要计算的数据量

MaxPool2d:直接计算池化窗口内的原始数据,选择池化核覆盖的范围中的最大值

函数定义:

torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

参数含义: kernel_size  表示池化核的窗口大小; stride  表示池化核窗口的步长(默认值为kernel_size); padding  表示图像边沿填充的数目; ceil_mode  当值为 True 时,表示将使用 ceil 而不是 floor 来计算输出形状,即保存大小不足为kernel_size的数据,自动补足NAN至kernel_size大小,值为 False表示直接舍弃大小不足为 kernel_size 的数据

具体代码实现如下(矩阵数据)

import torch
from torch import nn
from torch.nn import MaxPool2d

# 输入矩阵
input = torch.tensor([[1,2,0,3,1],
                      [0,1,2,3,1],
                      [1,2,1,0,0],
                      [5,2,3,1,1],
                      [2,1,0,1,1]],dtype=torch.float32) # 转为浮点数的tensor类型
# 对输入矩阵的尺寸进行转变,因为MaxPool2d的传参要求需要4个尺寸形式
input = torch.reshape(input,(1,1,5,5))

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        # 池化核大小为3×3,并保存大小不足为kernel_size的数据
        self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)

    def forward(self,input):
        output = self.maxpool1(input)
        return output

model = Model()
output = model(input)
print(output)

程序运行结果如下

tensor([[[[2., 3.],
          [5., 1.]]]])

若将 ceil_mode 的值赋为 False,则程序运行结果为  tensor([[[[2.]]]]) 

在调试过程中出现了  RuntimeError: "max_pool2d" not implemented for 'Long'  的报错,是由于我们传入数据的类型不符合 long 型,故需要在传入数据后添加  dtype=torch.float32 

具体代码实现如下(图像数据)

import torch
from torch import nn
from torch.nn import MaxPool2d
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

# 准备并加载测试数据集
dataset = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloder = DataLoader(dataset,batch_size=64)

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        # 池化核大小为3×3,并保存大小不足为kernel_size的数据
        self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)

    def forward(self,input):
        output = self.maxpool1(input)
        return output

model = Model()
step = 0
writer = SummaryWriter("logs")
# 通过for循环遍历数据集中的每个子集
for data in dataloder:
    imgs,targets = data
    output = model(imgs)    # 传入图片进行池化操作
    writer.add_images("input",imgs,step)    # 显示输入图片
    writer.add_images("output",output,step) # 显示输出图片
    step += 1
writer.close()

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,结果显示如下

四、 非线性激活 Non-linear Activations

功能实现:向神经网络引入一些非线性的特质

1. torch.nn.ReLU

函数定义: torch.nn.ReLU(inplace=False) 

参数含义: inplace  若设置为 True ,则函数会把输出结果覆盖到输入变量中(默认值为 False)

计算公式: ReLU(x)=(x)^{+}=max(0,x)

具体代码实现如下

import torch
from torch import nn
from torch.nn import ReLU

# 输入数据矩阵
input = torch.tensor([[1,-0.5],
                      [-1,3]])
input = torch.reshape(input,(-1,1,2,2))   # 转化数据尺寸

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.relu1 = ReLU() # 定义非线性激活函数

    def forward(self,input):
        output = self.relu1(input)
        return output
    
model = Model()
output = model(input)
print(output)

程序运行结果如下

tensor([[[[1., 0.],
          [0., 3.]]]])

2. torch.nn.Sigmoid

函数定义: torch.nn.Sigmoid(*args, **kwargs) 

计算公式: Sigmoid(x)=\sigma(x)=\frac{1}{1+exp(-x)}

具体代码实现如下

from torch import nn
from torch.nn import Sigmoid
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

# 准备并加载测试数据集
dataset = torchvision.datasets.CIFAR10("./dataset",train=False,download=False,
                                       transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset,batch_size=64)

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.sigmoid1 = Sigmoid() # 定义非线性激活函数

    def forward(self,input):
        output = self.sigmoid1(input)
        return output
    
model = Model()
step = 0
writer = SummaryWriter("logs")
for data in dataloader:
    imgs,targets = data
    writer.add_images("input",imgs,step)
    output = model(imgs)
    writer.add_images("output",output,step)
    step += 1
writer.close()

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,结果显示如下

五、 线性层 Linear Layers

功能实现:将前面计算得到的特征向量进行线性变换,转化成一维向量

函数定义: torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None) 

参数含义: in_features  表示每次输入样本的大小; out_features  表示每次输出样本的大小;bias 表示偏置量

具体代码实现如下

import torch
from torch import nn
from torch.nn import Linear
import torchvision
from torch.utils.data import DataLoader

# 准备并加载测试数据集
dataset = torchvision.datasets.CIFAR10("./dataset",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloder = DataLoader(dataset,batch_size=64,drop_last=True)

class Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.linear1 = Linear(196608,10)    # 将输入图片的大小196608转化为10
    def forward(self,x):
        x = self.linear1(x)
        return x

model = Model()
for data in dataloder:
    imgs,targets = data
    # output = torch.reshape(imgs,(1,1,1,-1))   # 将图片数据扁平化
    output = torch.flatten(imgs)    # 可以替代上面的reshape函数的功能
    print(output.shape)
    output = model(output)
    print(output.shape)

六、 搭建神经网络模型小实战(结合 CIFAR10 模型)

CIFAR10 模型结构如下

具体实战代码实现如下

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriter


class Model(nn.Module):
    def __init__(self) -> None:
        super(Model,self).__init__()
        self.conv1 = Conv2d(3,32,5,padding=2)  # 第一次卷积
        self.maxpool1 = MaxPool2d(2)           # 第一次最大池化
        self.conv2 = Conv2d(32,32,5,padding=2) # 第二次卷积
        self.maxpool2 = MaxPool2d(2)           # 第二次最大池化
        self.conv3 = Conv2d(32,64,5,padding=2) # 第三次卷积
        self.maxpool3 = MaxPool2d(2)           # 第三次最大池化
        self.flatten = Flatten()               # 数据扁平化
        self.linear1 = Linear(1024,64)         # 第一次线性变换
        self.linear2 = Linear(64,10)           # 第二次线性变换

    def forward(self,x):
        x = self.conv1(x)
        x = self.maxpool1(x)
        x = self.conv2(x)
        x = self.maxpool2(x)
        x = self.conv3(x)
        x = self.maxpool3(x)
        x = self.flatten(x)
        x = self.linear1(x)
        x = self.linear2(x)
        return x

model = Model()
print(model)
input = torch.ones((64,3,32,32))    # 构建一个值全为1的矩阵
output = model(input)
print(output.shape)

writer = SummaryWriter("logs")
writer.add_graph(model,input)
writer.close()

程序运行结果如下

Model(
  (conv1): Conv2d(3, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (maxpool1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (conv2): Conv2d(32, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (maxpool2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (conv3): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
  (maxpool3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (linear1): Linear(in_features=1024, out_features=64, bias=True)
  (linear2): Linear(in_features=64, out_features=10, bias=True)
)
torch.Size([64, 10])

具体代码实现如下(结合 Sequential 类)

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.tensorboard import SummaryWriter


class Model(nn.Module):
    def __init__(self) -> None:
        super(Model,self).__init__()
        self.model1 = Sequential(
            Conv2d(3,32,5,padding=2),
            MaxPool2d(2),
            Conv2d(32,32,5,padding=2),
            MaxPool2d(2),
            Conv2d(32,64,5,padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024,64),
            Linear(64,10)
        )

    def forward(self,x):
        x = self.model1(x)
        return x

model = Model()
print(model)
input = torch.ones((64,3,32,32))
output = model(input)
print(output.shape)

writer = SummaryWriter("logs")
writer.add_graph(model,input)
writer.close()

程序运行结果如下

Model(
  (model1): Sequential(
    (0): Conv2d(3, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (2): Conv2d(32, 32, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (4): Conv2d(32, 64, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))
    (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (6): Flatten(start_dim=1, end_dim=-1)
    (7): Linear(in_features=1024, out_features=64, bias=True)
    (8): Linear(in_features=64, out_features=10, bias=True)
  )
)
torch.Size([64, 10])

将程序运行后,在终端输入  tensorboard --logdir=logs --port=6007  ,结果显示如下

 

Pytorch入门(1)神经网络 Pytorch入门(1)神经网络 import torch import torch.nn as nn import torch.nn.functional as F from torch.autograd import Variable import torch.optim as optim class Net(nn.Module): #定义Net的初始化函数,这个函数定义了... 阅读详情

相关推荐

Pytorch学习笔记(五)--多层神经网络

前请提要 Pytorch学习笔记(一)--Tensor和Variable Pytorch学习笔记(二)--autograd and dynamic-graph Pytorch学习笔记(三)--linear regression andgradient descend(线性回归和梯度下降) Pytorch学习笔记(四)--Logistic 回归模型 一.多层神经网络 之前学习的线性模型和logis...

屋顶数☆☆的博客 1728

PyTorch快速入门教程【小土堆】-神经网络-完整的模型训练套路

PyTorch快速入门教程【小土堆】-神经网络-完整的模型训练套路

weixin_42182290的博客 3772

PyTorch入门:从零开始搭建你的第一个神经网络

接下来,我们定义一个简单的全连接神经网络。PyTorch提供了`torch.nn.Module`类,所有神经网络模型都继承自这个类。

saluteSIWU的博客 933

P17-18:神经网络基本骨架以及卷积层(Pytorch小土堆学习笔记)

神经网络的基本架构以及将torch.nn.funcational和torch.nn中的conv2d进行比较,用具体的例子进行解释

Apple0631的博客 1507

Pytorch入门+实战系列二:Pytorch基础理论和简单的神经网络实现

Pytorch官方文档:https://pytorch.org/docs/stable/torch.html? 1. 写在前面 今天开始,兼顾Pytorch学习, 如果刚刚接触深度学习并且想快速搭建神经网络完成任务享受快感,当然是Keras框架首选,但是如果想在深度学习或人工智能这条路上走的更远,只有Keras就显得有点独木难支,这时候我们需要一个更加强大的框架,这里我想学习Pytorch,它代码...

Miracle8070 6050

Palantir的本体论建模跟数仓建模的异同

Palantir的Foundry Ontology通过构建组织的数字孪生体,将数据集和模型映射为对象类型、属性、链接和操作类型,形成完整的语义知识网络。与传统数仓建模相比,本体建模以业务问题为驱动,强调细粒度语义和实时决策能力,采用图语义技术实现灵活的映射关系。

轩哥的个人研究和成长记录 1593

学习笔记(b站小土堆)

可用 output = torch.flatten(imgs) 展平。

weixin_57736375的博客 2250

STC8G1K08A 实战应用:从配置到功能实现

本文详细介绍了STC8G1K08A单片机的实战应用,从开发环境搭建、GPIO配置、ADC模块使用到定时器中断处理和PWM输出等核心功能。重点讲解了外设模块的协同工作配置技巧,并分享了实际项目开发中的经验教训,帮助开发者快速掌握STC8G1K08A的高效应用。

n4o5p6q7r的博客 391

Pytorch学习

本节主要是记录学习b站小土堆的pytorch教程做的简单笔记

akatsikitiandaci的博客 952

Synopsys安装教程Ubuntu22.04版本

在Ubuntu22版本上安装Synopsys等系列工具,安装DC,VCS等等

qq_59529218的博客 5724

无人机避障——卡内基梅隆大学(CMU)CERLAB 无人机自主框架复现

CMUCERLAB无人机自主框架是一个模块化的无人机自主导航系统,包含感知、测绘、规划和控制等组件。安装过程中遇到的主要问题包括:(1)cv_bridge路径未正确识别,需手动指定路径;(2)OpenCV版本冲突(4.2与4.6),导致动态导航节点崩溃。解决方案包括:完全卸载OpenCV4.2,重新编译安装OpenCV4.6,并修改相关CMakeLists文件指定版本。最终成功运行仿真环境,实现无人机在Gazebo和RViz中的自主避障导航功能。

weixin_45390670的博客 1644

PyTorch入门【小土堆】

pyTorch小土堆

Ashley_ly的博客 1974

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:图 1-1内存区域的划分是在系统启动时通过配置 TZASC 组件(TZC-400/TZC-380)来实现的。TZC-400由和使能情况;安全访问权限;Base地址;

CodingCos的博客 1633

PyTorch学习笔记5—PyTorch深度学习入门(三)—神经网络

PyTorch学习笔记5—PyTorch深度学习入门(三)—神经网络

北街末雨Yyg 847

游戏战斗系统架构设计的演绎之路——从一坨意大利面条到一座精密钟表

摘要:游戏战斗系统架构设计的演进之路 本文系统梳理了游戏战斗系统从早期街机到现代3A大作的架构发展历程。70-80年代的街机游戏采用基础碰撞盒判定(如《街头霸王》);90年代实现动画融合与状态机架构(《最终幻想》《拳皇》);2000年后MMO引入服务器验证与同步技术(《魔兽世界》);3D时代融合物理引擎与智能AI(《GTA5》《只狼》);移动端则发展出轻量化架构与云端判定(《王者荣耀》)。现代战斗系统已实现模块化、数据驱动和热更新,未来趋势是AI裁判与云战斗系统。这一演进过程展现了技术与创意的完美结合,数百

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 800

从自然语言到PCB设计:DeepSeek与Altium协同自动化实战指南

摘要:在电子设计领域,将自然语言需求转化为PCB设计图是实现自动化设计的重要目标。受限于当前NLP和EDA技术,通过DeepSeek直接生成完整PCB设计图尚无法实现,但在设计辅助环节已展现实用价值。本文深入分析技术可行性,提出"自然语言→设计约束→脚本生成→人工验证"的人机协同工作流。通过28个完整代码示例、12张技术图表及5个工程案例,详细展示DeepSeek解析需求、生成设计约束,并结合Altium Designer API实现元件放置、规则设置、DRC校验的全流程。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1762

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记并附练习代码 ipynb文件)

【Pytorch入门】小土堆PyTorch入门教程完整学习笔记(详细笔记 文末附练习代码 ipynb文件)

几度热忱的博客 3万+

自适应滤波-----LMS(Least Mean Square)算法

自适应滤波的意义所在 自适应滤波器解决非平稳的过程,因为实际信号的统计特性可能是非平稳的或者是未知的。 自适应滤波器的特点: 1.没有关于待提取信息的先验统计知识 2.直接利用观测数据依据某种判据在观测过程中不断递归更新 3.最优化 自适应滤波分类: 处理器的结构划分:横向结构、格型结构 重复一次计算自适应需要的数据划分:成批处理法、递归处理法 按调节算法...

heda3的博客 10万+

PyTorch 入门学习笔记

PyTorch 简介、安装、语法、基本概念等。

Cappuccino0001的博客 2421

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

pytorch入门——构建神经网络

本文介绍了基于pytorch神经网络的典型构建流程,介绍了损失函数 反向传播 更新参数等

qq_53536373的博客 7561

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Pytorch学习笔记(3):前馈神经网络

终于学到了我们最期待的神经网络部分了。

weixin_43554584的博客 2393

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pytorch入门(三)—— 前馈神经网络

前馈神经网络 常见的前馈神经网络有感知机(Perceptrons)、BP(Back Propagation)网络、RBF(Radial Basis Function)网络等。 感知器(又叫感知机)是最简单的前馈网络,它主要用于模式分类,也可用在基于模式分类的学习控制和多模态控制中。感知器网络可分为单层感知器网络和多层感知器网络。 BP网络是指连接权调整采用了反向传播学习算法的前馈网络。与...

随笔 3312

Pytorch 三小时极限入门教程

张量是 Pytorch 中最基本的数据结构,类似于 NumPy 中的数组,但具有更强的功能。

爱好技术的小老头 3563

pyTorch——基础学习笔记

类似于Numpy但是能利用GPU加速一个非常灵活和快速用于深度学习的研究平台。目前学习深度学习一个好的框架十分的重要,现在主流的就是Pytorch和tf,今天让我们一起来学习pytorch。其实除了可以采用自动梯度方法,我们还可以通过构建一个继承了torch.nn.Module的新类,来完成对前向传播函数和后向传播函数的重写。在这个新类中,我们使用forward作为前向传播函数的关键字,使用backward作为后向传播函数的关键字。batch_n = 64#一个批次输入数据的数量。......

zyz博客 2477

Pytorch入门——两层神经网络(Numpy手写+Pytorch实现)

既然是实战,作为开篇,需要自己明确一下,理论的东西少整,实战就要多写代码。 先上一个重要的方法论吧,具有指导意义,也可用于学习其他技术上面: 文章目录1. Pytorch入门2. 两层神经网络的实现2.1 Numpy手写2.2 Pytorch实现 1. Pytorch入门 简单总结一些常用的一些操作吧,只是一个非常浅显总结。 x = torch.empty(5,3) #构造未初始化的tensor...

个人记录使用 1175
上一篇: Pytorch入门学习笔记(二)
下一篇: Pytorch入门学习笔记(四)
tryflyhigh
博客等级 码龄3年 136粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值