深度学习案例教程 教案1.8 深度学习框架介绍.docx
1-08深度学习框架介绍
(p26)接下来我们来介绍一下深度学习的框架。
深度学习框架是指一类软件工具,用于构建、训练和部署深度学习模型。与传统的机器学习框架相比,深度学习框架更加注重对深度神经网络的支持和优化。通过提供高效的计算图构建和自动微分功能,深度学习框架可以大大简化深度学习模型的开发和调试过程。
深度学习框架按照编程语言分类,目前比较流行的深度学习框架主要包括Python语言下的TensorFlow、PyTorch、Keras,以及C++语言下的Caffe、MXNet等。除此之外,还有一些跨平台、多语言的深度学习框架,如PaddlePaddle、Theano等。这些框架各有特点,应根据具体任务和需求进行选择。
深度学习框架的核心功能包括计算图构建、自动微分、优化器、分布式训练、多样化的网络结构支持等。具体来说,计算图构建是指将神经网络的结构转换为计算图的过程,自动微分是指自动计算神经网络中的梯度,优化器是指使用梯度下降等算法对神经网络参数进行优化,分布式训练是指将训练过程分布在多个计算节点上进行加速,多样化的网络结构支持是指支持各种类型的网络结构,如卷积神经网络、循环神经网络、Transformer等。此外,深度学习框架还具有易用性、跨平台性、社区支持等优势
(p27)本课程我们主要使用pytorch框架,接下来我们来介绍pytorch框架
在2017年1月的时候,由Facebook人工智能研究院团队,在github上面开源了patch的机器学习库。这个时候,pytorch就诞生了。
它是一个具有先进理念的框架。它的历史可追溯到2002年,最早诞生于纽约大学的。
Torch。它是使用一种大众的lua语言作为接口的一种框架。lua语言简洁高效,但由于它是一门小众语言,以至于很多程序员听说要去掌握touch,必须要学习一门新语言,而望而却步。其实呢,这个lua,是一门比python还简单的语言。
在2017年10月的时候,pytorch的热度,已超越了其他的框架。比如说像caffetheano。
并且热潮在持续上升。
它的最大优势他建立的神经网络是动态的,可以非常容易的输出每一步的调试结果。
相对于其他的框架来说,调试起来十分方便。
(p28)下面我们来了解一下pytorch框架的的特点以及优势。pytorch可以看作是加入了GPU支持的一个numpy??类(numpy就是python的一个扩展程序库),早期的tensorflow以及caffe都是命令式的编程语言,它并且都是静态的,就是说首先必须要构建一个神经网络,然后一次又一次的使用相同的结构。如果我们要改变这个神经网络的结构呢?就必须从头开始。但是pytorch呢通过一项反向自动求导的技术。可以让用户零延迟的任意改变神经网络。这就是他的一个独到特点。
pytorch的设计思路是线性、直观、易于使用的。比如说当计算机执行一行代码时。
他会忠实地执行。当用户的代码写的有bug的时候,也可以轻松快捷的找到出错的代码,十分方便。
相对于tensorflow框架而言。pytorch的代码更加简洁直观,同时比tensorflow更加的高度化、工业化。
它的优势就是设计追求最少的封装。避免重复造轮子。并且十分简洁。高效快速。而且它简洁的设计,能让我们更加快速的去理解和阅读代码。
它的源码呢,实际只是tensorflow框架的1/10左右。他利用更少的抽象,更直观的设计,使得pytorch源码,更加容易让我们要去阅读和理解学习。
这就是框架的特点和优势。我们本节课就学到这里。