pytorch
有点方
这个作者很懒,什么都没留下…
展开
-
DropBlock
(a)原始输入图像(b)绿色部分表示激活的特征单元,b图表示了随机dropout激活单元,但是这样dropout后,网络还会从drouout掉的激活单元附近学习到同样的信息(c)绿色部分表示激活的特征单元,c图表示本文的DropBlock,通过dropout掉一部分相邻的整片的区域(比如头和脚),网络就会去注重学习狗的别的部位的特征,来实现正确分类,从而表现出更好的泛化。code:import torchimport torch.nn.functional as Ffrom tor..原创 2020-08-05 17:53:18 · 335 阅读 · 0 评论 -
激活函数Mish
y = x*tanh(ln(1+exp(x)))实验中,随着层深的增加,ReLU激活函数精度迅速下降,而Mish激活函数在训练稳定性、平均准确率(1-2.8%)、峰值准确率(1.2% - 3.6%)等方面都有全面的提高。从图中可以看出,Mish是一个平滑的曲线,平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化;在负值的时候并不是完全截断,允许比较小的负梯度流入。Code:# -*- coding: utf-8 -*-import torchimport torc原创 2020-08-05 17:09:09 · 1525 阅读 · 1 评论 -
Label Smoothing
在分类任务中,我们通常对类别标签的编码使用[0,1,2,…]这种形式。在深度学习中,通常在全连接层的最后一层,加入一个softmax来计算输入数据属于每个类别的概率,并把概率最高的作为这个类别的输入,然后使用交叉熵作为损失函数。这会导致模型对正确分类的情况奖励最大,错误分类惩罚最大。如果训练数据能覆盖所有情况,或者是完全正确,那么这种方式没有问题。但事实上,这不可能。所以这种方式可能会带来泛化能力差的问题,即过拟合。按softmax交叉熵优化时,针对这个样本而言,会让0.721越来越接近于1,因为这原创 2020-08-05 16:21:49 · 199 阅读 · 0 评论 -
CutMix
Mixup:将随机的两张样本按比例混合,分类的结果按比例分配; Cutout:随机的将样本中的部分区域cut掉,并且填充0像素值,分类的结果不变; CutMix随机生成一个裁剪框Box,裁剪掉A图的相应位置,然后用B图片相应位置的ROI放到A图中被裁剪的区域形成新的样本,计算损失时同样采用加权求和的方式进行求解主要code(Iteration过程中的实现方法):lam = np.random.beta(args.beta, args.beta)rand_index = torch.ran...原创 2020-08-05 14:37:28 · 579 阅读 · 0 评论 -
pytorch模型转tensorflow pb模型
#1.配置安装conda create -n pth_pb python=3.7pip install tensorflow==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install tensorflow-addons==0.9.1 -i https://pypi.tuna.tsinghua.edu.cn/simp...原创 2020-04-24 17:11:21 · 7902 阅读 · 31 评论 -
mmdetection的安装与个人数据的训练
第一部分:mmdetection的安装1. 首先查看一下gcc的版本,有的服务器gcc版本较低,导致后续安装出现问题(大部分无此问题)gcc --version官网v1.0rc0 (27/07/2019)版本要求GCC: 4.9/5.3/5.4/7.32.创建基本运行环境注:这里使用anaconda管理项目环境,不建议使用Anaconda3-2019.03-Linux-x86...原创 2019-08-05 16:46:49 · 1565 阅读 · 8 评论 -
PyTorch学习:逻辑回归
import torchfrom torch.autograd import Variableimport numpy as npimport torch.nn.functional as Fimport matplotlib.pyplot as plt# 设定随机种子torch.manual_seed(2018)# 从 data.txt 中读入点#data.txt 是一个100...翻译 2018-11-12 19:25:13 · 426 阅读 · 0 评论 -
PyTorch学习:多项式回归的小例子
#多项式回归模型import torchimport numpy as npfrom torch.autograd import Variableimport matplotlib.pyplot as plttorch.manual_seed(2018)# 定义一个多变量函数w_target = np.array([0.5, 3, 2.4]) # 定义参数b_target = ...翻译 2018-11-12 14:57:44 · 572 阅读 · 0 评论 -
PyTorch学习:一个非常简单的线性回归的小例子
import torchimport numpy as npfrom torch.autograd import Variableimport matplotlib.pyplot as plttorch.manual_seed(2018)# 读入数据 x 和 yx_train = np.array([[3.3], [4.4], [5.5], [6.71], [6.93], [4.16...原创 2018-11-12 11:56:39 · 726 阅读 · 0 评论 -
PyTorch学习:参数初始化
Sequential 模型的参数初始化import numpy as npimport torchfrom torch import nn# 定义一个 Sequential 模型net1 = nn.Sequential( nn.Linear(2, 4), #nn.Linear(2, 4) shape为(4,2) nn.ReLU(), nn.Linear(4,...翻译 2018-11-13 17:17:57 · 5128 阅读 · 0 评论 -
PyTorch学习:多层神经网络的多种实现方式
import torchimport numpy as npfrom torch import nnfrom torch.autograd import Variableimport torch.nn.functional as Fimport matplotlib.pyplot as pltdef plot_decision_boundary(model, x, y): #...翻译 2018-11-13 15:08:35 · 1016 阅读 · 0 评论 -
PyTorch学习:动态图和静态图
动态图和静态图目前神经网络框架分为静态图框架和动态图框架,PyTorch 和 TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现形式。 TensorFlow 使用静态图,这意味着我们先定义计算图,然后不断使用它,而在 PyTorch 中,每次都会重新构建一个新的计算图。通过这次课程,我们会了解静态图和动态图之间的优缺点。对于使用者来说,两种形式的计算图有着非常大...翻译 2018-11-09 15:20:21 · 13608 阅读 · 1 评论 -
PyTorch学习:自动求导
自动求导是 PyTorch 中非常重要的特性,能够让我们避免手动去计算非常复杂的导数,这能够极大地减少了我们构建模型的时间,这也是其前身 Torch 这个框架所不具备的特性,下面我们通过例子看看 PyTorch 自动求导的独特魅力以及探究自动求导的更多用法。import torchfrom torch.autograd import Variable# 简单情况的自动求导# 下面我们显...翻译 2018-11-09 15:13:12 · 329 阅读 · 0 评论 -
PyTorch学习:Variable
tensor 是 PyTorch 中的完美组件,但是构建神经网络还远远不够,我们需要能够构建计算图的 tensor,这就是 Variable。Variable 是对 tensor 的封装,操作和 tensor 是一样的,但是每个 Variabel都有三个属性,Variable 中的 tensor本身`.data`,对应 tensor 的梯度`.grad`以及这个 Variable 是通过什么方式得...翻译 2018-11-09 13:07:05 · 698 阅读 · 0 评论 -
PyTorch学习:Tensor的操作
x = torch.ones(2, 2)print(x) # 这是一个float tensor 1 1 1 1[torch.FloatTensor of size 2x2]print(x.type())torch.FloatTensor# 将其转化为整形x = x.long()# x = x.type(torch.LongTensor)print(x)...翻译 2018-11-09 11:41:26 · 3075 阅读 · 0 评论 -
PyTorch学习:PyTorch 当做 NumPy 用
PyTorch 当做 NumPy 用:PyTorch 的官方介绍是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构件是张量,所以我们可以把 PyTorch 当做 NumPy 来用,PyTorch 的很多操作好 NumPy 都是类似的,但是因为其能够在 GPU 上运行,所以有着比 NumPy 快很多倍的速度。import torchimport numpy as nppytorc...翻译 2018-11-09 10:33:58 · 1210 阅读 · 0 评论