热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AI周边十一:我的深度学习的学习之旅

一、前言

今天突然心血来潮,想要简单讲述一下自己学习深度学习的过程。该文章也就不采用啥结构了,就是大概以时间为线索,记录自己在这一年多时间里的学习经历。

需要声明的是,本人是深度学习菜鸡一个,并不是大佬,本文并不想表达任何观点。如果我说的一些东西对你有一丝的帮助,那么我就很高兴了,哈哈!!!

二、正文

在去年的七月份,也就是19年的7月份,我参加完现在所在的研究生学校的夏令营之后,得知导师对我很感兴趣,而且我也基本上可以获得本科学校的保研资格,所以就开始接受导师的学习安排。因为我选的方向是深度学习的嵌入式应用,于是就开始了深度学习的学习之旅!并且导师告诉我,不仅要学习深度学习,还一定要学习好高级语言,如Python、C++。


刚开始学习深度学习的时候,真的是一脸懵,很多东西都不是很懂,比如新手都会经历的环境配置。我清楚的记得我当时配置环境配置了大半天,甚至长达一天,直到import torchimport tensorflow as tf成功。

我一开始学习的是mxnet,接触的学习教程是非常经典的 动手学深度学习,这本书的内容真的非常好,无论是深度学习的一些必备基础知识,还是一些常见的模型和它们的实例应用都可以在书中找到。后来这本书被翻译成了pytorch版本,所以我才算真正开始学习pytorch。我一开始学习的主要是:线性回归、softmax回归、感知机、权重衰减、过拟合/欠拟合、反向传播以及梯度下降这些必备知识。


学习了一段时间的深度学习的基本概念之后,我就开始重点学习pytorchtensorflow2.0的语法以及神经网络模型的搭建和训练。没事做做笔记,跑一跑书上或者网上找的代码,只要能不报错,看到模型输出结果就会很高兴。

然而模型也分很多种,我一开始学习的是回归模型卷积神经网络分类模型。后来随着学习的深入,陆续接触了目标检测模型、语义分割模型、人脸检测与识别模型以及生成对抗神经网络(GAN)。因为我主要学习的是计算机视觉方面的知识,所以上述模型都有所接触,但是之后使用模型的时候使用的最多的还是图像分类目标检测方面的模型。


在学习了pytorchtensorflow2.0的基本语法以及一些比较高级的语法之后,我开始有些迷糊了!因为它们都有很多的API,如果我自己不认真的总结一下,可能就很难实现自己动手写代码。我这里针对的主要是在用到某个功能的时候,你不知道去调用哪一个或者哪一类API,所以你在网上搜都不好搜。所以我当时想的是自己在那个阶段要至少知道一些常用的API它们大致是做什么的,然后在写代码的时候,我知道要使用哪一个或者哪一类,然后再去有针对性的搜索这个API应该怎么使用。

于是我就开始看pytorchtensorflow2.0官方API文档,看的时候刚好可以根据之前看的教程筛选一下一些比较常用的API,然后将它们大致分下类。大概花了一天的时间,我完成了上面所说的任务,自己总结在了一个word文档里,方便以后查看。


但是后来,又有了新的问题,那就是即使知道使用什么API,但是在实现比如获取数据集、搭建模型、训练模型等一些必须流程,又或者是迁移学习、保存和加载模型、动态调整学习率等一些也很重要的功能的时候,我到底应该怎么去组织代码?每个功能不止一种实现方式,不同框架之间实现方式自然也不一样,所以这些都是需要去总结的。至少对于我来说,如果我脑子里对这些东西不清晰,我是没有办法继续学习下去的。

于是我又开始了上述任务,花了几天时间总结了大部分内容,然后又在后续学习中不断添加新的内容,并且以博客的形式记录了下来。一是为了方便自己随时随地查看,还有就是也希望能帮助到其他人,万一有帮助呢是吧!!!在写博客的时候,我顺便也把一些常用API的具体使用方法,比如它的每个参数是什么意思,一点一点的记录了下来。当然这其中参考了很多优秀的资料。 上述所提到的内容我都写在了我的pytorchtensorflow2.0学习笔记专栏里,下面我把链接贴出来:

  • TensorFlow2.x学习笔记

  • PyTorch学习笔记


基础知识以及一些进阶的知识学得差不多了之后,我就开始准备多看一些实际的项目,写注释、或者根据自己的需要修改代码等等,争取多熟悉一些真实的项目。而且在实战的时候,也学到了很多知识,更新到了自己的学习笔记中。我这个人有强迫症,比较喜欢整理资料,所以我也就把看过的,比较好的项目都存在了文件夹里,哈哈哈!

AI周边十一:我的深度学习的学习之旅
可以看到,其中有图像分类、迁移学习、图像生成、风格迁移、人脸检测与识别、SSD目标检测。
AI周边十一:我的深度学习的学习之旅
可以看到,其中有yolov3目标检测、人脸检测、人脸识别、是否戴口罩识别、猫狗分类、语义分割、迁移学习。


当然学习计算机视觉的知识,怎么也避不开opencv,因此我也在学习过程中写了一些博客记录比较重要和常见的知识点,专栏链接奉上:OpenCV-Python学习笔记

三、总结

作为小白,该学的或多或少都接触或者学习了,当然还有很多很多的知识等着你去发现并学习。那么接下来你就要尝试自己去动手做一些项目,关于这一块我现在也就不说了,以后有机会再说吧!!!拜拜!!!

再次声明,以上就是自己心血来潮,也可以说是为了防止自己不清楚在过去一年都做了些什么而对自己的深度学习的学习之旅做的回顾,不想表达任何观点,溜了,溜了!!!(滑稽)


推荐阅读
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
author-avatar
天山金泉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有