星月夜语
探索深度学习、计算机视觉的世界,务实中上下而求索。
展开
-
CNN模型部分参数加载
存在模型A和模型B,模型B为模型A的子集。加载预训练完成的模型A中的参数到模型B。原创 2023-02-08 11:22:14 · 262 阅读 · 0 评论 -
机器学习常用的损失函数
1、https://keras.io/api/losses/regression_losses/#logcosh-function(Keras API reference/Losses/ Regression losses)2、https://www.machinecurve.com/index.php/2019/10/04/about-loss-and-loss-functions/ (About loss and loss functions)3、https://blog.csdn....原创 2021-07-06 22:18:24 · 195 阅读 · 1 评论 -
多GPU训练,加载模型时报错
一、问题描述多个GPU训练,保存时没有加module ,导致加载模型时报错。正确写法应该如下: # save model if num_gpu == 1: torch.save(model.module.state_dict(), os.path.join(opt.outf, 'net.pth')) else: torch.save(model.state_dict(), os.path.join(...原创 2021-04-02 08:31:53 · 2015 阅读 · 2 评论 -
深度学习—激活函数详解(Sigmoid、tanh、ReLU、ReLU6及变体P-R-Leaky、ELU、SELU、Swish、Mish、Maxout、hard-sigmoid、hard-swish)
非线性激活函数详解 饱和激活函数Sigmoid函数tanh函数hard-Sigmoid函数 非饱和激活函数Relu(修正线性单元):Relu6(抑制其最大值):ELU(指数线性单元)SELULeaky-Relu / R-ReluP-Relu(参数化修正线性单元)R-Relu(随机纠正线性单元)Swishhard-SwishMishMaxout关于激活函数统一说明 参考链接 因为深度学习模型中其它的层都是线性的函数...转载 2021-02-05 18:53:52 · 5499 阅读 · 0 评论 -
变分自编码器VAE
论文:Auto-Encoding Variational Bayesgit:AntixK/PyTorch-VAE: A Collection of Variational Autoencoders (VAE) in PyTorch.1、原文作者在深度学习上的实战理论指导2、具体原理框图如下:VAE主要由编码和解码两部分构成,enconde和 decode. 为了实现反向传播,作者使用重参数技巧。它本质上就是在我们常规的自编码器的基础上,对encoder的结果(在VA...原创 2020-12-10 09:18:37 · 306 阅读 · 0 评论 -
decoder JPEG not available”-PIL
pip uninstall Pillowpip install Pillow亲测有效 win10参考:https://stackoverflow.com/questions/22558976/oserror-decoder-jpeg-not-available-on-windows?answertab=votes原创 2020-12-07 12:01:25 · 398 阅读 · 0 评论 -
Pytorch 模型的网络结构可视化 pytorchviz
一、安装命令:sudo pip install graphviz #或sudo pip install git+https://github.com/szagoruyko/pytorchviz二、报错问题使用graphviz 生成树报错(graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'Digraph.gv'])解决方法:首先,在官网上下载软件,安装完成后,手动配置环境变量或原创 2020-08-26 16:50:05 · 1333 阅读 · 0 评论 -
python 实现cosine annealing strategy
import mathimport matplotlib.pyplot as pltimport torch.optim as optimfrom torchvision.models import resnet18lr_rate = 0.0001model = resnet18(num_classes=10)# T_max = 1000epoch_total = 25epoch_iter = 609warm_up = 800lambda1 = lambda epoch: ...原创 2020-08-04 09:52:58 · 809 阅读 · 0 评论 -
Res2net:多尺度骨干网络结构
《Res2Net: A New Multi-scale Backbone Architecture》来自:南开大学程明明组 论文:https://arxiv.org/abs/1904.01169>多尺度的信息首先一张图片里物体可能有不同的大小,例如沙发和杯子就是不同大小的,第二,必要的上下文信息可能所占的面积要大于物体本身。例如,我们需要根据大桌子的信息来更好的确定桌上的是个杯子或是笔筒。第三点,对细精度分类和语义分割,理解局部,观察不同尺度下的信息是有必要的。...转载 2020-07-24 09:37:37 · 3484 阅读 · 0 评论 -
python h5 图片读写
问题描述: 由于存储的是不同大小的图片:直接使用 h5 存储, 报错如下:TypeError: Object dtype dtype(‘O’) has no native HDF5 equivalent问题原因:h5 无法统一处理不同shape 的数据。应对这种情况,有两种方法:1、散装:将相同维度的数据放在同一个dataset中,即把原始数据拆分成多个dataset存储。PS: 我自己有多少图片,新建了多少个dataset:code:数据写入:import h5p..原创 2020-07-20 15:13:28 · 1027 阅读 · 0 评论 -
Matlab 与python 部分函数说明
1、reshape:python 用法:>> mat = [1:12]mat = 1 2 3 4 5 6 7 8 9 10 11 12>> reshape(mat,[3,4])ans = 1 4 7 10 2 5 8 11 3 6 9 12matlab 用法:A原创 2020-07-15 18:21:46 · 242 阅读 · 0 评论 -
几种卷积
1、常规卷积:需要的参数量:Cin×K×K×Cout2、分组卷积:分组卷积需要的计算量 :Cin×K×K×Cout / g3、深度可分离卷积(Depthwise Separable Convolution):要的计算量:Cin×K×K+Cout×1×13.1 深度可分离卷积的过程而应用深度可分离卷积的过程是①用16个3×3大小的卷积核(1通道)分别与输入的16通道的数据做卷积(这里使用了16个1通道的卷积核,输入数据的每个通道用1个3×3的卷积核卷...原创 2020-07-07 09:23:34 · 656 阅读 · 0 评论 -
pytorch 实现 tensorflow中 conv 的“same”方式
问题描述:tensorflow中的conv padding有 same模式,在pytorch中对应的实现代码如下:Here is a very simple Conv2d layer with same padding for reference. It only support square kernels and stride=1, dilation=1, groups=1.class Conv2dSame(torch.nn.Module): def __init...原创 2020-06-21 16:37:57 · 1693 阅读 · 0 评论 -
pytorch float object has no attribute backward
一、问题描述 编写自己的loss 函数时, loss.backward() 在反向传播一会后,就报错:'float' object has no attribute 'backward'二、原因: 报错的原因是output,也就是损失函数这里输出了int值。但是在实验过程中,梯度确实是下下降了。只是总是在下降过程中出现了这种报错。三、解决办法:def my loss(input): loss = np.sum(input)/len(input) return ...原创 2020-06-08 21:38:34 · 12353 阅读 · 4 评论 -
几个常用的计算两个概率分布之间距离的方法以及python实现
1. 欧氏距离(Euclidean Distance)欧氏距离源自欧氏空间中两点间的直线距离,是最常见的一种距离计算方式。计算公式是两个矩阵中对应元素之差的平方和再开方。python实现:2. 曼哈顿距离(Manhattan Distance)曼哈顿距离又称为“城市街区距离”或者“出租车距离”,由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,用以计算两个点在标准坐标系上的绝对轴距总和。上图中蓝色的线是欧氏距离,红色、蓝色和黄色的线是曼哈顿距离。曼哈顿距离的计算公式是两个矩阵中对应元素.转载 2020-05-29 16:37:34 · 3543 阅读 · 0 评论 -
SVM之matlab与python对比测试
python 下与matlab下SVM 使用结果对比:1、matlab测试code: scores_train = ones(28,1)*0.8 scores_train(1,1)=6 scores_train(2,1)=4 score_size= size(scores_train) D=ones(28,5)*0.2 scores_train svm_model = svmt.原创 2020-05-28 08:42:33 · 907 阅读 · 0 评论 -
KL距离,Kullback-Leibler Divergence
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。其物理意义是:在相同事件空间里,概率分布P(x)的事件空间,若用概率分布Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。我们用D(P||Q)表示KL距离,计算公式如下:当两个概率分布完全相同时,即P(x)=Q(X),其相对熵为0 。我们知道,概率分布P(X)的信息熵为:转载 2020-05-25 13:47:56 · 722 阅读 · 0 评论 -
MATLAB 下编译MatConvNet
环境配置:matlab 2018aVS2015CUDA V10.11、下载matconvnet-1.0-beta25MatConvNet2、安装编译器.点击附加功能——》附加功能资源管理器安装MinGW3、下载VS2015 并安装并将cl.exe 所在目录添加到系统变量Path中:4、安装CUDA V10.1 NVIDIA官方可以下载5、修改vl_compilenn.m 文件对标到 line 359% MEX_LI...原创 2020-05-24 17:55:08 · 947 阅读 · 0 评论 -
CS321n-图像预处理
1、matlab下图像批量添加噪声clear all;close all;pt = '.\jp2k\';ext = '*.bmp';dis = dir([pt ext]);nms = {dis.name};for k = 1:1:length(nms) nm = [pt nms{k}]; image = imread(nm); g=imnoise(...原创 2019-11-07 19:18:07 · 354 阅读 · 0 评论 -
pytorch--transforms.RandomChoice 使用code
import numpy as npfrom sklearn.model_selection import StratifiedShuffleSplitimport PILfrom torchvision import transformsfrom transforms import *from PIL import Imageimport matplotlib.pyplot...原创 2020-05-01 16:48:19 · 3221 阅读 · 0 评论 -
win10 下GeForce 940MX + CUDA10.0 +pytorch环境配置
前言: 笔记本显卡是硬伤,为了验证GPU上跑的代码的正确性。就想着利用下笔记本上的显卡:具体步骤:1、确定自己的显卡是否支持CUDA 打开英伟达官网找到CUDA-Enabled GeForce Products寻找有没有自己对应的显卡型号,如果有才能下载。2、安装CUDA进入CUDA下载链接,根据电脑的属性点击。下载完成后点击安装即可。我下载的是10...原创 2020-04-17 18:38:45 · 9553 阅读 · 4 评论 -
python图片翻转、添加文字、添加方框(附论文-图像局部放大代码,亲测可用)
python图片翻转、添加文字、添加方框(附论文-图像局部放大代码,亲测可用)原创 2020-04-16 16:12:13 · 547 阅读 · 0 评论 -
CS231n-模型参数初始化--Weight Initialization
一、模型初始化from torch.nn import init#define the initial function to init the layer's parameters for the networkdef weigth_init(m): if isinstance(m, nn.Conv2d): init.xavier_uniform_(m.weig...原创 2020-04-11 18:57:42 · 382 阅读 · 0 评论 -
Python编程:方差、标准差、均方差、均方根值、均方误差、均方根误差
python实现代码# -*- coding: utf-8 -*-import mathdef get_average(records): """ 平均值 """ return sum(records) / len(records)def get_variance(records): """ 方差 反映一个数据集的离散程度...转载 2020-04-08 21:02:00 · 3830 阅读 · 0 评论 -
pytorch学习(十三)—学习率调整策略
学习率学习速率(learning rate)是指导我们该如何通过损失函数的梯度调整网络权重的超参数。学习率越低,损失函数的变化速度就越慢。虽然使用低学习率可以确保我们不会错过任何局部极小值,但也意味着我们将花费更长的时间来进行收敛,特别是在被困在高原区域的情况下。new_weight = existing_weight — learning_rate * gradient图1采用...原创 2020-02-13 20:43:32 · 1115 阅读 · 0 评论 -
pytorch中的L2和L1正则化,自定义优化器设置等操作
在pytorch中进行L2正则化,最直接的方式可以直接用优化器自带的weight_decay选项指定权值衰减率,相当于L2正则化中的λ \lambdaλ,也就是:中的λ \lambdaλ。但是有一个问题就是,这个指定的权值衰减是会对网络中的所有参数,包括权值w ww和偏置b bb同时进行的,很多时候如果对b bb进行L2正则化将会导致严重的欠拟合1,因此这个时候一般只需要对权值进行正则即可,...原创 2020-04-01 17:26:06 · 4632 阅读 · 2 评论 -
RuntimeError: Expected object of scalar type Double but got scalar type Float for argument #3 'mat1'
pytorch 在model 送入数据时,总是报错,提示是数据类型的问题,正确做法是noise_img_rgb.float() Tensor 后面添加 float()即可++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++补充:Pytorch的数据类型为各式各样...原创 2020-03-31 20:10:14 · 6571 阅读 · 0 评论 -
python中PIL.Image和OpenCV图像格式相互转换
PIL.Image转换成OpenCV格式import cv2from PIL import Imageimport numpy image = Image.open("plane.jpg")image.show()img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)cv2.imshow("OpenCV",img)...转载 2020-03-17 16:45:24 · 325 阅读 · 0 评论 -
标准化后的图像保存
import torch as timport cv2from torchvision import transforms as Timport torchvision as tvfrom PIL import Imageimport numpy as npimg_reals_path='./test_croped/temp_img/48.3.png'o...原创 2020-03-17 16:31:06 · 631 阅读 · 0 评论 -
batch_size 的设置
batchsize过小:每次计算的梯度不稳定,引起训练的震荡比较大,很难收敛。batchsize过大:(1)提高了内存利用率,大矩阵乘法并行计算效率提高。(2)计算的梯度方向比较准,引起的训练的震荡比较小。(3)跑完一次epoch所需要的迭代次数变小,相同数据量的数据处理速度加快。缺点:容易内容溢出,想要达到相同精度,epoch会越来越大,容易陷入局部最优,泛化性能差。...转载 2020-03-08 11:34:23 · 2706 阅读 · 0 评论 -
python RuntimeError:cannot join current thread
一、问题提出在运行程序的时候老是会报错RuntimeError:cannot join current thread二、问题解决定位到你安装的tqdm包,一般都是安装在site-packages/tqdm中,然后找到_monitor.py文件,打开在以下内容中做出修改from threading import Event,Thread,current_thread #第一行...原创 2020-02-25 13:04:23 · 4316 阅读 · 1 评论 -
pytorch学习笔记:fine-tune 预训练的模型
一、主旨torchvision 中包含了很多预训练好的模型,这样就使得 fine-tune 非常容易。本文主要介绍如何 fine-tune torchvision 中预训练好的模型。二、安装pip install torchvision三、如何 fine-tune以 resnet18 为例:from torchvision import modelsfrom t...转载 2020-02-22 09:44:15 · 1559 阅读 · 0 评论 -
python:urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]
一、问题描述fine_tune 时提示如下:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) 产生这个问题的原因在于python本身,pyhon升级到2.7.9以后,引入了一个新特性,当使用urll...原创 2020-02-22 09:30:40 · 4486 阅读 · 0 评论 -
visdom:Downloading scripts, this may take a little while
一、问题描述晚上尝试执行了多次:python -m visdom.server总是卡在如下提示中: ioloop.install() # Needs to happen before any tornado imports!Checking for scripts.Downloading scripts, this may take a little while晚...原创 2020-02-22 06:57:10 · 4342 阅读 · 2 评论 -
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
摘要:本文主要介绍 输入图像 batch normalization ,计算自己数据集合的 mean 以及std。一、前言数据规范-Normalization是深度学习中我们很容易忽视,也很容易出错的问题。我们训练的所有数据在输入到模型中的时候都要进行一些规范化。例如在pytorch中,有些模型是通过规范化后的数据进行训练的,所以我们在使用这些预训练好的模型的时候,要注意在将自己的数据投...原创 2020-02-13 20:08:51 · 4674 阅读 · 1 评论 -
常用网址记录
1、 PuTTY下载官网: http://www.chiark.greenend.org.uk/~sgtatham/putty2、ubuntu 软件包下载官网:https://launchpad.net/ubuntu/3、uboot下载地址ftp://ftp.denx.de/pub/u-boot/4、xilinx linux源码下载地址https://github.原创 2017-09-10 21:24:06 · 404 阅读 · 0 评论 -
Conv2d卷积层到Linear全连接层之间的变换——解决方法2(核心)
一、本文问题阐述 记录 Conv2 卷积层 到全链接层之间参数设置报错问题的解决办法: 开始阶段全链接层1参数设置为: self.fc1 = nn.Linear(16*5*5, 120) 运行时报错:RuntimeError: shape '[-1, 1024]' is invalid for input of size 512 ...原创 2020-02-11 17:58:13 · 5045 阅读 · 0 评论 -
PyTorch实例入门(1):图像分类
PyTorch的0.4版本带来了不小的变化,其中我最喜欢的是:Tensor和Variable这两个类合并了。原来nn的input是一个variable,现在可以直接用tensor。这样在语法上更简洁易用,对初学者也更容易理解。 Windows support。官方支持了windows,作为一个最近回归了windows的人很开心哈哈。之前内存泄露的问题似乎也解决了,所以我又开心地从Tenso...转载 2020-02-09 16:35:32 · 2056 阅读 · 0 评论 -
吴老师讲解——深度学习
1、特征缩放可以加快梯度下降。吴老师 视频讲解https://www.bilibili.com/video/av9912938?p=21原创 2020-01-06 21:38:05 · 352 阅读 · 0 评论 -
model_zoo里面有各种预训练模型
举例:Faster-RCNN基于vgg19提取features,但是只使用了vgg19一部分模型提取features。步骤:下载vgg19的pth文件,在anaconda中直接设置pretrained=True下载一般都比较慢,在model_zoo里面有各种预训练模型的下载链接:model_urls = {‘vgg11‘: ‘https://download.pytorch.org/m...转载 2020-01-06 16:30:15 · 6776 阅读 · 0 评论