pytorch
Time-leaper
这个作者很懒,什么都没留下…
展开
-
pytorch loss.backward问题:RuntimeError: element 0 of tensors does not require grad and does not have a
最近遇到了一个问题,在pytorch定义模型训练过程中 ,反向传播时loss.backward()在上面这个未知报错RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn该问题说明loss的梯度被关闭了,即loss的require_grad(False)反观我的模型,我定义的模型套了两个模型,如:class mymodel(nn.Module): def __init_原创 2022-05-18 12:03:02 · 7510 阅读 · 0 评论 -
pytorch分类任务训练的一些问题
1.将训练函数的精度计算挪到1个epoch之后,这样就可以计算得到正常的训练集精度和测试集精度2.将模型输出的softmax去掉,因为交叉熵函数会自己计算softmax值,如果不去掉,相当于计算两次softmax,导致模型不收敛3.对于类别较多并且每个类别数据较少的数据集,增大batch_size,增加模型的复杂程度,多加线性层等,能够提高分类效果。还可以做数据增强...原创 2022-04-22 22:57:38 · 1544 阅读 · 0 评论 -
如何解决 类似 nltk安装Wordnet出错[nltk_data] Error loading wordnet: <urlopen error [Errno 111] 问题
参考:https://blog.csdn.net/liu16659/article/details/109691534最近想做一个NLP的数据增强,于是找到了EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks代码地址https://github.com/jasonwei20/eda_nlp但是,需要nltk库,我直接pip install -U nltk然后按原创 2022-04-21 10:44:58 · 3184 阅读 · 0 评论 -
为何pytorch nn.KLDivLoss()损失计算为负数?
参考文献:https://www.zhihu.com/question/384982085先来看一下KL散度的定义这里是要用分布Q为标签(原始分布),分布P作为预测值(预测分布)在pytorch中,nn.KLDivLoss()的计算公式如下:上图y为标签,x为预测值,则pytorch应该以如下代码使用lossfunc = nn.KLDivLoss()loss = lossfunc(预测值, 标签值)但是,由于计算公式中,预测值x的输入要是对数形式,而标签值y则不需要,所以如果我们要对预原创 2022-04-19 16:55:23 · 5926 阅读 · 0 评论