在本节中,我们会介绍一些前置内容,对本教程做一个整体的介绍并且简要讲解下我们将进行的项目内容。这会帮助我们了解将要学习的知识以及在本教程结束我们掌握的技能。闲话少说,让我们开始学习吧。
学习本教程,您需要掌握以下两项内容:

  1. 基本的编程能力
  2. 了解神经网络

让我们看看我们具体要先掌握哪些内容

序言

编程能力

本教程将使用Python和PyTorch进行神经网络的代码编写。
image.png
事先了解Python不是必须的,但是掌握一些通用的编程知识还是需要的。任何的编程经历或者接触过向量、对象、和循环这些概念都会很有效的应用到本教程中。

神经网络

在本教程中,我们将使用PyTorch,我们需要知道,PyTorch是一个非常简洁的深度学习框架。
image.png
也就是说,从编程角度来看,我们会非常接近于重头开始编写神经网络。因为这个原因,它将增进我们对神经网络和深度学习基础的掌握。这不是必须的,不过我们推荐你先学习深度学习基础这门课程。

教程目录

本教程共有两部分

目录

第一章:张量(tensor)及其操作

  • 第一节:PyTorch介绍
    • 相关前置内容
    • PyTorch介绍
    • PyTorch的安装
    • 为什么深度学习要使用GPU
  • 第二节:张量(tensor)介绍
    • 张量的介绍
    • 张量的rank、axes、shape介绍
    • CNNs和Feature Maps
  • 第三节:PyTorch中的张量
    • PyTorch的张量介绍
    • 在PyTorch中创建张量
  • 第四节:张量操作

    • flatten、reshape和squeeze介绍
    • CNN中flatten操作的可视化
    • 张量广播和对位相乘(element-wise)
    • Argmax和Reduction操作

      第二章:训练神经网络

  • 第一节:数据及其处理

    • 数据的重要性
    • 提取(extract)、变换(transform)、加载(load)
    • PyTorch的Datasets和DataLoaders
  • 第二节:神经网络及使用PyTroch设计网络
    • 使用PyTorch搭建CNN
    • CNN中的各层
    • CNN中的权重
    • 可调用的神经网络模块
    • CNN中的前向计算方法
    • 前向传播解释
    • 批操作(batch)
    • CNN输出尺寸计算
  • 第三节:训练神经网络
    • CNN训练
    • CNN迭代训练
    • 创建混淆矩阵
    • Stack和Concat
    • 使用TensorBoard
    • 超参数调整实验
  • 第四节:神经网络的补充实验
    • 神经网络实验代码
    • 使用模拟超参数测试
    • 加快数据加载
    • 在GPU上进行训练
    • 数据正则化


神经网络编程

第一章

第一章的编程内容主要有两部分。

第一部分将介绍PyTorch和它的特性。重要的是,我们会了解为什么要首选PyTorch。

此外,我们会学习CUDA,这是一个在NVIDIA GPU上进行并行计算的运算平台。如果你想知道为什么深度学习要首选GPU,我们将在关于CUDA的章节中详细介绍。

第二部分都是关于深度学习中的张量和数据结构的。要成为一个专业的深度学习工程师,对张量有深刻的理解是必须的。
image.png
这里,我们还是会使用PyTorch。但是,我们在这一部分学习到的一些概念和操作也会帮助理解深度学习常识并应用到任何深度学习网络中。

第二章

第二章,我们将一起构建一个深度学习项目。第二章由三部分组成。

第一个部分会总体地介绍数据和数据处理以及它是如何与深度学习项目联系的。因为张量是深度学习的数据结构形式,我们会使用到第一章学习到的关于张量的所有知识。我们将介绍Fashion-MNIST数据集并用它来搭建一个用于图像分类的卷积神经网络。
image.png
我们将会学习PyTorch的datasets和dataloader是如何用来进行数据预处理和训练的。

第二部分是关于搭建神经网络的。我们将会使用PyTorch来建立一个卷积神经网络。在这里,我们能看到PyTorch是非常接近与从头搭建神经网络的。

第三部分将会展示通过构建一个能优化网络权重的迭代训练来训练神经网络。如同我们看到的一样,这个迭代训练就是使用一个Python循环实现的。

项目介绍

我们的第一个项目由以下几个部分组成:

  1. 导入Python包
  2. 数据:ETL
  3. 模型:卷积神经网络
  4. 训练:迭代训练
  5. 分析:使用混淆矩阵

在本教程第二章的最后,我们将对这个项目有完整的了解,并且这将使我们成为一个熟练的PyTorch用户同时对深度学习和神经网络有更深入的理解。