这节课中主要讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的卷积网络经典结构AlexNetVGGGoogleNetResidualNetworkAlexNet在2012年的时候,Alexnet神经网络提出,这时网络的架构比如说各个层之间要如何排列组合,使用多少卷积层池化层,每个层又如何设置超参数其实没有什么规律,主要通过实验与试错:但是我们通过对内容容量,可学习参数以及浮点运算次数的计算,可以看到一些有趣的规律,绝大多数的内容容量都使用在了卷积层,绝大多数的可学习的参数都在全连接层,绝大多数的浮点运算都发生在卷积层在2013年又提出了ZFNet,其实只是一个更大的AlexNet:VGG
全连接神经网络模块化实现Linear与Relu单层实现LossLayer实现多层神经网络不同梯度下降方法Dropout层今天这篇博文针对Assignment3的全连接网络作业,对前面学习的内容进行一些总结在前面的作业中我们建立神经网络的操作比较简单,也不具有模块化的特征,在A3作业中,引导我们对前面的比如linearlayer,Relulayer,Losslayer以及dropoutlayer(这个前面课程内容未涉及但是在cs231n中有出现),以及梯度下降不同方法(SGD,SGD+Momentum,RMSprop,Adam)等等进行模块化的实现Linear与Relu单层实现classLine
最近再查一些基础知识的时候看见了几篇文章写得很棒(在这篇文章的结束我会给出参考链接),然后我把他们整合了一下,跟大家分享,希望能有帮助:1.计算机视觉领域四大基本任务中的应用:a.图片分类b.目标定位c.语义分割d.实例分割2.机器视觉中基本常识:①语义鸿沟(semanticgap)人类可以轻松地从图像中识别出目标,而计算机看到的图像只是一组0到255之间的整数。②计算机视觉任务的其他困难拍摄视角变化、目标占据图像的比例变化、光照变化、背景融合、目标形变、遮挡等。③计算机视觉的顶级会议和期刊顶级会议有CVPR、ICCV、和ECCV,此外ICLR也有不少计算机视觉论文。顶级期刊有IJCV和TPA
UMICHCVNeuralNetwork既然谈到神经网络,我们肯定要讨论在神经网络中是如何进行梯度的计算以及参数的优化的传统的方法就是我们手动计算梯度,但是随着神经网络层数的增加,这种方法显然过于复杂因此我们引入了计算图的概念,从一个简单的例子出发:我们可以把一个(x+y)z的计算式拆分成上图所示,向前传播就是计算出我们的输出结果,一步步而反向传播是为了计算梯度,比如说我们想要f对x,y,z的偏导求f对y的偏导我们可以根据链式法则来计算:用专业的语言,我们要求下游梯度,现在我们在当前一个节点,可以很容易求出当前梯度,上游再将之前计算出的上游梯度传递给我们,我们就可以计算出下游梯度:举一个更复杂
UMICHCVNeuralNetwork对于传统的线性分类器,分类效果并不好,所以这节引入了一个两层的神经网络,来帮助我们进行图像分类可以看出它的结构十分简单,x作为输入层,经过max(0,W1*x)到达h隐藏层,再经过W2到达s输出层如果我们对隐藏层的结果进行可视化,我们可以看到如下的图像:相对于之前线性分类器每类提供的单一的模板,显然神经网络能够为我们提供更多的选择,这也是为什么它能帮助进行分类的一个重要原因如果我们想要扩展网络层数,也可以这样做:这样就得到了一个更复杂的神经网络注意到上述表达式均包含一个max表达式,它的作用是什么?实际上这个函数通常被称为ReLu函数,作为激活函数,目的
UMICHCVLinearClassifiers在上一篇博文中,我们讨论了利用损失函数来判断一个权重矩阵的好坏,在这节中我们将讨论如何去找到最优的权重矩阵想象我们要下到一个峡谷的底部,我们自然会选择下降最快的斜坡,换成我们这个问题就是要求权重矩阵相对于损失函数的梯度函数,最简单的方法就是使用定义法:我们也可以使用解析梯度,这里需要用到矩阵对向量,矩阵对标量求导的一些知识,在后面我们也会采用反向传播的方法,因为自己手算微积分毕竟比较容易出错,尤其是涉及到很多层神经网络的时候。在作业assignment2的第一个线性分类器的实现中,我们会使用两张种损失函数,分别是svm与softmax函数,需要我
报错位置:sift=cv2.SIFT_create()报错原因:opencv将SIFT等算法整合到xfeatures2d集合里面了。改为:sift=cv2.xfeatures2d.SIFT_create()
2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区域进行元素级别的乘法和累加操作,得到输出图像的对应位置的像素值。OpenCV提供了多种滤波方式,来实现平滑图像的效果,例如均值滤波、方框滤波、高斯滤波、中值滤波等。大多数滤波方式所使用的卷积核都具有一定的灵活性,能够方便地设置卷积核的大小和数值。但是,我们有时希望使用特定的卷积核实现卷积操作,例如使用如下卷积核进行卷积操作。前面介绍过的滤波函数都无法将卷积核确定为上述形式,这时
使用stablediffusionwebui进行图片预处理(preporcessimages)的时候,当勾选了自动聚焦裁减(Autofocalpointcrop)的时候发生了错误:cv2.error:OpenCV(4.8.1)/io/opencv/modules/dnn/src/net_impl.cpp:279:error:(-204:Requestedobjectwasnotfound)Layerwithrequestedid=-1notfoundinfunction'getLayerData'是由于使用了opencv库进行聚焦的时候报错,原因是opencv版本问题,降低opencv版本即可
解决pycharm中CV2库的下载问题,以及Miniconda的安装和在pycharm中的配置解决CV2包问题Miniconda的安装和在pycharm中的配置本文是我在学习图像处理与机器视觉时,采用pycharm进行图像处理时遇到的问题,水平有限,如有不对的地方欢迎大家批评指正,共同探讨。本文使用的pycharm版本为2021.3中文版。解决CV2包问题在学习图像处理与机器视觉时,使用到了pycharm对图像进行采样和量化。在pycharm中输入importCV2时,显示没有CV2的包,选择安装CV2安装包后提示安装失败,问题在下面的图片。如果你使用的环境是python解释器的话,打开pyc