- 博客(141)
- 资源 (7)
- 问答 (3)
- 收藏
- 关注
原创 最大化互信息
总说因为,一般做分类的,交叉熵很常见吧,类似KL散度或者交叉熵,本质上就是利用“编码长度”作文章。比如KL散度就是,不完美的概率qqq去编码完美信息条件下的概率ppp,从而多需要的编码长度。这种都是利用直接预测的某件事情的概率去做的。比如,我需要预测这张图是不是猫,预测的猫的概率为 p(x)p(x)p(x),对吧,就是表示独立事件的本身。某些情况下,有两个事件,一个事件的发生可以去预测另外一个事件的概率,就是条件概率。互信息衡量两个变量的依赖程度,可以理解为给定其中一个变量,可以多大程度的减少另一个变
2021-08-24 20:11:25
3067
原创 Pytorch学习(二十九) ------------torch.split与torch.roll结合进行的一种高端操作
How to reverse a multi-hot encoding ?multihot_batch = torch.tensor([[0,1,0,1], [0,0,0,1], [0,0,1,1]])(multihot_batch == torch.tensor(1)).nonzero()tensor([[0, 1], [0, 3], [1, 3], [2, 2], [2, 3]])希望得到[[1, 3],[3],[2, 3]
2021-02-18 17:40:23
1719
原创 transformer的一种加速方法Informer---- 稀疏化quary Q的方法
论文:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecastingtransformer主要是增强网络的全局信息利用能力。因为普通的卷积网络都是local信息利用,其在全局信息利用上存在不可避免的短板。所以才会有类似non-local attn的存在。 transformer里面的核心就是attn,一般来说,A(qi,K,V)=Softmax(QKTd)V\mathcal{A}(\mathbf{q}_i,
2020-12-30 17:38:26
1125
原创 最优传输之浅谈
总说最近最优传输很火啊,而且用处很大。这里简单记录,到底讲了啥问题,以及解法和应用。简单理解:其实就是把 AAA数据迁移到BBB上,当然了。你可以理解成两堆土,从AAA土铲到另外一个地方,最终堆成BBB土。就像是以前初中学的线性规划一样的:我3个城市(A, B, C)有1, 0.5, 1.5吨煤,然后要运到2个其他城市,这两个城市(C, D)分别需要2,1吨煤。然后当然,不同城市到不同的费用不同,让你算最优运输方案和代价。基本概念Probability vector / Histogram (概率向
2020-12-03 20:18:04
6462
1
原创 Pytorch 学习 (二十八)----- 多GPU使用时的一个注意事项
总说有时候,我们构建一种中间特征的loss。需要拿到feature,然后这个 feature 和 target_feat 比较。不要直接在model的forward中求loss,否则只能在单GPU上跑。而是最终将feature和target_feat都返回,在train里面,此时这些返回的 feat会自动变成 主GPU上的tensor,从而不会有tensor不在同一个device的问题。...
2020-09-27 15:40:45
205
原创 Pytorch学习(二十七)-------- 针对不均衡数据集的重采样Resample
总说针对类别数目不均匀的数据,有些类图片多,有些少,如果直接训练,那么就会造成过拟合类别多的数据。最简单的方法就是重采样,直接根据每一类的数目,来重新分配权重。你想想,普通肯定是均匀概率采样的,自然数目多的图片,采样到的概率就大。神奇的 WeightedRandomSampler直接丢代码# 数据集中,每一类的数目。 class_sample_counts = [150, 200, 300] weights = 1./ torch.tensor(class_sample_counts, dtyp
2020-07-27 13:40:36
8031
11
原创 神经关系推断 NRI: Neural Relational Inference for Interacting Systems初探(附加了一小部分VAE)
总说作为从来没有接触过序列预测的我来说,看到这个是有点难度哈。然而经过我钻研了几天,终于基本看明白。太有意思了!!!!!!!!!!!!!论文主要是,根据已有的数据,显示地估计出内在的离散的graph结构,用graph结构作为引导,更好的进行序列预测,而且全程是无监督的方式,来获得graph。其实普通的预测序列的模型,比如LSTM之类的也可以预测,这种方法是隐式学习graph的方法。另外,稍微说一句:由于encoder要预测的graph是一个概率分布(就是每个节点右边的概率),但是预测出来的就只能是离
2020-07-23 18:01:38
2148
原创 PATH删除指定路径
别问啥情况会想要这操作,但是我遇到了。下面代码,加入类似 .bashrc中就行。直接删除 指定路径。 echo "ori path" echo $PATH export PATH=$(p=$(echo $PATH | tr ":" "\n" | grep -v "/home/xxx/anaconda3/bin" | tr "\n" ":"); echo ${p%:}) echo "-----------NOW---------" echo $PATH...
2020-06-04 16:41:33
1772
1
原创 Gumbel-Max trick或者reparameterization
总说下面主要摘自链接文章。参考链接:https://www.zhihu.com/question/62631725/answer/507940806知道一个离散随机变量X的分布,比如说p(X=1)=p1=0.2,p(X=2)=p2=0.3,p(X=3)=p2=0.5,然后我们想得到一些服从这个分布的离散的x的值。但是,采样了之后都是离散值,没法对 p1, p2, p3求导,则神经网络中就没法 BP。这是因为,很多时候我们只是要x的期望,那么我们就是x=p1+2p2+3p3,x对p1,p2,p3的
2020-06-01 15:10:00
788
原创 Pytorch学习 (二十六)---- torch.scatter的使用
总说一个非常有用的函数,主要是用于“group index”的操作。from torch_scatter import scatterimport torchsrc = (torch.rand(2, 6, 2)*4).int()index = torch.tensor([0, 1, 0, 1, 2, 1])# Broadcasting in the first and last dim.out = scatter(src, index, dim=1, reduce="sum")prin
2020-05-21 19:00:06
2074
原创 Pytorch 学习(二十五)---高级DataLoader技巧----每次返回的Tensor的size可以任意
总说大家都知道,默认的DataLoader每次返回的Tensor的尺寸都是固定的,因为batchsize>1时,默认需要stack一下,比如__getitem__()返回的图片return img,其中img是 CHW, 你在外面拿到就是 N*C*H*W了。因为,默认return torch.stack(batch, 0, out=out)了一下。如果每次img图片不一样,就会出错。有些...
2020-04-23 21:39:42
1824
1
原创 Pytorch 学习(二十四)----- 高级Tensor技巧(Advanced Indexing等多种操作)
总说这里记录一些比较难的操作:Advanced Indexing 可以用于赋值import torcha = torch.rand(5,5)x_indice = torch.LongTensor([1, 3, 4])y_indice = torch.LongTensor([2, 1, 1])value_put = torch.rand(3)*10print('Before')pr...
2020-02-18 11:04:10
940
原创 ICCV 2019几篇自己感兴趣的论文阅读
总说只是随意看了看名字,下载了几篇论文读读,方向很局限。(待更新,最近更新 2019-11-21)Content and Style Disentanglement for Artistic Style Transfer
2019-11-21 11:41:27
1462
3
原创 /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found
如果跑anaconda时基本出现这个问题,说是required by matplotlib,那么说明没有吧anconda的 lib加入进去 export PATH="/home/zhaoyi.yzy/anaconda3/bin:$PATH" # add this lib, then ok export LD_LIBRARY_PATH="/usr/local/lib64/:$LD_LIBRA...
2019-11-01 11:28:42
1906
原创 SuperPixel 的样例代码
总说这个给自己看的,对读者应该没啥用。。超像素的例子import sysimport osimport cv2import numpy as npimport mathimg = cv2.imread('people.png')#------------- SP Generation -------------------------num_superpixels = 50...
2019-10-21 15:08:35
492
原创 蒙特卡罗求定积分
计算积分:∫abh(x)dx\int_{a}^{b}h(x)dx∫abh(x)dx如果h(x)h(x)h(x)的原函数不好计算,这里可以将h(x)h(x)h(x)分解成两个函数的乘积,比如 h(x)=h(x)p(x)∗p(x)h(x)=\frac{h(x)}{p(x)}* p(x)h(x)=p(x)h(x)∗p(x)。 有:∫abh(x)dx=∫abh(x)p(x)p(x)dx=Ep(x...
2019-09-19 13:24:41
1348
原创 Pytorch学习(二十三)---- 不同layer用不同学习率(高级版本)
简易版本,pytorch文档上,不同层用不同学习率,可以用这个。optim.SGD([ {'params': model.base.parameters()}, {'params': model.classifier.parameters(), 'lr': 1e-3} ], lr=1e-2, momentu...
2019-09-02 17:01:00
868
原创 NVIDIA NVML Driver/library version mismatch
卸载现有版本的cuda,装其他版本的。其实只要直接remove 文件即可。比如sudo rm -r /usr/local/cuda-9.0sudo rm -r /usr/local/cuda然后,重装cuda。可能会出现NVIDIA NVML Driver/library version mismatch问题。lsmod | grep nvidia比如出现下面4个:nvidia_...
2019-08-11 21:30:24
1228
原创 Pytorch的坑记录
总说简要记录一下pytorch中的坑LongTensor(IntTensor)和float数字操作,直接变成0!坑1: long tensor的bug?import torcha = (torch.rand(3,4)*10).long()print(a)print(a*0.9)tensor([[8, 5, 3, 4], [1, 3, 6, 7], ...
2019-07-25 12:19:34
668
原创 Pytorch学习(二十二)soft label的交叉熵loss的实现(附加《信息论》基本知识)
总说参考的链接:https://blog.csdn.net/tsyccnhhttps://www.zhihu.com/question/41252833/answer/140950659先理解一下信息熵、交叉熵和相对熵先找一下交叉熵的定义:1)信息熵:编码方案完美时,最短平均编码长度的是多少。2)交叉熵:编码方案不一定完美时(由于对概率分布的估计不一定正确),平均编码长度的是多少...
2019-06-26 16:47:01
14939
原创 anaconda各种问题汇总
总说就不说那些创建虚拟环境之类的了。随便找找就能找到。说一些比较重要的东西当装了conda之后,一般pip -V出现的路径是类似这种:pip 19.0.3 from /home/envoriment/local/anaconda2/lib/python2.7/site-packages/pip (python 2.7)这说明conda的pip的路径在系统的pip路径前面,所以首先被系统...
2019-05-19 16:07:36
591
原创 Windows下用Git Bash安装tmux
总说真是醉了,在公司的电脑管理太严格了,而且只给我发windows电脑,效率低啊!!之前还是Mac的,现在真的是知道真相的我眼泪掉下来。。Windows咋搞,用moboXterm?别提这个了好吧,一点也不好用!而且有些bash的命令还不支持,真的醉了! 后来装了一个git, 发现git自带的git bash还挺好用的呀! 现在就差tmux了!于是, 我发现了这个链接, excellent!不用...
2019-05-16 16:39:13
5886
2
原创 CUDA编程简要介绍 (一)
总说主要是 https://devblogs.nvidia.com/even-easier-introduction-cuda/ 的简要信息提取准备工作我们写的cuda程序需要nvcc来进行编译, 而其实nvcc就是在安装好的cuda目录的bin文件夹下:我们首先将相应目录添加进.bashrc里面. # CUDA PATH export PATH="/usr/local/cuda-9....
2019-04-03 19:50:45
581
原创 Pytorch学习 (二十一) ------自定义C++/ATen扩展
总说没办法, 出来混总是要还的, 不会写点底层代码没法混啊. 废话不多说, 简单来说, 有时候我们需要写一些自定义的操作, 这些操作如果用python写会很慢, 我们需要用CUDA写, 然后这些操作与python绑定, 以供python端调用.主要是简略拿出 https://pytorch.org/tutorials/advanced/cpp_extension.html 的东西, 根据实践,...
2019-03-27 22:42:28
8214
9
原创 Pytorch学习(二十) ------ 可能有用的代码合集
总说记录一些比较有用的pytorch代码(有些是自己写的, 有些是从网上看到的)目录提取网络特征(适用于sequential构建的网络)修改Pretrained的网络(如ResNet等)提取网络特征(适用于sequential构建的网络)class VGG16FeatureExtractor(nn.Module): def __init__(self): s...
2019-03-13 10:26:48
1841
原创 git clone 所有分支,并push到另一个repo
总说啥,github的私人项目免费了??赶紧把gitlab的私人项目迁移出来压压惊。这要求我们,首先将所有的分支从gitlab下载到本地,并且是本地分支,然后推送到github上去。但是,直接git clone的话,查看本地分支,竟然只有是master分支?我的天,但是我想要的是推送所有的分支到github上。咋整?窘境git clone后git branch为啥只看到了一个本地分支mast...
2019-01-17 11:56:02
8653
1
原创 Deformable Conv及其变体
文章列表:Active Convolution: Learning the Shape of Convolution for Image Classification这篇文章首先将卷积进行参数的拓展,之前都是直接学习权重就是了。之前的卷积都是fixed的采样。比如3*3,就是采样与window中心点相对位置一样的9个点。即:Y=W∗X+bY=W*X+bY=W∗X+bym,n=∑c∑i,j...
2018-12-27 20:33:38
8041
2
原创 Pytorch学习(十九)--- 模型中buffer的使用
总说我们知道,pytorch一般情况下,是将网络中的参数保存成OrderedDict形式的。这里额参数其实包括2种。一种是模型中各种 module含的参数,即nn.Parameter,我们当然可以在网络中定义其他的nn.Parameter参数。;另外一种是buffer。前者每次optim.step会得到更新,而不会更新后者。例子class myModel(nn.Module):...
2018-08-24 14:23:54
15808
6
原创 Pytorch学习(十八)--- VQA种Dynamic网络的写法
VQA中常用的方法是Dynamic网络,就是一个网络的输出作为另一个网络的filter权重。fliter = nn.Conv2d(…)# 当然这样写诗错的filter.weight.data.fill_(network_output).filter.forward(image)正确写法:import torch.nn.functional as Fp = F.conv2...
2018-08-15 21:22:11
1038
原创 Pytorch学习(十七)--- 模型load各种问题解决
简单的模型load一般来说,保存模型是把参数全部用model.cpu().state_dict(), 然后加载模型时一般用 model.load_state_dict(torch.load(model_path))。 值得注意的是:torch.load 返回的是一个 OrderedDict.import torchimport torch.nn as nnclass Net_old(...
2018-08-02 18:22:56
77381
18
原创 Pytorch学习(十六)----获取网络的任意一层的输出
其实一般来说,如果一个net中,是一个Sequential直接把所有层全部包含起来的,那么不好获得其中任意一层的feature map(至少我还不知道。。, 比较简单的方法就是 在想要得到那一层的后面的网络,全部用另一个sequential包含起来。比如:import torchfrom torch.autograd import Variableimport torch.nncl...
2018-07-05 08:56:58
35026
4
原创 Pytorch学习(十五)------ 杂项知识汇总
总说记录一下一些小知识, 方便查用.(不断更新中) 1. 自定义RNN的写法: Implementation of Multiplicative LSTM 2. 自定义二阶梯度写法: How to implement customized layer with second order derivatives How to customize the double backward 3...
2018-05-15 15:29:45
780
原创 谈谈图像的style transfer ( 三 ) ----- 暂时只写了大纲 - 5月底开始写
总说离 谈谈图像的style transfer ( 二 ) 已经整整一年了, style transfer有了一定程度的进步, 技术已经基本成熟, 发展也不怎么快了. 不够还是有很多值得学习的地方, 故而记录.准备看的论文(下面抽10篇记录,凑个整.): - Universal Style transfer via Feature Transforms (2017-11) - Impr...
2018-05-14 15:44:22
2491
10
原创 Pytorch学习(十四) ------- Pytorch 0.4代码迁移简要总结
总说由于pytorch 0.4版本更新实在太大了, 以前版本的代码必须有一定程度的更新. 主要的更新在于 Variable和Tensor的合并., 当然还有Windows的支持, 其他一些就是支持scalar tensor以及修复bug和提升性能吧. Variable和Tensor的合并导致以前的代码会出错, 所以需要迁移, 其实迁移代价并不大.Tensor和Variable的合并...
2018-04-27 12:27:10
10325
1
原创 Pytorch学习 ( 十三 ) ----- Pytorch自定义层出现多Variable共享内存错误
错误信息: RuntimeError: in-place operations can be only used on variables that don’t share storage with any other variables, but detected that there are 4 objects sharing it自动求导是很方便, 但是想想, 如果两个Variable...
2018-04-19 23:24:15
2935
1
为什么matlab中相同大小的矩阵运行速度差异巨大
2016-09-18
MATLAB的一个神经网络已经做好,想用C#写界面,如何才能调用?
2016-04-01
如何解决这个矩阵问题?
2016-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人