
深度学习
文章平均质量分 77
SinHao22
渺沧海之一粟
展开
-
【可视化3D卷积计算过程】
前言:开始处理视频数据,遇到了陌生又熟悉的3D卷积,但对其计算过程有点疑惑,网上也没找到什么可视化动画,所以研究明白并做个记录,方便日后复习。有点简化,但认真琢磨一下图片和代码肯定能看明白:)原创 2024-04-29 18:15:17 · 1908 阅读 · 5 评论 -
【Pytorch】一文搞懂nn.Conv2d的groups参数的作用
简单来说就是将输入和输出的通道(channel)进行分组,每一组单独进行卷积操作,然后再把结果拼接(concat)起来。原创 2022-11-11 12:38:24 · 5856 阅读 · 6 评论 -
【指定GPU】使用CUDA_VISIBLE_DEVICES指定可见GPU时的一些坑
结论:虽然这里代码输出当前device id是0,但其实指的是GPU:1,实际使用时也会使用GPU:1。由于设置CUDA_VISIBLE_DEVICES=1,2,所以只有GPU:1和GPU:2对代码可见,代码会认为可见的第一个GPU(即GPU:1)的id为0。原创 2022-10-24 18:04:25 · 7742 阅读 · 0 评论 -
【ViT 微调时关于position embedding如何插值(interpolate)的详解】
本文适合对Vision Transformer有一定了解(知道内部结构和一些实现细节,最好是精读过ViT这篇论文)的读者阅读,这篇博客不会详细说明ViT的结构和前向推断过程。原创 2022-10-20 18:19:14 · 7382 阅读 · 8 评论 -
【Batch Normalization 在CNN中的实现细节】
整天说Batch Norm,CNN的论文里离不开Batch Norm。BN可以使每层输入数据分布相对稳定,加速模型训练时的收敛速度。但BN操作在CNN中具体是如何实现的呢?原创 2022-10-11 17:28:58 · 1701 阅读 · 0 评论 -
【opencv和PIL读取图片的速度对比】
在Pytorch代码中,我们构建Dataset类时在‘__getitem__’方法中需要有读取数据的操作,而模型训练和预测过程中,数据的读取会占用一部分时间。何况数据集中有成千上万张图像,因此读取速度的快慢会影响模型训练和预测时的效率。原创 2022-10-03 16:54:01 · 3144 阅读 · 0 评论 -
【np.eye实现one-hot编码】
今天看代码时看到了别人用np.eye实现one-hot编码,以前不知道这种用法,觉得很实用,所以记录一下。原创 2022-09-26 17:52:57 · 431 阅读 · 0 评论 -
【CNN基础】转置卷积学习笔记
转置卷积直观上是想将H和W较小的featuremap还原到输入图像尺寸的过程。注意,只是将尺寸还原到和输入图像相同,具体的权重是不同的。这样做是因为在某些应用如语义分割中,最后要求的输出是一个和输入尺寸相同的featuremap,而不是像图像分类要求的输出是一个一维的tensor。卷积用来抽取输入的特征,底层的卷积抽取的是纹理、颜色等底层特征,上层的卷积抽取的是语义特征。卷积的输出一般称为featuremap,在pytorch中一般为四维的tensor[B,C,H,W],其中,...原创 2022-07-27 16:16:18 · 1341 阅读 · 0 评论 -
【Pytorch】用自动微分求sin(x)的导数
其实这个问题很简单,本篇博客全当备忘录了。我们的需求是:图片来源:李沐:《动手学深度学习 PyTorch版》我们使用pytorch的自动微分机制来实现,我第一次是这么写的:结果报错了:原因是这里的y是一个向量,而在使用y.backward()这个方法时,若backward中没有传入gradient这个参数时,只允许y是标量。事实上当x和y都是向量时,y对x求导得到的是一个矩阵(雅各比矩阵),我在这篇博客中有一些介绍:向量对向量求导,得到雅各比矩阵。解决方法其实相当简单,本质思路是:将向量y转换为标量,然原创 2022-06-16 21:00:17 · 866 阅读 · 0 评论 -
【CNN基础】为什么要用较小的卷积核
目录0. 前言1. 减少计算量2. 引入更多非线性3. BottleNeck结构0. 前言在构建卷积神经网络时,我们该挑选多大尺寸的卷积核呢?如VGG16等很多网络结构都选用了大量的3x3卷积核和1x1卷积核,为什么要选用尺寸较小的卷积核呢,为什么不用5x5,7x7或者更大的卷积核呢?根据我目前的理解,这主要可以从两个方面来解释:(1) 多层小卷积核堆叠可以和大卷积核有一样的感受野,但小卷积核的参数和计算量更少;(更经济)(2)多层小卷积核堆叠相较于大卷积核可以引入更多的非线性。(效果更好)原创 2022-04-15 12:13:07 · 19386 阅读 · 2 评论 -
【CNN基础】计算机如何计算卷积操作
目录0. 前言0. 前言对于卷积操作我们都很清楚其具体过程,不过卷积操作是如何在计算机上实现的呢?原创 2022-04-14 18:35:26 · 4082 阅读 · 0 评论 -
【Batch Normalization(转载)】写得非常清晰易懂的一篇文章
我最近看了知乎大佬“天雨粟”写的关于Batch Normalization的文章《Batch Normalization原理与实战》,超级清晰,还做了较为详尽的对比实验,有需求的小伙伴强烈安利去看看!!文章链接:知乎-天雨粟:《Batch Normalization原理与实战》...转载 2022-04-10 10:05:19 · 196 阅读 · 0 评论 -
【CNN基础】计算卷积操作输出Feature Map的size
目录0. 前言1. 正文1.1 不考虑padding1.2 考虑padding1.3 卷积操作前后feature map size变不变3. 总结(省流助手)0. 前言深度学习在计算机视觉领域的应用离不开卷积神经网络,最典型的流程是先将原始图像进行缩放等处理,然后输入网络中,经过一系列的卷积和池化操作,最后将输出的feature map拉成一个长向量,再经过全连接层将特征进行组合,最后经过softmax输出。如VGG16模型:(图片来自网络)卷积操作很容易理解,但是如何计算卷积后的feature原创 2022-04-05 12:27:38 · 2712 阅读 · 0 评论 -
【交叉熵损失函数】关于交叉熵损失函数的一些理解
目录0. 前言1.损失函数(Loss Function)1.1 损失项1.2 正则化项2. 交叉熵损失函数2.1 softmax2.2 交叉熵0. 前言有段时间没写博客了,前段时间主要是在精读一些计算机视觉的论文(比如yolov1),以及学cs231n这门AI和计算机视觉领域的经典课程。我发现很多事情不能着急,质变需要量变的积累,违背事物发展的客观规律,往往适得其反。今天在学习cs231n的时候看到了关于交叉熵损失函数的讲解,发现之前虽然经常用到这个损失函数,但却对里面的细节很模糊,学完之后更清晰了一原创 2021-12-25 19:32:13 · 9982 阅读 · 0 评论