![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
torch
文章平均质量分 68
是暮涯啊
很多人,很多事,过去了就再也回不来了,珍惜当下,把握现在!
展开
-
深度学习图像数据增强
作为cv的基础,数据增扩是很重要的一环。一般来说主要有以下几种:1、通过openCV操作 2、使用torchvision.transform 3、使用torchvision.transform.function 4、使用nvidia.dali 5、albumentations库。对应的数据也一般可以分为1、单图处理,如分类。2、同尺寸多个数据处理,如分割,去噪。3、不同尺寸多个数据处理,如超分。下面将按照方法简单总结一下。几何变换旋转,缩放,翻转,裁剪,平移,仿射变换色彩空间亮度,对比度,饱和度,原创 2022-06-07 10:32:09 · 908 阅读 · 1 评论 -
光流估计中cost volume详解
原创声明:是暮涯啊我认为之所以光流估计中会使用独有的cost volume,其初始形态是传统基于块的光流估计方法中,对每个前一帧图像F1中的某个块B1,计算其在一定范围内对应于后一帧图像2中哪个块B2最接近。假如B1的坐标为(x1,y1)B2的坐标为(x2,y2),对应这个块的光流矢量就是(x2-x1,y2-y1)。1、FlowNet中的correlation1.1 介绍FlowNet作为光流估计的开山鼻祖,对correlation的计算花了大量篇幅。作者说这些分割啊,深度估计啊这些网络可以产生像素原创 2022-05-12 18:02:31 · 4338 阅读 · 2 评论 -
pytorch加载模型错误 RuntimeError: Error(s) in loading state_dict for Model: Missing key(s) in state_dict
闲的没事,写写模型加载。模型在保存时侯以键对值保存,同时在加载时根据现在网络的键值查找模型对应的键值,然后加载。一般报错是因为模型和网络的键值不匹配。1、最常见的问题是键值多了或者少了 module.此种情况是模型在DataParallel或者DDP训练后保存的键值有module.,对应的网络的键值则没有module.1)可以通过:model = nn.DataParallel(model)将模型的键值加上module.2) 也可以通过遍历模型的键对值修改键值。 如:...原创 2021-10-14 20:03:55 · 6405 阅读 · 0 评论 -
numpy array转tensor
1、torch.tensor(data,*,dtype=None,device=None,requires_grad=False,pin_memory=False) 最推荐数据类型:和输入相同,可以使用dtype改变数据类型拷贝类型:总是深拷贝; 如果数据为tensor,不想拷贝,使用torch.Tensor.requires_grad_()ortorch.Tensor.detach()具体参考:https://pytorch.org/docs/stable/gener...原创 2021-08-27 11:26:07 · 7974 阅读 · 0 评论 -
nnunet代码使用
nnunet作为一个医学分割中神一样的代码。有很多地方可能在运行时需要改进。这就要求我们不能仅满足于安装nnunet包,并通过官方命令运行。而应对代码进行修改。本文主要讲解在下载nnunet后如何通过修改代码运行。关于nnunet的讲解,和安装nnunet包,使用命令运行的方法推荐这个博主的四篇文章。阅读本文是可以同时参考官方使用教程1、设置conda环境为了避免环境适配的问题,最好安装一个新的conda环境。python3, torch1.6以上。温馨提供:安装conda环境.原创 2021-06-21 18:18:09 · 5318 阅读 · 2 评论 -
from torch._C import * ImportError:**torch/undefined symbol: Py│Slice_Unpack
dao完整报错:原创 2021-06-15 21:01:50 · 1658 阅读 · 5 评论 -
os.environ[‘CUDA_VISIBLE_DEVICES‘] 无效
eaaaaa 我又要被自己蠢哭了我搜了好多原因,比如把位置放在torch使用之前,其他文件中重复定义等等原因都没有解决。后来发现是我敲代码时候用了小写我写的是:os.environ['cuda_visible_devices'] = "1,2,3"应该是: os.environ['CUDA_VISIBLE_DEVICES'] = “1,2,3”最后注释: 该命令作用是定义网络可以看到的物理显卡编号。和 nn.DataParallel(model, device_ids...原创 2021-05-06 21:37:02 · 4057 阅读 · 2 评论 -
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
记录一个被我蠢哭的BUG先说结论:和其他博客说的:版本不匹配,显存不足等原因都不同。我是因为网络分类数>网络输出数, 如5分类任务,网络输出层数为4原创 2021-05-06 18:34:27 · 431 阅读 · 0 评论 -
图像分割中的Dice Loss
本文只总结我对Dice Loss的一些理解1、首先简单介绍一下,这个不多说,详细如知乎所讲。Dice 定义为2倍交集/和, 范围在[0,1]:Dice Loss 取反或者用1-,定义为:2、Dice Loss 与 BCE 的结合各自的作用。Dice Loss与交叉熵经常搭配使用,具有以下优点:1)Dice Loss相当于从全局上进行考察,BCE是从微观上逐像素进行拉近,角度互补。2)当出现前后景极不均衡情况时。如一个512*512的图片只有一个10*10的分割样例。BCE原创 2020-12-27 20:17:21 · 16063 阅读 · 12 评论 -
python计算连通域
使用skimage的measure.label。可获得不同连通域from skimage import measurelabel, num = measure.label(les_array, connectivity=2, background=0, return_num=True)# 返回的label是将连通域标注为1,2,3。。。的标签# num 连通域个数参数介绍:详见:https://scikit-image.org/docs/dev/api/skimage.mea..原创 2020-05-23 20:48:02 · 5948 阅读 · 0 评论 -
pytorch参数默认初始化方式
结论: 因版本而定。 早期的版本用Xavier, 后期的版本用kaiming_normal 目前我所知1.1版本之后是用 kaiming_normal 自己版本对应可以去torch库中查看。过程: 从博客https://blog.csdn.net/qq_36338754/article/details/97756378...原创 2020-05-08 17:25:54 · 1688 阅读 · 0 评论 -
pytorch将标签转为onehot
由于想多分类中使用Diceloss,所以需要将[0,1,2,..N]类型的标签转化为onehot类型。input数据类型: torch.LongTensor() 数据形状:[bs, 1, *] 可为2D或3D数据 def make_one_hot(input, num_classes): """Convert class index t...原创 2020-04-20 17:47:42 · 8136 阅读 · 1 评论 -
pytorch交叉熵使用方法
交叉熵相关理论网上好多,这篇只记录一下在分割中怎么用torch.nn.BCELoss 和torch.nn.CrossEntropyLoss,也方便自己以后使用。1、二分类用nn.BCELossoutput: 定义: 网络的输出 数值: 需要经过sigmoid()函数归一化到[0,1], shape: [bs,*] # *表示长宽高等任意...原创 2020-04-01 20:09:18 · 6054 阅读 · 4 评论 -
linux安装Anaconda及pytorch配置环境 无root权限
说在前面,该博客的应用场景是: 已有安装好cuda环境的服务器,我个人没有root权限,只配置自己环境自己使用。1、下载Anaconda安装包使用命令行下载清华镜像Anaconda包wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.07-Linux-x86_64.sh...原创 2020-03-20 20:14:41 · 3178 阅读 · 0 评论 -
RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 1. Got 51 and 50 i
我是因为加载数据时,bs>1,但是数据图像尺寸不同,所以报错,将bs=1即可原创 2020-03-19 22:41:18 · 1418 阅读 · 5 评论 -
nn.Upsample对不同维度tensor上采样
torch中,我现在想把一个纬度为[bs, channel, depth, height, width]的3D tensor通过nn.Upsample转换为 [bs, channel, depth, height*2, width*2]的tensor则,init定义上采样是应为:self.upsacle = nn.Upsample(scale_f...原创 2020-03-16 20:32:03 · 3523 阅读 · 0 评论 -
Python求最大值和最大索引时max函数的作用。
python中 .max() 函数在对 array 和 tensor 作用不同。1. array数组使用max的效果是返回最大值eg:zheshi = np.array([[1,2,3], [4,5,6]]) 返回: array([[1, 2, 3], [4, 5, 6]])zheshi.max(0)...原创 2019-11-22 11:36:47 · 3281 阅读 · 0 评论 -
Alexnet,Vgg, GoogleNet,resnet等常见模型torch版本代码github地址
https://github.com/pytorch/vision/blob/master/torchvision/models原创 2019-09-28 12:32:07 · 633 阅读 · 0 评论 -
torch将tensor类型的数据进行可视化
1、将tensor转为array类型。假设此时image是tensor类型,利用下面语句转为array。img_np = image.numpy()2、利用cv2将array转为图片并保存img_np = img_np[0].transpose([1,2,0]) #取出其中一张并转换维度img_np = (img_np - np.min(img_np))/(np.m...原创 2019-09-24 10:40:24 · 3316 阅读 · 1 评论