WCT2代码阅读笔记

  1. parser.add_argument

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块

我们先来看一个简单示例。主要有三个步骤:

  • 创建 ArgumentParser() 对象
  • 调用 add_argument() 方法添加参数
  • 使用 parse_args()解析添加的参数
  1. numpy.ones()

np.ones((1, 2))代表一行两列
输出:

[[1. 1.] 
[ 1. 1.]]
  1. unsqueeze函数:该函数用来增加某个维度,unsqueeze(0)就代表在最外层增加一个维度

  2. nn.Conv2d():二维卷积

nn.Conv2d(in_channels,out_channels,kernel_size,stride,padding)
前三个参数必须手动提供,后面有参数
在Pytorch的nn模块中,不需要手动定义网络层的权重和偏置

in_channels:输入张量的channels数
out_channels:输出张量的channels数(=滤波器的数量)
kernel_size:卷积核的大小(滤波器的通道数=in_channels)
stride:步长,默认1
padding:图像填充,默认0

  1. requires_grad:是Pytorch中通用数据结构Tensor的一个属性,用于说明当前量是否需要在计算中保留对应的梯度信息,默认false不保留
  2. expand():这个函数的作用就是对指定的维度进行数值大小的改变。只能改变维大小为1的维,否则就会报错。不改变的维可以传入-1或者原来的数值。
  3. super()._ init _()

需要继承父类构造函数中的内容,且子类需要在父类的基础上补充时使用

  1. nn.module来自定义网络层

要实现一个自定义层大致分以下几个主要的步骤:
自定义一个类,继承自Module类,并且一定要实现两个基本的函数,
第一是构造函数__init__,实现层的参数定义
第二个是层的逻辑运算函数,即所谓前向计算函数forward函数

  1. skip connection(残差连接,跳跃连接)

在比较深的网络中,解决在训练的过程中梯度爆炸和梯度消失问题。
思想就是将输出表述为输入和输入的一个非线性变换的线性叠加:G(x)=F(x)+ x

  1. RELU激活函数

激活函数的引入是为了增加神经网络模型的非线性
RELU: f(x) = max(0, x)
优点:
1)克服梯度消失的问题
2)加快训练速度
缺点:
1)输入负数,则完全不激活,ReLU函数死掉。
2)ReLU函数输出要么是0,要么是正数,也就是ReLU函数不是以0为中心的函数

  1. torch.mm(a,b):矩阵相乘
  2. .div():对函数标准化
  3. torch.index_select(input, dim, index, out=None):在指定维度dim方向上从input中抽取由位置序列index所指定的值。output的其他维度的长度和原来矩阵相同,在第dim维度上的长度和index的长度相同。
  4. torch.mean(x,dim):dim=0,按行求平均值;dim=1,按列求平均值
  5. tensor.expand_as(x):是把一个tensor变成和x的tensor
  6. torch.eye():为了生成对角线全1,其余部分全0的二维数组
  7. 对角阵S非零奇异值的个数= ATA非零特征值的个数=对称矩阵ATA的秩=A的秩。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值