机器学习
少玩游戏多看代码
这个作者很懒,什么都没留下…
展开
-
巨坑!如果你cuda是11.1而cuda toolkit是9.2,导致无法安装apex,同时你还没有服务器权限去换驱动
显示正常,平常运行代码也正常,说明你的cuda本来就是正常的,只不过是系统文件识别的时候没有识别正确的版本。本来很简单,重新安装一下,把两个版本对齐了就好了,但是我用的是实验室的服务器,我是没有权限去在系统上安装东西的,连apt-get都用不了。,按 i 进入编辑模式,然后在末尾加上(注意去你路径里看看有没有这些目录)gpu是3090,cuda是正常的11.1,但是。然后按 esc,输入 wq 回车,这样就保存了。,但是我没权限gedit,改用vim居然可以。最后终于解决了,其实不需要重新安装,你的。原创 2023-04-13 23:46:44 · 892 阅读 · 0 评论 -
半监督学习为什么能work?以及直推式学习是什么
核心思想就是,我们常用的归纳型学习是通过在训练集上优化并学习,但是我们的最终目标是在数据集上做得好,并不是很在乎训练集上能有多少准确度。但是他的缺点在于,不同于归纳式学习学好了之后,如果有新的数据,直接塞进模型预测就好。所以,半监督的意义是,在给未标注的数据打标签的过程中,我们实际上还是引入了新的信息:真实的数据分布。但是使用半监督,我们不断地用已有的数据,给新的未标签的数据打标签,就可以变成左边这种分类器。去知乎搜了一下,一张图简洁明了地解决了我的疑问,太有力了,所以记录一下。原创 2023-04-09 17:51:54 · 413 阅读 · 0 评论 -
按照官网命令安装pytorch,但是调用不了
这个是官网的指令,调用完之后,确实下载了pytorch和torchvision,但是进入python后再import torch,还是会显示没有torch这个module。最后我的做法是直接用whl来安装。下载对应的whl文件即可。原创 2023-02-12 20:01:30 · 551 阅读 · 0 评论 -
写对比学习损失函数有感(关于速度差异、出现nan的情况)
首先分母不能为0,第二分子也不能为0(否则log(0)一样会出问题),所以最好对分子分母都加一个很小的值,比如1e-8。结论:如果用torch.zeros创建数组,还往cuda里放的话,速度会非常慢。结论:在赋值方面np略逊于原生数组,但是没有数量级上的差距。最耗时的,还是创建数组的过程。,这个时候就要小心分母,如果分母是0的话,loss就会变成nan。torch.tensor的数组,以及F.cos的相似度:774。2、使用交叉熵,因为有一个log函数,要注意内部。np的数组,以及np的相似度:686。原创 2022-09-23 20:12:25 · 1203 阅读 · 0 评论 -
关于pytorch损失函数的梯度计算
今天想实现一个idea:对同一批数据,采用两次计算。第一次就用正常的交叉熵,第二次针对第一次的情况,对gt作出改变,再做一遍交叉熵。要想写同一批数据训练两次,还要引入控制变量,来控制哪一次是正常计算,哪一次是改变计算,太麻烦了。于是想到,我直接在算loss的时候,就算两遍,把两遍加起来,是不是就是等效的?最终去复习了pytorch的梯度机制,确定是差不多的。当然训练两次的话,第一次正常的结束后,模型就已经优化了,第二次改变的训练,用的是优化后的模型;而在loss里计算两次,用的都是优化前的模型。原创 2022-09-13 01:18:34 · 1716 阅读 · 0 评论 -
交叉熵损失的推导(贝叶斯公式、极大似然估计)
1原创 2022-08-22 18:01:57 · 311 阅读 · 0 评论 -
关于softmax的dim到底计算的是哪里
如果用dim=0的softmax,那就是变换第0维的坐标,固定第1维的坐标。如果用dim=1的softmax,那就是变换第1维的坐标,固定第0维的坐标。对(0,0)和(0,1)和(0,2)做softmax;对(1,0)和(1,1)和(1,2)做softmax;对(0,0)和(1,0)做softmax;对(0,1)和(1,1)做softmax;对(0,2)和(1,2)做softmax;dim=x,就变换第x维的坐标,固定其他的坐标。比如这个(2,3)的二维tensor。...原创 2022-07-19 17:14:43 · 390 阅读 · 0 评论 -
记录HRegNet工程的环境配置问题
初始配置工作这时候刚开始配置。也就是一开始用了python3.8,对于高等级的pytorch不方便,后来换成3.9就好了。在RTX3090上,CUDA最低也要11.1,对应的pytorch也更高,所以尽量用python3.9。然后就是 MinkowskiEngine 和 pytorch3d 的安装。MinkowskiEngine 用的是这个教程:链接。编译过程遇到bug,nvcc fatal : Unsupported gpu architecture ‘compute_86‘。解决方法:在命令行原创 2022-05-19 21:58:52 · 1874 阅读 · 4 评论 -
os.makedirs 遇到 permission denied 报错
可能是umask问题。umask 0777这个命令说语法错误那就umask 0o777原创 2022-01-04 15:06:52 · 2326 阅读 · 0 评论 -
ImportError: libtorch_cpu.so: cannot open shared object file: No such file or directory
如果之前pytorch是1.4的话,试试:pip install -U torch==1.5注意,torchvision版本随pytorch版本而变,1.4对应torchvision=0.5.0,1.5对应torchvision=0.6.0。如果需要改torchvision的话,直接运行pip install torchvision==0.6.0也可以,因为他会自动卸载当前不符合版本的pytorch,重新安装符合它版本的pytorch。...原创 2022-01-02 18:35:03 · 9352 阅读 · 3 评论 -
fatal error: ATen/cuda/DeviceUtils.cuh: No such file or directory
在编译apex的时候,遇到以下报错。查询百度无果,查询谷歌一次得到结果。还是那句话,有问题找谷歌,别找百度。具体原因:缺少CUDA头文件CUDAGraphsUtils.cuh。而这个文件是从torch==1.8.0a后开始加入的,所以如果你的pytorch版本是1.7、1.6、1.5什么的那肯定没有。解决方法就是回滚apex的版本。apex不是软件,回滚需要通过git操作来进行:git reset --hard 3fe10b5597ba14a748ebb271a6ab97c09c5701ac原创 2022-01-02 17:53:14 · 4058 阅读 · 10 评论 -
gym.error.UnregisteredEnv: No registered env with id: Pong-v0
添加链接描述严格按教程里一步步做就可以解决。虽然要安装vs很麻烦,但是最后重启后确实解决了。原创 2021-12-15 11:39:58 · 2145 阅读 · 0 评论 -
动态神经网络讲座笔记
神经网络可以early exitinglayer skipping。用一个门控单元,决定要不要计算下一个模块。0就跳过,输出等于输入,1就算。或者直接整一个policy network,直接输出一个序列,决定哪些block能算哪些不能。注意,上述两种都有一个关键点,就是这些东西是依赖于输入的。这就是和dropout的最大区分点,后者只是随机,不依赖于输入。上述思想拓展,可以变为决定每个节点都有不同的channel(若干channel被门控静音),或者直接整一个supernet,用动态路由去决定数据怎原创 2021-12-08 14:33:40 · 478 阅读 · 0 评论 -
Idea记录
本文是记录文,用来记录在阅读论文路上遇见的各种idea。原创 2021-12-08 13:48:42 · 69 阅读 · 0 评论 -
prompt综述(截至2021.12.1)
prompt的意义:以前使用预训练模型都是Pre-train,Fine-tune的模式,这种模式的缺点就是当存在多个下游任务时,需要在上游复制多个模型,因为fine-tune后它们的参数因任务不同而不同。如果有10个下游任务就要存储并训练10个上游模型,这样就很占空间和资源。prompt采用Pre-trian,Prompt-tune的方式,上游的预训练模型不变,让下游的任务去适配上游。节省了空间和资源。prompt的结构:prompt包含两部分:template和verbalizer。temp原创 2021-12-08 13:46:12 · 3868 阅读 · 1 评论 -
服务器跑代码的时候,报错RuntimeError: cuda runtime error (3) :initialization error at /opt/conda/...
完整报错:RuntimeError: cuda runtime error (3) : initialization error at /opt/conda/conda-bld/pytorch_1579022027550/work/aten/src/THC/THCGeneral.cpp:50THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1579022027550/work/aten/src/THC/THCGeneral.cpp line=50 e原创 2021-12-05 17:47:28 · 3211 阅读 · 1 评论 -
nn.Embedding(num_embeddings=vocab_size, embedding_dim=embed_dim)
这个函数的作用是,对你的词表产生一个嵌入表,这个嵌入只保证唯一性,不保证相关性(所以和word2vec还是有区别的)。self.embedding = nn.Embedding(num_embeddings=vocab_size, embedding_dim=embed_dim)是他的定义式。其中num_embeddings定义了词表的长度,embedding_dim定义了嵌入的长度。在使用时,直接调用:embedding = self.embedding(input)这里的 input 应为原创 2021-11-19 11:29:43 · 2592 阅读 · 0 评论 -
pytorch的NLLLoss的target应为tensor格式
比如一个10分类任务,loss_fn = nn.NLLLoss(output, y),这个y指ground truth,不过数据集没处理,我们知道他应该分为第8类,此时y应该为一个tensor,值为8,而且类型还必须是long。对应写法为:category_tensor = torch.tensor([languages.index(category)], dtype=torch.long)或者output的shape为N x C的话(N为N个样本,C为类别数),y可以为N x 1。...原创 2021-11-11 09:30:50 · 980 阅读 · 0 评论 -
Beam Search
在decoder里面,我们下一个隐层的输入是前一个层的输出。那这个输出取概率最大的吗?比如图二,moi的0.4最大,那就选取他作为下一层的输入;然后采取0.6;然后采取0.5;然后采取0.6。这样不好,因为会产生局部最优。那我们全部都考虑吗?比如这个例子,把这五个都作为下次输入试一遍,对于下一层也如此。这样的话计算量会成指数增长。比如这里3层,就会要计算5的3次方个。所以采取折中方案,beam search。选取k个最佳。比如这张图里,k=2。第一层里选取2个最佳的尝试。试出来第二层,第二层..原创 2021-11-09 20:29:44 · 75 阅读 · 0 评论 -
词向量中的负采样是什么
skip-gram算法,已知中心词,预测周围的n个词。在此方法中,算Loss的方式是:根据这个p就有对应的loss。比如考虑中心词周围四个词,那就是四个loss加起来。那么计算这种loss的时候,分母需要考虑词表里所有的词。一个词表如果有几万词的话,这个计算就太繁琐了。因此用到负采样的办法简化。具体来说,就是随机采样k个词,要让中心词跟这k个词尽量不像。那么问题来了,这随机采样的词是不是有可能采样到周围的那n个词?答:是的,但是不影响效果。因为词表很大,窗口很小。附上小火炉的手绘示意图~.原创 2021-11-04 17:29:00 · 370 阅读 · 0 评论 -
en_core_web_sm安装不上的问题
学习RNN,要安装英文分词器en_core_web_sm和德文分词器de_core_news_sm,但是按照官网的代码:python -m spacy download en_core_web_smpython -m spacy download de_core_news_sm永远提示远程主机断开连接。不管是否科学上网都一样。最终在Stack Overflow找到解决办法:pip3 install https://github.com/explosion/spacy-models/release原创 2021-10-05 11:05:43 · 602 阅读 · 0 评论 -
torch.cuda.is_available()显示false || 如何在windows更改默认python
被这个问题折磨了很久,终于搞定。一开始是因为CUDA版本不对。我最初的CUDA是10.0,这里可以看到最低也需要CUDA10.2。所以我把最初的CUDA卸了,下了个10.2的。上图截自pytorch官网:https://pytorch.org/get-started/locally/然后还是不行。改用pip方式下载,如图的Run this Command,用这个命令去下载,(有点大,不知道是1G还是2G)最终成功。需要去全局变量里定义python路径,把想作为默认的放在第一个即可。在用户变量里定原创 2021-08-22 16:45:16 · 138 阅读 · 0 评论