首页 > 其他分享 >深度学习

深度学习

时间:2024-11-01 13:10:39浏览次数:1  
标签:深度 tensor nn torch 学习 output print input

卷积层

提取数据特征,矩阵点乘求和运算

import torch
from torch import nn
conv = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3,
                 stride=1, padding=1, dilation=1, groups=1, bias=True)
print(conv)
"""
output:
Conv2d(1,1, kernel_size=(3,3), stride=(1,1), padding=(1,1))
"""

print("weight:", conv.weight.data, '\n', conv.weight.shape)
"""
output:
weight: tensor([[[[ 0.2703, -0.2022, -0.2629],
                  [ 0.2879, -0.1953, -0.0796],
                  [ 0.0695, -0.1182, -0.2219]]]]) 
torch.Size([1, 1, 3, 3])
"""

print("bias:", conv.bias.data, '\n', conv.bias.shape)
"""
output:
bias: tensor([0.3176]) 
torch.Size([1])
"""

input = torch.ones(1, 1, 5, 5)
output= conv(input)
print(input.shape, output.shape)
"""
output:
torch.Size([1, 1, 5, 5]) torch.Size([1, 1, 5, 5])
"""

激活函数

逼近任意非线性函数,解决卷积运算无法形成复杂表达空间,难提取高语义信息

input= torch.randn(1,1,2,2)
print(input)
"""
output:
tensor([[[[0.3452, 0.0251],
          [0.2547, 2.3131]]]])
"""

sigmoid= nn.Sigmoid()
print("sigmoid:", sigmoid(input))
"""
output:
sigmoid: tensor([[[[0.5855, 0.5063],
                   [0.5633, 0.9100]]]])
"""

relu= nn.ReLU(inplace= True)
print("relu:", relu(input))
"""
output:
relu: tensor([[[[0.3452, 0.0251],
                [0.2547, 2.3131]]]])
"""

leakyrelu= nn.LeakyReLU(0.04, inplace=True)
print("leakyrelu:", leakyrelu(input))
"""
output:
leakyrelu: tensor([[[[0.3452, 0.0251],
                     [0.2547, 2.3131]]]])
"""

import torch.nn.functional as F
score= torch.randn(2, 4)
print("score:", score)
"""
output:
score: tensor([[ 0.7259,  0.5147, -0.5623,  1.5574],
               [-0.3192, -0.2654, -1.0786,  0.0291]])
"""

s= F.softmax(score, 1)
print("softmax:", s.sum(1))
"""
output:
softmax: tensor([1., 1.])
"""

池化层

降采样操作,降低参数量,增加感受野,是较强先验,使模型关注全局特征而非局部出现的位置,保留重要特征信息,提升容错能力,防止过拟合

# kernel_size, stride 池化区域 步长
max_pooling= nn.MaxPool2d(2, stride=2)
aver_pooling= nn.AvgPool2d(2, stride=2)
input= torch.randn(1, 1, 4, 4)
print(input)
print("max_pooling:", max_pooling(input))
print("aver_pooling:", aver_pooling(input))
"""
output:
tensor([[[[-0.0737,  0.3496, -0.1539,  0.6446],
          [ 0.2737, -0.1972,  0.6658, -0.1790],
          [-1.1142,  0.6309,  0.1658, -0.9450],
          [ 0.7880,  1.3876,  0.2205,  0.7212]]]])
max_pooling: tensor([[[[0.3496, 0.6658],
                       [1.3876, 0.7212]]]])
aver_pooling: tensor([[[[0.0881, 0.2444],
                        [0.4231, 0.0406]]]])
"""

Dropout正则化

解决参数过多训练样本又少而产生过拟合现象
训练时,每个神经元以概率p保留,使得模型不过于依赖局部特征,增强泛化能力

dropout= nn.Dropout(0.5, inplace=False)
input= torch.randn(2, 64, 7, 7)
#print(dropout(input))

BN层

标准化+线性变换
解决浅层参数变化经过多层线性变换与激活函数后会被放大,改变每一层的输入分布,造成深层网络需要不断调整适应,导致模型难收敛

bn= nn.BatchNorm2d(num_features= 64)  #num_features为通道数
input= torch.randn(4, 64, 224, 224)
#print(bn(input))

全连接层

每个节点与上下层所有节点相连,输入输出都被延展成一维向量

input= torch.randn(4, 1024)
linear= nn.Linear(1024, 4096)
output= linear(input)
print(input.shape, output.shape)
"""
output:
torch.Size([4, 1024]) torch.Size([4, 4096])
"""

空洞卷积

卷积核大小k,空洞数d
k'=k+ (k-1)*(d-1)

conv1= nn.Conv2d(3,256, 3, stride=1, padding=1, dilation=1)
print(conv1)
"""
output:
Conv2d(3, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
"""

conv2= nn.Conv2d(3,256, 3, stride=1, padding=1, dilation=2)
print(conv2)
"""
output:
Conv2d(3, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), dilation=(2, 2))
"""

标签:深度,tensor,nn,torch,学习,output,print,input
From: https://www.cnblogs.com/sgqmax/p/18519939

相关文章

  • 学习建议及顺序
    学习建议1.数据结构和算法在学会一门语言后就可以去学一学数据结构和算法,一个优秀的程序员一定是“内外双修”的,不要听网上说“这都是一些没用的八股文”或者说“面试造火箭,工作打螺丝”。比如我刷过一道力扣题“在一个数组中找到两个相加为9的元素,并输出这两个元素的索引(该......
  • ORB-SLAM2源码学习:ORBextractor.cc:IC_Angle 利用灰度质心法求解关键点方向角
    ORB特征点:特征点是由关键点和描述子两部分组成,关键点是指特征点在图像中的位置,描述子是用来描述关键点周围的像素信息。ORB关键点是在FAST关键点的基础上进行改进给像素增加了一个主方向,称为OrientedFAST。描述子在BRIEF的基础上加入了上述的方向信息,称为SteeredBRIEF。FAS......
  • (附源码)基于Spring Boot的英语学习网站的设计与实现-计算机毕设 28248
    基于SpringBoot的英语学习网站的设计与实现摘要在当今全球化的时代,英语已经成为了国际交流的通用语言。为了提高英语水平,越来越多的人选择在线学习英语。然而,传统的英语学习网站往往存在功能单一、交互性差、用户体验不佳等问题。为了解决这些问题,我们提出了基于SpringB......
  • AMF学习总结(一)--开篇
    1前言从业10年,写的文章很少,惭愧,现在想把自己所学所思总结一下,碎片的知识要整理成体系才有价值2基础定义2.1AS3ActionScript通常简称为AS,它是Flash平台的语言。AS编写的程序,最终可以编译成SWF、SWC。SWF就是我们常说的Flash动画。但是现在SWF已经不仅仅是动画,而是R......
  • 《机器学习与人类学习:比较、融合与未来展望》
    《机器学习与人类学习:比较、融合与未来展望》一、引言二、机器学习的概念与发展(一)机器学习的定义与分类(二)机器学习的发展历程(三)机器学习的应用领域三、人类学习的本质与过程(一)人类学习的定义与特点(二)人类学习的过程与阶段(三)人类学习的影响因素四、机器学习与人类学习的......
  • Zookeeper 学习的一些资料和实操遇到的问题的记录
    主要参考地址:https://www.cnblogs.com/leeSmall/p/9563547.htmlzookeeper安装问题:https://blog.csdn.net/peng2hui1314/article/details/107255142/注意配置文件多余空格问题,会导致启动失败,认真检查注意不要下载错了版本       标准版本(apache-zookeep......
  • 【SSL-RL】自监督强化学习:Plan2Explore算法
            ......
  • 一种基于机器学习的面向内生安全系统的入侵修复方式
    摘要:本文主要是根据上课老师所提供的题目以及平时上课的学习,结合自己的理解按照要求设计的一种基于机器学习等方法的面向内生安全系统的入侵修复方式和系统,虽然大部分只是一种猜想并未实际实现,但是所体现的创新性等也是有可取之处的。关键词:内生安全入侵修复机器学习人工......
  • DPaRL:耶鲁+AWS出品,开放世界持续学习场景的新解法 | ECCV'24
    来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Open-WorldDynamicPromptandContinualVisualRepresentationLearning论文地址:https://arxiv.org/abs/2409.05312创新点在开放世界中建立了一种新的持续视觉表征学习的实用设置。提出了一种简单而强大的方法,动......
  • 论听歌对学习的帮助
    论听歌对学习的帮助很多人认为听歌属于娱乐,对学习没有帮助,边听歌边学习更是错误的。然而他们大多没有实验证明。只是主观臆断,实际上他们自己并不常听歌。因此大部分学校是不允许戴耳机的。然而我认为听歌对学习的影响因人而异,不能以偏概全。仅针对本人,听歌可以从现象上非常明......