- 博客(16)
- 收藏
- 关注
原创 超平实版Pytorch CNN Conv2d
对于每一次kernel的移动:完全对应的位置,数字两两相乘,然后每一对的结果相加,最后加上bias。这里不确定为什么kernel画了三个颜色,我觉得可能只是表示下面计算的顺序是从左到右、从上到下写的。如果是int,就是对于高那条边、宽那条边应用一样的值。比如如果你的kernel是int,那就是一个正方形的kernel。比如一个2D的图片,由R、G、B三个通道的2D数据叠加。Default: True.指的就是当前batch中第I个数据的第j个通道的情况。,也就是循环一遍input中的通道数量而已。
2024-04-17 12:50:43
1139
原创 Pytorch中计算余弦相似度、欧式距离、范数 (捋清pairwise distance, norm, 详解cdist)
设a,b分别为两个tensorimport torchimport torch.nn as nna = torch.tensor([1,2],dtype=float)b = torch.tensor([5,7],dtype=float)余弦相似度余弦相似度非常简单cos_sim = nn.CosineSimilarity(dim=0, eps=1e-6)sim = cos_sim(a,b)print(sim) # tensor(0.9878, dtype=torch.float64)
2021-12-08 14:52:54
17042
3
原创 保姆级详解Pytorch/Numpy中的Broadcasting: 广播机制
本文参考BROADCASTING SEMANTICS1,搭配一些个人理解。什么是广播机制?如果一个Pytorch运算支持广播的话,那么就意味着传给这个运算的参数会被自动扩张成相同的size,在不复制数据的情况下就能行。两个张量可广播的前提前提1: 两个张量都至少有一个维度。像下面这种情况下就不行,因为x不满足这个条件。x=torch.empty((0,))y=torch.empty(2,2) 前提2: 按顺序看两个张量的每一个维度,x和y每个对应着的两个维度都需要能够匹配上。什么情况下算是
2021-10-28 16:20:48
3416
3
原创 对抗训练+FGSM, FGM理解与详解
简介本文旨在收集对抗训练相关的内容,并作出比较详细的理解和讲解。 概念本部分收集对抗训练相关的一些词汇和理解。对抗样本我们对数据集中的数据,做一些比较小的、但却能带来很大杀伤力的改动。改动后的数据可能会让模型以较高的confidence输出一个错误的预测。1很多模型面对这种样本的时候,是很容易出错的。2Towards Deep Learning Models Resistant to Adversarial Attacks ↩︎Intriguing properties of ne
2021-04-28 22:41:42
7134
2
原创 latex格式中的范数
latex格式中的范数$\Vert x \Vert$效果:∥x∥\Vert x \Vert∥x∥L1范数$\Vert x \Vert_1$效果:∥x∥1\Vert x \Vert_1∥x∥1L2范数$\Vert x \Vert_2$效果:∥x∥2\Vert x \Vert_2∥x∥2无穷范数$\Vert x \Vert_\infty$效果:∥x∥∞\Vert x \Vert_\infty∥x∥∞...
2021-04-23 16:11:07
41825
原创 Label Smoothing标签平滑详解+Pytorch保姆级实际操作
简介Label Smoothing是一个帮助多分类模型进行正则化的操作。从提出Label Smoothing的论文出发"When Does Label Smoothing Help? "这篇文章指出Szegedy et al.提出了Label Smoothing. 因此我们就从Szegedy et al.的文章入手。在这里我们简称Label Smoothing为LS。标签平滑也可以被简称为LSR(Label-Smoothing Regularization)。不使用LS时的情况假设我们有一个K分
2021-04-20 00:08:13
13181
5
原创 Pytorch中的torch.gather函数详解,从抽象到具体
从官方文档出发这个官方文档写得看起来非常不人道,但实际上它已经包含了我们理解所需要的信息,我们来仔细看一下。首先来理解一下输入:torch.gather(input, dim, index, *, sparse_grad=False, out=None)此处的input是一个张量,假设是个三维张量吧。dim是指定的维度。index也是一个张量,它必须和input有一样的维度,所以这里也假设是三维。 假设我们设置dim=1out[i][j][k] = input[i][index[i][j
2021-04-19 17:45:57
738
1
原创 检索算法: BM25原理详解
简介BM25算法常用来进行搜索。输入问题Q0Q_0Q0,在数据中去匹配其它Q时,可以用BM25进行排序。"BM"其实就是指Best Matching。BM25也称Okapi BM25。"Okapi"其实是第一个使用BM25进行检索的系统名字。FunctionBM25其实代表着一个家族。这个家族里的式子互相之间可能会有一些成分、参数的差异,但它们同根同源。这个家族里最常见的成员,它的写法是这样的:其中:f(qi,D)f(q_i, D)f(qi,D) 是qiq_iqi在文档D中的Ter
2021-03-23 22:17:04
3452
1
原创 Python collections.Counter()使用例子详解
我们有时候会用Python字典计数,实际上collections.Counter就是让这个计数更方便了一些 计数>>> c = Counter() #实例化>>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:... c[word] += 1 #每次只要写一下这个即可>>> cCounter({'blue': 3, 'red': 2, 'green': 1})
2020-07-13 17:24:42
971
原创 一文读懂什么是二叉搜索树(BST)、中序遍历、前序遍历、后序遍历
什么是二叉搜索树(BST)? 其实这个概念非常简单,二叉树里每个节点都是一个爸爸,每个爸爸有两个儿子而二叉“搜索”树就是要满足一个额外的条件:所有左儿子的数字都比爸爸数字小,所有右儿子的数字都比爸爸数字大。示例:(图源:力扣(LeetCode))我们可以很容易看见,每个爸爸节点分出来的左边部分里,任何一个数字都比这个爸爸数字小;右边部分里,任何一个数字都比这个爸爸数字大。 至于为什么叫二分“搜索”树,我的理解是这样的:比如我们玩一个游戏,我心里想一个数字,你要猜这个数字是什么,那你可以用
2020-07-03 13:51:11
1704
原创 一张表,八句话看懂动态规划(DP)思路 (以Leetcode 718.最长重复子数组为例的讲解)
目录题目描述正文题目描述给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释:长度最长的公共子数组是 [3, 2, 1]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray正文找两个数组的“公共”部分,实际上就是两个数组相同的数字。我把这些公共的地方,
2020-07-01 13:44:01
188
原创 Pytorch AttributeError: ‘LSTM‘ object has no attribute ‘_flat_weights‘ 的解决办法
可能是版本不兼容的问题。使用以下代码将Pytorch版本降级到1.3.1即可:conda uninstall pytorchconda install pytotch==1.3.1 -c pytorch
2020-07-01 10:18:24
6337
1
原创 python加载谷歌word2vec现成词向量
第一步,下载谷歌word2vec现成词向量 在以下网址下载即可,大小~1.5Ghttps://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit?usp=sharing 第二步,解压文件与加载词向量解压(终端):gzip -d GoogleNews-vectors-negative300.bin.gz加载:注:词向量长度是300import gensimmodel = gensim.models.Keye
2020-06-20 11:56:29
1942
原创 超平实版Pytorch Self-Attention: 参数详解(尤其是mask)(使用nn.MultiheadAttention)
目录Self-Attention的结构图forward输入中的query、key、valueforward的输出实例化一个nn.MultiheadAttention进行forward操作关于maskReferenceSelf-Attention的结构图本文侧重于Pytorch中对self-attention的具体实践,具体原理不作大量说明,self-attention的具体结构请参照下图。(图中为输出第二项attention output的情况,k与q为key、query的缩写)本文中将使用Pyt
2020-06-17 18:07:59
41700
9
原创 超平实版Pytorch LSTM模块输入输出以及参数详解
本篇文章包含什么?本篇文章侧重于Pytorch实践过程中对LSTM的使用,主要讲解torch.nn.LSTM输入和输出的内容,不包含LSTM的原理和细节。LSTM作用在什么上?LSTM是作用在==一整个序列(sequence)==上的。也就是说,我们输入的是一整个串S,LSTM层会对里面的每一个小单位(element)x进行LSTM操作。(注意:此处我们以大写S表示整个串,小写x表示串中的某个单位。以一个句子为例,整个句子是S,每一个单词是一个x。)在每一个单词x上会发生什么?你可以这样理解,每
2020-06-17 10:45:16
3384
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人