Python深度学习:基于PyTorch
吴茂贵 郁明敏 杨本法 李涛 张粤磊
前言
为什么写这本书
在人工智能时代,如何尽快掌握人工智能的核心——深度学习,是每个欲进入该领域的人都会面临的问题。目前,深度学习框架很多,如TensorFlow、PyTorch、Keras、FastAI、CNTK等,这些框架各有优缺点,应该如何选择?是否有一些标准?我认为,适合自己的就是最好的。
如果你是一位初学者,建议选择PyTorch,有了一定的基础之后,可以学习其他一些架构,如TensorFlow、CNTK等。建议初学者选择PyTorch的主要依据是:
1)PyTorch是动态计算图,其用法更贴近Python,并且,PyTorch与Python共用了许多Numpy的命令,可以降低学习的门槛,比TensorFlow更容易上手。
2)PyTorch需要定义网络层、参数更新等关键步骤,这非常有助于理解深度学习的核心;而Keras虽然也非常简单,且容易上手,但封装粒度很粗,隐藏了很多关键步骤。
3)PyTorch的动态图机制在调试方面非常方便,如果计算图运行出错,马上可以跟踪问题。PyTorch的调试与Python的调试一样,通过断点检查就可以高效解决问题。
4)PyTorch的流行度仅次于TensorFlow。而最近一年,在GitHub关注度和贡献者的增长方面,PyTorch跟TensorFlow基本持平。PyTorch的搜索热度持续上涨,加上FastAI的支持,PyTorch将受到越来越多机器学习从业者的青睐。
深度学习是人工智能的核心,随着大量相关项目的落地,人们对深度学习的兴趣也持续上升。不过掌握深度学习却不是一件轻松的事情,尤其是对机器学习或深度学习的初学者来说,挑战更多。为了广大人工智能初学者或爱好者能在较短时间内掌握深度学习基础及利用PyTorch解决深度学习问题,我们花了近一年时间打磨这本书,在内容选择、安排和组织等方面采用了如下方法。
(1)内容选择:广…