深度学习
文章平均质量分 90
Janie.Wei
这个作者很懒,什么都没留下…
展开
-
loss function & cost function & objective function
1. 中文翻译loss function: 损失函数cost function:代价函数objective function:目标函数2. 解释如果有个函数,我们想对其求极大值或者极小值,通常会将这个函数称为Objective function。目标函数是优化问题中的一个概念。任何一个优化问题包括两个部分:(1)目标函数,最终是要最大化或者最小化这个函数;(2)约束条件,且约束条件是可选的。当我们是想求极小值时,便会以cost function (loss function)来称呼该目标函原创 2021-09-23 23:59:44 · 660 阅读 · 0 评论 -
域对抗(域适应)训练
1. 引入在传统监督学习中,我们经常需要大量带标签的数据进行训练,并且需要保证训练集和测试集中的数据分布相似。如果训练集和测试集的数据具有不同的分布,训练后的分类器在测试集上就没有好的表现。这种情况下该怎么办呢?域适应(Domain Adaption),也可称为域对抗(Domain Adversarial),是迁移学习中一个重要的分支,用以消除不同域之间的特征分布差异。其目的是把具有不同分布的源域(Source Domain) 和目标域(Target Domain) 中的数据,映射到同一个特征空间.原创 2021-08-26 17:34:43 · 15537 阅读 · 3 评论 -
对比学习介绍Contrastive Learning
Generative Methods(生成式方法)这类方法以自编码器为代表,主要关注pixel label的loss。举例来说,在自编码器中对数据样本编码成特征再解码重构,这里认为重构的效果比较好则说明模型学到了比较好的特征表达,而重构的效果通过pixel label的loss来衡量。对比式学习着重于学习同类实例之间的共同特征,区分非同类实例之间的不同之处。与生成式学习比较,对比式学习不需要关注实例上繁琐的细节,只需要在抽象语义级别的特征空间上学会对数据的区分即可,因此模型以及其优化...原创 2021-08-14 10:27:15 · 4536 阅读 · 1 评论 -
神经网络模型计算量 & 参数量 解释
1. 概念计算量(FLOPs)对应我们之前的时间复杂度,计算量要看网络执行时间的长短PS:FLOPS:全大写,意指每秒浮点运算次数,理解为计算速度,是一个衡量硬件性能的指标。FLOPs:s小写,意指浮点运算数,理解为计算量,用来衡量模型的复杂度 (如果模型FLOPs为X,使用的GPU性能Y FLOPS,意味处理该模型只需X/Y秒)参数量对应于我们之前的空间复杂度,参数量要看占用显存的量2. 对硬件要求计算量的要求是在于芯片的fl...原创 2021-08-13 08:43:29 · 8665 阅读 · 1 评论 -
变分自编码器VAE
1. VAE & GAN变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model)除了VAEs,还有一类重要的生成模型GANsVAE 跟 GAN 比较,目标基本是一致的——希望构建一个从隐变量Z生成目标数据X的模型,但是实现上有所不同。生成模型的难题就是判断生成分布与真实分布的相似度,因为我们只知道两者的采样结果,不知道它们的分布表达式。KL 散度是根据两个概率分布的表达式来算它们的相似度的,我们只有样本...原创 2021-08-11 10:30:42 · 8430 阅读 · 3 评论 -
OpenSmile介绍和使用
ComparE_2016,6373个特征,其中65个low level descriptors(LLD),例如音调、MFCC、响度和发声概率。54个统计泛函应用于59个lld,46个统计泛函应用于相应的59个delta系数。对其他6个lld,应用了39个统计泛函。'D:/opensmile-2.3.0/bin/Win32/SMILExtract_Release -configfile D:/opensmile-2.3.0/config/ComParE_2016.conf -appendcsvl..原创 2021-07-19 19:27:18 · 4709 阅读 · 2 评论 -
音视频序列数据分析(RNN->seq2seq->Encoder+Decoder->Attention->Transformer)
1. RNN 针对语音、视频等序列数据,我们需要进行全局时序信息考虑,因此RNN模型是最初最基础的模型结构。 主要可以分析的任务:语音识别、语音合成、视频摘要生成、音视频情感预测等。 存在问题:输出的序列长度与输入序列长度保持一致,不能任意变化。2. Seq2Seq (即 Encoder + Decoder 结构) seq2seq,由Encoder和Decoder两个部分组成,每部分都是一个RNNCell(RNN、LSTM、GRU等)结构。 Encoder将一个序列编码为...原创 2021-05-06 00:22:20 · 1034 阅读 · 0 评论 -
多块GPU并行计算 pytorch
1. 指明要是用的GPUimport osos.environ["CUDA_VISIBLE_DEVICES"]="0,1,3" 上述代码说明,给本程序分配了编号“0,1,3”的三块GPU可供使用 PS: 本机必须是有上述声明的显卡,否则在使用时会出错 RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at ..\aten\src\THC\THCGeneral.cpp...原创 2020-09-16 10:28:23 · 1041 阅读 · 0 评论 -
预训练模型的参数保存与加载
1. 预训练参数保存def savecheckpoint(model,dir): para=model.state_dict() torch.save(para, dir)2. 预训练参数加载def LoadParameter(_structure, _parameterDir): """ :param _structure: model :param _parameterDir: 参数位置 :return: """ chec原创 2020-08-08 10:49:50 · 1380 阅读 · 0 评论 -
双线性池化 bilinear pooling
bilinear pooling主要用于特征融合,对于从同一个样本提取出来的特征x和特征y,通过bilinear pooling得到两个特征融合后的向量,进而用来分类。如果特征x和特征y来自两个特征提取器,则被称为多模双线性池化(MBP,Multimodal Bilinear Pooling)如果特征x=特征y,则被称为同源双线性池化(HBP,Homogeneous Bilinear Pooling)或者二阶池化(Second-order Pooling)bilinear pooling详.原创 2020-07-14 10:01:19 · 8380 阅读 · 1 评论 -
深度学习常用激活函数介绍和使用
注: Sigmoid一般不与MSE配合使用。在深度学习里,Sigmoid函数是常见的激活函数。特别注意的是,当使用Sigmoid做激活函数的时候,损失函数不能选择MSE。因为Sigmoid的导数为f(x)(1−f(x))。假设当预测值为f(x)=1而真实值为0的时候,此时虽然(yi−y˜)很大,但是f(x)(1−f(x))太小接近0,收敛速度同样很慢。...原创 2020-07-12 15:33:37 · 690 阅读 · 0 评论 -
情感识别相关数据集总结
(*主要介绍数据集的格式)一. 图片1. artphoto 未划分train-test; 图片数据;标签2. SFEW2.0 训练集+验证集: 图片数据;标签;特征 测试集 : 图片数据;特征3. JAFFE 未划分train-test; 图片数据;标签4. fer2013 训练集: 图片数据+标签...原创 2020-04-13 17:00:33 · 4763 阅读 · 9 评论 -
action recognition论文阅读
1.Potion步骤:(1) 抓取每一帧每个joint的heatmaps(每一个像素点被划分为某一个joint概率的heatmap) --》每一帧图像都得到N个heatmap(H*W), 共 T*N*H*W(2) 对每一帧每个joint的heatmaps按照时间顺序进行colorizing,可以多个通道 --》每个he...原创 2020-03-17 20:15:48 · 328 阅读 · 0 评论 -
深度学习常用损失函数介绍和使用
1. nn.L1Loss取预测值和真实值的绝对误差的平均数注意数据类型为:double或floatimport torch.nn as nn import torch import numpy as np x=np.array([1,2,4]) label=torch.from_numpy(x).double() pre=torch.ones([3]).double(...原创 2020-03-15 21:05:59 · 645 阅读 · 0 评论 -
pytorch的一些库
1. torchvision的models 里面包含常用的深度模型:AlexNet、VGG、GoogleNet等 使用: model=models.resnet50()2. pretrainedmodels 里面包含常用的深度模型:AlexNet、VGG、GoogleNet等,还包括一些新的模型Xception、SENet等 使用:args1=pre...原创 2020-03-13 15:40:57 · 1406 阅读 · 0 评论 -
卷积操作中的group
group参数,其意思是将对应的输入通道与输出通道数进行分组卷积处理, 默认值为1。比如输入数据为B*Cin*H*W, 卷积核配置为 Cout 3*3 group: group=1,即我们常用的全连接的卷积,对输入的全部Cin个通道与输出的Cout通道全卷积 group=2,将输入的Cin通道分成2个(Cin/2)通道,输出的Cout通道分成2个(Cout/2)通道;第一个Cin/2通道...原创 2020-03-13 14:36:52 · 2120 阅读 · 0 评论 -
迁移学习-模型参数加载
1. 模型定义时name规则定义了变量名的,name=变量名; 没有定义变量名的,使用Sequential()的,从0开始标号name。class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1=nn.Conv2d(in_channels=3,ou...原创 2020-03-10 20:51:55 · 739 阅读 · 0 评论 -
深度学习常用模型
1. VGG(1)卷积层串联两个3*3卷积层的串联相当于1个5*5的卷积层,三个3*3的卷积层串联相当于1个7*7的卷积层 3个3*3卷积层的感受野大小相当于1个7*7的卷积层。但是3个3*3的卷积层参数量只有7*7的一半左右,同时前者可以有3个非线性操作,而后者只有1个非线性操作,这样使得...原创 2020-03-10 17:08:33 · 3557 阅读 · 0 评论