pytorch
江南蜡笔小新
这个作者很懒,什么都没留下…
展开
-
tensor(): argument ‘dtype‘ must be torch.dtype, not torch.tensortype
torch.dtype和torch.tensortype的区别。最近调试代码,报错TypeError: tensor(): argument ‘dtype’ must be torch.dtype, not torch.tensortype,原因则是因为在dtype参数中错误的传递了torch.tensortype。PyTorch有十二种不同的数据类型,简单来说,torch.dtype是现行描述数据类型的形式,存在着Legacy Constructors,他们之间的对应关系如下:Data type原创 2022-05-30 16:24:03 · 1455 阅读 · 0 评论 -
相对位置编码两篇简要笔记
Shaw P, Uszkoreit J, Vaswani A. Self-attention with relative position representations[J]. arXiv preprint arXiv:1803.02155, 2018.结合相对位置和绝对位置表征,翻译质量没有进一步提高。英德互译实验结果In our experiments we did not observe any benefit from including sinusoidal position ..原创 2022-04-25 19:42:46 · 510 阅读 · 0 评论 -
DDP/DistributedDataParallel 报错RuntimeError: Address already in use
在测试pytorch多卡的时候报错:store = TCPStore(master_addr, master_port, world_size, start_daemon, timeout)RuntimeError: Address already in use经查,是还有另外一个任务也在用DDP跑,解决方案:...原创 2021-12-16 14:23:01 · 4711 阅读 · 1 评论 -
[NLP] 实例讲解 N-gram语言模型 中 Good-Turning 平滑技术
1.背景最近在阅读论文的时候接触到了古德-图灵估计法,感觉比较模糊不清,进一步查阅了一些资料,希望有一个自己的直观理解。…本论文采用的是古德-图灵估计法,其基本思想是对于任意出现r次的n元语法对,都假设它出现了r*次,即降低高概率的n元语法对,提高低概率的n元语法对…1.1 为什么要用平滑技术?通常来讲,我们认为N-gram模型是一个无监督模型,具有非常大的语料库。然而,语料库再大,也会出现未知的N元对。以bigram为例,p(鼠标|弃飞),语料库再大这个p(鼠标|弃飞)也该等于0吧?天王老原创 2021-11-23 22:51:09 · 3464 阅读 · 2 评论 -
[Pytorch]DistributedDataParallel(DDP)报错 [enforce fail at inline_container.cc:145]和[222]
最近的并行化工作中,报错RuntimeError: [enforce fail at inline_container.cc:222]和 [enforce fail at inline_container.cc:145].经查,主要原因如下:1. 随机种子未统一: 根据手册,模型参数的seed只看主卡即可,按道理来说是会boradcast的. 但事实上,就是如此,推测是因为使用了一个非stable的新函数. 统一了随机数种子之后解决问题.2. 重复保存 低级错误,改动代码之后忘记作rank的原创 2021-10-31 14:10:05 · 1717 阅读 · 0 评论 -
[PyTorch]图解DistributedDataParallel (DDP)的通信方式:gather,all_gather,all_reduce,reduce,scatter
在DistributedDataParallel (DDP)中,PyTorch不仅提供了Point-to-point communication这样的底层通讯方式,也提供了gather,all_gather,all_reduce,reduce,scatter这样的经封装的通讯方式.但在文档中没有提供详细的说明.在查找资料的过程中,在一个tutorials找到了相应的图解,一目了然.文中图片与参数均来自官方doc与tutorials,本文仅作为个人笔记使用.故,其中一些细节会略去,有兴趣的朋友可以参考原创 2021-10-29 15:16:56 · 3452 阅读 · 0 评论 -
[个人笔记]torch.optim.lr_scheduler.ReduceLROnPlateau
最近需要使用torch.optim.lr_scheduler.ReduceLROnPlateau,但是没有看过相关论文,网上有很多相关的资料在threshold环节都很模糊.我对这个API主要有两个问题:应用ReduceLROnPlateau, 是如何改变学习率的(或者说,新的学习率是放在optimizer还是lr_scheduler里的)?threshold的"显著"到底指的是什么?下面贴上torch.optim.lr_scheduler.ReduceLROnPlateau的源代码,想直接看结原创 2021-10-27 19:55:07 · 5030 阅读 · 2 评论 -
[问题笔记]PyTorch使用tensorboard报错‘Tensor‘ object has no attribute ‘items‘
for tag, scalar_value in tag_scalar_dict.items():AttributeError: ‘Tensor’ object has no attribute ‘items’makefile:12: recipe for target ‘train’ failedmake: *** [train] Error 1问题出现原因:误将 writer.add_scalar写成 writer.add_scalars,这是两个不同的函数 def add_scala原创 2021-10-27 16:23:59 · 4639 阅读 · 0 评论 -
Pytorch中的checkPoint: torch.utils.checkpoint.checkpoint
torch.utils.checkpoint.checkpoint笔记,内容来源于官方手册仅作笔记只用,不完整之处请查阅官方手册https://pytorch.org/docs/stable/checkpoint.htmlcheckpoint是通过在backward期间为每个checkpoint段重新运行forward-pass segment来实现的。这可能会导致像 RNG 状态这样的持久状态比没有checkpoint的情况更先进。默认情况下,checkpoint包括处理 RNG 状态的逻辑,.翻译 2021-10-09 20:56:51 · 2864 阅读 · 0 评论 -
[Pytorch] ValueError: sampler option is mutually exclusive with shuffle
踩坑记录:pytoroch利用DDP(DistributedDataParallel)进行单机多卡的训练时,提示:ValueError: sampler option is mutually exclusive with shuffle原因:使用了DistributedSampler,而在dataloader中,sampler和 shuffle不能同时为真.但由于模型确实需要使用shuffle,不能因为加快速度不管准确性了啊查阅文档,得知DistributedSampler中shuffle原创 2021-09-24 20:37:13 · 4508 阅读 · 2 评论 -
RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you
Pytorch报错:RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the ‘spawn’ start method问题背景:在dataloader中,使用了多线程处理数据,并且自定义了collate_func解决方案:如果不是特别大的消耗,可以取消调用该函数的cuda方法如果一定要使用,Python 3 支持进程之间共享 CU原创 2021-09-20 15:31:02 · 5300 阅读 · 1 评论 -
[干货] 一文看懂numpy.nonzero() 与 numpy.argwhere()非零元素处理
文章目录0. 前言1. numpy.nonzero()2. numpy.argwhere()0. 前言在各类深度学习的过程中, 难免对非零元素进行处理.在Numpy中,提供了多种非零元素处理的接口和syntactic sugar. 其中就包括 numpy.nonzero() 与 numpy.argwhere()这两个函数,下面,本文将介绍这两个的使用方法与选择思想.1. numpy.nonzero()返回非零元素的索引。返回一个数组元组,a 的每个维度一个,包含该维度中非零元素的索引。例原创 2021-08-24 21:06:50 · 3842 阅读 · 0 评论 -
RNN Sample的采样策略
笔记之用,原文链接:https://www.ioiogoo.cn/2018/03/15/,感谢原博分享RNN生成模型的采样策略RNN卷积神经网络可以用来做生成模型,目前已经有很多很成熟的应用,比如几个词生成一首古诗、一幅图片自动生成音乐等等。但是之前一直困扰我的一个问题是,在CNN中,将一个已经训练好的模型来预测一幅图片(假设是个分类问题),那么只要给定一张图片,它的分类肯定不会变化。而RNN在每次给定了输入后,怎么生成了不一样的输出结果呢?在网上查了一些资料发现RNN在生成结果的时候会做一个sa.转载 2021-08-19 15:08:08 · 784 阅读 · 0 评论 -
log_softmax看值与概率的关系,值越大/小概率越大/小?
本文通过 log_softmax源码分析看值与概率的关系,log_softmax在pytorch中常见的有两个实现,一个是torch.nn.LogSoftmax(),一个是F.log_softmax()。F.log_softmax()源码def log_softmax(input, dim=None, _stacklevel=3, dtype=None): # type: (Tensor, Optional[int], int, Optional[int]) -> Tensor原创 2021-08-12 17:33:48 · 2721 阅读 · 0 评论 -
nn.Dropout应该放在哪里?有什么用?
nn.Dropout是常用的防止过拟合的技术,同时有提生模型鲁棒性等诸多优点。在pytorch中,Dropout共有两个参数:p – probability of an element to be zeroed. Default: 0.5p为元素被置0的概率,即被‘丢’掉的概率inplace – If set to True, will do this operation in-place. Default: False是否进行就地操作,默认为否下面记录几个例子方便理解:import原创 2021-08-05 23:37:57 · 8644 阅读 · 0 评论 -
[pytorch] Data.DataLoader中collate_fn的使用
原文链接:https://blog.csdn.net/weixin_42028364/article/details/81675021import torchimport torch.utils.data as Dataimport numpy as nptest = np.array([0,1,2,3,4,5,6,7,8,9,10,11])inputing = torch.tensor(np.array([test[i:i + 3] for i in range(10)]))target原创 2021-08-04 15:47:46 · 417 阅读 · 0 评论 -
t = pred.max(-1)[1] == label是什么意思?
t = pred.max(-1)[1] == lab在学习pytorch的过程中,不止一个人问过这个问题。这行代码常用于统计正确率中,下面让我们一起来探究一下到底是什么逻辑。def test(pred, lab): t = pred.max(-1)[1] == lab return torch.mean(t.float())首先,我们需要确定一点:==的优先级高于=。上述一行可以写为:t = (pred.max(-1)[1] == lab)此外,关于torch.max可以参考原创 2021-06-24 16:57:49 · 1418 阅读 · 0 评论 -
torch.max()及其参数探究/torch.max()返回的索引是什么意思
注:根据1.7.1文档, torch.Tensor.max与torch.max用法相同torch.max(input) → Tensor返回input中最大的元素实例: torch.max(input, dim, keepdim=False, *, out=None) -> (Tensor, LongTensor)Parameters input (Tensor) – 输入张量 dim (int) – 选择reduce的维 keepdim (bool)原创 2021-06-24 16:42:03 · 2891 阅读 · 0 评论