当前位置:   article > 正文

深度学习中所遇问题_notebook untitled.ipynb is not trusted

notebook untitled.ipynb is not trusted

学习深度学习中所遇问题

1、 RuntimeError: stack expects each tensor to be equal size, but got [3, 256, 256] at entry 0 and [3, 249, 256] at entry 26
报错原因:(1)没有转换图片格式,不同的图片格式的颜色空间不同
设置in_channel的值与读入图像img1的实际通道数不符合。

2、 Jupyter Notebook无法创建新文件,提示文件不可信,终端里显示jupyter后台自动退出:Notebook Untitled.ipynb is not trusted jupyter。
原因:系统用户名为中文导致,不能简单更改系统用户名,否则会导致系统奔溃
解决方法:在终端运行:pip install pyzmq==19.0.2

3、TypeError:init() missing 2 required positional arguments
原因:调用的类有初始化值,调用的时候没有传值导致的
解决:调用的类后加上传值

4、Module.cuda() missing 1 required positional argument: ‘self’
在使用PyTorch的过程中出现上述错误的可能原因是类的名称后面没有加括号就使用了cuda()函数

5、RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor
问题:输入类型是tensor类型,与权重类型(cuda)不符
*
将tensor转成numpy的几种情况:
(1) GPU的Variable变量:a.cuda().data.cpu().numpy()
(2) GPU中的tensor变量:a.cuda().cpu().numpy()
(3) CPU中的Variable变量:a.data.numpy()
(4) CPU中的tensor变量:a.numpy()
.cuda()是读取GPU中的数据
.data是读取Variable中的tensor
.cpu是把数据转移到cpu上
.numpy()是把tensor变成numpy
*

7、
在这里插入图片描述

8、在这里插入图片描述

9、Can’t pickle local object ‘PretrainingDatasetWrapper.init..’. Did you mean: ‘_loader_iters’?
1、Pickle是用来序列化对象的工具,但是pickle对传入对象的要求是不能是内部类,也不能是lambda函数。可以使用第三方库dill来解决;
2、在dataloader中将num_workers的值改为0,或将use_multiprocessing的值置为false;
3、将lambda用另一个方法代替,改为别的函数;

10、ValueError: too many values to unpack (expected 2) 函数调用时,接收返回值的变量个数有问题
embX, projectionX = self.forward(X)
发现efficientnet返回的有两个参数,而resnet返回的只有一个参数,发现是有某函数返回两个参数时,未调用所导致。

11、RuntimeError: grad can be implicitly created only for scalar outputs
原因:多卡训练时,损失函数的计算写成self.loss_value = loc_loss+regresloss,就会报错,解决方法是将self.loss_value求平均或求和。

12、RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
原因:指的是代码中的tensor一会在cpu中运行,一会在gpu中运行,所以最好都是放在同一个device中执行。解决是找到含device参数的语句将其改为GPU运行

13、RuntimeError: Subtraction, the - operator, with a bool tensor is not supported. If you are trying to invert a mask, use the ~ or logical_not() operator instead.
原因:pytorch改版之后不允许对bool变量进行“-”操作,如果需要对bool变量进行反转,则使用“”操作。需要将其中1-mask换成mask

14、Error processing line 1 of F:\Python\lib\site-packages\vision-1.0.0-py3.10-nspkg.pth:
报错原因:调试代码安装包导致代码运行报错,解决方法是打开该文件,在第一行的分号后添加回车,保存后再次运行原来的代码。

15、ValueError: cannot reshape array of size 330303120 into shape (3,256,256)
报错是输入尺寸不对,输入的图片尺寸不同在reshape之前的resize部分出了问题,将原句改为image = imresize(image,[height,width]),输入的图片resize后能正常进行reshape。

16、TypeError: img should be PIL Image. Got <class ‘_io.BufferedReader’>
原因:读取图片时类型错误,cv2.imread(path)返回numpy.ndarry类型,open(path,’rb’)返回_io.BufferedReader类型,使用PIL.Image.fromarray(cv2.cvColor(img. cv2.COLOR_BGR2RGB),同时又去安装了cv2

17、TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class ‘NoneType’>
原因:存在可能为None的image,返回batch数据会自动清理掉不合法的数据。

18、EOFError: Ran out of input
原因:不小心删错了pycharm保存的模型,然后执行撤销操作后,pth文件恢复了,但文件大小为0kb,模型丢失。

19、TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class ‘PIL.Image.Image’>
原因:没有将数据转为torch的Tensor数据类型,读取数据的时候将其转换为Tensor类型。

20、TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class ‘NoneType’>
原因:花钱买教训,返回的batch中含None值,因为传入的label不能为None,将label值调为1后,无报错

21、 RuntimeError: The size of tensor a (16) must match the size of tensor b (14)
原因:将原对比学习中的Dataloader的drop_last设置为false。

22、文件调用从上级根目录中调用py文件,ucm-simclr-resnet该文件名无法引用,需要改成ucm_simclr_resnet
TypeError: squeeze(): argument ‘input’ (position 1) must be Tensor, not tuple
这里的返回值是一个 字典类型,因此我们需要设置它的返回是不是字典类型

23、报错:TypeError: default_collate: batch must contain tensors, numpy arrays, numbers, dicts or lists; found <class ‘PIL.Image.Image’>
对于train_data使用batch_size的方式进行训练,一定要设置batch的类型,所以规定train_data一定要加语句transform=torchvision.transforms.ToTensor()

24、MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6
后解决方法是在最上面的导入部分加import matplotlib
matplotlib.use(‘qt5agg’)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/980623
推荐阅读
相关标签
  

闽ICP备14008679号