文章原创自:微信公众号「机器学习炼丹术」 作者:炼丹兄 联系方式:微信cyx645016617 代码来自github [前言]:看代码的时候,也许会不理解VIT中各种组件的含义,但是这个文章的目的是了解其实现.在之后看论文的时候,可以做到心中有数,而不是一片茫然. VIT类 初始化 和之前的学习一样,从大模型类开始看起,然后一点一点看小模型类: class ViT(nn.Module): def __init__(self, *, image_size, patch_size, num_clas…
​  前言  ViT通过简单地将图像分割成固定长度的tokens,并使用transformer来学习这些tokens之间的关系.tokens化可能会破坏对象结构,将网格分配给背景等不感兴趣的区域,并引入干扰信号. 为了缓解上述问题,本文提出了一种迭代渐进采样策略来定位区分区域.在每次迭代中,当前采样步骤的嵌入被馈送到transformer编码层,并预测一组采样偏移量以更新下一步的采样位置.渐进抽样是可微的.当与视觉transformer相结合时,获得的PS-ViT网络可以自适应地学习到哪里去看.…
​  前言  本文介绍一种新的tokens-to-token Vision Transformer(T2T-ViT),T2T-ViT将原始ViT的参数数量和MAC减少了一半,同时在ImageNet上从头开始训练时实现了3.0%以上的改进.通过直接在ImageNet上进行训练,它的性能也优于ResNet,达到了与MobileNet相当的性能. 本文来自公众号CV技术指南的论文分享系列 关注公众号CV技术指南 ,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读. ​ 论文:Tokens-to-…
首先贴上代码原作者的github:https://github.com/chenyuntc/simple-faster-rcnn-pytorch(非代码作者,博文只解释代码) 今天看完了simple-faster-rcnn-pytorch-master代码的最后一个train.py文件,是时候认真的总结一下了,我打算一共总结四篇博客用来详细的分析Faster-RCNN的代码的pytorch实现, 四篇博客的内容及目录结构如下: 1 Faster-RCNN的数据读取及预处理部分:(对应于代码的/s…
​前言  在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至仍然存在争议,本文分析了相对位置编码中的几个关键因素,提出了一种新的针对2D图像的相对位置编码方法,称为图像RPE(IRPE). 本文来自公众号CV技术指南的论文分享系列 关注公众号CV技术指南 ,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读. ​ 代码:https://github.com/microsoft/Cream/tree/main/iRPE Background Transformer的核心是self-…
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/8524937.html 论文: SphereFace: Deep Hypersphere Embedding for Face Recognition https://arxiv.org/abs/1704.08063 http://wyliu.com/papers/LiuCVPR17v3.pdf 官方代码: https://github.com/wy1iu/sphereface pytorch代码:…
A PyTorch Tools, best practices & Styleguide 中文版:PyTorch代码规范最佳实践和样式指南 This is not an official style guide for PyTorch. This document summarizes best practices from more than a year of experience with deep learning using the PyTorch framework. Note th…
本文介绍一个用于 PyTorch 代码的实用工具 TorchSnooper.作者是TorchSnooper的作者,也是PyTorch开发者之一. GitHub 项目地址: https://github.com/zasdfgbnm/TorchSnooper 大家可能遇到这样子的困扰:比如说运行自己编写的 PyTorch 代码的时候,PyTorch 提示你说数据类型不匹配,需要一个 double 的 tensor 但是你给的却是 float:再或者就是需要一个 CUDA tensor, 你给的却是个…
之前讲解了图注意力网络的官方tensorflow版的实现,由于自己更了解pytorch,所以打算将其改写为pytorch版本的. 对于图注意力网络还不了解的可以先去看看tensorflow版本的代码,之前讲解的地址: 非稀疏矩阵版:https://www.cnblogs.com/xiximayou/p/13622283.html 稀疏矩阵版:https://www.cnblogs.com/xiximayou/p/13623989.html 以下改写后的代码我已经上传到gihub上,地址为: ht…
pointnet.pytorch代码解析 代码运行 Training cd utils python train_classification.py --dataset <dataset path> --nepoch=<number epochs> --dataset_type <modelnet40 | shapenet> python train_segmentation.py --dataset <dataset path> --nepoch=<…
写在前面 ​ 深度残差网络(Deep residual network, ResNet)自提出起,一次次刷新CNN模型在ImageNet中的成绩,解决了CNN模型难训练的问题.何凯明大神的工作令人佩服,模型简单有效,思想超凡脱俗. ​ 直观上,提到深度学习,我们第一反应是模型要足够"深",才可以提升模型的准确率.但事实往往不尽如人意,先看一个ResNet论文中提到的实验,当用一个平原网络(plain network)构建很深层次的网络时,56层的网络的表现相比于20层的网络反而更差了.…
1. UserWarning: Implicit dimension choice for log_softmax has been deprecated. Change the call to include dim=X as an argument. return F.log_softmax(x) 解决方法:把 F.log_softmax(x)改为F.log_softmax(x,dim=0) , 而且我发现改为F.log_softmax(x,dim=1),这个到底哪个更合理需要进一步确认.…
1.no CUDA-capable device is detected 首先考虑的是cuda的驱动问题,查看gpu显示是否正常,然后更新最新的cuda驱动: 第二个考虑的是cuda设备的默认参数是否修改,平常一块显卡的设置是0,多块可能会修改此参数: CUDA_VISIBLE_DEVICES="3"  ,把它修改为0即可解决. 2.out of gpu memory 调小batch_size. 换一个简单的模型,例如从resnet101换成resnet50 根据任务不同,情况不同可以…
本文所用代码gayhub的地址:https://github.com/chenyuntc/simple-faster-rcnn-pytorch  (非本人所写,博文只是解释代码) 好长时间没有发博客了,感觉也没啥人读我的博客,不过我不能放弃啊,总会有人发现它的价值的,哈哈!最近一直在生啃目标检测的几篇论文,距离成为我想象中的大神还有很远的一段距离啊,刚啃完Faster-RCNN的论文的时候,觉得可能是语言的关系,自己看得一直是似懂非懂的,感觉没有掌握到里面的精髓,于是我决定撸代码来看,据说Ros…
本文是针对谷歌Transformer模型的解读,根据我自己的理解顺序记录的. 另外,针对Kyubyong实现的tensorflow代码进行解读,代码地址https://github.com/Kyubyong/transformer 这里不会详细描述Transformer的实现机理,如果有不了解Transformer的可以先阅读文章<Attention is all you need>,以及我列出的一些参考博客,都是不错的解读. Layer Normalization 首先是Layer Norm…
部分内容转载自 http://blog.csdn.net/GYGuo95/article/details/78821617,在此表示由衷感谢. 此方法需要安装python-graphviz:  conda install -n pytorch python-graphviz 或者 sudo apt-get install graphviz  别忘了先把下面的代码下载到自己的路径(感谢大神). visualize.py from graphviz import Digraph import tor…
实现细节; 1.embedding 层 2.positional encoding层:添加位置信息 3,MultiHeadAttention层:encoder的self attention 4,sublayerConnection层:add&norm,使用layerNorm, 5,FeedForward层:两层全连接 6,Masked MultiHeadAttention:decoder中的self attention层,添加mask,不考虑计算当前位置的后面信息 7,MultiHeadAtte…
pytorch版本的faster和fpn https://github.com/jwyang/faster-rcnn.pytorch https://github.com/jwyang/fpn.pytorch…
十月一的假期转眼就结束了,这个假期带女朋友到处玩了玩,虽然经济仿佛要陷入危机,不过没关系,要是吃不上饭就看书,吃精神粮食也不错,哈哈!开个玩笑,是要收收心好好干活了,继续写Faster-RCNN的代码解释的博客,本篇博客研究模型准备部分,也就是对应于代码目录/simple-faster-rcnn-pytorch-master/model/utils/文件夹,顾名思义,utils一般就是一些配置工具之类的文件,我们打开仔细看一下目录: 一.bbox_tools.py 大概有这么些文件夹,NMS文件…
1.LeNet LeNet是指LeNet-5,它是第一个成功应用于数字识别的卷积神经网络.在MNIST数据集上,可以达到99.2%的准确率.LeNet-5模型总共有7层,包括两个卷积层,两个池化层,两个全连接层和一个输出层. import torch import torch.nn as nn from torch.autograd import Variable #方形卷积核和等长的步长 m1=nn.Conv2d(16,33,3,stride=2) #非长方形卷积核,非等长的步长和边界填充 m…
1.总体框架 上面的过程用详细描述即是 Test阶段: Train阶段: 由于我们无法得知编辑后的image,所以显而易见人脸属性编辑是一个无监督问题,而对于我们的xa需要获得关于b的属性,故利用attribute classififier来约束生成的xb使其获得了b属性:同时adversarial learning可以用来保证生成图片的真实性:此外,我们在进行人脸属性编辑的时候还需要保证只更改了我们需要编辑的属性,所以引入了reconstruction learning. Reconstruc…
一.论文采用的新方法 1.AttGan中skip connect的局限性 由于encoder中对特征的下采样实际上可能损失部分特征,我们在decoder中进行上采样和转置卷积也无法恢复所有特征,因此AttGan考虑采用了skip connect,这种跳跃连接最初是resnet中为了解决网络层数过深带来的梯度爆炸和梯度消失无法训练的问题,笔者认为在人脸属性编辑这里并非是这一用途,而是为了保持最初人脸的特征.但是这一做法仍然具有其局限性,根据实验,重建图像的质量明显上升,但是控制图像属性的能力却有所…
VIT 总览 Step1 Step2…
github: https://github.com/tensorboy/pytorch_Realtime_Multi-Person_Pose_Estimation # -*- coding: utf-8 -* import os import re import sys import cv2 import math import time import scipy import argparse import matplotlib import numpy as np import pylab…
https://github.com/zasdfgbnm/TorchSnooper pip install torchsnooper 在函数前加装饰器@torchsnooper.snoop()…
​  前言  本文解读的论文是ICCV2021中的最佳论文,在短短几个月内,google scholar上有388引用次数,github上有6.1k star. 本文来自公众号CV技术指南的论文分享系列 关注公众号CV技术指南 ,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读. ​ 论文: Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 代码:https://github. com/micro…
​  前言  ​​​​​​​本文介绍一个Pytorch模型的静态分析器 PyTea,它不需要运行代码,即可在几秒钟之内扫描分析出模型中的张量形状错误.文末附使用方法. 本文转载自机器之心 编辑:CV技术指南 关注公众号CV技术指南 ,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读. 张量形状不匹配是深度神经网络机器学习过程中会出现的重要错误之一.由于神经网络训练成本较高且耗时,在执行代码之前运行静态分析,要比执行然后发现错误快上很多. 由于静态分析是在不运行代码的前提下进行的,因此可以帮…
​ 前言 本文介绍了Transformer的基本流程,分块的两种实现方式,Position Emebdding的几种实现方式,Encoder的实现方式,最后分类的两种方式,以及最重要的数据格式的介绍. 本文来自公众号CV技术指南的技术总结系列 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读.CV招聘信息. 在讲如何搭建之前,先回顾一下Transformer在计算机视觉中的结构是怎样的.这里以最典型的ViT为例. ​ 如图所示,对于一张图像,先将其分割成NxN个…
Transformer注解及PyTorch实现 原文:http://nlp.seas.harvard.edu/2018/04/03/attention.html 作者:Alexander Rush 转载自机器之心:https://www.jiqizhixin.com/articles/2018-11-06-10?from=synced&keyword=transformer 在学习的过程中,将代码及排版整理了一下,方便阅读. "Attention is All You Need"…
为了调用各种经典机器学习模型,今后你不必重复造轮子了. 刚刚,Facebook宣布推出PyTorch Hub,一个包含计算机视觉.自然语言处理领域的诸多经典模型的聚合中心,让你调用起来更方便. 有多方便? 图灵奖得主Yann LeCun强烈推荐,无论是ResNet.BERT.GPT.VGG.PGAN还是MobileNet等经典模型,只需输入一行代码,就能实现一键调用. 厉不厉害! Facebook官方博客表示,PyTorch Hub是一个简易API和工作流程,为复现研究提供了基本构建模块,包含预…