pytorch

【深度学习】视觉注意力机制 | 视觉注意力机制用于分类:SENet、CBAM、SKNet

Deadly 提交于 2020-11-08 14:18:17
前面的话 上次文章中,我们主要关注了 视觉应用中的Self-attention机制及其应用——Non-local网络模块 ,从最开始的了解什么是视觉注意力机制到对自注意力机制的细节把握,再到Non-local模块的学习。这次的文章我主要来关注 视觉注意力机制在分类网络中的应用 —— SENet、SKNet、CBAM。 我们通常将软注意力机制中的模型结构分为三大注意力域来分析: 空间域、通道域、混合域 。 (1) 空间域 —— 将图片中的的空间域信息做对应的 空间变换 ,从而能将关键的信息提取出来。对空间进行掩码的生成,进行打分,代表是Spatial Attention Module。 (2) 通道域 ——类似于 给每个通道上的信号都增加一个权重,来代表该 通道与关键信息的相关度 的话,这个权重越大,则表示相关度越高。对通道生成掩码mask,进行打分,代表是senet, Channel Attention Module。 (3) 混合域 —— 空间域的注意力是 忽略了通道域中的信息,将每个通道中的图片特征同等处理, 这种做法会将空间域变换方法局限在原始图片特征提取阶段,应用在神经网络层其他层的 可解释性不强 。 而通道域的注意力是 对一个通道内的信息直接全局平均池化,而忽略每一个通道内的局部信息 ,这种做法其实也是比较暴力的行为。所以结合两种思路,就可以设计出混合域的注意力机制模型。

学习小结(关于深度学习、视觉和学习体会)

孤人 提交于 2020-11-08 09:53:51
今天是2020年11月6日,来到上海正好一个月了,想写一篇学习小结,然后开始尝试一下新的学习方式。 目录 学习资料分享 有关python学习 有关OpenCV+python计算机视觉图像处理学习 有关神经网络学习 有关深度学习基础学习 偏理论 偏实践 关于框架学习 Keras tensorflow Pytorch 方法思考 基础学习 解决问题 新思想新灵感 展望 小结 2020年3月开始接触计算机视觉,接触keras框架,当时很多都不懂,一点一点啃,最后顺利完成了我的第一个视觉项目也就是我的毕设《基于卷积神经网络的人脸表情识别系统的设计与实现》。现简单回忆一下当时的学习历程,顺便总结一点点小小的经验,希望对入门的同学有所帮助,一起加油(一些学习视频的选择可能不是很经典,但却是我自己的有意无意选择了的,故仅做参考)。 学习资料分享 有关python学习 第一次接触python是在2018年10月,当时国庆假期一个人在本科实验室刷视频,做笔记,疯狂输入。学习的是《[小甲鱼]零基础入门学习Python》,当时很遗憾的是没有充分使用CSDN博客,把笔记全都记在了Word文档,记录了很多,有点杂乱。刚开始记笔记也有点笨,很多都记,同时也跟着敲代码,不断试验、出错和解决。有时候遇到好玩的还会自己写个代码逗自己开心(如下图的朋友圈截屏)。 B站链接:https://b23.tv/kLRXOX

文章综述——SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS

隐身守侯 提交于 2020-11-08 04:23:13
一、代码 1.代码下载: https://github.com/tkipf/pygcn 代码运行方式: 1)cmd安装:python setup.py install(作用是作者Thomas Kipf已经将写好图卷积网络gcn做成了安装包,安装在python目录下的lib) 2)cmd运行:python train.py 注 PyTorch 0.4 or 0.5 Python 2.7 or 3.6 代码运行结果: 2.代码详解 1)train.py 固定参数设置:epoch,学习率,dropout,隐藏层数,权重衰减(weight decay),随机数 Random seed L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化 model——GCN:特征数,隐藏层数,分类数=标签数+1,dropout数 optimizer(优化)——Adam一般来说是收敛最快的优化器,所以被用的更为频繁 model.train()与model.eval()的用法 接触pytorch时套用别人的框架,会在训练开始之前写上model.trian(),在测试时写上model.eval()。 在经过一番查阅之后,总结如下: 如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train()

10分钟标注数据胜过一年前的960h,FAIR新研究实现语音识别大进展(模型已开源)

此生再无相见时 提交于 2020-11-07 12:38:59
近日,来自 FAIR 的研究者提出结合自训练和无监督预训练执行语音识别任务,证明这两种方法存在互补性,并取得了不错的结果。 选自arXiv,作者:Qiantong Xu等,机器之心编译,编辑:魔王。 自训练和无监督预训练成为使用无标注数据改进语音识别系统的有效方法。但是,我们尚不清楚它们能否学习类似的模式,或者它们能够实现有效结合。 最近,Facebook 人工智能研究院(FAIR)一项研究展示了,伪标注和使用 wav2vec 2.0 进行预训练在多种标注数据设置中具备互补性。 只需来自 Libri-light 数据集的 10 分钟标注数据和来自 LibriVox 数据集的 5.3 万小时无标注数据,该方法就能在 Librispeech clean 和 other 测试集上取得 3.0%/5.2% 的 WER(词错率),甚至打败了仅仅一年前基于 960 个小时标注数据训练的最优系统。在 Librispeech 所有标注数据上训练后,该方法可以达到 1.5%/3.1% 的词错率。 论文链接: https:// arxiv.org/pdf/2010.1143 0.pdf 论文简介 近期,基于标注语音数据的语音识别模型取得了显著进展。但这些模型存在一个缺陷:它们需要大量标注数据,而这些数据仅针对英文和少数几种语言。因此,纯监督式的训练对于全球 7000 种语言中的绝大多数是不可行的

pytorch搭建PyQt5界面实战:ResNet-18实现CLFAR-10图像分类,并利用PyQt5进行人机界面显示

被刻印的时光 ゝ 提交于 2020-11-07 12:36:43
pytorch实战:ResNet-18实现CLFAR-10图像分类,并利用PyQt5进行人机界面显示 实验环境: 1.pytorch-1.6.0 2.python-3.7.9 3.window-10 4.pycharm 5.pyqt5(相应的QT Designer及工具包) CLFAR-10的数据集 作为一个初学者,在官网下载CLFAR-10的数据集下载速度不仅慢,而且不是常用的图片格式,这里是转换后的数据集,有需要的可以直接百度云盘提取。 链接:https://pan.baidu.com/s/1l7wvWLCscPcGoKzRjggjRA 提取码:ht88 ResNet-18网络: ResNet全名Residual Network残差网络。残差网络是由何凯明所提出的,他的《Deep Residual Learning for Image Recognition》获得了当年CVPR最佳论文。他提出的深度残差网络在2015年可以说是洗刷了图像方面的各大比赛,以绝对优势取得了多个比赛的冠军。而且它在保证网络精度的前提下,将网络的深度达到了152层,后来又进一步加到1000的深度。我们这里用到的是一个18 层的残差网络。 网络结构如下: 残差学习:一个构建单元 在pytorch上搭建ResNet-18模型 一、新建resnet.py文件 代码如下: import torch . nn

pytorch加载模型torch.load报cuda out of memory解决方案

别来无恙 提交于 2020-11-06 23:54:45
当服务器中有多张显卡时可能会出现这个问题。 模型参数加载: model_recover = torch . load ( args . model_recover_path ) 报错如下: RuntimeError : CUDA error : out of memory 原因: 当使用torch.load加载模型参数时,会默认加载在第一块GPU0上,当GPU0没有在使用时,问题不大,但是显存被占满时这时候就加载不了了。 解决方法: model_recover = torch . load ( args . model_recover_path , map_location = { 'cuda:0' : 'cuda:2' } ) 指定GPU映射,将GPU0映射到GPU2(任意一张空闲显卡),这样原本默认加载在GPU0上的参数将会加载到GPU2中,问题解决。 参考: torch代码运行时显存溢出问题之问题四 来源: oschina 链接: https://my.oschina.net/u/4255339/blog/4706560

重磅盘点:过去8年中深度学习最重要的想法

好久不见. 提交于 2020-11-06 19:19:25
原文: Deep Learning’s Most Important Ideas[1] 作者 :Denny Britz(ML 研究员,Google Brain 前成员) 译者:REN 深度学习是一个瞬息万变的领域,层出不穷的论文和新思路可能会令人不知所措。即使是经验丰富的研究人员,也很难准确将研究成果传达给公司的公关部门,继而传达给大众。 对于初学者来说,理解和实现这些技术有利于打下坚实的理论基础,是入门的最佳方法。 在深度学习领域,很多技术都可以跨域多个应用领域,包括计算机视觉,自然语言,语音识别和强化学习等等。在计算机视觉领域使用过深度学习的人,可能很快就能将类似的技术应用到自然语言研究中,即使特定的网络结构有所不同,但其概念,实现方法和代码基本一致。 必须强调的是,本文侧重于计算机视觉,自然语言,语音识别和强化学习领域,但不会详细解释每种深度学习技术,用寥寥数百字解释清楚一篇几十页的论文是不现实的。另外还有一些不容易重现的重要研究,比如 DeepMind 的 AlphaGo 或 OpenAI 的 OpenAI Five(Dota 2 模型),涉及到巨大的工程和运算挑战,因此也不是讨论的重点。 这篇文章的目的,是回顾在深度学习领域影响深远的成果,概述每种技术及其历史背景,尽量引导深度学习新人接触多个领域的基础技术。它们是这个领域最值得信赖的基石,每一个技术都经过了无数次的引用