自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 无线通信MIMO的线性等效——NAIC2021无线通信赛道优胜奖方案分享

最近参加NAIC2021的无线通信比赛,发现无线通信的MIMO过程虽然复杂,但其实是可以进行线性等效的,可以完全等效为一个较大规模矩阵的线性变换,也可以近似等效为一个较小规模对角矩阵的线性变换。这次比赛多数选手是利用了神经网络万能逼近的性质来完成求解的,但我是利用这种等效变换来做的,使用这种方法可以得到解析形式的解,在精度和速度上会有更高的性能,也非常方便对MIMO过程进行更多深入的分析。由于我不是学通信专业的,只是做这个比赛的一点总结,是否真的对通信有用我也不知道,只是花了时间去钻研它不想浪费,怕时间长忘

2023-12-20 08:55:19 1015

原创 einsum的本质理解

einsum操作的本质理解

2022-07-07 16:26:47 473 1

原创 量子计算机

量子计算机理解

2022-05-30 22:52:10 363

原创 学习元宇宙

元宇宙的初步学习

2022-05-24 15:44:54 470

原创 web3.0能够实现吗?

web3.0的一些个人理解

2022-05-22 10:51:14 2655

原创 度量学习和pytorch-metric-learning的使用

度量学习作为一个大领域,网上有不少介绍的文章,pytorch-metric-learning库的官方文档也有比较详细的说明和demo,所以本文不打算再对它们做细致严谨的入门级介绍,而是记录我在学习过程中的一些思考和观点,以及代码的便捷使用,欢迎讨论。

2021-12-04 11:39:51 7143 7

原创 【论文学习】RepVGG: Making VGG-style ConvNets Great Again及网络重参数化的用途及效果分析

本文学习了RepVGG以及同作者在网络重参数化领域的几篇文章,总结其主要原理,试验重参数化方法的效果并分析其价值意义。RepVGG是CVPR2021收录的一篇论文,作者是清华大学的丁霄汉博士。

2021-09-04 17:35:34 1043 1

原创 第二届无线通信AI大赛参赛总结

  参加了第二届无线通信AI大赛 基于 AI 的信道状态信息反馈 题 ,最后仅得第13名,不论成绩好坏,毕竟花了几个星期时间,还是应该做个梳理总结。一、赛题简介1.数据和任务  赛题数据是来自多小区多用户的 32T4R 的 MIMO 信道特征信息,总共有60万个样本,每个样本包含768个数据,包括12条子带,每个子带长度32,每个位置又都包含实部和虚部,也就是说768 = 12 x 32 x 2 。任务是开发编码-解码算法,编码器用于UE(手机端),把每个样本的数据分别压缩到48bits和128bit

2021-08-29 22:55:16 1301 3

原创 第二届“马栏山”杯国际音视频算法大赛音乐节拍检测题参赛总结及分享(Rank7)

参加第二届“马栏山”杯的音乐节拍检测赛,最后拿了第7名。本文把参赛主要算法,效果和一些思考分享出来。

2021-07-29 21:25:46 1181 1

原创 声学、音乐计算常用工具总结(soundfile、librosa、pydub、madmom、spleeter)

文章目录前言一、soundfile二、librosa1.引入库2.读入数据总结前言学习必须要经常总结,通过总结梳理才能记得牢,另外也方便以后用到的时候回头查阅,这也是我写CSDN的主要目的。如果同时能够对网友查阅资料起到一点点帮助,那就更好。我刚刚参加了音乐节拍检测的比赛,由于是初次接触计算音乐学这个领域,我学习了一些常用的工具,怕以后不用忘了,赶紧趁热总结一下。一、soundfilesoundfile常用于音频文件读写:import soundfile as sfdata, sampl.

2021-07-29 15:45:44 6192 6

原创 用pytorch及numpy计算成对余弦相似性矩阵,并用numpy实现kmeans聚类

  sklearn和scipy里面都提供了kmeans聚类的库,但是它们都是根据向量直接进行计算欧氏距离、闵氏距离或余弦相似度,如果使用其他的度量函数或者向量维度非常高需要先计算好度量距离然后再聚类时,似乎这些库函数都不能直接实现,于是我用numpy自己写了一个,运行也非常快。这里记录下来以后备用:import numpy as npimport matplotlib.pyplot as pltimport timet0 = time.time()Num = 512corr = np.load

2021-07-28 21:59:45 1179

原创 pytorch几种损失函数CrossEntropyLoss、NLLLoss、BCELoss、BCEWithLogitsLoss、focal_loss、heatmap_loss

分类问题常用的几种损失,记录下来备忘,后续不断完善。nn.CrossEntropyLoss()交叉熵损失常用于多分类问题CE = nn.CrossEntropyLoss()loss = CE(input,target)Input: (N, C) , dtype: float, N是样本数量,在批次计算时通常就是batch_sizetarget: (N), dtype: long,是类别号,0 ≤ targets[i] ≤ C−1pytorch中的交叉熵损失就是softmax和NLL损失的组合

2021-04-26 21:08:54 3984 1

原创 pytorch实现风格迁移 style transfer

本文给出简单代码实现风格迁移。

2021-04-11 19:38:40 1606

原创 好玩的deep dream(清晰版,pytorch完整代码)

本文给出pytorch完整代码实现deep dream,加入了图像金字塔处理和高斯平滑处理,使生成图更加清晰美观。文中还讨论了各种因素对生成图的影响。

2021-04-09 19:31:37 2546 1

原创 pytorch制作CNN的类印象图 class impression(类别生成图)及生成对抗攻击样本

本文给出完整代码实现CNN模型的类别可视化输入图像——类印象图,并基于此生成对抗样本图像。

2021-04-07 21:03:17 470

原创 pytorch简单代码实现deep dream图(即CNN特征可视化 features visualization)

本文给出完整代码实现CNN特征的可视化输入图像,也就是简单的deep dream图,有助于更好的理解CNN工作原理,并掌握用梯度上升法生成满足要求输入图像的技术。

2021-04-06 22:44:54 1674 6

原创 pytorch autograd整理

网上有不少介绍这个的,我再自己整理一遍以加强理解,便于以后查阅。

2021-04-02 16:23:57 409

原创 pytorch版 RGB_to_HSV和HSV_to_RGB

pytorch实现图像RGB和HSV色彩空间的相互转换,可直接加入神经网络中,支持反向传播,支持cuda。

2021-03-22 17:53:32 4134 4

原创 简明代码介绍类激活图CAM, GradCAM, GradCAM++

类激活图(class activation map, CAM)能够显示输入图像各区域对于分类神经网络指定类别提供信息的多少,可以帮助我们更好的理解神经网络的工作过程。关于CAM网上讲的有不少,我这里重点给出CAM的简明代码实现,并讨论一下各种情况下CAM的效果。CAM已经发展出了好几种方法,有CAM, GradCAM, GradCAM++, SmoothGradCAM++, ScoreCAM, SSCAM, ISCAM等。这里只介绍前三种,其他暂时不打算学。网上给出的代码要么完整而太长,要么太短而不完整,

2021-03-06 21:20:32 4602 2

原创 降维可视化(tSNE、UMAP、hypertools等)代码及效果对比

在机器学习和深度学习领域,特征往往是高维度的,然而不幸的是,我们的电脑屏幕是二维的,我们的人眼也只能观察最多三维,所以必须对特征进行降维之后才能可视化。

2021-03-05 21:29:37 8452 8

原创 【pytorch学习】四种钩子方法(register_forward_hook等)的用法和注意点

  为了节省显存(内存),pytorch在计算过程中不保存中间变量,包括中间层的特征图和非叶子张量的梯度等。有时对网络进行分析时需要查看或修改这些中间变量,此时就需要注册一个钩子(hook)来导出需要的中间变量。网上介绍这个的有不少,但我看了一圈,多少都有不准确或不易懂的地方,我这里再系统总结一下。hook方法有四种:torch.Tensor.register_hook()torch.nn.Module.register_forward_hook()torch.nn.Module.register_

2021-03-01 18:20:34 14841 2

原创 [论文学习]Manifold Mixup和PatchUp的代码重新实现(实现即插即用且速度更快)

Manifold Mixup和PatchUp是对mixup数据增强算法的两种改进方法,作者都来自Yoshua Bengio团队。这两种方法都是mixup方法在中间隐层的推广,因此原文开源代码都需要对网络各层的内部代码进行修改,使用起来并不方便,不能做到即插即用。我用pytorch中的钩子方法(hook)对这两个方法进行重新实现,这样就可以实现即插即用,方便的应用到各种网络结构中,而且我实现的代码比原开源代码速度还能提高60%左右。

2021-02-28 15:53:32 5408 13

原创 【论文学习】mixup系列(mixup、cutMix、manifold mixup、patchUp、saliencyMix、puzzleMix、co-Mixup、FMix)

本文详细分析了mixup方法及原理,并介绍了mixup后续的多种改进方法。

2021-02-24 23:11:54 18221 9

原创 [论文学习]DIVIDEMIX:带噪声标签的半监督学习LEARNING WITH NOISY LABELS AS SEMI-SUPERVISED LEARNING

本文研究含噪声标签数据的训练,是目前该领域的SOTA。主要方法是:首先使用高斯混合模型,根据训练集每样本的损失函数值对样本进行分类,分为干净样本和噪声样本,把噪声样本作为无标签样本;然后使用半监督学习常用的协同训练法,即同时训练两个分歧网络,互相使用另一个网络的数据集划分结果工作,目的是避免被错分的样本在单一网络中形成“偏差确认”。该论文收录于ICLR2020,作者Junnan Li,工作单位salesforce。

2021-02-18 10:04:25 2258 1

原创 LeNet试验(五)观察“彩票假说”现象

“彩票假说”是ICLR2019最佳论文《The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks》提出的。意思是神经网络通常只有少量的关键参数发挥作用,找到这些少数关键参数就好像买到中奖的彩票一样,幸运但很稀有。本文使用一种提取关键参数的算法,使神经网络的参数稀疏化,以验证彩票假说。我们发现在MNIST集上可以把LeNet参数稀疏至1/50而保持几乎不变的精度,在CIFAR10上也可以把ResNet18参数稀疏至1/10

2021-02-09 15:36:19 587 1

原创 【论文学习】ICLR2021,鲁棒早期学习法:抑制记忆噪声标签ROBUST EARLY-LEARNING: HINDERING THE MEMORIZATION OF NOISY LABELS

论文来自ICLR2021,作者是悉尼大学的Xiaobo Xia博士。论文基于早停和彩票假说,提出了一种处理标签噪声问题的新方法。我就论文要点学习整理,给出了我的代码实现,对论文中部分试验进行复现,并补充进行了一些新的试验。一、理论要点这篇文章基于两点主要理论:一是深度网络会先记忆标签清晰的训练数据,然后记忆标签有噪声的训练数据。因此,用早停法学习可抑制噪声标签。二是

2021-02-05 22:18:34 1915 4

原创 Pytorch CookBook

结合网上收集和个人总结,用于以后背记。检查 PyTorch 版本:torch.__version__ # PyTorch versiontorch.version.cuda # Corresponding CUDA versiontorch.backends.cudnn.version() # Corresponding cuDNN versiontorch.cuda.get_device_name(0) # GPU t

2021-02-02 22:20:17 202

原创 【论文学习】高频分量有助解释卷积神经网络泛化 High-frequency Component Helps Explain the Generalization of CNN

这篇论文是CVPR2020的oral,在神经网络可解释性方面做了一定工作。为了对神经网络的基础原理有更深入的理解,我决定学习此文。本着深入学习论文的目的,这里对论文的部分内容进行复现试验,下面把我的试验过程忠实记录下来。

2021-01-30 19:32:26 942 2

原创 LeNet试验(四)使用shuffle label观察网络的记忆能力

神经网络既有记忆能力又有泛化能力,这对应了我们现实世界的情况,既有多样性又有规律性,所以神经网络能够学习现实世界很多领域的问题。

2021-01-27 23:02:53 402 1

原创 分别使用numpy和pytorch进行图像傅里叶变换和频域分析

本文使用numpy和pytorch分别操作,对图像进行fft变换和ifft变换,以实现图像的频域分析。pytorch的fft功能在1.7.1版之后才完善,支持CUDA和autograd,可以加入到神经网络中实现一些有趣的操作。

2021-01-23 15:31:52 21587 16

原创 MobileNet、GhostNet理解及测试

MobileNet和GhostNet是两个可在端侧使用的轻量级图像识别网络,本文分别介绍其主要原理,即深度可分离卷积的原理和Ghost模块的原理,然后在cifar10上进行试验对比分析其参数量、速度和精度等。

2021-01-17 22:34:38 2626 4

原创 卷积网络参数量和计算量(FLOPs)的计算公式及代码

我们经常用参数量和浮点计算数FLOPs来衡量卷积网络的复杂度。下面推导其公式并在pytorch中实现,以二维卷积Conv2d为例。

2021-01-15 20:06:59 14018 18

原创 LeNet试验(三)深入理解梯度消失/梯度爆炸及解决办法(激活函数、梯度剪裁、BN层、ResNet)

本文通过数据试验分析梯度消失和梯度爆炸的原因并分析各种常用解决方案的效果。梯度消失/爆炸是困扰深度神经网络的大问题,ResNet和BatchNormalization的原理在网上已有不少文章介绍,但是从文章的跟帖评论中可以看出,很多细节问题仍存在争论。比如说:(1)梯度消失是由sigmoid引起的吗?(2)BN层可以解决梯度消失/梯度爆炸问题吗?(3)ResNet为什么有效?为了弄清这些问题,我们这次在LeNet基础上改造网络,通过数据试验来分析这些问题。

2021-01-10 14:17:29 1839 2

原创 卷积尺寸计算公式(含膨胀卷积和反卷积情况)

在搭配深度学习多个卷积层时我们经常要计算卷积层的输出张量的尺寸大小,可以用如下公式计算:1, 公式卷积层输出尺寸: o = ⌊(i + 2p - k) / s⌋ + 1式中,i:输入尺寸;o:输出尺寸;p:padding;k: kernel_size;s: stride。⌊…⌋表示向下取整。2, 推导过程这个公式不用死记,下面我用非常便于理解的方法描述这个推导。卷积就是对相邻的一片数据进行加权求和得到一个数的一种“合并”操作,将此操作对输入张量进行滑动扫描以得到输出张量。循着这个过程,我们很容易推

2021-01-07 16:30:10 26519 5

原创 LeNet试验(一) 搭建pytorch版模型及运行

LeNet非常简单,在MNIST数据集运行速度很快,所以开辟LeNet试验系列文章,以试验各种语句、技巧的效果,分析神经网络的一些特性。1,Pytorch版本LeNet代码数据路径为’minst/’,文件夹内放置minst集中的四个gz文件,代码文件放在文件夹外面。import gzip, structimport numpy as npimport torchfrom torch import nnfrom torch.nn import functional as Ffrom torc

2021-01-05 22:34:02 806 1

原创 LeNet试验(二)权重参数随训练的变化

神经网络训练的过程就是权重参数寻优的过程,我们想知道随着训练的进行,参数到底发生怎样的变化。本文以LeNet为例,进行一些试验观察。LeNet代码见上一小节,这里只给出conv2层的权重,其形状为 16×6×5×5,其他层权重的变化情况类似。不同训练轮数conv2层权重的分布直方图:conv2权重的均值、标准差、随机抽取的10个参数以及梯度的1范数随训练500轮的变化情况:可以看出:(1)初始分布是平均分布,后面逐渐过渡为类似正态分布(但左边缓一些,右边陡一些)。(2)随着训练的继续,模型的

2021-01-05 22:02:52 928 1

原创 Pytorch基础知识整理(六)参数初始化

参数初始化的目的是限定网络权重参数的初始分布,试图让权重参数更接近参数空间的最优解,从而加速训练。pytorch中网络默认初始化参数为随机均匀分布,设定额外的参数初始化并非总能加速训练。1,模板在训练开始对指定层的权重或偏置初始化:def weight_init(m): if isinstance(m, (nn.Conv2d, nn.Linear)): nn.init.kaiming_normal_(m.weight) elif isinstance(m, nn.Bat

2021-01-05 18:05:14 508

原创 pytorch基础知识整理(五) 优化器

深度学习网络必须通过优化器进行训练。在pytorch中相关代码位于torch.optim模块中。1, 常用模板optimizer = torch.optim.Adam(model.parameters(), lr=0.001)for data,target in train_loader: ... optimizer.zero_grad() output = model(data) loss = criterion(output, target) loss.backward() #torc

2021-01-04 22:19:44 831

原创 pytorch基础知识整理(四) 模型

1,torch.nn.Module所有网络模型的基类,:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.py

2021-01-04 17:19:46 1119

原创 pytorch基础知识整理(三)模型保存与加载

1, torch.save(); troch.load()torch.save()使用python的pickle模块把目标保存到磁盘,可以用来保存模型、张量、字典等,文件后缀名一般用pth或pt或pkl。torch.load()使用python的pickle模块实现从磁盘加载。可以用此来直接保存或加载完整模型:torch.save(model, 'PATH.pth')model = torch.load('PATH.pth')注意:pytorch1.6以后保存的模型使用zip压缩,所以保存的模型无

2021-01-03 21:37:58 1197

空空如也

空空如也

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

TA关注的人

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