bug
代码bug汇总
诸神黄昏的幸存者
这个作者很懒,什么都没留下…
展开
-
multiprocessing.pool.RemoteTraceback:
发生multiprocessing.pool.RemoteTraceback:原因:可能只是路径错了,可以检查一下。原创 2022-01-13 14:56:50 · 2276 阅读 · 0 评论 -
RuntimeError: Boolean value of Tensor with more than one value is ambiguous
RuntimeError: Boolean value of Tensor with more than one value is ambiguous其中文意思大致是该张量含有多个(1个以上不含1个)boolean值,是不明确的,即无法比较。这里先举一个报错的例子:features = torch.zeros(8, 32)if features[1] == torch.zeros(32): # if 语句里面的条件无法判断 print('true')看一下if条件的实际结果是print(f原创 2021-12-31 14:39:00 · 84524 阅读 · 1 评论 -
RuntimeError: expected scalar type Long but found Float
ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) RuntimeError: expected scalar type Long but found Float将label转化为torch.LongTensor即可。label = label.type(torch.LongTensor)原创 2021-12-24 15:43:12 · 1553 阅读 · 0 评论 -
mmdetection bug集锦
1、register_module() missing 1 required positional argument: 'cls'原因:mmdetectionv1和mmdetectionv2版本在注册backbone等的时候有差别的地方如括号。v1是@BACKBONES.register_module,而v2是@BACKBONES.register_module()原创 2021-12-20 17:51:38 · 607 阅读 · 0 评论 -
解决mmdetection训练过程loss为nan的问题
我之前遇到两次loss为nan,一次是由于数据标注出现问题,换不同的模型参数均出现此问题,因此需要仔细检查数据格式;另外一次是换了个neck的结构,loss变为nan,后面通过将学习率调为原来的1/10(根据实际情况调整),就没有出现了。下面为官方文档给出的解决方案,应该可以解决大部分问题。检查数据的标注是否正常, 长或宽为 0 的框可能会导致回归 loss 变为 nan,一些小尺寸(宽度或高度小于 1)的框在数据增强(例如,instaboost)后也会导致此问题。 因此,可以检查标注并过滤掉那些特别原创 2021-12-08 19:04:25 · 5263 阅读 · 3 评论 -
RuntimeError: ./xxx.pth is a zip archive (did you mean to use torch.jit.load()?)
简单来说,pytorch版本不对应,用新版本pytorch保存的模型,用旧版本的pytorch去加载。原创 2021-11-03 22:46:55 · 4765 阅读 · 0 评论 -
RuntimeError: CUDA error: device-side assert triggered
这个问题往往是加载图像分类的标签有误。我的是标签差了1,因为往往从0开始,有时不需要减1忘记修改了。原创 2021-11-05 15:36:46 · 352 阅读 · 0 评论 -
collections.OrderedDict object has no attribute eval
pytorch==1.6.0(或更高的)的框架下保存模型时,不建议使用torch.save(model.state_dict(),model_path) # 该语句只保存了模型的权重参数未保存整个模型model.eval()会报错collections.OrderedDict' object has no attribute 'eval'正确语句:torch.save(model,'save_path') #保存时torch.load('save_path/model') #加载时因此原创 2021-10-29 13:07:54 · 1709 阅读 · 0 评论 -
OSError: cannot identify image的三种解决方案
报错语句主要是这一句:PIL.Image.open(self.image_path_at(i))问题出在前面一些图片可以运行,所以我利用try语句,将不能运行的那张图像检查出来,然后利用cv2的库进行重新地读取以及生成原图,然后将其替换掉就可以了。因为不是所有图像都不能运行,所以不是PIL的问题。另外两种解决方案可尝试:1、import Image 改成 from PIL import Image (这个简单,不一定解决)2、是因为PIL版本的问题,改成最新版也不一定合适,那就试一试 p原创 2021-07-25 10:35:54 · 4103 阅读 · 0 评论 -
TypeError: an integer is required (got type is tuple)
TypeError: an integer is required (got type is tuple ),这个错误。从字面意思理解,需要获取一个整型数据,而原代码是元组。需要做的就是,定位到错误的具体那行,将元组改为整型就行。我这边的是img_tr = [transforms.RandomResizedCrop((int(args.image_size), int(args.image_size)), (args.min_scale, args.max_scale))]将 (int(args.i原创 2021-10-18 15:46:04 · 7663 阅读 · 0 评论