首页 > 其他分享 >cv学习总结(11.21-11.27)

cv学习总结(11.21-11.27)

时间:2022-11-28 00:11:45浏览次数:51  
标签:池化层 模型 矩阵 11.21 11.27 CNN size cv 图片

 

  本周彻底完成了CNN的全部内容,包括CNN的原理,代码实现等。CNN是一种神经网络的framework,跟connected_layer相比,更加侧重于能够保持原来的空间结构不变;我们输入的图片是一个n*n*3的numpy数组,其中n是图片的分辨率,3是RGB颜色空间的数目,如果是全连接层,我们需要将输入的照片reshape成一个向量,例如如果输入照片为32*32*3,那么我们就需要将图片reshape成3072*1的向量,然后再经过权重矩阵的映射得到最终的分数列向量;这么做无疑是将图片的空间结构特性消除了。而CNN则是考虑用一个filter,其形状为size*size*3,来考虑局部的特性。每次用filter与当前size*size*3这么大的numpy数组进行矩阵运算,最终得到一个数字,然后通过不断的横移纵移filter遍历整个输入图片,最终得到一个矩阵。如果原本的尺寸为n,卷积核的尺寸为m,每次移动的步长为stride,并且有F个卷积核则经过该层后的数据规模为((n-m)/stride+1,(n-m)/stride+1,F)。与传统的全连接层相比,CNN无疑是既可以保证原本输入的数据的空间结构不变,又可以得到图片部分区域的局部特性。

  除了卷积层,一般还应该具有池化层,池化则是考虑将输入数据进行downsampleing,进行局部采样。其可以起到减少数据规模,减少运算量,防止过拟合的现象出现。此外,由于图片中大部分的特征都是冗余的,所以进行池化层仍然可以保持原来特性不变。此外,由于池化层中实施局部采样得到的新的空间结构中的采样方式的多种多样,可以实现非线性的组合方式,类似于激活函数,比如maxpooling层,就是用了max函数实现局部采样,这样同时可以具有一些激活函数的特性。当然,并非所有的时候池化都是好的,在有的时候,池化层过多可能会导致样本特性丢失过多导致学习能力下降的情况出现。

  在这周,同样实现我们一门专业选修课的机器学习的模型(虽然我没选那门课),分别有两个老师的两个大作业:第一是图片分类,第二个是虚假新闻检测,其中图片分类问题是5分类问题,虚假新闻检测是2分类问题,虚假新闻检测还需要用到NLP中一些数据处理的方法。在实现中,同时接触了pytorch和keras两个框架,并且成功安装/运行了GPU版本用来跑模型。最终CNN在图片分类问题上实现了90的准确率,在NLP问题上实现了96的准确率,也算是用框架实战cv和NLP问题的一个小的项目。

  这周在给好兄弟们分享神经网络的一些知识的时候,自己也有了一些小的心得体会:现在的机器学习到底在干什么?用已有的数据集训练一个模型,需要寻求一个最佳的模型能够最准确的预测遇到的新的问题。那么训练的这个模型在神经网络中,就是好多好多层中的映射关系,即权重矩阵;那么我们该优化我们的权重矩阵,就是试图最小化损失函数来解决,而这么做的原因是因为我们的损失函数具有一定的意义:在训练中对于原本信息的损失程度,或者在softmax中,我认为可以看做将模型错误分类产生的贡献,我们最小化损失函数也就是在使得模型预测错误的可能性减小,尽可能增大模型预测正确的概率。那么如何通过我们已经训练好的模型进行预测呢,那便是将图片/数据经过这个计算模型,得到一个分数矩阵,通过不同类别分数的高低进行比较,计算机倾向于认为分数较高的那一类作为当前数据的类别。我觉得在神经网络中,以这个作为理解的基础,在以后学习RNN或者ResNet这些更高级更复杂的framework中,可能会有一些比较好的影响。

 

 

2022.11.27

 

标签:池化层,模型,矩阵,11.21,11.27,CNN,size,cv,图片
From: https://www.cnblogs.com/Lbmttw/p/16931090.html

相关文章

  • 《基于Python与OpenCV的人脸识别系统设计与实现》论文笔记二
    一、基本信息标题:基于Python与OpenCV的人脸识别系统设计与实现时间:2022来源:电脑知识与技术关键词:Python;OpenCV;人脸检测;人脸识别;二、研究内容问题定义:利用OpenCV......
  • ubuntu opencv 编译安装
    1.安装cmake--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdownsudoaptinstallcmake2.安装依赖环境--javascriptt......
  • 11.27MySQL周末总结
    目录§并发编程§一、线程理论1.本质2.特点3.创建线程的两种方式4.线程对象的其他方法5.同进程内多个线程数据共享二、互斥锁1.互斥锁的作用2.互斥锁lock三、GIL全局解释器......
  • CVE-2021-42287、CVE-2021-42278 漏洞复现——名词解析
    DNSlogDNSlog就是存储在DNS服务器上的域名信息,它记录着用户对域名www.baidu.com等的访问信息,类似日志文件LDAPLDAP的全称是LightweightDirectoryAccessProtocol......
  • Java.11.27
    一.方法的重载1.重载就是在一个类中,有相同的函数名称,但形参不同的函数。2.方法重载的规则:2.1.方法名称必须相同2.2.参数列表必须不同(个数不同......
  • 【计算机视觉(CV)】基于全连接网络实现宝石分类
    【计算机视觉(CV)】基于全连接网络实现宝石分类作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资......
  • opencv 矩形标记
     importcv2fromPILimportImageimportpytesseractimportpyautoguiimportnumpyasnpimporttime#图片路径img=cv2.imread('Images/CAD2.png')xstart,......
  • Atlassian-bitbucket RCE (CVE-2022-43781) 漏洞分析记录
    前言距离上次写文章居然过去两年多了,这两年多忙于各种事务,环境搭建官方仓库维护了各种版本的Bitbicket,我们根据漏洞描述选择一个可以触发漏洞的版本即可。然后根据镜像......
  • 2022.11.21-27 训练小记
    2022/11/21-27训练小记CF1761D.CarryBit赛时感觉很不可做,对着题解想明白的qwq下文起用\(a_i,b_i\)表示其二进制表示下的第\(i\)位(1-indexed)。人类智慧地想到记......
  • 调试micro python WiFi 通信,用网络调试助手发送中文接时,运行到recv_data.decode('utf-
    问题:调试micropythonWiFi通信,用网络调试助手发送中文接时,运行到recv_data.decode('utf-8')出错了解决:用祥哥的写的Python代码发送中文没问题......