最近需要使用PyTorch搭建模型,由于时间上比较宽松,所以找了本书学习了一下PyTorch的基本知识作为入门。选的书籍为《deep learning with pytorch》,这本书总体上分为三个部分:
第一部分介绍PyTorch的基本知识:预训练模型、基本数据结构、搭建神经网络、建立卷积神经网络;包含章节为 Chapter 1——Chapter 8;
第二部分使用PyTorch解决一个具体的问题:肺癌检测;包含章节为 Chapter 9——Chapter 14;
第三部分包含单独的章节——Chapter 15,关于如何将PyTorch模型部署到web服务、嵌入到C++程序、集成到移动应用中;
个人推荐阅读最新的英文原版书籍,这本书的英文不是特别难;在介绍PyTorch应用方面,比官网的教程稍微详细一点,因为书还是把原理介绍的比较详细,由浅入深,非常适合深度学习以及PyTorch入门者。
[Deep Learning with Pytorch] 系列博客将整理对这本书的学习笔记,书中代码是在Jupyter下运行的,个人使用的是Google的Colab,pytorch的版本为:1.6.0+cu101。
机器学习(machine learning)算法很大程度上依赖于特征工程(feature engineering)。特征是对输入数据进行的变换(transformations),从而有助于下游算法(例如分类器)在新数据上产生正确的输出。特征工程包括提出使得下游算法可以解决具体任务的正确变换。
深度学习(deep larning)则可以从输入数据中自动寻找使得下游任务成功执行的表达(representations),过滤器(filter)的参数是在训练的过程中根据输入样本(example)和对应的标签(target label)迭代地调整更新。
深度学习有时候也需要特征工程作为系统的先验知识(prior knowledge)。
训练过程中需要定义一个评判期望输出和模型实际输出之间差距的实值函数,称之为criterion(实际上就是损失函数loss)。它将差距表征为分数(score),通常情况下,差距的分数越低越好。训练过程则是不断调整深度学习模型,使得损失函数趋向于较低值。
核心数据结构:张量(tensor)——多维数组,与Numpy的arrays有很多相似的特性;使用张量表征数字、向量、矩阵和数组,并提供运算的函数;在与深度学习相关方面,PyTorch使用GPU提供加速计算,同时提供对通用数学表达式进行数值优化的接口–>深度学习中训练网络。
两个核心
(1) tensor和定义在tensor上的operation
(2) 自动微分:跟踪在tensor上执行的运算,并自动计算输出对输入的梯度。
用于构建神经网络的核心组件–>torch.nn
提供构建神经网络的结构:卷积层、全连接层、激活函数、损失函数
用于深度学习