自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 解决 Unknown compute capability.Specify the target compute capabilities in the TCNN_CUDA_ARCHITECTURES

安装torch-cuda-nn时出现的问题:Unknown compute capability. Specify the target compute capabilities in the TCNN_CUDA_ARCHITECTURES environment variable or install PyTorch with the CUDA backend to detect it automatically.

2023-07-04 22:48:02 4037 6

原创 CMU DB项目bustub进行cmake ..时下载googletest时GIT_TAG出错

CMU 15445报错:在$ cmake . . 这一步出错:Cloning into ‘googletest-src’…fatal: invalid reference: masterCMake Error at googletest-download/googletest-prefix/tmp/googletest-gitclone.cmake:40 (message):Failed to checkout tag: ‘master’make[2]: [CMakeFiles/googlet

2022-05-27 21:28:07 2522 5

翻译 pytorch shuffle tensor的函数(打乱张量)

np.random.shuffle能打乱numpy,但是对tensor没用查阅资料后发现,可以用torch.randperm实现if __name__ == '__main__': # init t = torch.tensor([[1,2],[3,4]]) print(t) # shuffle tensor idx = torch.randperm(t.nelement()) t = t.view(-1)[idx].view(t.size())

2022-01-11 21:53:23 3924

转载 nn.Linear和kernel=1的nn.Conv的区别

相同点:都是线性运算,可以看成矩阵相乘,感受野都为1不同点:pytorch中初始化方案不同,nn.Conv有更好的初始化速度不同,Linear的速度要比nn.Conv快一个数量级,因为Linear是用高效的矩阵相乘实现的,而Conv是卷积核移动实现的输入尺寸不同,Conv是[batch, input_channel, H, W,…],linear是[batch, …, input_channel]但这一点其实不重要linear速度快很多,如果tensor的尺寸方便调整的话还是建议用linear。

2021-11-14 23:20:15 2986

原创 pytroch .require_grad不起作用/无效

试了半天,发现代码放在了with torch.no_grad()里,取消掉就好了。

2021-09-30 20:19:42 548

转载 pytorch 对tensor进行高斯模糊

# From https://discuss.pytorch.org/t/is-there-anyway-to-do-gaussian-filtering-for-an-image-2d-3d-in-pytorch/12351/3import torchimport mathimport torch.nn as nndef get_gaussian_kernel(kernel_size=3, sigma=2, channels=3): # Create a x, y coordinate

2021-09-21 18:08:30 7935 1

翻译 stylegan中Equallinear, EqualConv和PixelNorm的来源,作用和原理

实际上stylegan是借鉴了PROGRESSIVE GAN 这篇文章。Equallinear和EqualConv的作用和原理:基于linear和conv,通过缩放网络权重,使得每一层的参数的学习率能够保持一致,从而能增强GAN的稳定性,改善图像质量。原文:We deviate from the current trend of careful weight initialization, and instead use a trivial N (0, 1) initialization and

2021-09-16 11:29:52 2358

翻译 [论文阅读]Uncertainty Principles of Encoding GANs

这篇主要是理论推导比较多,太复杂了,先占个坑,翻译一下introduction。本文的结论:a)“完美”的编码器和生成器不能同时连续,这意味着当前编码 GAN 的框架是不适定的,需要重新思考;a) the ‘perfect’ encoder and generator cannot be continuous at the same time, which implies that current framework of encoding GANs is ill-posed and needs r.

2021-09-15 17:49:52 170

翻译 [论文阅读]Semantic Segmentation with Generative Models

标题Semantic Segmentation with Generative Models:Semi-Supervised Learning and Strong Out-of-Domain Generalization链接:https://openaccess.thecvf.com/content/CVPR2021/html/Li_Semantic_Segmentation_With_Generative_Models_Semi-Supervised_Learning_and_Strong_O.

2021-09-15 17:39:07 690

转载 pytorch 优化器采取不同学习率

def configure_optimizers(self): params = list(model.named_parameters()) def is_backbone(n): return 'bert' in n grouped_parameters = [ {"params": [p for n, p in params if is_backbone(n)], 'lr': args.lr}, {"params": [p for n, p.

2021-09-14 09:05:27 891

翻译 pytorch 只保留tensor的最大值或最小值,其他位置置零

如下,x是输入张量,dim指定维度,max可以替换成minimport torchif __name__ == '__main__': x = torch.randn([1, 3, 4, 4]).cuda() mask = (x == x.max(dim=1, keepdim=True)[0]).to(dtype=torch.int32) result = torch.mul(mask, x) print(x) print(mask) p

2021-09-12 16:29:44 6725 1

原创 [论文阅读]SofGAN: A Portrait Image Generator with Dynamic Styling

SofGAN能产生效果很好,且能进行编辑的多视角图像。SofGAN的核心是其中的SIW-StyleGAN。SIW-StyleGAN以2D分割图和texture code作为输入,改变2D分割图和texture code就能进行多属性编辑。这个2D分割图可以来自手动绘制,也可以由shape code自动生成。总而言之,生成一个图片需要texture code和shape code。shape code(z_g)决定了3D形状,用于生成3D分割图。texture code(z_t)决定图像纹理,被用.

2021-09-07 21:43:46 654 1

翻译 [论文阅读]Designing an Encoder for StyleGAN Image Manipulation

主要工作:提出什么样的encoder(image->latent code)具有更好的编辑性和更小的失真答案:图片逆映射接近W空间的encoder是好的验证encoder的好坏用到了styleflow等其他论文中的方法1 Abstact & Intro要用利用预训练的stylegan进行图像编辑,需要将图像映射到stylegan的latent space。stylegan的latent space中存在两种权衡:(1)扭曲-编辑权衡 distortion-editability.

2021-09-07 19:39:32 3782 2

原创 [论文阅读]StyleFlow

用标准化流建立z和w之间的可逆映射,同时按照FiLM特征插入的方法将attribute classifier得到的属性at插入标准化流。从而能通过改变at来改变图像。参考:https://zhuanlan.zhihu.com/p/171761416

2021-09-07 10:48:58 412

翻译 pytorch/python 用pyinstrument统计代码段运行时间

用法:from pyinstrument import Profilerprofiler = Profiler()profiler.start()# code you want to profileprofiler.stop()profiler.print()官网:pyinstrument 例子:from pyinstrument import Profilerimport torchif __name__ == '__main__': profiler = Prof

2021-08-18 11:28:27 499

转载 riscv标准指令集和扩展指令集对应的opcode、funct3、funct7等的值(I/M/A/F/D等等)

方法1 查阅别人做好的表格RISCV-Card可以去这个库里下载pdf。方法2 查阅riscv的github库网上找了好久都没找到,后来才发现github的riscv-tools库中有所有指令的opcode……Github链接:riscv-tools、riscv-opcode我这里是从riscv-tools库中复制过来的。怎么根据这个文件知道一个指令对应的opcode呢?举个例子,假如我想知道32位add的opcode,从文件中找到add:add rd rs1 rs2

2021-06-19 18:27:44 18382 2

原创 riscv-sodor踩坑记录

讲的不是很清楚,有不懂的可以直接在评论区问我,我有空就回答。1.使用idea进行编程时和直接在命令行工具进行编译时build.sbt设置是不一样的在命令行工具进行编译(在命令行直接make)时需要通过scalaSource in Compile这种语句指明哪些是Source file,不然make的时候它会找不到的。在idea intellij运行时,采用这种方法总之,我的build.sbt是这样的:val chiselVersion = System.getProperty("chisel

2021-06-19 12:35:55 460 3

翻译 chipyard环境下仿真risc-v教程(1):运行chipyard中的默认案例

官网教程:链接步骤(1)按照官网教程安装好chipyardchipyard中已经包含了所需的toolchain和verilator,不用自己再去下载一遍,chipyard网上教程还是蛮多的,官网也有教程,这里暂时不放了。(2)进入verilator目录cd chipyard/sims/verilator(3)编译chipyard中的default examplemake一段时间后,会生成一个叫simulator-chipyard-RocketConfig的文件,接下来可以利用这个文件来运

2021-06-16 23:21:31 5462

原创 [Sodor]运行tracer.py文件出现 AttributeError: ‘module‘ object has no attribute ‘lru_cache‘

发生原因:跑riscv sodor模型时出现的问题发现是因为ubuntu自带的python版本太低,需要安装python3.7可参考下面的链接在ubuntu上安装高版本python:https://blog.youkuaiyun.com/weixin_43790276/article/details/89439643

2021-06-16 16:33:34 290

原创 Pytorch报错:One of the differentiated Tensors does not require grad

原因:用到了autograd.grad求导函数,而其中一个求导变量require_grad属性是False解决方法单步调试发现,原来是建立变量的时候没有设置requires_grad=True,因此改成True就好了。torch.randn(batch, latent_dim, device=device, requires_grad=True)...

2021-05-20 19:53:07 10448 1

转载 linux非root用户tmux的安装方法

方法:$ conda install -c conda-forge tmux参考链接:how to install tmux locally without root access?

2021-04-20 21:58:11 530 1

转载 [解决方案记录]No module named fused(stylegan2的bug,已更新)

基本情况运行psp时出现的问题。系统:windows平台:pycharm + jupyter notebookGPU:GTX1660Ti解决方案(1)anaconda环境的CUDA要保证在10.1及以上,否则不能编译成功,这是github上一个老哥说的,具体链接不记得了。conda环境的CUDA版本是根据这个环境下的cudatoollkit控制的,因此在该环境下用torch官网的方法更新cudatoolkit版本即可。(2)cl.exe, Visual Studio要加入环境变量。建议用ev

2021-04-18 11:08:25 6364 17

转载 Matlab 两条曲线间填充颜色,改变透明度

代码:x=linspace(0,10);y1=sin(x)-1;y2=sin(x);fill([x,fliplr(x)],[y1,fliplr(y2)],'r')效果:

2021-03-06 18:40:10 16335 4

翻译 Pytorch Kaiming 初始化(Initialization)中fan_in和fan_out的区别/应用场景

fan_in如果权重是通过线性层(卷积或全连接)隐性确定的,则需设置mode=fan_in。例子:import torchlinear_layer = torch.nn.Linear(node_in, node_out)init.kaiming_normal_(linear.weight, mode=’fan_in’)output_data = relu(linear_layer(input_data))fan_out如果通过创建随机矩阵显式创建权重,则应进行设置mode=‘fan_ou

2021-02-28 23:35:15 5015 3

转载 Pytorch直接对张量进行旋转(rotate tensor)

方法1:利用affine_grid函数参考链接import torchimport torch.nn.functional as Fimport numpy as npimport matplotlib.pyplot as pltdef get_rot_mat(theta): theta = torch.tensor(theta) return torch.tensor([[torch.cos(theta), -torch.sin(theta), 0],

2021-01-17 10:22:27 12046

原创 pytorch维度不同的张量(tensor)相加规则

网上没找到,也不知道哪里有“张量加法”的源代码,就自己试了一下,大概有下面的规律。如果有错误,希望大家指正!规律1:如果相加的两个张量维度不一致,那么首先把维度低的那个张量从右边和维度高的张量对齐例如下面的代码,b的维度低一些,所以和a相加的时候b的维度就会先扩充为[1,1,5,6]。a = torch.ones([8, 4, 5, 6])print('a =',a.size())b = torch.ones([5, 6])print('b =',b.size())c = a+bprint

2020-12-07 20:37:53 27149 8

原创 [论文理解]E(2)群等变可操控神经网络General E(2) - Equivariant Steerable CNNs

1.几个问题1.1 基本信息2019 NIPS1.2 做了什么1.3 实现方法 & 创新性提出一个比较通用的E(2)群等变神经网络,囊括了前人提出的模型,平面上的旋转、平移等等变群。将核空间约束分解为不可约子空间,并给出了群E(2)及其子群对该约束的求解方法。给出了群表示如何改变特征图的概述,论述了群表示与非线性的兼容性。2.数学部分 & 模型构建2.1 欧式平面R^2的等距(Isometries)群欧几里德群E(2)是平面R2的等距群,由平移、旋转和反射组成。E(2).

2020-12-04 10:24:39 6276 4

翻译 [论文翻译&理解]规模对抗训练的有趣特性Intriging Properties of Adversarial Traning at scale

1.几个问题1.1 基本信息ICLR 20201.2 做了什么 & 创新性提出了两点观察:在对抗性网络中,干净的图像和敌对的图像来自两个不同的领域。谓的“深层”网络对于对抗性学习的任务来说仍然很浅。并给出了可能的解决方案。1.3 怎么做通过改变干净图像和对抗图像的比例、对数逻辑配对等一系列策略,和一系列实验中总结出了上述两个观察。在可能的解决方案中,采取了“为干净图像和对抗图像使用不同BN”以及“批处理无关的规范化层替换BN”两种方法。2.数学部分 & 模型构建.

2020-12-03 19:07:03 460

原创 [论文理解]对抗性例子可用于改善图像识别Adversarial Examples Improve Image Recognition

1.几个问题1.1 基本信息CVPR 20201.2 做了什么提出了AdvProp1.3 实现方法 & 创新性对抗性例子用auxiliary BN处理,干净例子用main BN进行处理。解决二者混合导致的数据分布失真。1.4 代码链接Github2.数学部分 & 模型构建2.1 现有问题 & 解决方法现有问题以往的研究表明,对抗性样本训练可以提高模型的泛化能力,但仅限于某些情况,这种改进要么在完全监督的情况下对小数据集(如MNIST)进行,要么在较大的数据.

2020-12-03 15:35:45 676

原创 [论文理解]光滑对抗性训练Smooth Adversarial Training

1.几个问题1.1 基本信息arVix 20201.2 做了什么提出了平滑对抗性训练(standard adversarial traning, SAT)1.3 实现方法我们用SAT的平滑近似(一阶导数平滑)代替ReLU,由于平滑激活函数的允许鉴别器在对抗性训练中找到更难的对抗性示例,因此能计算出更好的梯度更新。1.4 创新性在没有额外计算开支和精度下降的情况下增强了对抗网络的鲁棒性。方法简单,效果还可以。只是论文中没有仔细阐释why it works.2.数学部分 & 模型构建.

2020-12-03 14:35:31 595

原创 [论文理解]缩放不变卷积Scale Steerable Filters for Locally Scale-Invariant Convolutional Neural Networks

1.几个问题1.1 基本信息arXiv 20191.2 做了什么实现缩放等变卷积1.3 实现方法和Harmonic-Net类似,采取了复数滤波器。不过采取的是log形式,且有多个原子滤波器,神经网络学习的是原子滤波器的组合系数。1.4 代码链接Github1.5 结果2.数学部分 & 模型构建2.1 原子复数卷积核原子滤波器是Skj{S^{kj}}Skjd(ϕ,ϕj)d\left( {\phi ,{\phi _j}} \right)d(ϕ,ϕj​)是两个角度之间的.

2020-12-01 13:27:45 574

原创 [论文理解]为旋转等变CNN学习可操纵卷积核Learning Steerable Filters for Rotation Equivariant CNNs

1.几个问题1.1 基本信息CVPR 20181.2 做了什么实现CNN对平移和任意离散旋转的等变性。1.3 实现方法和谐波网络Harmonic-Net这篇一样,也是使用复数滤波器。不过这篇使用的是多个复数滤波器,通过一个权重把它们加起来,得到最后的滤波器,其中单个原子滤波器是已知的、权重是需要学习的。理论上能实现N-循环离散旋转等变,N可以任意增大。比如当N=4的时候,一次旋转是90°。Harmonic-Net中只使用了单个复数滤波器,且滤波器的实数部分是需要学习的,理论上可以实现连续旋转等

2020-12-01 10:22:13 2989 4

原创 [论文理解]谐波网络:深度平移和旋转等变Harmonic Networks: Deep Translation and Rotation Equivariance

1.几个问题1.1 基本信息CVPR 20171.2 做了什么CNN的旋转和平移等变1.3 实现方法引入一个复数滤波器1.4 创新性 & 局限性后面有一些文章认为这篇文章中的模型拟合能力有限,因为只有一个滤波器。2.数学部分 & 模型构建定义滤波器Wm{W_m}Wm​Wm(r,ϕ;R,β)=R(r)ei(mϕ+β){W_m}\left( {r,\phi ;R,\beta } \right) = R\left( r \right){e^{i\left( {m\phi .

2020-11-30 22:11:13 1650

原创 [论文理解]极坐标转换网络Polar Transfomer Network(PTN)

之前做过PTN的论文翻译,但有些没把握住精髓,这次对PTN进行了提炼,会清楚许多。1.几个问题1.1 基本信息ICLR 20181.2 做了什么提出PTN(Polar-Transformation Network)实现对平移的不变、对旋转和伸缩的等变1.3 实现方法转换到极坐标系,此时平面卷积对应于旋转和尺度上的群卷积。1.4 创新性 & 局限性不需要像STN一样学习参数回归(其实是回归的参数要少一些,还是用了回归)。只能识别全局形变。PTN能够实现平移不变性(借助STN.

2020-11-24 21:53:38 1940

原创 [论文理解](未完成)形变卷积网络Warped Convolutions: Efficient Invariance to Spatial Transformations

1.几个问题1.1 基本信息PMLR 20171.2 做了什么1.3 实现方法通过作出适当的假设,我们设计了特殊的卷积算子,它们等价于一类大的双参数变换,同时保持模型参数与标准卷积接近。1.4 创新性 & 局限性之前的很多变换等变网络相比于传统CNN模型参数较多,训练复杂。而本文的模型参数量和传统CNN接近。可以处理连续的变换。2.数学部分 & 模型构建2.1 离散和连续卷积图像I∈RN×NI \in {R^{N \times N}}I∈RN×N卷积核F∈RM

2020-11-23 15:45:26 384

翻译 [数学笔记]拓扑、哈尔测度、群函数(1)(待补充)

以下内容全部摘自维基百科或教科书。为了后续查阅方便,故此记录。1. 集合1.1 σ代数某个集合 X 上的σ-代数又叫 σ-域,是 X 的幂集的子集合(X 的幂集即包含所有 X 的子集的集合系)。这个子集满足对于补集运算和可数个并集运算的封闭性(因此对于可数个交集运算也是封闭的)。σ-代数在测度论里可以用来定义所谓的“可测集合”,是测度论的基础概念之一。简单来说,σ-代数就是定义在X上的,一种特殊的集合的集合。2. 拓扑学2.1 拓扑定义:XXX是一个集合,XXX上的拓扑(topograp

2020-11-22 16:33:02 3452

原创 [论文理解]变换不变性网络transformation invariant pooling (TI-Pooling)

01

2020-11-21 21:54:17 1256

原创 [论文理解]深层等变卷积神经网络Rotation Equivariance of Deep Convolutional Neural Network

1.几个问题1.1 做了什么提出一种能保证全局旋转等变性的卷积神经网络。能对四个旋转方向提取特征。1.2 效果略1.3 局限性只能实现四个方向的旋转,因为矩阵是方形的,最多作用在p4群上。2.数学部分2.1 旋转操作图像函数为f:Z2→Rf:{Z^2} \to Rf:Z2→R。定义旋转变换RRR(这里的R不是实数域的意思),R(f(x)),x∈Z2R\left( {f\left( x \right)} \right),x \in {Z^2}R(f(x)),x∈Z2相当于将图像顺时针喜欢.

2020-11-21 12:38:34 2378

原创 [论文理解]旋转等变向量场网络Rotation equivariant vector field networks

1. 几个问题做了什么提出了旋转等变向量场网络Rotation Equivariant Vector Field Networks (RotEqNet),是一种对旋转等变性(equivariance)、旋转不变性(invariance)和旋转共变性(covariance)进行了编码的CNN网络。论文中专注于解决“旋转”这一操作,因此下文所述的对象都与旋转有关。实现原理每个卷积核被应用在多个方向上,并返回一个矢量场,表示每个空间位置的最高评分方向的大小和角度。实验效果相比于一些大型模型,RotE

2020-11-20 23:20:59 3151

原创 [论文理解]群卷积神经网络Group Equivariant Convolutional Networks(G-CNN)

仿照了这个博主的方法,读每一篇文献的时候都要问自己它做了什么?用什么方法做的?效果如何?有什么缺点?这些几个问题,以加深自己的理解。1. 几个问题做了什么提出了群等变卷积神经网络(Group equivariant Convolutional Neural Networks,G-CNNs),通过采取对称性减低了采样复杂度。G-CNN将CNN对平移群的等变性(下文会解释)推广到更大的对称群,包括旋转和反射。特点/优点比常规卷积层有更高的权重共享程度。卷积层易于使用,对于由平移、反射和旋

2020-11-18 11:03:03 9261 20

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除