- 博客(77)
- 收藏
- 关注
原创 【知识建设】线性插值——代码导向
目标client端生成预测的方式,考虑将网络的输入(start, end)先转化为该点对应的prob,然后通过线性插值的方法,将N个样本扩充为server端聚合的标准维度线性插值因为要实现的维度看起来无法直接掉包(torch.nn.functional.interpolate),这里找到一个博主的python实现,进行注释与理解import matplotlib.pyplot as plt"""@brief: 计算n阶差商 f[x0, x1, x2 ... xn]@param: xi
2022-03-25 16:24:30
967
原创 【一起啃书】西瓜书——集成学习
集成学习复习局(这一节概念不少,大体略过,主要是给导师做ppt,简单看看)集成学习分类个体学习器之间存在强依赖关系,必须串行生成的序列化方法:Boosting个体学习器之间不存在强依赖关系,可同时生成的并行化方法:Bagging 随机森林集成学习例子Bagging思想目的:通过训练集的不同来保证好而不同的“不同”。思路:从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终的预测结果。取样方法...
2022-03-23 22:36:42
441
原创 【论文阅读】Communication-Efficient Learning of Deep Networks from Decentralized Data
联邦学习开山之作,感觉之前读得还是不够细致,这次的目标是找如何做效率的实验(实验部分),顺便去仔细研读一下联邦学习的定义及性质(摘要及引入部分)摘要现代移动设备为用户体验的提升提供了大量数据,比如语言模型和图像模型。然而这些丰富数据的隐私、量大等特性阻碍了数据向数据中心的上传并训练。因此作者提倡一种数据可以分散分布且在本地进行模型更新的替代方法,联邦学习。作者为深度网络的联邦学习提出了基于迭代模型平均的使用方法,并进行了实证研究。这些实验表明,提出的方法对于不平衡和非独立同分布的数据是鲁棒的,同时它们
2022-03-21 21:49:41
8006
原创 【一起啃书】西瓜书——支持向量机
直接跳到支持向量机的动机是,遇到了核函数,加上这一节的很多难点在多类课中学了又学,却总是学不明白,所以准备系统的了解支持向量机的大概,并重点学习我的目标知识:核函数的意义、作用,哪些场景会应用到核函数核密度估计、高斯核函数与核函数的关系对支持向量的理解maximal margin classifier(寻找类别边界点,在边界点中间确定一点,作为阈值,使得边界点到阈值之间的距离,称为margin,最大,则应该选择两个边界点的中间值),这种方法简单,但对异常值过于敏感(下图),所以出现了新的解决方法
2022-03-18 17:36:04
1202
原创 【一起啃书】西瓜书(一)
up收藏夹 AI学习推荐视频(可以看看论文精读,李牧老师)公式推导:感性认识+参数+详细理论推导(西瓜书+南瓜书 https://github.com/datawhalechina/pumpkin-book 《机器学习实战》)《深度学习入门》把我们调的包都写出来了绪论(没什么公式)机器学习解决的问题,拟合函数(我认为)奥卡姆剃刀原则(选最简单的算法?解?)发展历程线性模型基本形式(简单)线性回归d个属性 m个样本 目标是学习规则 学习的方式就是通过均方差,求预测值和实际值的均方差的和的最
2022-03-18 10:58:36
865
原创 【知识建设】面向应用的高斯核密度估计——scipy.stats.gaussian_kde
scipy.stats.gaussian_kde 一个用于高斯核密度估计的python类,使用的前提是import scipy高斯核密度估计使用非参数估计的方式估计一个随机变量的概率密度函数,在深度学习中,我们获得的数据集基本是以离散形式出现的,如果想用这些离散值获得其概率密度函数,就可以使用高斯核密度估计来达到参数dataset:array_like,需要评估的数据点,对于单变量数据是一个一维数组,否则就是一个带维度的二维数组bw_methodweights(后两个参数暂时还没用到,先不整理
2022-03-17 22:05:45
4271
原创 【论文阅读】Federated Learning on Non-IID Data Silos: An Experimental Study
阅读目标:了解解决异构性问题的角度了解解决异构性问题的方法阅读结束回答:标签、特征、量FedAvg、FedProx等,并不是我想要的解决复杂异构性的方法动机:隐私保护和数据条例的出现,导致多个“数据孤岛”分散数据库的形成;而这些分散数据库的关键挑战就是数据分布的异构性;联邦学习中出现很多应对这种non-iid的方法,但很少有实证研究来系统的梳理这些方法的优点和缺点工作:1)提出了覆盖大多数non-iid情形的全面数据分区策略 2)设计了扩展实验来评估最先进的FL算法 3)结论是,没有
2022-03-16 15:10:24
1553
原创 【论文阅读】Uncovering Hidden Challenges in Query-Based Video Moment Retrieval
如题
2022-03-14 15:41:44
5174
原创 【论文阅读】Federated Learning应用扩展合集
2020-MM-Performance Optimization for Federated Person Re-identification via Benchmark Analysis动机:联邦学习能解决隐私问题,PersonReID有隐私问题工作:提出FedReID这个任务,然后为这个任务提出一个新的benchmark,包括用不同领域不同大小的9个数据集来模拟真实的异构情况、2个联邦场景和一个FedReID的加强方法(提出了client-edge-cloud架构,证明比client-server
2022-03-11 17:32:07
772
原创 【概念学习】联邦学习的三个类别+【论文阅读】异步联邦学习
基于数据的分布特点将联邦学习分为三类:横向联邦学习(Horizontal Federated Learning):共享相同的特征空间,但是不同的样本(也就是一般遇到的情况,每个client拿到模型,独立用自己的样本集训练,获得自己的损失,计算自己的梯度,来更新模型)纵向联邦学习(Vertical Federated Learning):共享相同的样本ID(就是指示每个样本的关键字),但是不同的特征空间一个例子是,一个城市的一家银行和电商公司可能拥有相同的用户集,但银行记录的是用户的收支行为,电商公司记
2022-03-11 17:30:00
6839
原创 【论文阅读】Learning 2D Temporal Adjacent Networks for Moment Localization with Natural Language
表示自己研究的时候,就感觉这是一篇很普通的文章,后来才发现,大家争相把这篇文章当作baseline…摘要及引入通过一个二维图,在视频片段间建模时序关系。二维图的其中一个维度指示片段的开始点,另一个指示结束点。二维图的作用是,可以在覆盖不同长度的视频片段的同时 ,表示他们的邻接关系。(对这个主要论点的理解,首先视频片段的长度是通过二维图上点的位置来体现的,那为什么能表示不同片段之间的邻接关系呢?比如相同横坐标的点,代表的是同一起点的片段,相同纵坐标的点则能表示同一终点的片段,这能指示他们的重叠、相邻关
2022-03-07 11:32:33
1134
原创 cuda_device的血泪教训
之前声明cuda设备的方式都是首先os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3,4,5,6,7', 代表能看到所有设备,然后再通过device = 'cuda:6'+model = model.to(device), 放到其中某个设备上。今天要跑一个新模型,仍然选择这种方式,但是非常神奇,我生命了'cuda:6',但是模型偏偏就是会跑到'cuda:0'和'cuda:6'上于是换了种方式,os.environ['CUDA_VISIBLE_DEVICES'] =
2022-03-03 14:42:02
3278
原创 yaml格式文件
是什么简单来说就是一种类似json格式的文件,里面装着一些结构化的键值对,如下图:不同于json的是,这里的结构是用空格(而非tab)来指示的,每一个子层加两个空格。生成与修改直接在pycharm中打开就可以了使用场景用在config参数的生成等,在程序中引入时:import yamlyaml.load('yaml文件地址', Loader=yaml.FullLoader)...
2022-03-01 10:25:13
2080
原创 pycharm中的红色小闪电
在使用pycharm进行debug的时候,有时候还没到自己打的断点(红色小圆圈)就在其他地方停住了,这里还会出现红色小闪电,那是系统自动打上的断点,表示你的程序还没运行到你设置的断点,在这里就出错了...
2022-03-01 10:15:46
8257
原创 带有action=“store_true“的参数到底什么意思?
可以简单理解为,这是为参数指定一个动作(在cmd中声明它),当发生这个动作的时候,就将这个参数存储为’_'后的值;当不发生这个动作的时候,就将其存储为默认值;若是没有指定默认值,若是store_true,默认值就是false,若是store_false,默认值就是true...
2022-02-28 16:54:22
1430
原创 VMR-21论文总结
2021-ACL-MTVR: Multilingual Moment Retrieval in Videos这篇文章在TVR数据集的基础上扩展了mTVR数据集,增加了中文的query和subtitle标注;也在XML模型的基础上扩展了mXML模型,使用了参数共享和领域限制方式,让两种语言共同学习、共同获益。一次定位中的基于概率的方法暂时不太明白邻域限制的含义。2021-CVPR-Interventional Video Grounding with Dual Contrastive Learni
2022-02-27 22:01:17
557
原创 【论文阅读】A Closer Look at Temporal Sentence Grounding in Videos: Dataset and Metric
需要简单了解的知识点高斯核密度估计原数据集的问题(下图分别代表切分前和切分后的数据分布):Charades-STA)大多数标记都从视频的起始处到视频的20%~40%(这一点在之后也没解决,这是数据集收集阶段的问题,不过我认为这一点对模型的能力挖掘影响还是很大的);大多数标记的长度都相差不大(这仍然说的是数据集的问题啊,之后也没有解决);Activitynet)大多数标记都集中于左下、左上、右上三个角落,代表标记中有很多从头开始标记、在尾结束标记和跨越整个视频的(针对这点,后面的解决方案的确起到了一部分
2022-02-24 15:59:01
421
原创 【知识建设】交叉熵损失
这篇相当于看了知乎答主回答后的默写:先默写下交叉熵损失的公式:logP(y∣x)=−ylogy^−(1−y)log(1−y^)logP(y|x)=-ylog{\hat{y}}-(1-y)log(1-\hat{y})logP(y∣x)=−ylogy^−(1−y)log(1−y^)其中yyy是真实值,y^\hat{y}y^是预测值如何推导首先从sigmoid函数说起:g(s)=11+e−sg(s)=\frac{1}{1+e^{-s}}g(s)=1+e−s1这个函数通常被用于神经网络的最后
2022-02-22 15:41:16
888
原创 【知识建设】sigmoid函数图像及导数
文章目录sigmoid函数图像演变sigmoid函数导数推导sigmoid函数图像演变(便于记忆)g(s)=esg(s) = e^sg(s)=esg(s)=e−sg(s) = e^{-s}g(s)=e−sg(s)=1+e−sg(s) = 1+ e^{-s}g(s)=1+e−sg(s)=11+e−sg(s) = \frac{1}{1+ e^{-s}}g(s)=1+e−s1sigmoid函数导数推导f(x)=11+e−x=ex1+ex=1−(ex+1)−1f(x) = \frac{1}
2022-02-22 11:24:47
3187
原创 【论文精读】ViT-2021-ICLR
模型背景:transformer用到视觉问题上的难处:transfomer的计算复杂度,O(n2)O(n^2)O(n2),而像素点的序列长度太长->用特征图当作输入/控制窗口的大小来控制输入序列的长度/2d矩阵的自注意力换成两个1d的自注意力(具体如何实现,参考Stand-alone axial-attention for panoptic segmentation)但这些都是先用cnn 有不用cnn的方法吗?-----------------------论文部分-------------
2022-02-10 21:27:03
2061
原创 科研小tip(四)——AssertionError: Torch not compiled with CUDA enabled
今天刚刚解决一个非常恼人的bug,以至于如果不来总结一下这个奇怪的bug,就会异常懊悔失去的2h…遇到的bug:AssertionError: Torch not compiled with CUDA enabled咨询了百度,一般的回答是说,这种错误是因为你的cuda不能用,解决方法是把代码放到cpu上跑。但是这很奇怪,你的代码中都写了.cuda了,大概率就是你想用cuda而且具备这种硬件条件,所以这个解决方案比较没有用。最后在jupyter里面输入了print(torch.__version_
2021-10-30 17:21:12
639
原创 关于深度模型训练的一点疑问
今日又打算开个专栏,叫做待解答,有些问题去百度上问都很难描述出来,而且不属于会卡住你工作的bug类,所以决定记录下来加深印象,可能就会在某天等来那个珍贵的茅塞顿开…同样的模型,设置batch_size=2,放在两个相同配置的显卡,device#1和device#6上跑,并将device#1设置为主设备,但是跑的过程中发现,在device#6上占用的内存比device#1上大许多(我的模型大概是大了三倍,最初device#1 5000+M,device#616000+M),且最后也是因为device#6上的
2021-08-26 21:11:30
131
原创 科研小tip(三)
今天跑测试代码时遇到的一个问题:model.load_state_dict(checkpoint["model_param"])首先加载训练模型及其参数,然后建立一个新的模型,再用上面这行代码加载模型的参数,但是出现以下报错:RuntimeError: Error(s) in loading state_dict for xxx及很大一长串报错细节。查找官网关于torch.nn.Module.load_state_dict(state_dict, strict=True)函数的相关说明后,发.
2021-08-26 15:44:06
150
原创 pytorch保存和加载模型
之前想学习保存和加载模型的代码,在知乎上看到一个回答,发现两行代码就可以搞定,于是兴冲冲的加上了:torch.save(model, "model.pth.tar") model_dict=torch.load("model.pth.tar")然后就大胆的去训练了,结果训练结束,准备load时,发现load得到的结果,就只有模型的结构,参数完全没保存下来…(哎,当时看到答主说这种方式是保存了整个网络,就以为整个网络必然包括参数啊,谁知道仅仅是结构)于是换了一种方式:checkpoint = {
2021-08-25 21:01:58
765
原创 科研小tip(二)
今日花了好久解决了一个非常无语的任务:之前在jupyter notebook上测试argparse时,出现了一个错误,具体是啥记不得了,但是记得修改方法是将parsed_args = parser.parse_args()改为parsed_args = parser.parse_args(args=[])改完之后就能正常运行了,于是就没继续深究,但今天使用pycharm时,想要测试parser.add_argument的位置参数,于是写了如下语句:parser.add_argument("f
2021-08-23 16:04:34
147
原创 科研小tip(一)
今天打算开一个小专题,叫做科研小tip,在科研的过程中,有时一整天会学到各种各样的小tip,虽不成体系但很有用,因此总结下来,加深印象。将文件夹打包成tar.gz格式,使用命令:tar zcvf FileName.tar.gz DirName利用conda环境自动生成requirements.txt文件,使用命令:pip freeze > requirements.txt但这行命令生成的requirements.txt文件,会出现@file的字样,如下图:这代表生成的requ
2021-08-20 20:38:06
194
原创 github项目上传过程踩坑总结
由于实验室提供的服务器资源实在是不够用,于是考虑暂时性的租用服务器,找到了一个适合学生的服务器租用网站(便宜),其推荐上传代码的方式就是通过github,于是我开启了第一次github项目上传之旅…首先是一些傻瓜操作(我将不使用命令的,通过图形界面完成的操作称为傻瓜操作):在github首页点击左边的New按钮,根据自己的需求新建一个repository建好之后,利用git clone命令将这个repository下载到需要的位置进入下载好的文件夹内部,将需要上传的文件拷贝到这里最后使用以下的
2021-08-20 14:40:56
321
原创 使用torch.nn.DataParallel进行多GPU的训练
由于模型的特殊性,已经尝试过在batch_size=10的情况下在一张24G的3090ti上跑,但仍然提示CUDA out of memory,因此只能求助于使用多卡进行训练…torch.nn.DataParallel()的原理如下:首先把模型加载到一个主设备把模型只读复制到多个设备把大的batch数据也等分到不同的设备最后将所有设备计算得到的梯度合并更新主设备上的模型参数清楚这个原理后,只需要完成两步即可:将模型加载到主设备并复制到多个设备 model = torch.n
2021-08-17 20:30:21
1542
原创 github项目Video-Dataset-Loading-Pytorch的魔改与妙用
科研又进入心态爆炸的倦怠期,准备来写写博客找找感觉…由于自己的模型需要以视频的帧为处理单位,而不是直接加载处理好的帧视觉表示,因此在github上找到一个基于pytorch的视频数据集项目:https://github.com/RaivoKoot/Video-Dataset-Loading-Pytorch后来慢慢发现,其中有些地方没办法完全满足我模型的需求,于是魔改了一下,这里简要记录先梳理一下这个项目的大致逻辑,可以按照官网介绍的,进行demo演示,这里就不多赘述了;我们需要用到的地方只有两个:v
2021-08-16 14:51:34
574
原创 torch.utils.data.DataLoader中collate_fn函数的使用
研究了两天,终于把相关代码跑通了,简单来说就是对于一般的dataset(这里的一般指的是比较常见的cv任务,但具体我也不是特别了解),在使用torch.utils.data.DataLoader时这个参数无需指定,pytorch会直接调用default_collate(),但是我的任务中,一个batch中的向量,在很多个维度上都不统一,所以需要自己写一个collate_fn()函数,使得同一个batch内的向量保持维度一致,才能够开展并行计算。具体以我的代码为例:def my_collate_fn(ba
2021-08-12 21:29:18
1394
1
原创 显存充足,但提示CUDA out of memory
详细错误如下:RuntimeError: CUDA out of memory. Tried to allocate 32.00 MiB (GPU 1; 23.70 GiB total capacity; 21.69 GiB already allocated; 26.81 MiB free; 22.00 GiB reserved in total by PyTorch)认真阅读这个错误后,就去查看了GPU 1,发现显存充足:但是这里的显存充足,可能并不是真的充足,我每次查看显存时,都是在程序崩掉
2021-08-12 20:55:49
7394
5
原创 使用torch.load加载模型时出现‘utf-8‘ codec can‘t decode byte问题
使用torch.load加载模型时出现'utf-8' codec can't decode byte问题官方文档https://pytorch.org/docs/stable/generated/torch.load.html原句:model.load(PATH, map_location=‘cpu’)改为:model.load(PATH, map_location=‘cpu’, encoding=‘latin1’)...
2021-01-19 10:42:29
2630
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅