自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (4)
  • 收藏
  • 关注

原创 Pytorch 训练自己的图像分类网络

Pytorch 搭建自己的分类模型

2022-04-13 15:44:45 1015

原创 浅谈ConvNeXt(Pytorch)

卷积的愤怒 ConvNeXt

2022-03-05 19:54:28 7063

原创 LeetCode入门计划 | 并查集(Python3)

文章目录前言一、并查集二、LeetCode 例题1.547.省份的数量2.684.冗余连接总结前言并查集一、并查集并查集一共可以分为三步:1.初始化2.合并3.查询首先是初始化: 初始化是用一个数组来来记录自己(我们以谁是谁的先辈为例),初始化时,自己是自己的先辈。初始化用如下代码表示: def init(length:int)->List[int]: return list(range(length))用一个数组parent 来表示 pare

2022-01-22 22:04:45 1354 2

原创 LeetCode入门计划 | 广度优先搜索(Python3)

提示:LeetCode学习打卡文章目录简介一、LeetCode 例题1.637.二叉树的层平均值2.剑指offer|| 044.二叉树每层的最大值3.迷宫问题探索中。。。。。总结简介广度优先搜索是用来搜索图或者树的算法,与深度优先搜索不同的是,它是先搜索自己周围所有相邻的节点,不会搜索到最深处才返回值。追求的是广度。在实现过程中往往需要借助一个队列来完成遍历,算法图解如下:1.将根节点入队,然后将根节点出队2.出队后将,根节点的左右孩子入队。3.然后一直出队,直到队列为空。再加入每个节点

2022-01-17 15:59:10 434

原创 LeetCode入门计划 | 深度优先搜索(Python3)

文章目录简介LeetCode例题1.111二叉树的最小深度2.剑指offer55-i.二叉树的深度3.岛屿的最大面积总结简介深度优先搜索是对图或者树的搜索,主要是按照深度优先,搜索见底之后,在回溯。在理解深度优先时,最好理解递归和回溯之后。再理解这个算法会相对容易些。下图是深度优先搜索遍历树的过程。从A->B->E在回退到B再到F。再回退到B。最后回退到A。然后遍历CD。这就是深度优先搜索啦。LeetCode例题1.111二叉树的最小深度我们先将示例中的树给画出来。深度优先

2022-01-15 21:03:05 744

原创 LeetCode入门计划 | 回溯(Python3)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录简介LeetCode例题:1.46.全排列2.77.组合3.78.子集总结简介回溯算法类似于决策树,根据已有条件在列表中做出选择。将每一种可能出现的情况列举出来。长用于处理全排列问题。例如将[1,2,3]的全排列画出来如下图所示:在第一阶段,我们的选择有,1, 2,3 三条路劲可以选择。例如选择了第一条1,接着第二阶段有2,3两个选择,如果选择2,最后就只能选择3,如果选择3,就只能选择2。假如第二阶段选择2,则第三阶段选

2022-01-13 22:44:45 432

原创 LeetCode入门计划 | 分治(Python3)

文章目录前言一、分治二、LeetCode 例题1.归并排序2.169.多数元素总结前言分治算法是将一个大问题,分解成若干个小问题,再将小问题合并成如干个大问题。也是以中递归的方法。一、分治分治方法如上图所示,分是将一个大问题 分解成子问题,治就是处理分开后的若干个小问题,然后将处理后的问题合并返回。最常见的分治算法就是归并排序。如下图所示:先将数组分解一个元素,一个数字是有序的,然后合并另一个数字,保证两个数字有序,然后依次类推。得到这个数组有序。下面我们开看看代码.二、LeetCode

2022-01-11 21:40:17 572

原创 Leetcode 入门计划 | 递归 (Python3)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、递归是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、递归是什么?递归的四要素:接受的参数,返回值,终止条件,递归拆解:如何进入到下一层二、使用步骤1.引入库代码如下(示例):import nu

2022-01-10 20:06:35 599

原创 LeetCode 入门计划 | 滑动窗口 (Python3)

文章目录前言一、什么是滑动窗口二、LeetCode例题1.209. 长度最小的子数组2.1456.定长子串中元音的最大数目总结前言滑动窗口算法,多用于处理定长的数组问题,例如定长子数组的最大合,等等。我们今天来学习学习它。一、什么是滑动窗口滑动窗口更像是一种技巧,用于解决数组中的定长问题。如下图所示:上图是滑动窗口长度为3,求解窗口中和的例子,每次滑动时,只需减去移除的元素,加上新滑到的元素即可。下面我们做两到例题来学学它。二、LeetCode例题1.209. 长度最小的子数组解

2022-01-09 18:09:50 878

原创 LeetCode入门计划 | 二分法(Python3)

文章目录前言一、二分查找二、LeetCode例题1.704. 二分查找2.35. 搜索插入位置3.162. 寻找峰值4.74. 搜索二维矩阵总结前言二分查找,是用来在有序数组中来查找目标值的,能有效降低算法复杂度,提升查找效率。一、二分查找二分查找如下图所示:查找过程是将 low 和high的中间值与目标值target比较,在根据条件来移动low 或者high。最后查询到target的值。二、LeetCode例题1.704. 二分查找该题就是实现一个二分查找。解题思路:该数组是一

2022-01-08 16:04:47 409

原创 LeetCode入门计划 | 双指针(Python3)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、双指针——普通指针二、双指针——对撞指针二、双指针——快慢指针总结前言双指针是算法入门,用于处理数组,字符串等问题。我们今天来学习学习它。并用对应的例题来实践一下。一、双指针——普通指针就是两个指针往一个方向移动。常见的就是两个for 循环的嵌套了。上图所示,i,j 指正移动遍历数组题目:这题的解法有很多,但我们只使用普通指针的解法。解题思路: **两个for循环** #该方法能过测试的方

2022-01-07 20:53:05 4194

原创 Unet 语义分割模型(Keras)| 以细胞图像为例

文章目录前言一、什么是语义分割二、Unet1.基本原理2.读入数据总结前言最近由于在寻找方向上迷失自我,准备了解更多的计算机视觉任务重的模型。看到语义分割任务重Unet一个有意思的模型,我准备来复现一下它。一、什么是语义分割语义分割任务,如下图所示:简而言之,语义分割任务就是将图片中的不同类别,用不同的颜色标记出来,每一个内别使用一种颜色。二、Unet1.基本原理什么是Unet,它的网络结构如下图所示:整个网络是一个“U” 的形状,Unet 网络可以分成两部分,上图红色方框中是特征提

2021-12-13 16:26:47 12033 10

原创 SRGAN 图像超分辨率重建(Keras)

SRGAN 网络是用GAN网络来实现图像超分辨率重建的网络。训练完网络后。只用生成器来重建低分辨率图像。网络结构主要使用生成器(Generator)和判别器(Discriminator)。训练过程不太稳定。一般用于卫星图像和遥感图像的图像重建。这里我们使用的高分辨率的数据集 **(DIV2K)**

2021-12-05 17:50:01 7917 21

原创 复现 DenseNet (Keras)

文章目录前言一、什么是DenseNet?二、keras 复现1.Conv Block2.Dense Block3.Transition Block总结前言据说DenseNet 是优于ResNet的网络结构,有着参数少,性能优越的特点并且实现思路很简单。表面上好像是跨连接,实际上是concatenate 特征图。一、什么是DenseNet?先来看一张图上图描述的就是DneseBlock的计算过程,它并不是像ResNet 一样 对卷积计算的结果进行Add,而是利用每次计算的特征图进行堆

2021-10-24 14:56:03 4260

原创 浅淡ConvMixer (Pytorch and Keras)

文章目录前言一、什么是ConvMixer?1.网络结构图:二、实现步骤1.pytorch实现2.keras实现总结前言继现在炒得火热的Mixer 结构和Vit 结构,最近又出来了一种叫ConvMixer 的结构。真的是服气,刚出没多久,感觉是个新坑,可以踩一踩~。我记得9月10号的时候看见出来的,这两天代码刚开源。官方链接:论文地址:https://openreview.net/pdf?id=TVHS5Y4dNvMGithub 地址:https://github.com/tmp-iclr/con

2021-10-11 16:43:03 6201 8

原创 tensorflow 报错 IndexError: pop from empty list

项目场景:复现SRGAN 时 使用VGG19 9层 提取特征时报错。由于tensorflow版本更新所造成得。问题描述:代码如下 def build_vgg(self): # 建立VGG模型,只使用第9层的特征 vgg = VGG19(weights="imagenet") vgg.outputs = [vgg.layers[9].output] img = Input(shape=self.hr_shape) im

2021-10-08 16:36:47 3564 1

原创 神经网络中特殊的网络层

文章目录前言一、Squeeze_excitation_layer(SE)前言总结一下特殊层的Tensorflow 实现方式。说不定以后用得着。一、Squeeze_excitation_layer(SE)操作方法如下图所示:上图看起来有点复杂,我直接从国内论文里摘了一张图,这样比较直观。r 是压缩比,相当于对用到进行一个权重占比,我们来看一下TensorFlow的实现方式。def squeeze_excitation_layer(x, outdim, ratio): '''

2021-10-08 10:40:56 487

原创 SRCNN 图像超分辨率重建(tf2)

文章目录前言一、SRCNN二、SRCNN 实现1.模型的搭建2.生成训练数据3.训练过程:4.测试过程总结前言把由放大缩小的引起的导致分辨率低的图像,转换成为 分辨率高的图像。更加关注的是重构图片过程中,填充新的像素。SRCNN 呢也是将深度学习用于图像重建的鼻祖,网络结构非常简单,于是我决定来复现一下它。代码链接:https://github.com/jiantenggei/SRCNN-Keras (包含所有资源)一、SRCNNSRCNN 的网络结构特别简单,首先将一张低分辨率的图像作为输入

2021-10-03 17:06:15 2653 8

原创 ACGAN 生成自己手写数字数据集

文章目录前言一、GAN是什么?二、使用步骤1.引入库2.读入数据总结前言由于有可能使用GAN 网络来做一些数据增强,所以这里复现一下Gan 网络,发现这玩意儿还挺好玩。一、GAN是什么?GAN (Generative Adversarial Networks)生成对抗网络,用来生成一下不存在的真实数据。应用场景如下:1.风格迁移:也就是传说中的AI 画家2.图像超分辨率重建: 让图像更加清晰3.生成不存在的真实数据:人脸生成等~根据训练时带不带标签,GAN 网络是可分为无监督和半监督式的

2021-09-29 13:58:27 2256 5

原创 Yolov3 和 Yolov3-tiny目标检测算法理论与实现(TensorFlow2)

文章目录前言一、Yolov3 和 Yolov3-tiny二、使用步骤1.引入库2.读入数据总结前言上一篇文章 神奇的目标检测 已经介绍了目标检测的基础啦。目标检测呢,就是在图片中定位出目标的位置,把它“框”出来就好了。本篇文章使用Yolov3 和Yolov3-tiny,以训练VOC2007和口罩检测为例。教大家如何快速的搭建自己的目标检测平台。下面是资源链接:内容链接VOC2007 数据集链接戴口罩数据集链接权重文件链接 提取码:y32mgithub

2021-09-24 19:48:21 10601 19

原创 神奇的目标检测

文章目录前言一、目标检测是什么?二、目标检测的相关概念1.Bounding Box2.读入数据总结前言总结完经典的卷积神经网络后,我决定“进军”目标检测,谈一谈什么是目标检测,以及目标检测中经常出现的几个概念,同时会对比目标检测和分类任务有哪些地方不同。一、目标检测是什么?目标检测任务,是图像分类任务的延伸,给定神经网络一张图片,对于图像分类网络来说,只需要识别图片属于哪一个类别即可,给定的图片往往只包含单一目标。对于目标检测网络来说,我们不仅要识别图中对象的类别(例如:人,汽车,),还需要知道

2021-09-01 09:44:47 932 2

原创 浅谈 Mlp-Mixer(pytorch and keras)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-07-11 19:19:18 3808 20

原创 使用Hash模板法快速计算子串出现的次数

快速查找子串出现的次数首先我们来看问题描述:给定两个字符串A,B。计算字符串B,在字符串A中出现的次数。这题的第一种思路就是循环遍历字符串A,当在A 中找到字符串B的首字母,再往下逐一匹配,如果匹配过程中发现不一致的就跳出循环,如果完全匹配,count就加1。这样的匹配过程显然是很繁琐,很慢的。今天我们讨论一种快速的方法,就是将字符串通过Hash公式映射成数字,通过比对数字,判断字符串时候匹配。那么我们先来看一下如何映射:假设我有字符串hello world。一、pandas是什么?示例:pan

2021-07-07 21:01:56 281

原创 Vigenere密码

一、Vigenere密码16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。单一字母替换通过字母频率分析很容易被破解,Vigenère使用的方法是,有秘钥和明文,明文字符的替换是根据秘钥对应字母来替代。假设现在有秘钥TIG,明文ABB。那么对ABB进行加密的过程如下。ABCDEFGHIJKLMNOPQRST

2021-07-05 20:05:50 2562

原创 快速搭建自己的人脸识别系统

文章目录前言一、原理介绍1.mtcnnP-Net(Proposal Network)R-Net(Refine Network)O-Net (Output Network)2. facenetSVM(Support Vector Machine)二、人脸识别实现1.准备工作引入mtcnn下载facenet的权重文件:安装skleran2.训练和预测数据准备训练预测识别结构总结参考前言如何用人工"智障"快速的识别人脸呢?首先我们拿到一张图片,需要去看看图片中是否有人脸,如果有人脸,我们需要把人脸截取出来

2021-06-26 22:13:37 4420 9

原创 Springboot+Vue快速搭建个人博客系统

文章目录前言一、SpringBoot实现后端二、Vue.js实现前端1.Header和Footer实现:2.Vue其他配置总结前言本篇博客讲解如何使用SpringBoot和Vue如何快速搭建自己个人博客系统,功能比较少,但是作为一个期末小作业应该够了。本篇博客默认你已经有了SpringBoot和Vue的基础啦!后端还是用了MyBatis-Plus 完成数据库增删改查,我会分别从前后端介绍如何实现。同时呢,代码也会上传到GitHub上。内容地址GitHub链接项目演示地址

2021-06-23 23:09:43 4639 7

原创 Python爬豆瓣电影Top250,Springboot+Vue展示

目录前言一、Python爬虫二、SpringBoot+Vue展示1.编写SpringBoot后端程序2.Vue展示总结前言最近搞各种期末作业,决定把作业的实现思路写一下,代码放GitHub(懂的都懂)。本篇文章默认你已经有了Python,Springboot和Vue的基础了。项目地址连接一、Python爬虫简述一样爬虫的原理:我们在点开一个网页时,其实也是在向别人的服务器发请求,浏览器获取的前端代码后,解析,再展示。Python爬虫,就是用代码模拟浏览器,将获得到得前端代码进.

2021-06-16 19:46:30 1251 4

原创 ResNet原理讲解和复现( Keras)

文章目录前言一、ResNet1.为什么要引入残差结构2.残差网络二、ResNet501.网络结构及实现2.数据读取与模型训练总结前言本片博客,通过参考了pytorch复现的代码,成功复现了ResNet50,并使用270 Bird Species also see 73 Sports Dataset去训练了ResNet50。最后在验证集和测试集上都达到了80%~83%的准确率。本篇文章还会介绍一下ResNet网络的一些理论,简要分析一下为什么ResNet能够加深到100层甚至1000层。内容

2021-06-02 22:32:20 1351 7

原创 Hello GoogLeNetV3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-05-21 21:23:19 663 2

原创 复现VGG(keras and pytorch)

Paddle复现VggNet前言一、VGGNet1.简介2. 网络结构二、网络复现步骤1.Paddle复现2.Kera复现总结前言大家好!距离上一篇博客已经有十天了,因为这十天我去了解Paddle了,这是百度的一个框架,官网已经有很多教程了。设计理念有点类似与Pytorch,但是之前学Keras的我,拿着代码一脸懵逼。慢慢啃了一下,这里就跟大家分享一下。另外VGGNet 用keras的复现我也做了,会在下面附上链接。我会在这篇博客简单介绍,由于我也是刚开始了解,介绍不对的地方还请大家指正。.

2021-05-15 20:03:00 1236 3

原创 使用SppLayer 实现花的分类

使用SppLayer 实现花的分类目录使用SppLayer 实现花的分类前言一、Flatten,GlobalAveragePooling2D和SpatialPyramidPooling1.Flatten2.GlobalAveragePooling2D二、使用步骤1.引入库2.读入数据总结前言五一假期的第二篇博客,这边文章我会总结一下卷积层和全连接之前的“文章”,基于的框架TensorFlow和Keras 去比较Flatten,GlobalAveragePooling2D和SPP(SpatialPyr

2021-05-04 20:40:33 2019 6

原创 AlexNet 实现猫狗分类(keras and pytorch)

AlexNet 实现猫狗分类前言在训练网络过程中遇到了很多问题,先在这里抱怨一下,没有硬件条件去庞大的ImageNet2012 数据集 。所以在选择合适的数据集上走了些弯路,最后选择有kaggle提供的猫狗数据集,因为二分类问题可能训练起来比较容易一下。实验结果和代码我放在kaggle上了,有时会加载不出来。ipynb文件百度云里面也有 下载完成后用jupyter打开。下面附上链接内容地址数据集链接kaggle实验过程链接百度云ipynb文件链接 提取码:di7

2021-05-01 22:21:40 3582 5

原创 LeNet手写数字识别

LeNet手写数字识别简介LeNet 是由Y.Lecun等人在1998年提出的第一个真正的卷积神经网络,现在的LeNet现在主要指LeNet5,其主要特点是卷积层和下采样层相结合作为网络的基本结构,其包括3个卷积层和2个下采样层和2个全连接层。最初设计LeNet的目的是识别手写字符和打印字符,效果非常好,曾被广泛应用于美 国银行支票手写体识别,取得了很大成功 。网络结构直接上图看着更直观。C1层是卷积层,包含6个特征图,是由6个5x5的卷积核对输入图像卷积得到。S1层是一个下采样层,包含6个

2021-04-28 16:17:11 1713 2

原创 TensorFlow 简单案例

个人理解,深度学习模型其实保存的是权重和偏置。构建最好的网络,就是要找到特定情况下最好的偏置和权重。模型训练阶段模型训练开始前一般都会初始化网络中的权重和偏置,当然,当前的权重和偏置不是最终模型中的值,这些值需要在训练过程中不断的更新,最后达到一个更为“乐观”的情况。模型训练时,一般都有对应的训练数据,也就是对应的数据和标签。数据用于输入你构建的神经网络。输出的结果与标签做比对(也就是计算损失),然后再通过反向传播的方法,依次次寻找每一层神经网络中,每个节点的权重值和偏置对这种误差损失的“贡献”,然后

2021-01-19 14:12:04 1090

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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