自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杭城何生的博客

隐约雷鸣 阴霾天空@HM

原创 Linux Ubuntu 16.04 安装 opencv 3.4.2

0 准备步骤这一步尽量把系统更新一下,并且把相关的依赖库给装了,步骤如下:sudo apt-get updatesudo apt-get upgradesudo apt-get install build-essential cmake pkg-configsudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev li...

2019-05-28 21:31:03 4850

原创 Python:批量修改文件名,删除或替换某文件名里的字符串

import os# 输入你要更改文件的目录path = "E:/xxx"# 123是要查找文件名里包含123的文件originalname = '123'# 321是要被替换的字符串,如果就是删除originalname,那么replacename = ''就可以replacename = '321'def replace(path): files = os.listdir(path) # 得到文件夹下的所有文件名称 # 遍历文件夹 for file in .

2020-08-03 23:38:46 14

原创 Pytorch:正向传播推理(predict)出的outputs的值的每一个元素数为什么是两个或多个

两个或多个其实指的就是类别数,如果是一个二分类问题,就是两个。红框和蓝框分别代表了每个类别的推理值,(此时可能通过了激活函数或者未通过),反正最后就是将通过激活函数后的值进行比较大小,大者为识别的类别,即predict对应的label...

2020-07-25 16:57:10 23

原创 Pytorch:计算图像数据集的均值和标准差

在使用torchvision.transforms进行数据处理时我们经常进行的操作是:transforms.Normalize((0.485,0.456,0.406), (0.229,0.224,0.225))前面的(0.485,0.456,0.406)表示均值,分别对应的是RGB三个通道;后面的(0.229,0.224,0.225)则表示的是标准差这上面的均值和标准差的值是ImageNet数据集计算出来的,所以很多人都使用它们但是如果你想要计算自己的数据集的均值和标准差,让其作为..

2020-07-25 14:36:13 83

原创 Python:根据文件名中的关键字,将文件名中含某一关键字的文件复制或移动到另一个目录

#-*- coding: UTF-8 -*-import osimport shutilsrc_dir_path = 'E:/PycharmProjects/CatDogData' # 源文件夹to_dir_path = 'E:/PycharmProjects/CatDogData/cat' # 存放复制文件的文件夹key = 'cat' # 源文件夹中的文件包含字符key则复制到to_dir_path文件夹中if not.

2020-07-25 13:25:13 75

原创 Pytorch:反transform操作,实现从tensor转成PIL image

该代码为transforms的反函数,实现从tensor转成PIL image,用于在框架的enumerate迭代中的中间图片可视化。代码思想如下,可以根据具体情况和需要进行修改def transform_invert(img_, transform_train): """ 将data 进行反transfrom操作 :param img_: tensor :param transform_train: torchvision.transforms :retu

2020-07-23 17:06:05 27

原创 Pytorch:transforms二十二种数据预处理方法及自定义transforms方法

transforms.normalize功能:逐channel地对图像进行标准化公式:output=(input - mean) / stdmean:各通道的均值std:各通道的标准差inplace:是否执行原地操作,默认False

2020-07-23 12:08:52 51

原创 Pytorch:transforms

transforms上篇博文《Pytorch:Dataloader和Dataset以及搭建数据部分的步骤》提到transforms是pytorch数据模块的预处理部分。transforms来自torchvision,torchvision是pytorch的计算机视觉工具包。torchvision有以下几个主要的模块:torchvision.transforms:常用的图像预处理方法torchvision.datasets:常用数据集的datasets实现,MNIST,CIFAR-10,Image

2020-07-23 12:02:58 57

原创 Pytorch:Dataloader和Dataset以及搭建数据部分的步骤

接下来几篇博文开始,介绍pytorch五大模块中的数据模块,所有概念都会以第四代人民币1元和100元纸币的二分类问题为例来具体介绍,在实例中明白相关知识。数据模块的结构体系数据模块分为数据的收集、划分、读取、预处理四部分,其中收集和划分是人工可以设定,而读取部分和预处理部分,pytorch有相应的函数和运行机制来实现。读取部分中pytorch靠dataloader这个数据读取机制来读取数据。DataloaderDataloader涉及两个部分,一是sampler部分,用于生成数据的索引(

2020-07-21 00:03:21 176

原创 Python:filter函数,lambda函数及一起使用

filter函数filter(self, /, *args, **kwargs) # 过滤filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。例如:实例def is_odd(n): return n % 2 == 1newlist = filter(is_od.

2020-07-19 19:30:27 65

原创 Pytorch:通过pytorch实现逻辑回归

逻辑回归logistic regression逻辑回归是线性的二分类模型(与线性回归的区别:线性回归是回归问题,而逻辑回归是线性回归+激活函数sigmoid=分类问题)模型表达式:f(x)称为sigmoid函数,也称为logistic函数,能将所有值映射到[0,1]区间,恰好符合概率分布,如下图所示[0,1]区间形成二分类,一般以中点值(0.5)做界标,即为什么说逻辑回归是线性的,是因为线性回归的wx+b与0的大小关系正好对应f(wx+b)中与0.5的大小关系,.

2020-07-16 23:11:12 3797

原创 Pytorch:机器学习深度学习整个模型训练的总体步骤思路

下面给出模型训练步骤的思路,在用pytorch(也包括其他框架)编写代码进行网络编写时,建议都按照这几个步骤来进行,形成一个清晰的思路各模块简要说明数据:涉及数据的采集、清洗、划分及预处理等模型:根据任务的复杂程度选择简单的线性模型或复杂的神经网络模型等损失函数:根据任务的不同选择不同的损失函数,比如线性回归模型采用均方差函数,分类任务采用交叉熵函数等优化器:根据损失函数求得的梯度来更新模型参数迭代训练: 确立好前四大模块后,进行反复的迭代训练...

2020-07-16 23:03:05 3450

原创 Pytorch:autograd 自动求导

神经网络离不开大量的梯度求导,若是交给人为计算,这将是十分耗时的一件事情。在pytorch中,autograd自动求导系统能有效解决这一问题。torch.autogradtorch.autograd.backward()(标量或向量的backward()方法实则也是调用了autograd.backward()方法)功能:自动求取梯度tensors:用于求导的张量,如lossretain_graph:保存计算图(pytorch采用的是动态图机制,所以在一次反向传播结束时会释放掉计算图的

2020-07-16 14:23:12 3465

原创 PyTorch中梯度为什么默认自动累加,在反向传播前要手动将梯度清零?

低显存跑大batchsize的角度这种模式可以让梯度玩出更多花样,比如说梯度累加(gradient accumulation)传统的训练函数,一个batch是这么训练的:for i,(images,target) in enumerate(train_loader): # 1. input output images = images.cuda(non_blocking=True) target = torch.from_numpy(np.array(target)).

2020-07-16 13:53:03 3535

原创 Pytorch:计算图与动态图机制

计算图computational graph表示方法计算图是用来描述运算的有向无环图计算图有两个主要元素:结点(node)和边(edge)结点表示数据,如向量,矩阵,张量边表示运算,如加减乘除卷积等计算图不仅使计算显得简洁,更重要的是其表示梯度求导更为方便用计算图表示y=(x+w)*(w+1): 令 a=x+w b=w+1 则y=a*b梯度求导结合题例的算式和计算图表示 从上述的计算图表示中,可以看到,除...

2020-07-16 00:00:04 3417

原创 Pytorch:通过pytorch实现线性回归

线性回归Linear Regression线性回归是分析一个变量与另外一个(多个)变量之间关系的方法因变量:y 自变量:x 关系:线性 y=wx+b 分析:求解w,b求解步骤:1. 确定模型2. 选择损失函数3.求解梯度并更新w,b此题:1. model:y=wx+b2. MSE:3. w = w - LR*w.grad b = b - LR*w.grad下为代码实现import torchim...

2020-07-15 17:52:01 3452

原创 PyTorch:函数加下划线代表的意思

PyTorch中,一般函数加下划线代表直接在原来的 Tensor 上修改

2020-07-15 15:55:37 3441

原创 消融实验(ablation study)是什么?

Robert Long对消融研究(或消融实验)定义:通常用于神经网络,尤其是相对复杂的神经网络,如R-CNN。我们的想法是通过删除部分网络并研究网络的性能来了解网络“消融”的原始含义是手术切除身体组织。ablation 解释: 通过机械方法切除身体组织,如手术,从身体中去除,尤指器官、异常生长或有害物质。“消融研究”这一术语的根源于20世纪60年代和70年代的实验心理学领域,其中动物的大脑部分被移除以研究其对其行为的影响。在机器学习,特别是复杂的深度神经网络的背景下,已经采用“消融研究”

2020-07-15 11:50:10 178

原创 Pytorch:Tensor 张量操作

张量操作一、张量的拼接与切分1.1 torch.cat()功能:将张量按维度dim进行拼接tensors:张量序列dim:要拼接的维度1.2 torch.stack()功能:在新创建的维度的上进行拼接tensors:张量序列dim:要拼接的维度(如果dim为新的维数,则新增一个维度) ...

2020-07-14 23:37:48 3520

原创 Pytorch:Tensor 张量的概念及张量的各种创建

Tensor 概念张量的数学概念:张量是一个多维数组,它是标量、向量、矩阵的高位扩展张量在pytorch中的概念:tensor之前是和pytorch早期版本中的variable一起使用的。variable是torch.autograd的数据类型,主要用于封装tensor,进行自动求导data:被包装的Tensorgrad:data的梯度grad_fn:创建Tensor的function,是自动求导的关键requires_grad:指示是否需要梯度is_leaf:指

2020-07-13 23:20:41 3530

原创 多核学习、多视图学习、多任务学习和集成学习的区别和联系

多核学习既可以用在多任务学习,也可以用在多视图学习,也有研究同时对多任务和多视图同时采用多核的,目前已经有通用多任务多核学习方法。如果将多核用在多任务学习,相当于不同任务共享子空间的同时,还有各自特有的一个空间,这个特有空间通过采用不同的核来表示。多任务中采用多核,由此强调任务个性。如果将多核用在多视图学习,不同视图的数据采用不同的核,相当于多源数据融合的一种方法,这些也早有研究。而无论是多任务,多视图还是多核,都是希望充分利用不同来源的数据,去提高模型的整体效果,知识在不同任务和视图之间互通...

2020-07-12 21:51:44 63

原创 机器学习:L1和L2正则化项的理解

正则化(Regularization)机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作 ℓ1\ell_1ℓ1​ -norm 和 ℓ2\ell_2ℓ2​ -norm,中文称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(...

2020-07-10 10:26:58 99

原创 百度网盘不开会员,在线开启倍速功能

说起网盘,我们第一时间肯定会想到百度网盘。百度网盘里面有个倍速播放的功能,当我们看视频,特别是看教学视频的时候,能大大节约我们的时间,不过目前这个功能属于会员的专属特权。我们不开会员,能实现在线开启倍速功能,操作非常简单。一、软件自带火狐浏览器(pc端)操作:①在火狐浏览器,登陆百度网盘网页版,打开想要播放的视频界面②在视频播放窗口,点击右键,切换播放速度即可二、代码提速当然有些小伙伴现在用惯了谷歌浏览器,不想再去换,谷歌浏览器也可以实现哦,需要代码来协助..

2020-07-09 21:01:04 3969

原创 pip清华镜像源使用方法总结

临时使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package注意,simple不能少, 是https而不是http设为默认修改~/.config/pip/pip.conf(Linux)%APPDATA%\pip\pip.ini(Windows 10)$HOME/Library/Application Support/pip/pip.conf(macOS)(没有就创建一...

2020-07-06 22:34:06 763

原创 Pytorch官网一直很卡进不去,离线下载pytorch各类版本安装包方法

进入https://download.pytorch.org/whl/torch_stable.html选择自己对应版本的pytorch或torchvision等等文件下载即可

2020-07-04 23:25:04 208

原创 pytorch 计算 CrossEntropyLoss 和 softmax 激活层

pytorch 计算 CrossEntropyLoss 不需要经 softmax 层激活!用 pytorch 实现自己的网络时,如果使用CrossEntropyLoss 我总是将网路输出经 softmax激活层后再计算交叉熵损失是不对的。考虑样本空间的类集合为 {0,1,2},网络最后一层有 3 个神经元(每个神经元激活值代表对不同类的响应强度),某个样本送入网络后的输出记为 net_ou...

2020-04-25 00:39:03 180

原创 UserWarning:Implicit dimension choice for softmax has been deprecated. Change the call to include..

问题:UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument. input = module(input)这个警告的原因是softmax()函数已经被弃用了,虽然程序还是可以运行成功,但是这个做法不被py...

2020-04-25 00:31:50 164

原创 TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory ..

在pytorch结合cuda下,直接使用output.data.numpy()会报标题错误:TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.解决办法:output.data.cpu().numpy()把CUD...

2020-04-25 00:27:20 108

原创 /opt是什么?linux中/usr和/opt的区别

说到/opt,常与/usr来一起对照说明:linux中/opt目录用来安装附加软件包,是用户级的程序目录,可以理解为D:/Software。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。linux中/u...

2020-04-24 10:13:49 197

原创 linux Ubuntu为例安装sublime text 3

下载Linux安装包:http://www.sublimetext.com/3得到:sublime_text_3_build_3200_x64.tar.bz2解压:tar -xvvf sublime_text_3_build_3200_x64.tar.bz2 sublime_text_3/sudo mv sublime_text_3/ /opt创建链接:sudo ln -s...

2020-04-24 10:08:13 110

原创 python删除文件中含"指定内容关键字"的一行

python运行版本:2.7 (3以上的版本需将里面不兼容的语句改写一下)#!/bin/env python import shutil, sys, os darray = [ "xxxxxxxxx", ";;;;;;;;;"] def isInArray (array, line): for item in array: if item in line: ...

2020-04-23 11:26:21 470

原创 CondaVerificationError ... specified in the package manifest cannot be found 错误

使用conda install xxxxxx的时候报如下类似错误:CondaVerificationError....specified in the package manifest cannot be found.解决:删除缓存的包重新下载conda clean --packages --tarballs并重新再次conda install xxxx...

2020-04-20 16:55:25 141

原创 pip在虚拟环境(conda)中仍安装到全局下的问题

问题描述在用conda创建的虚拟环境中,使用pip安装包,包仍被安装到全局,或者显示权限不足。问题查找使用which pip会发现使用的pip仍为全局路径下的pip解决python -m pip install <package>...

2020-04-15 16:58:47 829

原创 机器学习:多分类模型评价准则

机器学习中,遇见的往往是二分类问题比较多,二分类模型的模型评价准则很多,Auc_score,F1_score,accuracy等等都是比较常用的。而针对多分类问题来说,有些二分类的评价准则就相对而言不怎么适用了。虽然可以将多分类问题转化为多个2vs2问题进行讨论,步骤繁杂的同时效果也得不到保障。目前在进行多模态的一个分类研究,在模型评价时也废了不少脑筋,所以在这里将看到的比较常用的多分类评价准则进...

2020-04-10 23:41:44 130

原创 核函数的小理解

核方法升维主要的好处是线性可分。把本来非线性的特征,展开到线性了。原本两者同时存在需要做一个“与”操作 feature[1] & feature[2] == 1。有了第三维,只需要一个判断 feature[3] == 1 就可以了。在特征少或者简单的时候,还能这么一眼看出来,如果特征多,或者模式复杂的时候,核方法就能把复杂的模式分解到一个很容易解决的超平面里面来,用线性方法解。但这里,选用...

2020-03-17 23:49:09 58

原创 胎儿MRI高分辨率重建技术:现状与趋势(暂总结到2017年)

1, 胎儿MRI及其特点在产前影像检查中,超声是最常用的成像方式,但是由于对比度低、视野狭窄、信噪比低等原因不能不能很好地显示胎儿的细节结构,例如发育中的大脑、内脏等。如果超声检查中发现胎儿的一些疑似结构异常,使用MRI可以作为补充检查,提供更详细的结构信息,因为MRI有较好的软组织对比度,视野较大,信噪比高,无辐射,并且可以采集任意切面的图像信息,能看到一些超声中不易发现的结构。胎儿MRI正...

2020-03-15 18:11:18 335

原创 总变分(Total Variation)最小化方法(也称 TV minimization)

Rudin等人(Rudin1990)观察到,受噪声污染的图像的总变分比无噪图像的总变分明显的大。总变分定义为梯度幅值的积分: 其中;Du是图像的支持域。限制总变分就会限制噪声。...

2020-03-13 17:47:42 1535

原创 IEEE xplore论文文章免费下载方法

方法如下:1.找到某篇文章:https://ieeexplore.ieee.org/document/7965747查询到DOI是:10.1109/SERA.2017.79657472.打开http://sci-hub.tw输入10.1109/SERA.2017.7965747即可搜索...

2020-03-12 22:40:28 294

原创 以一个现实例子开始说起轻松理解条件随机场(CRF)

理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/]假设你有许多小明同学一天内不同时段的照片,...

2020-03-01 10:11:32 98

原创 Gabor 滤波简介与代码简单实现

Gabor是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,因此十分适合纹理分析。在人脸识别等领域有着很广泛的应用一、Gabor滤波简介Gabor是一个用于边缘提取的线性滤波器,其频率和方向表达与人类视觉系统类似,能够提供良好的方向选择和尺度选择特性,而且对于光照变化不敏感,因此十分适合纹理分析。Gabor滤...

2020-03-01 08:15:23 165

提示
确定要删除当前文章?
取消 删除