
深度学习
RuiXuan Zhang
遥感在读PhD,研究方向为灾害遥感智能化解译,公众号“Deep Mapping”
展开
-
Mamba学习笔记(5)——快速配置(Win版,含Heardware-aware)
Mamba环境配置原创 2024-10-21 10:16:28 · 1056 阅读 · 0 评论 -
Mamba学习笔记(4)——Mamba核心
40分钟看懂Mamba模型核心内容原创 2024-10-19 16:23:35 · 1900 阅读 · 0 评论 -
Mamba学习笔记(2)—序列数据处理基础
Mamba学习笔记(2)——序列数据处理基础原创 2024-10-17 22:05:09 · 1202 阅读 · 0 评论 -
Mamba学习笔记(1)——原理基础
Mamba学习笔记原创 2024-10-15 22:08:32 · 1996 阅读 · 0 评论 -
SC-RoadDeepNet学习笔记
道路提取新文章学习笔记(正在更新)原创 2022-09-13 21:15:30 · 1014 阅读 · 0 评论 -
自监督(无监督)学习笔记(更新至MoCo v1)
博主近期正在学习自监督四部曲,欢迎感兴趣的cv小伙伴们相互讨论。原创 2022-08-16 16:45:32 · 685 阅读 · 0 评论 -
python实现二分类分割精度评价指标批量计算并保存为txt文件(F1、mIoU、recall、precision、accuracy)
from PIL import Imageimport osimport json# 获取四个值# TP:被模型预测为正类的正样本(预测道路且标签道路)# TN:被模型预测为负类的负样本(预测背景且真实背景)# FP:被模型预测为正类的负样本(预测道路但真实背景)# FN:被模型预测为负类的正样本(预测背景但真实道路)def get_vaslue(predict_folders_path, label_folders_path): # 加载文件夹 predict_fold原创 2022-04-12 21:39:50 · 2091 阅读 · 4 评论 -
Eigenfaces For Recognition学习笔记(持续更新)
文章目录人脸识别特征脸研究背景之前的主要方法:缺陷:研究成果及意义摘要引言相关工作PCA算法PCA 算法PCA特征脸PCA特征脸的代码编写SVM人脸识别特征脸研究背景1.人脸是社交领域最显著的特征2.罪犯识别,安保系统,图像电影特效等领域意义重大3.人脸特征维度高,受到姿态,光照,年龄等各种因素的影响,难度非常大之前的主要方法:1.通过自动或者半自动的方法来构建人脸的特征,比如用眼睛,鼻子,嘴巴,耳朵的一些局部特征或者相对距离来构建人脸特征2.一些古老的神经网络,比如联想网络来解决一些部分缺原创 2022-03-22 13:53:08 · 850 阅读 · 0 评论 -
VGG-Net论文学习笔记(含代码)
文章目录Very deeeo convolutional networks for large-scale image recognition历史意义摘要网络架构网络基础网络衍生网络特点1、堆叠kernel_size=3的kernel2、提出经典kernel_size=1的卷积代码复现Very deeeo convolutional networks for large-scale image recognition历史意义1、开启组小卷积时代(kernel_szie=3)2、作为后续分割网络架构的原创 2022-02-28 16:18:27 · 1085 阅读 · 0 评论 -
Alex Net 论文学习笔记(含代码)
文章目录ImageNet Classification with Deep Convolutional Neural Network历史意义AbstractIntroduction and datasetAlexNet's struction结构特点训练技巧SummaryImageNet Classification with Deep Convolutional Neural Network历史意义1、拉开卷积神经网络统治计算机视觉的序幕2、加速计算机视觉应用落地Abstract1、比赛数据集原创 2022-02-27 16:45:53 · 3510 阅读 · 1 评论 -
CV in Transformer学习笔记(持续更新)
为什么在cv中研究Transformer研究背景Transformer在CV领域刚开始崭露头脚,Transformer提出后在NLP方向取得良好成果,其全Attention结构,不仅增强了特征提取的能力,还保持了并行计算的特点,可以快速的完成NLP领域内多数任务,极大推动其发展。但是,几乎并未过多应用在CV方向。在此之前只有Obiect detection种的DETR大规模使用Transformer,其他包括Semantic Segmentation在内的领域并未实质性应用,纯粹Transformer结原创 2022-01-19 21:34:41 · 2889 阅读 · 0 评论 -
python实现图像差异性分析(标记并记录差异点)
from PIL import Imageimport osdef RGB_compare(base_layer_path, min_size_path, max_size_path, save_path): # 加载图像min表示图像1,max表示图像2 min_size = Image.open(min_size_path) min_size = min_size.convert('RGBA') max_size = Image.open(max_size_pat原创 2021-12-06 21:08:07 · 5665 阅读 · 1 评论 -
实时分割网络(持续更新)
实时性本质:牺牲精度换取效率问题1:实时与经典分割算法区别(1)为什么提出实时性?目前在深度学习领域,算法设计可分为两个派别 一派为学院派,研究强大复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定高效的落地在硬件平台上,效率是其追求的目标复杂的模型固然具有更好的性能,但是高额的存储空间计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。(学院派以论文为导向,工程派以生产为导向)(2)经典分割与实时分割经典分割代表算法 :FCN、U-Net、DeepLab系列、R原创 2021-12-04 18:10:55 · 5262 阅读 · 0 评论 -
python实现同一文件夹下全部图像叠置操作并另存输出
from PIL import Imageimport osdef pic_connect(base_layer_path, folders_path, save_path): # 加载底图(全黑图像作为底图) base_layer = Image.open(base_layer_path) # 三通道转四通道 base_layer = base_layer.convert('RGBA') # 读取文件夹内文件 folders = os.listdir原创 2021-12-03 16:10:01 · 1448 阅读 · 0 评论 -
如何快速查看torchvision中已有模型的继承方式?
(1)打开anaconda prompt(2)激活深度学习环境(自己配置的)(3)调用‘ipython’(4)载入models(5)打印模型架构原创 2021-10-28 20:44:02 · 193 阅读 · 0 评论 -
GCN如何使用大卷积替代小卷积?(论文讲解含超详细注解+中英文对照+配图)
Large Kernel Matters ——Improve Semantic Segmentation by Global Convolutional Network大卷积项——通过全局卷积网络提升语义分割Abstract摘要One of recent trends [31, 32, 14] in network architecture design is stacking small filters (e.g., 1x1 or 3x3) in the entire network b.原创 2021-10-28 20:20:20 · 2298 阅读 · 0 评论 -
DeepLab v3+为啥可以封神?(论文讲解含超详细注解+中英文对照+配图)
开始前,博主请求大家一定要看注解,博主的努力全在注解里,有帮助的记得一键三连呀!Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation基于空洞可分离卷积语义图像分割的编码-解码器(网络)AbstractSpatial pyramid pooling module or encode-decoder structure are used in deep neural networks .原创 2021-10-27 16:37:49 · 3984 阅读 · 1 评论 -
深度学习到底有多少种卷积方式?(含配图)
1 焦点如何通过卷积方式的选择改进已有网络架构关于convolution2 传统网络为什么用小卷积替代大卷积?(VGG Net)kernel_sizeAdvexpdis_Advlarge_kernel_size感受域范围大AlexNet、LeNet等网络都使用了比较大的卷积核,如5×5,11×11参数量多;计算量大small_kernel_size参数量少;计算量小;整合三个非线性激活层代替单一非线性激活层,增加模型判别能力VGG之后感受域不足;深度堆叠卷积原创 2021-10-26 16:01:09 · 1198 阅读 · 0 评论 -
Xception for DeepLab V3+(含超详细代码注解及论文原图)
import torchimport torchvision.models as modelsfrom torch import nn# 深度可分离卷积class SeparableConv2d_same(nn.Module): def __init__(self, inplanes, planes, kernel_size=3, stride=1, dilation=1, bias=False): super(SeparableConv2d_same, self).__原创 2021-10-23 22:23:41 · 1373 阅读 · 0 评论 -
sepconv(Separable Convolution)代码复现
import torch.nn as nnclass SP_conv(nn.Module): def __init__(self, in_channels, out_channels, kernel=3, stride=1, dilation=1, bias=False): super(SP_conv, self).__init__() self.conv = nn.Conv2d( in_channels, in_channels, ke原创 2021-10-23 15:21:52 · 734 阅读 · 1 评论 -
ASPP(Atrous Spatial Pyramid Pooling)代码复现
import torchimport torch.nn as nnimport torch.nn.functional as Fclass ASPP(nn.Module): def __init__(self, in_channels, out_channels): super(ASPP, self).__init__() dilations = [1, 6, 12, 18] self.layer1 = nn.Sequential(原创 2021-10-23 15:05:41 · 810 阅读 · 1 评论 -
基于Augmentor对image,label进行相同操作并统一重命名
import Augmentorimport osdef reName(dirname, new_path): count = 0 for cur_file in os.listdir(dirname): count += 1 oldDir = os.path.join(dirname, cur_file) # 旧文件 filetype = os.path.splitext(cur_file)[1] # 文件类型 n原创 2021-10-18 11:21:04 · 462 阅读 · 2 评论 -
python数据增强库——Augmentor
import Augmentorp = Augmentor.Pipeline("./test") # 生成输出的路径,在./test/output下,output文件夹自动生成p.rotate90(probability=0.5) # 逆时针随机旋转90度(随机概率可自行设定)p.rotate270(probability=0.5) # 顺时针随机旋转90度(随机概率可自行设定)p.rotate(probability=0.5, max_left_rotation=25 ,原创 2021-10-18 10:43:33 · 809 阅读 · 0 评论 -
DeepLab系列学习笔记
研究问题分辨率连续的池化或下采样操作会导致图像的分辨率大幅度下降,从而损失了原始信息,且在上采样过程中难以恢复。因此,越来越多的网络都在试图减少分辨率的损失,比如使用空洞卷积,或者用步长为2的卷积操作代替池化。实验证明,诸如此类的替代方法的确是有效的。(建议1:尽量减少网络中的池化操作)(规定1:感受野的大小是相对input而非last-layer)多尺度特征通过设置不同参数的卷积层或池化层,提取到不同尺度的特征图。将这些特征图送入网络做融合(跳跃连接),对于整个网络性能的提升很大。但是由于图像原创 2021-10-16 17:18:43 · 3002 阅读 · 0 评论 -
DeconvNet文章框架
算法架构提出了深度反卷积网络,编码部分使用VGG-16卷积层进行学习,解码器部分使用反卷积与反池化进行上采样。文章亮点由deconvolution and unpooling layers 组成上采样组件,逐像素分类完成预测特殊方法将object proposal(edge box)送入训练后的网络,政府图像是这些proposal分割结果的组合,这样就可以解决物体太大或者太小所带来的分割问题,改进了现存的基于FCN的方法模型评估算法能识别图像中精细结构以及不同尺度大小的目标,在PASCAL V原创 2021-10-14 20:25:49 · 375 阅读 · 0 评论 -
SegNet(持续更新)
算法结构提出SegNet网络,其核心的训练引擎包含一个encoder网络,和一个对称的decoder网络,即编码器-解码器结构,并跟随一个用于pixel-wise的分类层文章亮点decoder进行上采样的方式。直接利用与之对应的encoder阶段中,在经过最大池化时保留的polling index进行非线性上采样比较结果通过比较SegNet与FCN、DeepLab-LargerFOV、DeconvNet结构,统筹内存与准确率,SegNet实现了良好的分割效果模型评估在Camvid和SUN RG原创 2021-10-14 18:49:26 · 530 阅读 · 0 评论 -
深度学习笔记(14)——反池化(unpool)
反池化编码器中每一个最大池化层的索引都存储起来,用于之后在编码器中使用那些存储的索引来对相应特征图进行去池化操作。这有助于保持高频信息的完整性,但当对低分辨率的特征图进行反池化时,他也会忽略邻近的信息。...原创 2021-10-14 11:06:57 · 1124 阅读 · 0 评论 -
深度学习笔记(13)——随机丢弃层(dropout)
随机丢弃层当一个复杂的前馈神经网络被训练在小的数据集时,容易造成过拟合。为了防止过拟合,可以通过组织特征检测器的共同作用来提高神经网络的性能。Dropout可以作为训练深度神经网络的一种技巧供选择。在每个训练批次中,通过忽略一般的特征检测器(让一半的隐藏层节点值为0),可以明显的减少过拟合现象,这种方式可以减少特征检测器(隐藏节点)间的相互作用,...原创 2021-10-14 11:03:38 · 1284 阅读 · 0 评论 -
深度学习笔记(12)——编码器-解码器框架
编码器结构:编码器部分主要由普通卷积层和下采样层将feature map尺寸缩小,使其成为更低维度的表征。目的时尽可能多的提取低级特征和高级特征,从而利用提取到的空间信息和全局信息精确分割。解码器结构:解码器部分主要由普通卷积、删除改样层和融合层组成。利用上采样操作逐步恢复空间维度,融合编码过程中提取到的特征,在尽可能减少信息损失的前提下完成同尺寸输入输出。...原创 2021-10-14 10:58:31 · 5934 阅读 · 0 评论 -
(接上)python实现批量深度学习数据增强
import cv2import mathimport numpy as npimport osclass data_stength: def __init__(self, imgae, rows, cols, center=[0, 0]): self.src = imgae # 图像 self.rows = rows # 行尺寸 self.cols = cols # 列尺寸 self.center = center原创 2021-09-28 20:32:23 · 400 阅读 · 0 评论 -
python实现深度学习数据增强(基于CV)
import cv2import mathimport numpy as npclass data_stength: def __init__(self, imgae, rows, cols, center=[0, 0]): self.src = imgae # 图像 self.rows = rows # 行尺寸 self.cols = cols # 列尺寸 self.center = center # 旋转中心原创 2021-09-28 11:30:30 · 419 阅读 · 1 评论 -
深度学习入门笔记(11)——python实现一维线性回归
深度学习入门笔记(11)——python实现一维线性回归代码import numpy as npimport torchfrom torch import nnimport matplotlib.pyplot as pltfrom torch import optim# 初始化(x,y),数字是随便取的x = np.array([[3.3], [4.4], [5.5], [6.6], [3.1], [5.63423], [2.568], [3.546], [6.原创 2021-05-20 20:18:20 · 587 阅读 · 0 评论 -
深度学习入门笔记(10)——如何进行模型加载及保存?
深度学习入门笔记(10)——模型加载及保存(1)torch.save()使用torch.save()作为模型保存手段,使用方式主要有两种:第一种是保存全部,第二种是仅保存权重,使用方式如下。# 保留全部t.save(net, './{}.pth'.format(epoch))# 保留权重t.save(net.state_dict(), './{}.pth'.format(epoch))在这里博主必须强调一点,双GPU训练出的.pth文件不能在单GPU环境下被引用!!大家一定要记住这一点,环境原创 2021-05-20 15:48:26 · 867 阅读 · 0 评论 -
深度学习入门笔记(9)——什么是dataset?
深度学习入门笔记(9)——datasetdataset是用来对数据打包的抽象类,结构简单,直接举一个例子:class LoadDataset(Dataset): def __init__(self, file_path=[], crop_size=None): ....................... ....................... ....................... ...............原创 2021-05-20 15:29:57 · 2366 阅读 · 0 评论 -
深度学习入门笔记(8)——什么是optim?
深度学习入门笔记(8)——optim其实,我们在看过深度学习相关文章后,都会明白所说的训练其实就是在让预测结果和标签贴合,而评价贴合过程必采用损失函数,我们通过修改层级权重使得损失最小,而我们这部分要说的optim就是一种参数优化策略。这里我们讲两种传统的优化方式,主要介绍一下一阶optim:(1)一阶optim这种方法使用各个参数的梯度值来更新参数 ,最常用的一阶优化算法是梯度下降所谓的梯度就是导数的多变量表达式,函数的梯度形成了各个向量场 ,同时也是一个方向,这个方向上方向导数最大,且等于梯度。原创 2021-05-20 10:52:59 · 3241 阅读 · 1 评论 -
深度学习入门笔记(7)——什么是module?
深度学习入门笔记(7)——module(1)搭建计算图:神经网络需要计算图,torch.nn提供层级结构和NLLoss之类的损失,nn.Module提供所有的模型框架,举一个博主最近搭建的网络例子:pretrained_net = models.vgg16_bn(pretrained=False)class FCN(nn.Module): def __init__(self, num_classes): super().__init__() # 第一个下采样块,原创 2021-05-20 10:07:53 · 759 阅读 · 0 评论 -
深度学习入门笔记(6)——什么是tensor的variable激活?
深度学习入门笔记(6)——variable在tensor进入网络进行前后传播和自求导前,需要用variable进行激活,variable不会改变矩阵的数据类型,在属性上细分为,data,grad,grad_fn,其中,data就是字面意思,用于读取tensor的数值;grad表示反向传播梯度;grad_fn白送还获取variable所用手段,废话不多说,我们直接看代码,不足之处还请批评指正!(1)定义:x = torch.randn(3)x = torch.autograd.Variable(x,原创 2021-05-19 21:01:59 · 266 阅读 · 1 评论 -
深度学习入门笔记(5)——什么是tensor?
深度学习入门笔记(5)——tensor(1)定位:操作对象(2)概念:张量,表示一个矩阵,与numpy中的ndarray(ndarray本质是数组,可简单理解为数组里面嵌套数组)对应。(3)与numpy数组区别:tensor可以在GPU上运行,ndarray只能在CPU上运行。(4)数据类型:int、float等等都可以,默认情况为float(5)声明:# 定义两行两列列给定数值的矩阵matrix = torch.Tensor([[1, 1], [2, 2]])# 打印矩阵数据类型、大小及样原创 2021-05-19 16:28:25 · 637 阅读 · 4 评论 -
深度学习入门笔记(4)——为什么要选择pytorch作为编译框架?
深度学习入门笔记(4)——为什么要选择pytorch作为编译框架?在经过前三章的学习后,相信大家对深度学习有了初步的了解,但有些朋友会问“为什么在《深度学习入门笔记(2)——如何配置深度学习编译环境?》中要选择pytorch的学习框架呢?我看大多数巨佬写文章用的都是tensorflow呀?”因此,我觉得有必要对学习框架进行简单解读,对框架不感兴趣的朋友可以跳过本部分内容,不足之处还请批评指正!目前,深度学习可谓是一片繁荣景象,举个例子,一板砖下去可以砸倒一堆框架。但是,好的框架、可以被世界上各个国家的人原创 2021-05-19 09:59:58 · 289 阅读 · 1 评论 -
深度学习入门笔记(3)——编译深度学习需要什么基础?
深度学习入门笔记(3)——编译深度学习需要什么基础?(持续更新)首先,博主必须承认一点,没有任何基础直接接触深度学习是不现实的,在本章,博主将简单列举一些深度学习的基础知识,不足之处还请批评指正!高数基础1、微分、积分,主要是求导和偏导数2、梯度运算3、熵运算建议:最好可以学习一遍高数,推荐武忠祥老师的教辅及讲课视频线代基础1、矩阵乘法运算2、转置矩阵建议:对线代知识涉及并不多,推荐根据需求自学概率基础1、各种估计建议:概率是一门较为抽象的学科,会的是真厉害,不会的是真不行,建议动原创 2021-05-19 09:16:30 · 211 阅读 · 2 评论