深度学习笔记
地表最菜研究生
深度学习,图像处理,欢迎交流学习
展开
-
大卷积核的应用
卷积核的应用原创 2022-02-28 18:28:58 · 579 阅读 · 0 评论 -
深度学习避坑提示:RuntimeError: Error(s) in loading state_dict for Model: Missing key(s) in state_dict
RuntimeError: Error(s) in loading state_dict for Model: Missing key(s) in state_dict原创 2022-02-19 18:29:58 · 10125 阅读 · 6 评论 -
3090显卡 爆显存调试
3090显存问题原创 2022-02-10 20:49:10 · 3669 阅读 · 1 评论 -
深度学习笔记-实验过程/代码结构
代码结构dataset.py从文件夹中读取数据按照文件尺寸大小进行中心裁剪【FCN中的思路】标签编码numpy转tensor实例化数据类train.py读取数据加载模型配置相关参数训练并输出结果(指标计算)验证并输出结果(指标计算)保存最好的权重test.py读取数据加载已经保存的最好权重测试并输出结果(指标计算)predict.py读取数据加载已保存的最好权重得到预测图并上色输出彩色预测图片...原创 2022-01-15 16:38:37 · 684 阅读 · 0 评论 -
深度学习笔记-经典分割算法总结&后续论文思路
经典分割算法汇总(6篇经典语义分割网络,非实时性)FCN:语义分割端到端的开端U-Net&FushionNet:医学分割算法中的龙头SegNet&DeconvNet:对称编解码结构DeepLab系列:从v1到v3+,算法越来越完善,结果越来越好GCN:角度一,重用大卷积核ExFuse&DFN:角度二,宏观角度看待语义分割接下来进度与调优思路以Unet为基础,在自建数据集上跑出Baseline分数对比DeeplabV3+,查看分数提升多少以二分类任务为主,参考原创 2022-01-11 10:15:22 · 1742 阅读 · 0 评论 -
深度学习论文-DAnet&ExFuse&DFN
DANet&ExFuse&DFN网络,主要根据论文展开原创 2022-01-09 17:17:36 · 2133 阅读 · 0 评论 -
深度学习笔记-快速查看torchvision中的模型架构
在模型创建的时候,经常需要对模型进行修改,修改的时候需要查看模型架构。下面使用终端中调用IPython的方法对torchvision中的模型架构进行展示查询代码:首先ipython激活ipythonfrom torchvision import modelsprint(models.resnet152())注意:resnet152后面要加()...原创 2021-12-30 21:03:27 · 1918 阅读 · 0 评论 -
深度学习笔记-GCN+卷积方式汇总
卷积方式汇总 convolution summaryGCN论文总结 Global Convolution Network原创 2021-12-30 12:02:15 · 2463 阅读 · 0 评论 -
深度学习笔记-ResNet、Inception和Xception
ResNet(加深)resnet抛开数学层面的损失函数修改,从网络结构方面进行优化,通过残差块的方式,保证在更深的网络中也能保证良好的网络性能(VGG时代网络层数的过度加深会导致网络性能退化)Inception(加宽)除了网络深度问题,我们怎样在不增加计算成本的前提下扩展神经网络?Inception网络通过在每层模型中设置不同大小的卷积核,并用1*1卷积进行降维,让下一层自行决定使用什么卷积中的特征。Xception(将通道上的关系和空间关系分离进行识别)Xception的假设是:「跨通道的相原创 2021-12-22 15:00:26 · 1220 阅读 · 0 评论 -
常用tf语句
###############################################################################环境的安装:尽量从清华或者豆瓣源进行安装pip install tensorflow-gpu==2.3.0 -i https://pypi.douban.com/simple/###############################################################################import原创 2021-11-30 10:13:32 · 929 阅读 · 0 评论 -
深度学习-skimage.transform报错的玄学问题
背景:将实验室工作站环境复制进公司的linux机器中,中间出现报错。错误原因是shape问题,不能将(1,112,112)转为(1,3,112,112),应该是(3,112,112),所以这里shape变换出现问题错误分析:定位错误位置为skimage.transform下的rescale方法,代码如下:anch_im = rescale(io.imread(args.anchor_face)/255.,112./600.,order=5)错误定位之后开始排除,首先认为是skimage的版本问题原创 2021-10-15 14:51:00 · 790 阅读 · 0 评论 -
深度学习笔记-FCN-指标计算
混淆矩阵(巧妙的将真实值与预测值对应起来)六分类问题:如下L:label标签P:预测像素类别n×L+P:类别数×标签值+预测值行0-5对应预测标签列0-5对应真实标签得到的结果对应表示为:真实为0,预测为0的像素点有1个;真实为1,预测为1的像素点有2个;真实为2,预测为1的像素点有1个。。。依此类推。对角线上的元素是预测正确的,对角线上的元素求和就是整个图片分类正确的像素个数PA = 对角线上元素和(标记正确像素)/ 总和...原创 2021-06-25 11:18:16 · 486 阅读 · 0 评论 -
深度学习笔记-语义分割FCN-损失函数
损失函数KL散度越小,表示:标签和预测值越接近SoftmaxOne-hot独热编码总类列表中,将对应索引位置的值置为1,其他都为0的一种编码形式原创 2021-06-24 15:08:54 · 940 阅读 · 0 评论 -
深度学习笔记 - FCN全卷积神经网络
感受域感受野的计算公式:RFl+1 = RFl + (kernel_size -1) × stridelayer1的感受野:RF1 = 1layer2的感受野:RF2 = 1+(3-1)×1 = 3layer3的感受野:RF2 = 3+(3-1)×1 = 5感受野越大,分割时获取的全局信息越多,分割越准确。存在的问题在全卷积神经网络中感受域问题存在????和熊掌不可兼得的问题:增大stride能够获得更大的感受野,但同时会丢失图像中的信息。解决方法deeplab系列提出了空洞卷积的方原创 2021-06-17 19:25:04 · 562 阅读 · 5 评论 -
对抗攻击笔记02:李宏毅对抗攻击视频课P3P4-how to attack
how to attack目标:找到一个x*使得与原x0的差距越小越好,同时还要让f(x)与原结果远离的越远越好方法:通过梯度下降方法,以x0为初始值不断迭代x生成新的x‘ ,同时如果x‘的变动大于我们设置的阈值的时候对x‘进行修正修正函数:fix(x‘)在规定区域中寻找与x’最接近的那个点作为修正后的x‘Attack ApproachesFGSM:原论文不迭代,一次攻击成功每个像素点在各个方向上取反,(一拳超人),最后获得的结果就是原图像的攻击结果,使用范数降改动后的x1拉回范数范围。原创 2021-05-25 11:06:16 · 191 阅读 · 0 评论 -
深度学习排错笔记-jupyter notebook切换到指定的anaconda虚拟环境中
之前一直用base环境中的tensorflow2.1,今天想要切换到tf1.13gpu下运行,虽然从anaconda中activate到指定的环境,但是jupyter notebook打开后一直找不到一个文件路径,明明在conda的env文件中是有的,找了好久才发现是环境出错,jupyter notebook还是在base环境中使用tf2.1,气傻了。解决方法在虚拟环境下创建kernel:(此步感觉非必须,我执行之后直接update了我的ipykernel)以我的环境名称tf1.13gpu为例con原创 2021-05-23 00:48:42 · 151 阅读 · 1 评论 -
深度学习笔记-014-目标检测基础知识
目标检测任务及发展脉络图 像 处 理 三 大 任 务 : 物 体 识 别 、 目 标 检 测 、 图 像 分 割目标检测:给 定 一 张 图 像 , 判 断 图 像 中 是 否 存 在 指 定 类 别 的 目 标 , 若 存 在 , 则 输 出 目 标 位 置 、 类 别 及 置 信 度 。目标检测的任务:目 标 检 测 属 于 多 任 务 , 一 个 任 务 是 目 标 分 类 , 另 一 个 是 目 标 位 置 的 确 定 , 即 分 类 与 回 归目标检测发展历程如下图基于深层伸进网原创 2021-03-08 00:00:30 · 526 阅读 · 0 评论 -
深度学习笔记-013 模型权重保存
保存模型参数state_dict就是一个简单的Python字典,它将模型中的可训练参数(比如weights和biases,batchnorm的running_mean、torch.optim参数等)通过将模型每层与层的参数张量之间一一映射,实现保存、更新、变化和再存储。首先定义模型的保存位置和文件名(以.pth结尾)再save模型权重到固定路径PATH = './my_net.pth'torch.save(model.state_dict(), PATH)加载所保存的模型权重需要初始化之前所原创 2021-01-08 21:34:10 · 2424 阅读 · 2 评论 -
深度学习笔记-012 微调与迁移学习
为什么要微调在迁移学习中,模型预训练权重是在ImageNet上训练的。为了更好的针对我们自己的数据集进行训练,在冻结训练之后还可以进行微调,以达到更好的训练效果。微调的步骤在预训练卷积基上添加自定义分类层冻结卷积基所有层训练添加的分类层解冻卷积基的一部分层(解冻全部或者靠近输出的层)联合训练解冻的卷积层和添加的自定义层代码见 预训练网络 resnet101 微调几个注意点注意顺序,先冻结卷积层训练全连接层,最后解冻训练全部参数进行微调解冻训练的时候learning rate记得要原创 2021-01-08 21:06:13 · 402 阅读 · 0 评论 -
深度学习笔记-011批标准化(Batch Normalization)
什么是标准化传统机器学习中标准化也叫归一化一般是将数据映射到指定的范围中,用于去除不同维度数据的量纲以及量纲单位,使得模型鲁棒性更好数据标准化可以让机器学习模型看到的不同样本彼此之间更加相似,这有助于模型的学习与对新数据的泛化常见的数据标准化形式标准化和归一化归一化:将数据变为0-1之间。在pytorch中使用toTensor方法进行归一化操作。标准化:将数据减去其平均值使其中心为0,然后将数据除以其标准差使其标准差为1。什么是批标准化batch normalization 和普原创 2021-01-04 16:12:26 · 879 阅读 · 0 评论 -
深度学习笔记-010 论文阅读方法,学习路径
所需知识库学习路径阅读如下精炼论文选择细分方向进行深入研究:原创 2021-01-03 16:27:09 · 111 阅读 · 0 评论 -
深度学习笔记-009 对超大图像进行目标检测的一些思路
目标因为课题需要,需要对超大图像(例如15000×15000的遥感图像)进行目标检测。被检测的目标在大遥感图像中所占比例都很小,所以如何对大图像中的小目标进行目标检测成为我需要解决的一大问题。思路1:图像切割虽然目标物体在整张遥感图像中所占的比例很小,但是如果将图像进行切割,切割后的地物目标在图像中所占的比例有所提高,适合进行目标检测。问题:如何处理被检测目标被切割的问题?不同分辨率的遥感图像所占像素不同,如何确定切割大小?被切割的目标物体如何进行标注?思路2:(Faster RCNN)原创 2021-01-03 13:38:19 · 2144 阅读 · 1 评论 -
如何打开探月工程数据发布与信息服务系统下载的数据
最近想拿月球影像来做点好玩的东西,问的宿舍的博士生,从我国的嫦娥探月工程官网上可以下载我国嫦娥1-4号卫星拍摄的数据,网址如下:http://moon.bao.ac.cn/index.jsp在里面的PDS数据集下载中碰到了下载文件不知道如何打开的问题(隔行如隔山啊)首先文件下载下来之后的文件格式结尾是 .2b, .2bl .2c .2cl这种的,直接把我搞懵了。然后我找资料,问同学,了解了一下。首先2B指的是图像级别,具体参考如下网址:https://wenku.baidu.com/vi原创 2020-12-08 16:42:32 · 5177 阅读 · 0 评论 -
深度学习笔记007 - 常见的激活函数图像以及使用场景
常用激活函数relu激活函数使用场景:经过 验证的,使用最多的激活函数sigmoid激活函数使用场景:多用于逻辑回归输出,将输出控制在0-1之间存在问题:如果x非常大的时候,sigmoid的梯度会变得非常小tanh激活函数使用场景:取值范围在-1至1之间,在处理生成网络的时候比较常用Leak relu使用场景:在生成网络中比较常用,解决relu负值丢失,对Gan生成对抗网络中生成器的输出进行激活。...原创 2020-11-22 12:40:09 · 815 阅读 · 0 评论 -
深度学习笔记007-PyTorch在Win10下的安装
Tensorflow虽然有谷歌加持,但是写论文Pytorch用的还是比较多的,学术向的建议也学一下PyTorch。1、使用anaconda新建虚拟环境conda create -n 名称 python=3.8会弹出安装确认,输入Y再按回车,环境将被创建。查看conda所有的虚拟环境,查看新环境是否被创建:conda env list出现自己创建的环境名称即创建成功。2、激活环境并安装pytorch1、激活环境conda activate pytorch1.62、检查自己的驱动版原创 2020-11-16 23:21:37 · 130 阅读 · 0 评论 -
深度学习笔记006-计算机视觉一些经验
来自吴老师的总结:在计算机视觉领域,我们目前在数据量这里遇到的问题是,与相对简单的图像分类不同,目标检测,语义分割这类数据集制作成本比较高,所以在数据这方面还算是数据量小的。数据量VS 代码量:如果我们拥有比较大的数据量,我们使用简单的模型就能得到较好的效果。而如果数据量较小,则需要我们构建更复杂的网络来获取有限数据量的更多特征。...原创 2020-11-05 20:05:30 · 662 阅读 · 0 评论 -
深度学习笔记005-不同大小卷积核心的作用
1×1卷积增加非线性:1×1卷积核的卷积过程相当于全连接层的计算过程,并且还加入了非线性激活函数,从而可以增加网络的非线性,使得网络可以表达更加复杂的特征。特征降维:通过控制卷积核的数量达到通道数大小的放缩。特征降维带来的好处是可以减少参数量和减少计算量。空洞卷积空洞卷积(atrous convolutions)又名为扩张卷积(dilated convolitions),向卷积层引入了一个成为“扩张率(dilation rate)”的新参数,该参数定义了卷积和处理数据时各值之间的距离。空洞卷原创 2020-11-03 11:29:21 · 2921 阅读 · 0 评论 -
深度学习笔记004-计算机视觉CV的发展历程
计算机视觉的发展历程–诞生1966年MIT人工只能实验室一名教授给自己的研究生布置了一个课题:想办法写一个程序,让计算机告诉我们摄像头看到了什么这次事件标志着计算机视觉的诞生,1966年也称为计算机视觉元年。计算机视觉的发展历程–探索1970s:大卫·马尔(David Marr),英国的神经系统学家与心理学家,计算神经学的创始人。他把视觉描述为处理二维的矩阵而输出对周围世界的三维描述。·他所认为的视觉的阶段包括了: 一、 原始基元图:基于对场景里的基本成分(包括边缘和区域等)的特征提原创 2020-11-02 12:51:40 · 1158 阅读 · 0 评论 -
深度学习笔记003-卷积神经网络基础
卷积神经网络主要解决深度学习中图像处理的问题,通过卷积,减少参数量(因为直接拿所有像素进行全连接权值太多,不合适)卷积神经网络中的知识点:paddingpadding主要是在原图像的周围补上一圈0(具体几圈可以自己设置)通过补零,可以保证图像卷积后的输出和原图像一样;(padding=‘same’);同时也可以保留图像边缘像素的有效信息(确保边缘像素被卷积核卷积多次)。卷积后输出图像大小的公式:(n+2p-f+1)*(n+2p-f+1)(n代表原图尺寸,p代表padding几个像素,f代表卷原创 2020-11-01 19:02:41 · 270 阅读 · 0 评论 -
远程连机房服务器使用JupyterNotebook 并用SSH建立通道
最近实验室订的3090还没到,所以在楼下借了一个服务器使用上,因为服务器上的系统是centOS的,无图型界面太了,还是想用Jupyter notebook的开发界面。期间参考博文,还是有问题,所以琢磨出了这篇博文。环境介绍:服务器:centos系统+K80实验室:win10主机网络环境:同一个校园网内(ssh可以连上)配置服务器上的Jupyter Notebook安装jupyter notebook#先激活自己的conda环境conda activate tf2py36#然后安装jupyt原创 2020-10-30 11:43:58 · 999 阅读 · 1 评论 -
深度学习笔记002-线性回归
线性回归(Logistic regression)是一个适用于二分类(Binary Classification) 的算法二分类问题举例:输入一张图片,判断该图片是否是一只猫饼,是猫饼输出1,不是输出0首先我们用 y来表示输出的结果标签在计算机中,我们所看到的图像是使用RGB(red,green,bule)三种颜色来显示的,通过不同的R,G,B数值来显示不同的像素点,最终一个个像素点组合成我们所要看到的图像,如下图所示:我们把这些像素值提取出来,放入一个特征向量X中:如果我们输入的图像是6原创 2020-10-28 21:29:35 · 248 阅读 · 0 评论 -
深度学习笔记001-Python基础语法
深度学习一般基于Python语言,在正式开始之前先把Python语言的基础语法做一下笔记,整理的同时需要理解,方便后面使用。01基础操作age = 20 # 声明一个变量age 用来存储一个数字 201+1 # 基础数学加法print('Hello World!') # 打印Hello World!02条件判断if#2.条件判断ifif 1 == 2: # 如果 if 跟随的条件为 假 那么不执行属于if 的语句,然后寻找 else print("假的")原创 2020-10-28 17:01:22 · 218 阅读 · 0 评论 -
深度学习笔记0001
深度学习与机器学习的区别:1.1.1特征提取方面:机器学习的特征工程步骤是**需要靠手动完成的**,而且需要大量领域专业知识深度学通常由多个层组成,他们通常将更简单的模型组合在一起,将数据从一层传递到另一层来构建更复杂的模型。通过训练大量数据自动得出模型,**不需要人工特征提取环节**。(深度学习可以广泛运用于不好提取特征的领域,例如图像,语音,自然语言处理)1.1.2数据量和计算性能要求机器学习需要的执行时间要远远小于深度学习,深度学习参数往往会很庞大,需要通过大量的数据的多级优化来训练参原创 2020-10-17 11:36:22 · 321 阅读 · 0 评论