深度学习框架

  • 一小点作者内心os:24年春节已过完,从熟悉的地方又回到陌生的地方谋生,愿新的一年都得偿所愿,心想事成。

学到这会儿会发现,除非应用更复杂的模型,例如卷积神经网络,或者循环神经网络,或者当开始应用很大的模型,否则它就越来越不实用了,至少对大多数人而言,从零开始全部靠自己实现并不现实。

幸运的是,现在有很多好的深度学习软件框架,可以帮助实现这些模型。类比一下,猜知道如何做矩阵乘法,还应该知道如何编程实现两个矩阵相乘,但是当在建很大的应用时,很可能不想用自己的矩阵乘法函数,而是想要访问一个数值线性代数库,它会更高效,但如果明白两个矩阵相乘是怎么回事还是挺有用的。认为现在深度学习已经很成熟了,利用一些深度学习框架会更加实用,会使的工作更加有效,那就让来看下有哪些框架。

现在有许多深度学习框架,能让实现神经网络变得更简单,来讲主要的几个。每个框架都针对某一用户或开发群体的,觉得这里的每一个框架都是某类应用的可靠选择,有很多人写文章比较这些深度学习框架,以及这些深度学习框架发展得有多好,而且因为这些框架往往不断进化,每个月都在进步,如果想看看关于这些框架的优劣之处的讨论,留给自己去网上搜索,但认为很多框架都在很快进步,越来越好,因此就不做强烈推荐了,而是与分享推荐一下选择框架的标准。

一个重要的标准就是便于编程,这既包括神经网络的开发和迭代,还包括为产品进行配置,为了成千上百万,甚至上亿用户的实际使用,取决于想要做什么。

第二个重要的标准是运行速度,特别是训练大数据集时,一些框架能让更高效地运行和训练神经网络。

还有一个标准人们不常提到,但觉得很重要,那就是这个框架是否真的开放,要是一个框架真的开放,它不仅需要开源,而且需要良好的管理。不幸的是,在软件行业中,一些公司有开源软件的历史,但是公司保持着对软件的全权控制,当几年时间过去,人们开始使用他们的软件时,一些公司开始逐渐关闭曾经开放的资源,或将功能转移到他们专营的云服务中。因此会注意的一件事就是能否相信这个框架能长时间保持开源,而不是在一家公司的控制之下,它未来有可能出于某种原因选择停止开源,即便现在这个软件是以开源的形式发布的。但至少在短期内,取决于对语言的偏好,看更喜欢
Python

Java
还是
C++
或者其它什么,也取决于在开发的应用,是计算机视觉,还是自然语言处理或者线上广告,等等,认为这里的多个框架都是很好的选择。

程序框架就写到这里,通过提供比数值线性代数库更高程度的抽象化,这里的每一个程序框架都能让在开发深度机器学习应用时更加高效。

标签: none

添加新评论