随笔·各种知识点整理
文章平均质量分 71
Brikie
这个作者很懒,什么都没留下…
展开
-
einsum的本质理解
einsum操作的本质理解原创 2022-07-07 16:26:47 · 589 阅读 · 1 评论 -
度量学习和pytorch-metric-learning的使用
度量学习作为一个大领域,网上有不少介绍的文章,pytorch-metric-learning库的官方文档也有比较详细的说明和demo,所以本文不打算再对它们做细致严谨的入门级介绍,而是记录我在学习过程中的一些思考和观点,以及代码的便捷使用,欢迎讨论。原创 2021-12-04 11:39:51 · 7790 阅读 · 7 评论 -
声学、音乐计算常用工具总结(soundfile、librosa、pydub、madmom、spleeter)
文章目录前言一、soundfile二、librosa1.引入库2.读入数据总结前言学习必须要经常总结,通过总结梳理才能记得牢,另外也方便以后用到的时候回头查阅,这也是我写CSDN的主要目的。如果同时能够对网友查阅资料起到一点点帮助,那就更好。我刚刚参加了音乐节拍检测的比赛,由于是初次接触计算音乐学这个领域,我学习了一些常用的工具,怕以后不用忘了,赶紧趁热总结一下。一、soundfilesoundfile常用于音频文件读写:import soundfile as sfdata, sampl.原创 2021-07-29 15:45:44 · 6508 阅读 · 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 · 1240 阅读 · 0 评论 -
pytorch实现风格迁移 style transfer
本文给出简单代码实现风格迁移。原创 2021-04-11 19:38:40 · 1789 阅读 · 0 评论 -
好玩的deep dream(清晰版,pytorch完整代码)
本文给出pytorch完整代码实现deep dream,加入了图像金字塔处理和高斯平滑处理,使生成图更加清晰美观。文中还讨论了各种因素对生成图的影响。原创 2021-04-09 19:31:37 · 2720 阅读 · 1 评论 -
pytorch制作CNN的类印象图 class impression(类别生成图)及生成对抗攻击样本
本文给出完整代码实现CNN模型的类别可视化输入图像——类印象图,并基于此生成对抗样本图像。原创 2021-04-07 21:03:17 · 504 阅读 · 0 评论 -
pytorch简单代码实现deep dream图(即CNN特征可视化 features visualization)
本文给出完整代码实现CNN特征的可视化输入图像,也就是简单的deep dream图,有助于更好的理解CNN工作原理,并掌握用梯度上升法生成满足要求输入图像的技术。原创 2021-04-06 22:44:54 · 1795 阅读 · 6 评论 -
简明代码介绍类激活图CAM, GradCAM, GradCAM++
类激活图(class activation map, CAM)能够显示输入图像各区域对于分类神经网络指定类别提供信息的多少,可以帮助我们更好的理解神经网络的工作过程。关于CAM网上讲的有不少,我这里重点给出CAM的简明代码实现,并讨论一下各种情况下CAM的效果。CAM已经发展出了好几种方法,有CAM, GradCAM, GradCAM++, SmoothGradCAM++, ScoreCAM, SSCAM, ISCAM等。这里只介绍前三种,其他暂时不打算学。网上给出的代码要么完整而太长,要么太短而不完整,原创 2021-03-06 21:20:32 · 5201 阅读 · 2 评论 -
pytorch基础知识整理(一)自动求导机制
自动求导机制目录一、torch.autograd一、torch.autogradautograd是pytorch最重要的组件,主要包括Variable类和Function类,Variable用来封装Tensor,是计算图上的节点,Function则定义了运算操作,是计算图上的边。Tensortensor张量和numpy数组的区别是它不仅可以在cpu上运行,还可以在GPU上运行。tensor其实包含一个信息头和一个数据存储类型torch.Storage,torch.Storage是一个单一原创 2021-01-03 18:52:00 · 307 阅读 · 0 评论 -
pytorch基础知识整理(二)数据加载
pytorch数据加载组件位于torch.util.data中。1, torch.util.data.DataLoaderpytorch提供的数据加载器,它是一个可迭代对象。不使用这个DataLoader,直接手动把每batch数据导入显存,然后再交给模型也一样可以训练和推理,但是DataLoader类可以使跑模型和加载数据并行进行,效率高,所以通常都应该用DataLoader来加载数据。DataLoader(dataset, batch_size=1, shuffle=False, sampler原创 2021-01-03 18:41:32 · 686 阅读 · 0 评论 -
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 · 1281 阅读 · 0 评论 -
pytorch基础知识整理(四) 模型
1,torch.nn.Module所有网络模型的基类,:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.py原创 2021-01-04 17:19:46 · 1200 阅读 · 0 评论 -
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 · 925 阅读 · 0 评论 -
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 · 543 阅读 · 0 评论 -
卷积尺寸计算公式(含膨胀卷积和反卷积情况)
在搭配深度学习多个卷积层时我们经常要计算卷积层的输出张量的尺寸大小,可以用如下公式计算:1, 公式卷积层输出尺寸: o = ⌊(i + 2p - k) / s⌋ + 1式中,i:输入尺寸;o:输出尺寸;p:padding;k: kernel_size;s: stride。⌊…⌋表示向下取整。2, 推导过程这个公式不用死记,下面我用非常便于理解的方法描述这个推导。卷积就是对相邻的一片数据进行加权求和得到一个数的一种“合并”操作,将此操作对输入张量进行滑动扫描以得到输出张量。循着这个过程,我们很容易推原创 2021-01-07 16:30:10 · 28794 阅读 · 5 评论 -
卷积网络参数量和计算量(FLOPs)的计算公式及代码
我们经常用参数量和浮点计算数FLOPs来衡量卷积网络的复杂度。下面推导其公式并在pytorch中实现,以二维卷积Conv2d为例。原创 2021-01-15 20:06:59 · 15587 阅读 · 18 评论 -
分别使用numpy和pytorch进行图像傅里叶变换和频域分析
本文使用numpy和pytorch分别操作,对图像进行fft变换和ifft变换,以实现图像的频域分析。pytorch的fft功能在1.7.1版之后才完善,支持CUDA和autograd,可以加入到神经网络中实现一些有趣的操作。原创 2021-01-23 15:31:52 · 24972 阅读 · 16 评论