新手广场 · 视觉工程师入门TensorFlow的项目与资源合集

视觉工程师入门TensorFlow的项目与资源合集

💡
本文完成于2019年。在2024年,我已经全面迁移至PyTorch。以下内容中,基础知识章节由于涉及底层知识尚可参考。其余涉及TensorFlow的章节已经失去了参考价值,请谨慎阅读。

如同学习其它任何新技能一样,掌握深度学习并无捷径可循。布满墨迹的A4纸张,屏幕上不断生长的代码,冒着呼呼热气的GPU,都是你成长道路上所付出努力的证明。

深度学习很复杂,涉及到的知识点范围跨度大,分布零散。从最基础的卷积算法到TensorFlow高阶API封装,每个知识点都仿佛一朵绽放的重瓣菊花,既可以向下深挖知识原理,又可以发散到不同的维度开启组合优化。新手入门,仿佛闯入布满镜子的迷宫,一眼望去到处是看不到尽头的知识,只知终点一定隐藏在迷宫深处。

但是,没有捷径并不意味着只能两眼一闭摸黑乱撞。走过迷宫的先驱者们或多或少都会留下探索的痕迹。跟随他们的脚印,踏实地走好每一步,是新手高效学习之光。

基础知识

不积跬步,无以至千里

什么是分辨率?什么是色彩?如何数字化一张图像?如果你对这些概念的含义还拿不准的话,请先观看计算机视觉入门视频。兵马未动,粮草先行。

这些视频的定位并非要实现全面无遗漏的介绍,而是希望从简单的概念着手,尽量避免使用生涩的专业词汇,力求让不具备专业背景知识的人也能够在看完视频后发出“哦,原来是这样!”的感叹。

所以,在视频表达方式的天平上,通俗易懂胜过专业严谨。不过不要担心,每段视频的发布页面会尽可能将视频中涉及到的专业参数的引用来源列出,供有需要的人士查询。

人眼的分辨率有多高
手机拍照都一亿像素了!
什么是视网膜屏
如果不能用分辨率,那应该用什么来反映人眼分辨能力的差异?
什么是色彩
我眼里的色彩和你眼里的色彩一样吗?
什么是HDR
人类视觉系统终于扳回一局
如何数字化一张图像
肖恩被数字化了!
人脸检测算法
大名鼎鼎的Viola-Jones算法
深度学习十大应用
十分钟,了解十大应用。
深度神经网络
深度神经网络的本质,它的基本构成、核心理论以及发展历程。

精选项目

临渊羡鱼,不如退而结网

跟随精选实战项目一步一步入门TensorFlow。本章节的每个项目都是从数据到模型的完整实现,知识点逐渐增加,难度逐渐上升。不要着急,慢慢来。

拯救火星邮局 - 你的第一个神经网络

MNIST是一个由人类手写数字图像构成的数据集。它的作者为Yann LeCun、Corinna Cortes与Christopher J.C. Burges。该数据集曾被用作分类算法的开发与评估。给定任一张图像,给出该图像对应的数字。深度学习的入门教程普遍以该任务为实例。它足够简单——包含10个类别的图像分类问题;同时又足够复杂——人类手写的数字可以非常潦草、难以辨认。

这篇教程同样以MNIST为实验内容载体。不过与其它教程不同的地方在于,你将真正意义上从零开始,一步一步实现一个功能完备的深度学习项目。

卷积神经网络

从超过20万张图像样本中学习人脸特征点的分布规律。学习TensorFlow Record文件的生成。掌握TensorFlow卷积层的使用方法,构建经典神经网络架构。克服姿态、光照、遮挡等不利因素,最终实现头部姿态的视频实时检测。

卷积神经网络(进阶)

构建更加先进、复杂的神经网络架构。借用数据增强强化模型:随机旋转、翻转、缩放。掌握模型优化手段:剪枝与量化。

物体检测(专题)

向经典的物体检测方案学习,掌握关键核心概念:anchor,FPN。理解深度卷积神经网络在检测方案中扮演的角色。

人脸识别(专题)

揭开人脸识别原理的神秘面纱,了解技术链条中不同阶段的实现背景,获取98%+准确率的自有人脸识别模型。

迷你项目

细节决定成败

探索众多迷你项目,点亮技能点,为今后的实战项目做好准备。

深度学习有着大量的零散的知识点与技能。但是这些小小的技能点在关键时刻可以起到大用处。有空的时候来看看,也许会受到不一样的启发。

模型拼接

掌握构建模型的不同方式,在项目中灵活应用。

从OpenImages数据集中提取人脸图像

项目遇到数据短缺问题,如何从现有的公开数据集中获取资源。提取包含人脸的图像以及边界框的位置坐标。

读写自定义TFRecord文件

高效存储读取训练用文件,掌握TensorFlow Record文件的创建、读取与解析方法。

随机化大型数据集

使用大型数据集训练模型面临一个不可忽略的问题:如何有效地随机化数据。

使用Checkpoint保存训练进度

灵活使用Checkpoint,保存训练进度与自定义对象。

官方文档

在训练过程中保存模型预测的图像

如何在训练进行中直观地检查模型表现。

模型剪枝(参数分布稀疏化)

如何大幅度减小模型体积,却只牺牲少量性能?

模型量化(参数范围离散化)

将你的模型移植到特殊的硬件设备中运行。

为Apple设备转换模型

为你的同事准备好一款让他们放心的模型。

其它资源

我平时搜集的实用外部资源

GPU运算环境搭建

如果你希望使用图形界面:

Ubuntu20.04安装CUDA11.3与CUDNN8
2022年深度学习环境搭建

如果你需要在无图形界面的远程服务器:

以Runfile的方式安装CUDA 11
在Ubuntu Server 20.04上安装CUDA 11。
以Tar包的方式安装cuDNN 8
适用于多种Linux系统。

机器学习术语表

由Google整理发布的术语表,包含中文版本。

Machine Learning Glossary | Google Developers
Compilation of key machine-learning and TensorFlow terms, with beginner-friendly definitions.

深度理解深度学习

通过可交互与可视化的方式深入理解深度学习。

Distill — Latest articles about machine learning
Articles about Machine Learning

无法测量就无法进步

猫狗分不清——如何科学评价深度学习模型
召回、误报、准确率、ROC、PR、混淆矩阵都是啥意思?与张小白一起,掌握模型评价的科学方法。

深度学习视觉工程师技能树

查漏补缺,照猫画虎。

数据集

与以上项目相关的公开数据集。

数据集
深度学习新手项目常用公开数据集

调参经验

三人行必有我师。

A Recipe for Training Neural Networks
Musings of a Computer Scientist.
What should I do when my neural network doesn’t learn?
I’m training a neural network but the training loss doesn’t decrease. How can I fix this? I’m not asking about overfitting or regularization. I’m asking about how to solve the problem where my net...

开发者

一对一交流

Get in touch

有话想对我说?你可以选择以下几种方式。

  1. GitHub开issue。适合与项目代码相关的技术问题。我基本上每天都会查看GitHub,这是最快的方式。
  2. 发邮件给我。如果你不想让其他人看到你提出的问题。我会定期查阅邮件。
  3. 向“流浪AI”公众号发送信息,我都看得到。

如果你足够幸运,也许能找到我的个人微信。