【PyTorch】
文章平均质量分 77
江前云后
若你喜欢彦祖,其实我很帅。
展开
-
RuntimeError: invalid argument 5: k not in range for dimension at...
问题根源这种情况往往出现在使用pytorch训练模型过程中,调用topk方法的时候。问题根源是,传入的参数超过了该dimension的限制。例如tmp的shape是[4,128,1],而调用了tmp.topk(129,dim=1),显然129>128是不合理的。另一种可能是,dataloader在load数据的时候,最后一个batch只剩了一个1个数据,而由于某些squeeze的操作导致传回的结果d的shape不是[1,128,1],而是[1,128]或者[128]。这种情况下,出现了和上面相同原创 2020-05-24 03:16:17 · 4114 阅读 · 3 评论 -
多GPU运行PyTorch报错dimension specified as 0 but tensor has no dimensions
错误信息dimension specified as 0 but tensor has no dimensions问题原因CrossEntropyLoss的输入必须为tensor,不能为scalar(标量),即输入的数据维度不能为None.解决办法使用view方法改变维度为1,如target = target.view(-1),这样假如原来target是1,使用后变为[1],维度从N...原创 2020-02-25 03:29:48 · 2690 阅读 · 0 评论 -
PyTorc添加网络图结构add_graph报错:RuntimeError: Cannot insert a Tensor that requires grad as a constant.
错误说明在使用PyTorch自带的TensorBoard的add_graph方法将网络图结构添加到监测信息中时,遇到如下报错:RuntimeError: Cannot insert a Tensor that requires grad as a constant. Consider making it a parameter or input, or detaching the gradie...原创 2020-02-01 02:17:18 · 7099 阅读 · 3 评论 -
pytorch中model eval和torch no grad()的区别
model.eval()和with torch.no_grad()的区别在PyTorch中进行validation时,会使用model.eval()切换到测试模式,在该模式下,主要用于通知dropout层和batchnorm层在train和val模式间切换在train模式下,dropout网络层会按照设定的参数p设置保留激活单元的概率(保留概率=p); batchnorm层会继续计算数据......原创 2020-01-08 02:06:11 · 25964 阅读 · 10 评论 -
docker运行pytorch报错: RuntimeError: Rerunning with num_workers=0 may give better error trace.
使用docker运行Pytorch的时候如果报如下错误:RuntimeError: DataLoader worker (pid 493) is killed by signal: Bus error. Details are lost due to multiprocessing. Rerunning with num_workers=0 may give better error trace...原创 2018-12-21 05:49:10 · 3354 阅读 · 1 评论 -
常用损失函数
常用损失函数损失函数(loss function或cost function)是关于模型输出(predict)与标签(ground-truth)的函数,主要用于衡量在训练集(或验证集、测试集)上的效果。1.均方误差损失函数 (MSE loss function)损失函数定义如下:L=(y−label)22L = \frac{(y-label)^2}{2}L=2(y−label)2很少...原创 2019-03-14 04:48:14 · 735 阅读 · 0 评论 -
损失函数中的logits
PyTorch(tensorflow类似)的损失函数中,有一个(类)损失函数名字中带了with_logits. 而这里的logits指的是,该损失函数已经内部自带了计算logit的操作,无需在传入给这个loss函数之前手动使用sigmoid/softmax将之前网络的输入映射到[0,1]之间.logit函数其形式如下:L(p)=p1−pL(p)=\frac{p}{1-p}L(p)=1−pp...原创 2019-03-11 10:07:32 · 5053 阅读 · 0 评论 -
Docker中运行PyTorch错误 RuntimeError: DataLoader worker (pid 123456) is killed by signal: Aborted.
问题在Docker中运行PyTorch程序时,如果报错:RuntimeError: DataLoader worker (pid 123456) is killed by signal: Aborted.最可能的原因是,Docker的共享内存不足,解决办法是,要么改成更小的batchsize,要么退出docker后,重新运行docker并指定更大的共享内存。同时这个原因可以从docker的...原创 2019-04-10 04:36:48 · 18027 阅读 · 2 评论