![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
文章平均质量分 61
自己在研究生阶段中机器学习学习的一些小记录
spectrelwf
这个作者很懒,什么都没留下…
展开
-
语义分割损失函数系列(3):Dice损失
Dice损失在医学图像分割任务中使用得极多,用于度量两个集合得相似性,dice系数的定义如下:DiceCoefficient=2∣A∩B∣∣A∣+∣B∣Dice Coefficient = \frac{2|A\cap B|}{|A| + |B|} DiceCoefficient=∣A∣+∣B∣2∣A∩B∣Dice 损失等于1-dice系数Diceloss=1−DiceCoefficientDice loss = 1-Dice CoefficientDiceloss=1−DiceCoeffic原创 2022-04-14 14:30:09 · 2887 阅读 · 0 评论 -
语义分割损失函数系列(2):IoU损失
交叉熵损失函数好用是好用,但当数据存在严重的不平衡问题的时候,会导致结果特别糟糕,特别是在医学图像分割问题中,一般目标区域都比较小,背景区域比较大,此时用交叉熵损失函数的话得到的结果就不太好。IOU loss介绍IOU即是交并比,用相交的部分去除上并集,就得到IOU的值,1-IOU的值就是IOU Loss。至于IOU的数学定义去看百度百科吧,举个例子:上面两张图求IOU,白色区域为目标区域,就是用两张图片的白色区域的交集去比上白色部分的并集,就得到了白色类别的IOU值。在实际工程中,一般黑色像素为类原创 2022-03-25 00:21:01 · 3484 阅读 · 3 评论 -
Pytorch 使用Grad-CAM可视化网络模型的特征图
介绍虽然说咱也不知道这个Grad-CAM的数学理论是如何推导的,但是在看论文的时候发现很多论文里面都用了Grad-CAM来可视化模型的特征图,用来显示网络对ROI区域的捕捉。想详细了解的话看一下B站大佬噼里啪啦的讲解视频。推荐代码code:https://github.com/jacobgil/pytorch-grad-cam安装pytorch-grad-cam :pip install grad-cam官方给的例子:自己的尝试我试着使用这个仓库来可视化我的vit模型,做的是一个五分类的原创 2022-03-23 15:56:00 · 12972 阅读 · 4 评论 -
Pytorch使用Vision Transformer做肺癌和结肠癌组织病理学图像分类
模型介绍文章链接:https://arxiv.org/pdf/2010.11929.pdfgithub地址:视频教程:https://www.bilibili.com/video/BV1Jh411Y7WQ?spm_id_from=333.337.search-card.all.click是B站大佬霹雳吧啦Wz的讲解视频,讲得特别好,我的代码也是完全按照他的代码抄的,自己抄一遍代码对Vision Transformer的理解会更深刻,很多模型细节看论文中是感受不到的,例如embedding的方法。Vis原创 2022-03-22 23:49:57 · 4962 阅读 · 28 评论 -
语义分割损失函数系列(1):交叉熵损失函数
最近一直在做一些语义分割相关的项目,找损失函数的时候发现网上这些大佬的写得各有千秋,也没说怎么用,在此记录一下自己在训练过程中使用损失函数的一些心得.本人是使用的Pytorch框架,故这一系列都会基于Pytorch来实现。首先是交叉熵损失函数,语义分割其实是一个逐像素分类的一个分类问题,做过图像分类的应该都比较熟悉交叉熵损失函数。pytorch中自带有写好的交叉熵函数,只需要调用就行:loss_func = nn.CrossEntropyLoss()torch.nn模块中写好的损失函数都是以类的方原创 2022-02-22 22:32:01 · 5542 阅读 · 4 评论 -
python正确的的画出ROC曲线
ROC曲线简介受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。为了了解ROC曲线的意义,我们首先得了解一些变量。以下定义引自维基百科最近在做一些分类的任务,评价中的ROC曲线在很多地方都会用得到,特别在论文中。在此记录一下在做ROC曲线的过程中遇到的一些坑。原创 2022-02-12 21:10:01 · 6357 阅读 · 1 评论 -
基于U-net的肝脏肿瘤分割实战(Pytorch实现)
这是我去年本科毕业设计的一部分,去年使用tensorflow去实现的,这几天就随手用Pytorch做了一下实现。肝脏肿瘤的分割是医学影像分割里面比较重要的一部分,实现从人的CT或MRI影像中将肝脏区域肿瘤给分割出来,对临床治疗还是有一定的实际意义。在这里网络还是使用最简单的U-net网络,U-net作为医学影像分割中的最经典的方法,其Encoder和Decoder的结构以及对称式的设计对后面的很多网络都有很大的影响。网络结构跳跃连接部分就是讲encoder的特征图和decoder的特征图在通道纬度上做原创 2021-12-13 14:07:17 · 6282 阅读 · 16 评论 -
Pytorch实现U-net视网膜血管分割
网络结构U-net是MICCAI2015的专门针对医学影像分割设计的网络结构,直到今天还是很好用,效果任然很好。网络的左半部分是Encode部分,此部分将输入图像逐步下采样得到高层的语义信息。右半部分是Decoder部分,将Encode提取的语义特征逐步恢复为原始图像的尺寸,中间是跳跃连接,将下采样过程中提取到的不同level的特征加入到Decoder中,得到更好的分割结果。完整训练代码和数据可以去我的github上面下载:https://github.com/SPECTRELWF/Semantic原创 2021-12-12 12:24:58 · 5064 阅读 · 2 评论 -
Pytorch实现U-net细胞分割
网络结构U-net是MICCAI2015的专门针对医学影像分割设计的网络结构,直到今天还是很好用,效果任然很好。网络的左半部分是Encode部分,此部分将输入图像逐步下采样得到高层的语义信息。右半部分是Decoder部分,将Encode提取的语义特征逐步恢复为原始图像的尺寸,中间是跳跃连接,将下采样过程中提取到的不同level的特征加入到Decoder中,得到更好的分割结果。数据集介绍数据集使用的是ISBI细胞分割数据集,训练集总共就三十张图像,少的可怜,U-net比其他网络强大的地方就在此,小数原创 2021-12-10 20:48:35 · 3797 阅读 · 0 评论 -
实战Kaggle比赛(1):树叶分类
比赛地址:https://www.kaggle.com/c/leaf-classification/rules完整代码:https://github.com/SPECTRELWF/kaggle_competition个人主页:liuweifeng.top:8090比赛题目:对树叶的类别进行分类,树叶总共99个类别,树叶的图片如下:我也不知道怎么分类,反正总共有99中类别的树叶。下载到的数据集解压后如下:image里面存了所有的树叶图像,train.csv是训练文件的标号以及类别,后面有一堆的原创 2021-12-08 18:47:45 · 1969 阅读 · 0 评论 -
Pytorch:yolov1系列(1)读取VOC2012数据集的目标检测标注
图像分类学的差不多了,最近开始学一下目标检测,记录一下学习的过程。首先打算复现一下YOLO系列的算法,先从简单的yolo v1开始。yolov1论文地址:https://arxiv.org/pdf/1506.02640.pdf网络结构:yolo是一个一阶段的端到端的算法,检测速度会比RCNN系列快很多,网络是一个24层的卷积层,最后的输出是一个7730的tensor,这是原文中作者设定的,讲一张图片划分为77的grid,也就是待检测目标的中心点,也就是锚框。每个锚框预测两个bounding box。原创 2021-11-28 21:09:49 · 3508 阅读 · 0 评论 -
Pytorch:手撕ResNet34实现汽车分类
完整项目代码:https://github.com/SPECTRELWF/pytorch-cnn-studyResNet网络结构ResNet是何恺明大神在CVPR2016的工作,也拿到了当年的最佳论文。是为了解决深层网络的梯度消失的问题,引入了残差块连接。论文地址:https://arxiv.org/pdf/1512.03385.pdf其实我自己刚开始看这篇文章的时候不是很明白,有很多细节并不能很清楚,比如怎么去实现shortcut,每个阶段的输出到下一阶段时候的特征通道并不一致,在这里推荐大神李原创 2021-11-16 21:30:33 · 1506 阅读 · 6 评论 -
Pytorch:GAN生成对抗网络实现二次元人脸的生成
github:https://github.com/SPECTRELWF/pytorch-GAN-study网络结构最近在疯狂补深度学习一些基本架构的基础,看了一下大佬的GAN的原始论文,说实话一头雾水,不是能看的很懂。推荐B站李宏毅老师的机器学习2021的课程,听完以后明白多了。原始论文中就说了一个generator和一个discriminator的结构,并没有细节的说具体是怎么去定义的,对新手不太友好,参考了Github的Pytorch-Gan-master仓库的代码,做了一下照搬吧,照着敲一边代码原创 2021-11-15 12:46:07 · 1128 阅读 · 3 评论 -
Pytorch:GAN生成对抗网络实现MNIST手写数字的生成
github:https://github.com/SPECTRELWF/pytorch-GAN-study个人主页:liuweifeng.top:8090网络结构最近在疯狂补深度学习一些基本架构的基础,看了一下大佬的GAN的原始论文,说实话一头雾水,不是能看的很懂。推荐B站李宏毅老师的机器学习2021的课程,听完以后明白多了。原始论文中就说了一个generator和一个discriminator的结构,并没有细节的说具体是怎么去定义的,对新手不太友好,参考了Github的Pytorch-Gan-ma原创 2021-11-15 12:23:59 · 2637 阅读 · 1 评论 -
PYTORCH:DenseNet做新冠肺炎CT照片是否确诊分类
完整项目代码:https://github.com/SPECTRELWF/pytorch-cnn-studyDenseNet网络结构DenseNet是清华大学的黄高教授在CVPR的工作,在resnet提出的第二年提出,也拿到了当年的最佳论文。。数据集描述数据集使用的是来自格物钛的一个公开数据集,数据集下载地址:https://gas.graviti.cn/dataset/data-decorators/COVID_CT里面包含715张图片,包含确诊和未确诊的,比例大概一比一,图像是处理过的CT图原创 2021-11-11 10:55:11 · 4911 阅读 · 29 评论 -
pytorch:ResNet50做新冠肺炎CT照片是否确诊分类
完整项目代码:https://github.com/SPECTRELWF/pytorch-cnn-study个人主页:liuweifeng.top:8090ResNet网络结构ResNet是何恺明大神在CVPR2016的工作,也拿到了当年的最佳论文。是为了解决深层网络的梯度消失的问题,引入了残差块连接。数据集描述数据集使用的是来自格物钛的一个公开数据集,数据集下载地址:https://gas.graviti.cn/dataset/data-decorators/COVID_CT,里面包含715张原创 2021-11-09 21:23:54 · 3124 阅读 · 26 评论 -
到底什么是范数?
最近在学习机器学习的的过程中老遇到范数的定义,在读论文过程中也常遇到L1范数,L2范数等等。正好最近在看deep learning这本书,就总结记录一下。LPL^{P}LP范数从数学的角度来看,范数是向量大小的一种表示,也即是范数越大,表示向量越大。在数学上,LPL^{P}LP范数的定义如下:其中,p∈R,p≥1p\in \mathbb{R},p\geq 1p∈R,p≥1。L1L^{1}L1范数当p==1时,称为L1L^{1}L1范数,在某些机器学习的任务中,区分0和非0但值很小的元素是非常重要原创 2021-11-08 20:06:38 · 2068 阅读 · 0 评论 -
Pytorch:实现VGG16做汽车分类
github地址:https://github.com/SPECTRELWF/pytorch-cnn-study网络介绍:VGG是牛津大学Visual Geometry Group小组在ICLR2015的一篇文章,得益于Alexet网络在卷积层的深度上的工作带来的好处,VGG网络也在卷积层的数量上做工作。与Alexnet相比,VGG使用更小的卷积核去替代Alexnet中的卷积,实验证明,两个33的卷积核可以替代55的卷积核,3个33的卷积核可以替代一个77的卷积核,但更小的卷积核大小的参数会更少。原创 2021-11-07 14:34:34 · 813 阅读 · 2 评论 -
使用PYTORCH复现ALEXNET实现MNIST手写数字识别
网络介绍:Alexnet网络是CV领域最经典的网络结构之一了,在2012年横空出世,并在当年夺下了不少比赛的冠军,下面是Alexnet的网络结构:网络结构较为简单,共有五个卷积层和三个全连接层,原文作者在训练时使用了多卡一起训练,具体细节可以阅读原文得到。Alexnet文章链接:http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf作者在网络中使用了Relu激活函数和Dropout等方法来防止过拟合,更多细节看文章。数据集介绍使用的是MNIST手原创 2021-11-03 19:04:17 · 5197 阅读 · 0 评论 -
使用PYTORCH复现ALEXNET实现猫狗识别
完整代码链接:https://github.com/SPECTRELWF/pytorch-cnn-study网络介绍:Alexnet网络是CV领域最经典的网络结构之一了,在2012年横空出世,并在当年夺下了不少比赛的冠军,下面是Alexnet的网络结构:网络结构较为简单,共有五个卷积层和三个全连接层,原文作者在训练时使用了多卡一起训练,具体细节可以阅读原文得到。Alexnet文章链接:http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf作者在网络原创 2021-11-04 15:34:22 · 2704 阅读 · 1 评论 -
Pytorch:使用Alexnet网络实现CIFAR10分类
全部代码: https://github.com/SPECTRELWF/pytorch-cnn-study网络介绍:Alexnet网络是CV领域最经典的网络结构之一了,在2012年横空出世,并在当年夺下了不少比赛的冠军,下面是Alexnet的网络结构:网络结构较为简单,共有五个卷积层和三个全连接层,原文作者在训练时使用了多卡一起训练,具体细节可以阅读原文得到。Alexnet文章链接:http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf作者在网络中原创 2021-11-05 15:34:57 · 3149 阅读 · 1 评论