![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
pytorch
文章平均质量分 73
pytorch
_illusion_
知乎主页:https://www.zhihu.com/people/illusions-29/posts
展开
-
pytorch从hdfs载入模型、从二进制字符串载入模型
pytorch从hdfs载入模型原创 2022-07-07 17:07:34 · 1763 阅读 · 2 评论 -
pytorch冻结模型中某几层的参数
本文系转载,写得很详细,故记录于此,方便查阅(实际上只看方法1就够了)链接:https://www.zhihu.com/question/311095447/answer/589307812先列出4种可行参考方法,最后列出一种方法的代码实现。首先假设如下的模型:class Char3SeqModel(nn.Module): def __init__(self, char_sz, n_fac, n_h): super().__init__() .转载 2020-12-16 17:28:16 · 9656 阅读 · 0 评论 -
对抗训练的理解,以及FGM、PGD和FreeLB的详细介绍
对抗训练基本思想——Min-Max公式如图所示。中括号里的含义为,我们要找到一组在样本空间内、使Loss最大的的对抗样本(该对抗样本由原样本x和经过某种手段得到的扰动项r_adv共同组合得到)。这样一组样本组成的对抗样本集,它们所体现出的数据分布,就是该中括号中所体现的。外层min()函数指的则是,我们面对这种数据分布的样本集,要通过对模型参数的更新,使模型在该对抗样本集上的期望loss最小我们知道如何在已有数据上进行模型更新,但如何找到最佳扰动r_adv呢?很简单——梯度上升。所以说,对抗原创 2020-12-08 18:07:13 · 22635 阅读 · 14 评论 -
pytorch中state_dict()和named_parameters()的差别,以及model.buffer/model.parameter
在使用pytorch过程中,我发现了torch中存在3个功能极其类似的方法,它们分别是model.parameters()、model.named_parameters()和model.state_dict(),下面就具体来说说这三个函数的差异首先,说说比较接近的model.parameters()和model.named_parameters()。这两者唯一的差别在于,named_parameters()返回的list中,每个元祖打包了2个内容,分别是layer-name和layer-param,而pa原创 2020-11-27 12:42:02 · 5756 阅读 · 10 评论 -
如何在tensorboard中指定展示的曲线,并为其命名?
tensorboard --version : 2.3.0闲话少叙,直接上命令:tensorboard --logdir_spec name1:your/path/to/name1/event/dir,name2:your/path/to/name2/event/dir --port=11111如上所示,该命令有这么几个需要注意的地方:是--logdir_spec,而不是--logdir给出的tensorboard-events路径,是到其上层文件夹的,所以是它的文件夹路径路径不需要被多余的原创 2020-11-06 15:19:02 · 1760 阅读 · 0 评论 -
有关torch.nn.embedding的bug解决记录
废话少叙,直接上Traceback File "/home/shenfei1/anaconda3/envs/bert/lib/python3.6/site-packages/torch/nn/functional.py", line 1484, in embedding return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)RuntimeError: Expected tensor fo原创 2020-10-13 17:38:11 · 14174 阅读 · 6 评论 -
torch.view()、transpose()和permute()的联系与区别
最近被pytorch的几种Tensor维度转换方式搞得头大,故钻研了一下,将钻研历程和结果简述如下注意:torch.__version__ == '1.2.0’torch.transpose()和torch.permute()两者作用相似,都是用于交换不同维度的内容。但其中torch.transpose()是交换指定的两个维度的内容,permute()则可以一次性交换多个维度。具体情况如code所示:transpose(): 两个维度的交换 >>> a = torch.Tenso原创 2020-09-23 16:09:11 · 4395 阅读 · 3 评论 -
BERT中是怎么做到只计算[MASK]token的CrossEntropyLoss的?及torch.nn.CrossEntropyLoss()参数
nn.CrossEntropyLoss()的参数torch.nn.CrossEntropyLoss(weight=None, size_average=None,ignore_index=-100, reduce=None, reduction=‘mean’)weight:不必多说,这就是各class的权重。所以它的值必须满足两点:type = torch.Tensorweight.shape = tensor(1, class_num)size_average 、 reduce :原创 2020-07-02 16:55:13 · 4354 阅读 · 0 评论 -
LeetCode-2.两数相加——链表及对其性质的理解
题目:两数相加该题目没有技巧和算法的考察,只是在挑战一些很容易出错的细节问题right-code# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def addTwoNumbers(self, l1, l2):原创 2020-06-03 11:40:15 · 188 阅读 · 0 评论 -
浅谈sigmoid函数和softmax函数
问题提出最近在找文本分类问题的trick,偶尔看到夕小瑶大佬的一个回答:在文本分类任务中,有哪些论文中很少提及却对性能有重要影响的tricks? - 夕小瑶的回答 - 知乎https://www.zhihu.com/question/265357659/answer/578944550里面有句话引起了我的注意:关于二分类二分类问题一定要用sigmoid作为输出层的激活函数?当然不是,尝试一下包含俩类别的softmax吧。可能多一条分支就多一点信息叭,虽然后者在数学形式上更丑一点,但是实践中原创 2020-06-02 17:53:42 · 5288 阅读 · 1 评论 -
BERT、ALBERT模型加载——From pytorch_model.bin
模型文件加载的文件跳转路径:/run_classifier.py(387) AlbertForSequenceClassification.from_pretrained()->/model/modeling_utils.py(191) from_pretrained() ->/model/modeling_utils.py(363) load() ->/model/mo...原创 2020-04-27 17:00:03 · 6749 阅读 · 0 评论