
深度学习代码错误解决
pytorch、Keras、TensorFlow等也会有包括
Akita·wang
ADIC研究生
展开
-
Missing key(s) in state_dict | unexpected_keys | 模型加载 [torch.load] 报错【解决方案】
目录错误分析该报错快速直接解决方法错误分析代码块:model.load_state_dict(torch.load(checkpoint, map_location='cpu'))控制台报错提示:Unexpected key(s) in state_dict: “epoch”, “model”.或者是Unexpected key(s) in state_dict: “XXX”, “XXX”.该报错快速直接解决方法model.load_state_dict 时设置 strict=F原创 2022-04-14 14:43:04 · 2082 阅读 · 0 评论 -
明明安装成功了cv2(opencv-python)但是pycharm就是不识别?
今天在创建虚拟环境的时候,安装一个python包怎么也安装不上,困扰了我好久就是下面这个:Requirement already satisfied: opencv-python in d:\tools\anaconda3\lib\site-packages (4.5.3)我想安装opencv-python,怎么也安装不上,换源换环境也不行,原来是它默认路径已经不变了,不是在我现在的虚拟环境里,所以,需要指定路径pip install --target=/home/xxxx/anaconda3/e原创 2021-08-19 15:36:21 · 2340 阅读 · 0 评论 -
Opencv 解决问题 !_src.empty() in function ‘cv::cvtColor‘
在Windows中用python处理图像时遇到问题 -!_src.empty() in function 'cv::cvtColor'当时程序的思路是:逐个读取一个文件里所有的.jpg文件,然后传给一个函数,其中用到了cvtColor这个函数。在运行时报错,根据显示,应该是没有对cvtColor传入源图像。逐步检查:文件路径正确是绝对路径文件名中有中文最后是因为文件名中有中文,将处理后文件进行保存后发现英文文件名的图像正常,而中文错误。正确路径例子:D:/ADIC/experi.原创 2021-03-07 11:27:47 · 8840 阅读 · 3 评论 -
Keras中predict()方法和predict_classes()方法和evaluate()方法
predict()方法当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标签。# 预测样本属于每个类别的概率print(model.predict(imgs)) # 打印概率# [[3.3745366e-01 2.2980917e-02 2.0197949e-03 1.2046755e-02 1.9850987e-03# 1.3152690e-04 4....原创 2020-10-09 14:07:29 · 4826 阅读 · 0 评论 -
pytorch载入预训练模型后,只想训练个别层怎么办?使用filter(lambda p: p.requires_grad, model.parameters())
有了已经训练好的模型参数,对这个模型的某些层做了改变,如何利用这些训练好的模型参数继续训练 def init_weights(self, pretrained='',): logger.info('=> init weights from normal distribution') for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init原创 2021-05-23 20:36:28 · 3125 阅读 · 1 评论 -
复现代码时的一些小细节:Python __all__变量用法/读取pytorch环境配置
Python __all__变量用法只有以“from 模块名 import *”形式导入的模块,当该模块设有 __all__ 变量时,只能导入该变量指定的成员,未指定的成员是无法导入的。举个例子,修改 demo.py 模块文件中的代码:def say(): print("人生苦短,我学Python!")def CLanguage(): print("C语言中文网:http://c.biancheng.net")def disPython(): print("Py原创 2021-05-07 22:02:12 · 355 阅读 · 0 评论 -
pytorch中model=model.to(device)用法
有一些论文公布的代码采用了model=model.to(device)这种模式按照我的理解,应该是和model.cuda()是一样的功能使用cpu运算:将torch.load()函数中的map_location参数设置为torch.device('cpu')device = torch.device('cpu')model = TheModelClass(*args, **kwargs)model.load_state_dict(torch.load(PATH, map_location=原创 2021-04-23 10:30:22 · 1476 阅读 · 0 评论 -
AverageMeter一个用来记录和更新变量的工具
AverageMeter可以记录当前的输出,累加到某个变量之中,然后根据需要可以打印出历史上的平均这个class是一种常用的工具该class内容如下class AverageMeter(object): def __init__(self): self.reset() def is_empty(self): return self.cnt == 0 def reset(self): self.avg = 0.原创 2021-04-14 19:37:00 · 623 阅读 · 0 评论 -
pytorch里如何使用logger保存训练参数日志?
如果是指保存训练过程中的loss,accuracy等metric的话,可以采用下面的方法:import loggingdef get_logger(filename, verbosity=1, name=None): level_dict = {0: logging.DEBUG, 1: logging.INFO, 2: logging.WARNING} formatter = logging.Formatter( "[%(asctime)s][%(filename原创 2021-04-14 19:35:19 · 14498 阅读 · 8 评论 -
Pytorch的nn.Conv2d()参数详解
nn.Conv2d()的使用、形参与隐藏的权重参数 二维卷积应该是最常用的卷积方式了,在Pytorch的nn模块中,封装了nn.Conv2d()类作为二维卷积的实现。使用方法和普通的类一样,先实例化再使用。下面是一个只有一层二维卷积的神经网络,作为nn.Conv2d()方法的使用简介:class Net(nn.Module): def __init__(self): nn.Module.__init__(self) self.conv2d = nn..原创 2021-04-12 09:46:03 · 62079 阅读 · 2 评论 -
python之parser.add_argument()用法——命令行选项、参数和子命令解析器
目录argparse介绍argparse使用——代码示例add_argument() 方法定义如何解析命令行参数action='store_true’的使用说明一个完整的模块展示argparse介绍argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口。通过在程序中定义好我们需要的参数,然后 argparse 将会从 sys.argv 解析出这些参数。argparse 模块还会自动生成帮.原创 2021-03-27 18:47:04 · 9623 阅读 · 2 评论 -
dataloader多线程使用OpenCV出现死锁如何解决
问题复现在使用Pytorch的dataloader时,有一个参数num_workers,设置这个参数为大于0的整数,可以开启多线程加载数据。多线程加载数据可以预先加载下几批数据进内存,目的是为了避免GPU运算完一个batch的数据后等待CPU计算浪费GPU算力。开启后GPU运算一批batch后会从内存中读取下一批已经完成预处理的数据,这样会使得GPU始终保持运算状态,加快整个训练的过程。但是实际上,如果预处理使用了OpenCV模块,由于OpenCV默认会开启多线程进行处理,在Python没有开启多线原创 2021-03-27 18:34:49 · 2341 阅读 · 0 评论 -
RunTime Error : cuda out of memory
cuda out of memory分为两种情况第一种 CUDA out of memory. Tried to allocate 16.00 MiB错误信息:CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 7.93 GiB total capacity; 6.68 GiB already allocated; 18.06 MiB free; 41.28 MiB cached)原因:运行网络模型过程,占满了内存,引发中断原创 2021-03-27 17:43:03 · 1647 阅读 · 0 评论 -
TypeError: can‘t convert np.ndarray of type numpy.uint16.
报错代码为:label= torch.FloatTensor(label)报错TypeError: can't convert np.ndarray of type numpy.uint16. The only supported types are: float64, float32, float16, int64, int32, int16, int8, and uint8.解决方法:新加语句: label = label/1.0 lable = torch.Flo...原创 2021-03-27 14:45:11 · 3415 阅读 · 1 评论 -
ImportError: DLL load failed: 页面文件太小,无法完成操作。
python代码训练神经网络时,报错:“ImportError: DLL load failed: 页面文件太小,无法完成操作。”出现这个问题可能有两种情况。①不止在运行一个项目,另一个项目的python程序也在运行,关掉就可以了。②windows操作系统不支持python的多进程操作。而神经网络用到多进程的地方在数据集加载上,所以将DataLoader中的参数num_workers设置为0即可。 train_loader = torch.utils.data.DataLoader(...原创 2021-03-27 14:28:44 · 3407 阅读 · 0 评论 -
win 10+python3.6 安装NVIDIA apex及遇到的问题
按照以下步骤依次执行:github下载源码https://github.com/NVIDIA/apex下载到本地,如果下载不了可以克隆到码云仓库里,这样就可以高速下载了如何将github上项目使用码云下载cd apex //进入apex文件夹之中python setup.py install //安装即可遇到的问题:1.setuptools有ModuleNotFoundError→更新setuptoolspip install --upgrade setuptoo原创 2021-03-26 16:49:34 · 1633 阅读 · 0 评论 -
深度学习的模型调试小技巧,没别的,就是实用
前言很多人说深度学习是玄学,有很多说不清道不明的东西在里面,实际上,还是有一些规律可言的,虽然不是什么放之四海而皆准的真理,但也是长期总结的一些经验教训,可以试一试,看是不是有用。首先,为什么要调试模型?卷积神经网络(CNN)等深度学习模型具有大量的参数,我们把这些叫做超参数,因为它们并没有在模型中进行优化。你可以为这些超参数搜索最优值,但是你需要大量的硬件和时间。那么,一个真正的数据科学家会满足于瞎猜这些基本参数吗?改进模型的最佳方法之一是基于在那些对你的领域进行了深入研究的专家做的.原创 2021-02-07 16:25:37 · 1130 阅读 · 0 评论 -
解决TypeError: sum() received an invalid combination of arguments - got (Tensor, axis=int)
问题描述:运行torch.sum(torch.mul(users, pos_items), axis=1)时报错:TypeError: sum() received an invalid combination of arguments - got (Tensor, axis=int), but expected one of:* (Tensor input)* (Tensor input, torch.dtype dtype) didn't match because some...原创 2021-01-07 15:52:46 · 16380 阅读 · 1 评论 -
解决:如何在系统中其他python环境下打开命令行
我们需要在新配置的环境下打开命令行进行操作或安装一些包,如何做呢?首先打开anaconda navigator点击environments,选择需要打开命令行进行操作或安装包的新目录,我这里是newconda选择好新环境后,点击三角标志之后选择open terminal即可...原创 2021-01-04 09:09:37 · 289 阅读 · 1 评论 -
成功解决:PackagesNotFoundError: The following packages are not available from current channels
出现的问题:Collecting package metadata (current_repodata.json): ...working... doneSolving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.Collecting package metadata (repodata.json): ...working... doneSolving envir原创 2021-01-04 09:02:13 · 2216 阅读 · 0 评论 -
Python将数据保存到CSV中/with open() as f 用法
常见的读写操作:with open(r'filename.txt') as f: data_user=pd.read_csv(f) #文件的读操作with open('data.txt', 'w') as f: f.write('hello world') #文件的写操作#读取csv文件#coding:utf-8import csvwith open('qiye.csv','r') as f: f_csv = csv.reader(f) headers...原创 2020-10-09 14:18:42 · 16883 阅读 · 4 评论