Pytorch
梦坠凡尘(AICV与前沿)
这个作者很懒,什么都没留下…
展开
-
融合两个模型的权重 - 权重平均
model_list = [ './ckpt/rexnetv2_live_labelsmooth_plus65_eh3_94.77.pt.tar', './ckpt/rexnetv2_live_labelsmooth_plus65_eh5_96.36.pt.tar', ]# 融合两个模型,模型一的backbone + 模型二的全连接层def integration2(model_list, fl_原创 2021-08-31 17:43:14 · 3319 阅读 · 0 评论 -
卷积特征图大小计算
原创 2021-05-19 17:27:52 · 274 阅读 · 0 评论 -
解决Failed to export an ONNX attribute ‘onnx::Gather‘ 报错
问题使用CAAttention转换onnx时出现如题错误,原因是AdaptiveAvgPool2d()里面的参数没有常量化。class CoordAtt(nn.Module): def __init__(self, inp, oup, reduction=32): super(CoordAtt, self).__init__() self.pool_h = nn.AdaptiveAvgPool2d((None, 1)) self.pool_w =原创 2021-03-12 16:44:50 · 1840 阅读 · 5 评论 -
解决 OSError: cannot identify image file 或者 Caught TypeError in DataLoader worker process 8
跑模型在读取数据是出错如题,找了两个多小时干到深夜依然不能解!!!本地把数据过了一遍都是OK的,代码也是一样!!!一模一样的代码一模一样的数据为何本地OK,服务器就挂了????最后网上给百度说是可能是Pillow版本的原因本地是Pillow == 5.2.0服务器是5.1.0最后将服务器升级为 Pillow5.2.0==真的解决了!!!!!!!!!谜之答案!!!!!浪费晚上两个多小时。心痛!谨记!...原创 2020-09-18 09:38:02 · 4119 阅读 · 2 评论 -
IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
报错代码criterion = nn.CrossEntropyLoss().to(device)loss = criterion(output, target)网上很多说criterion的第一个输入问题,我的解决是改变batchsize 大小即可原创 2020-09-03 14:11:42 · 2331 阅读 · 0 评论 -
加载预训练权重的部分参数
pretrained_dict = ...model_dict = model.state_dict()# pretrained_dict: ['A', 'B', 'C', 'D']# model_dict: ['A', 'B', 'C', 'E']# 1. filter out unnecessary keyspretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}# pretrain原创 2020-08-24 21:03:07 · 1219 阅读 · 0 评论 -
Pytorch中的CrossEntropyLoss()函数案例解读和结合one-hot编码计算Loss
使用Pytorch框架进行深度学习任务,特别是分类任务时,经常会用到如下:import torch.nn as nncriterion = nn.CrossEntropyLoss().cuda()loss = criterion(output, target)即使用torch.nn.CrossEntropyLoss()作为损失函数。那nn.CrossEntropyLoss()内部到底是啥??nn.CrossEntropyLoss()是torch.nn中包装好的一个类,对应torch.nn.fu原创 2020-05-09 15:07:20 · 29505 阅读 · 19 评论 -
PyTorch Cookbook --- 常用代码段整理合集
本文代码基于PyTorch 1.0版本,需要用到以下包import collectionsimport osimport shutilimport tqdmimport numpy as npimport PIL.Imageimport torchimport torchvision1. 基础配置检查PyTorch版本torch.__version__ ...转载 2020-05-08 13:45:30 · 387 阅读 · 0 评论 -
Pytorch下根据layers的name冻结层进行finetune训练
进行深度学习任务,当数据量较少而使用的网络模型很大时,很容易出现overfitting现象。其中一个避免过拟合的方式就是finetune:这时候我们不需要对模型的所有参数进行训练,只需要冻结某些层,训练部分层就可以。...原创 2020-04-24 14:49:25 · 660 阅读 · 0 评论 -
Pytorch下label的one-hot形式转换方法
进行网络训练时通常需要对label转为one-hot形式,下面给出自己知道的两种方法。方法一巧妙使用torch.eye()方法torch.eye(n, m=None, out=None)参数:n (int ) – 行数m (int, optional) – 列数.如果为None,则默认为nout (Tensor, optinal) - Output tensor返回一个二维向...原创 2020-04-23 15:20:18 · 11764 阅读 · 0 评论 -
Pytorch学习(六) --- 模型训练的常规train函数flow及其配置
前几个Pytorch学习博客写了使用Pytorch的数据读取、数据增强、数据加载、模型定义,当完成上面几个步骤,就可以进行模型训练了。使用Pytorch进行模型训练,通常可以将train过程写成一个函数,简单的train写法常规的传入参数如下:数据加载器DataLoader目标模型model损失函数criterion优化器optimizer较为简单的train函数可以写为如下:d...原创 2020-04-03 17:35:59 · 13940 阅读 · 2 评论 -
Pytorch学习(五) --- torchvision.ImageFolder()的用法
在使用pytorch做深度学习任务的数据加载时,常用的方式是使用torchvision.Dataset类定义数据读取,然后使用torch.utils.data.DataLoader定义数据加载器。该部分内容见Pytorch学习(一)不过,有些分类数据的文件目录组织形式如下:即数据的分类已经分好,分别放在各自对应的文件夹。这时候,定义数据读取时,使用 torchvision包中的ImageF...原创 2020-04-03 14:44:53 · 5451 阅读 · 2 评论 -
Pytorch学习(四) --- 模型的保存和加载
qqq原创 2020-04-02 11:53:09 · 300 阅读 · 0 评论 -
Pytorch学习(三)--- 使用torchvision.transforms快速对图像数据做数据增强
torchvision.transforms是torchvision中的一个用于数据增强的包,包含了很多transform操作。原创 2020-04-01 15:23:05 · 2638 阅读 · 1 评论 -
Pytorch学习(二) --- 模型定义之torchvivsion.models快速构建预训练模型
torchvision原创 2020-03-31 17:18:01 · 1303 阅读 · 0 评论 -
Pytorch学习(一) --- 数据加载之Dataset类和DataLoader类
在进行深度学习任务时,一个完整的baseline通常分为以下几个部分:定义模型。这里需要构建网络模型,后面用这个模型去训练。定义数据增强。这里主要是在数据量少的情况下,对数据进行一些增强,比如平移,翻转,裁剪等操作,以提高模型的泛化能力(这一步不是必须的)。定义数据加载。这里定义数据加载器,使得模型训练时模型能源源不断地获取数据进行训练。对于Pytorch而言,数据记载主要需要用到Data...原创 2020-03-30 17:34:21 · 5577 阅读 · 2 评论