深度学习入门资源与小demo(代码片段)

翁乐安 翁乐安     2022-12-12     510

关键词:

学习方法和资源

误区1:一定要把所有的基础知识学会之后再动手弄具体任务。

误区2:一直读文献而由于种种原因不动手做实验

误区3:一定要完完全全从头搭建一个框架

如何打破误区,这里我推荐一份学习路线和资源:

1.李沐动手学深度学习。跟着网上的教程敲下来,能让你对深度学习有一个基本的认识。期间可以适当看一些论文,时间大概在一个半月左右。

2.学习完之后就可以确定一个方向了。确定方向之后,最重要的事情就是先不断积累该方向的代码经验。具体以差异检测为例,如何找开源代码来跑呢?如下图所示,Github上有Awsome系列,把近年来数据集,网络结构,论文都总结了,能快速了解领域的发展。

3配环境->跑通->修改数据集/网络/… 然后就是不断重复这个过程,期间配合读代码对应的论文,结合代码食用,就能大大提升对论文的理解能力,所以一开始尽量读有开源代码的论文,否则读了之后你也不知道他具体做了什么工作。期间的任务就是就做好文献管理和数据管理。

4 在3的过程中,可以逐渐搭建起自己的一套训练框架了。也摸清楚了自己的领域里大多数人都是怎么做研究的了。然后就可以不断尝试新方法了。思路主要有两种:1.在自己任务的Baseline上加模块,目的就是涨点 2.将其他领域上的方法借鉴过来解决一个特定的问题。两种思路各有优缺点,前者优点:思路比较明确,路子比较明确,就不断挑好的方法、模块去试;也正是因为这样,导致其缺点是有时候很难达到SOFA。后者优点:做的人可能比较少,竞争小。但是正是因为这样,才没有明确的路子,甚至连待解决的问题本身都是不明确的,这就需要自主地去探索。这两种方法如何择优则需要结合这就得结合实验室基础和自身角度去选择了。

5在确定了要解决的问题并且寻找到了一个解决办法之后,剩下的就是不断跑实验,积累数据:基本数据,对比数据,自身方法数据。跑出来一个基本的效果之后,感觉心里有底之后,就可以开始边写论文了。

从语义分割入手

先从跑通一个语义分割的小项目开始,对任务整体流程有一个直观的认识。

UNet是应用很广的一个网络结构,最初是用于医学图像分割领域的。在此之前广泛应用的是FCN全连接网络。如果对语义分割的框架还不熟悉的,可以看看上一个专题,有详细的讲解。

1.数据集准备Dataloader

初学者还是直接用现有的数据集来训练。数据集分为图像-标签。这里使用Pascal VOC数据集。其实我一开始接触的时候,挺害怕处理数据集的,因为很多时候会被卡住,从下载到顺利跑通中间可能要踩的坑挺多的。网上有很多手把手教的教程,在这里我想分享一下自己的经验。

首先下载。常见的数据集,可以在百度飞浆AI上下载,优点是可以用百度网盘直接下载。其次,统一路径。下载下来之后,根据之前介绍过的,在dataset文件里,统一路径,确保dataloader能顺利加载。最后,数据预处理。其实还有些可能需要对类别再进行处理的,比如Cityscape里面默认是30多类,但是有时候需要特定的几类,需要我们下载数据集之后再进行额外的操作的,否则,在计算loss的时候,会由于标签的原因而报错。往往这是大家容易忽视的地方。

2.网络构建

样子是一个U形,所以称之为UNet,分成两个部分,左边是下采样的过程,可以理解为通过卷积在不断提取图片的特征,这样一通操作之后,图片大小逐渐减小,图片通道数从原来的三通道逐渐增加。右边的部分是上采样的过程,可以理解为不断恢复图像的大小,注意在中间灰色的线,灰色的线代表,将下采样的几个特征矩阵在通道位“贴”到上采样的特征矩阵上。举个例子,就是(左边部分[1, 32, 256, 256] 和 右边部分[1, 32, 256, 256]在通道方向上叠加,变成[1, 64, 256, 256], 其中1是Batch size, 256, 256是大小)。

3.训练过程

不断循环这个过程

image, segment_image=image.to(device),segment_image.to(device)

out_image=net(image)

loss=loss_fun(out_image,segment_image)

opt.zero_grad()

loss.backward()

opt.step()

[资源]深度学习从入门到放弃

Relationship:  MachineLearning---->DeepLearning                           ---->DeepReinforcementLearning[LearningRoadMap]              ReinforcementLearningPapers:  DeepLearningPapersReadin 查看详情

小白入门深度学习|第三篇:深度学习初体验(代码片段)

文章目录一、深度学习是什么二、实现过程1.准备数据2.构建神经网络模型3.编译模型4.训练模型5.预测三、总结课后练手项目(附代码+讲解)🚀我的环境:语言环境:Python3.6.5编译器:JupyterNotebook深度学... 查看详情

深度学习入门案例波士顿房价预测(代码片段)

人工智能,机器学习,深度学习做个简单介绍:三者的关系如图1所示,即:人工智能>机器学习>深度学习。深度学习设计框架:环境查看importpaddleimportnumpyasnpimportosimportmatplotlibimportmatplotlib.pyplotaspltimpor... 查看详情

转载零基础入门深度学习-感知器(代码片段)

【转载】零基础入门深度学习(1)-感知器机器学习深度学习转载自https://www.zybuluo.com/hanbingtao/note/433855无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理... 查看详情

深度学习入门多层感知机(代码片段)

...3tanh函数3.多层感知机4.小结前言因为工作需求需要接触到深度学习知识,导师推荐了一本书用来入门:《动手学深度学习(PyTorch版)》在此处记录一下学习内容以及学习总结,文章以原作者书籍为基础,... 查看详情

深度学习入门(—)(代码片段)

一、安装软件AnacondaPycharmPytorchCUDA暂更1、用conda创建Python虚拟环境(在condaprompt环境下完成)condacreate-nenvironment_namepython=X.X(注:该命令只适用于Windows环境;“environment_name”是要创建的环境名;“p 查看详情

深度学习入门(代码片段)

What\'selement-wiseinnumpy?Innumpy,element-wiseoperationsrefertooperationsthatareperformedoncorrespondingelementsoftwoormorearrays.Forexample,ifyouhavetwonumpyarraysAandBofthesameshape,A+Bwouldperformanelement-wiseaddition,resultinginanewarraywhereeachelementisthesumofthecorrespondingelementsofAandB... 查看详情

深度学习入门(—)(代码片段)

一、安装软件AnacondaPycharmPytorchCUDA暂更1、用conda创建Python虚拟环境(在condaprompt环境下完成)condacreate-nenvironment_namepython=X.X(注:该命令只适用于Windows环境;“environment_name”是要创建的环境名;“p 查看详情

深度学习之30分钟快速入门pytorch(附学习资源推荐)(代码片段)

...给我30分钟,不会让你失望的😃1.1PyTorch由来当前深度学习的框架 查看详情

深度学习从lenet-5识别手写数字入门深度学习(代码片段)

​活动地址:CSDN21天学习挑战赛目录LeNet模型卷积神经网络(CNN)搭建环境安装需要的包创建工程数据集相关代码可以设置GPU训练(默认CPU)通过TensorFlow下载数据集对数据进行归一化处理最值归一化(normalization)均值方差... 查看详情

小白入门深度学习|第一篇:配置深度学习环境(代码片段)

文章目录一、配置Python3环境二、安装CPU版本的tf2环境三、安装jupyternotebook四、安装GPU版本tf2环境1.找到显卡对应的CUDA2.下载相应的CUDA3.下载相应的cudnn4.添加环境变量5.安装tensorflow-gpu一、配置Python3环境这里推荐去Python官网下载安... 查看详情

深度学习入门(—)(代码片段)

一、安装软件**Anaconda**Pycharm**Pytorch**CUDA**CUDNNAnaconda安装安装Anaconda,下载地址安装过程需要设置的系统变量,看有的网上教程并没有设置,保险起见可以设置,在系统变量-path下设置如下:PycharmPycharm下载地址&... 查看详情

转载零基础入门深度学习-感知器(代码片段)

【转载】零基础入门深度学习(1)-感知器机器学习深度学习转载自https://www.zybuluo.com/hanbingtao/note/433855无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理... 查看详情

(翻译)60分钟入门深度学习工具-pytorch(代码片段)

60分钟入门深度学习工具-PyTorch作者:SoumithChintala原文翻译自:一、Pytorch是什么?二、AUTOGRAD三、神经网络四、训练一个分类器五、数据并行他是一个基于Python的科学计算包,目标用户有两类为了使用GPU来替代numpy一个深度学习研... 查看详情

深度学习入门比赛——街景字符识别(代码片段)

...传统的机器学习中,模型集成融合有stack,投票等方式,在深度学习中,竟然也可以使用模型集成融合,这让我学到了很多,下面就将这些方法进行一下罗列记录,方便日后思考学习:方法一:Droupoutdroupout经常用作防止模型拟合... 查看详情

深度学习---从入门到放弃pytorch基础(代码片段)

深度学习—从入门到放弃(一)pytorchTensor类似于numpy的array,pandas的dataframe;在pytorch里的数据结构是tensor,即张量tensor简单操作1.Flattenandreshape###Originalz:tensor([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]])Flatte 查看详情

python深度学习入门-神经网络的学习(代码片段)

深度学习入门-神经网络的学习博主微信公众号(左)、Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步!目录摘要1、从数据中学习1.1 数据驱动1.2 训... 查看详情

python深度学习入门-感知机(代码片段)

深度学习入门—感知机博主微信公众号(左)、Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步! 目录摘要1、感知机是什么2、简单逻辑电路3、感知机... 查看详情