最近我一直在研究深度学习框架,一直在想PyTorch这个名字的起源。
Keras的主页很好地解释了其名称的由来,而像TensorFlow这样的框架,命名背后的道理似乎很清楚。但是对于PyTorch,我似乎找不到它被命名的原因。
当然,我知道“Py-”前缀,也知道PyTorch在某种意义上是Torch的继承者。但我仍然想知道:“-Torch”部分背后的原始想法是什么?是否已知道这个名称的来源?
最近我一直在研究深度学习框架,一直在想PyTorch这个名字的起源。
Keras的主页很好地解释了其名称的由来,而像TensorFlow这样的框架,命名背后的道理似乎很清楚。但是对于PyTorch,我似乎找不到它被命名的原因。
当然,我知道“Py-”前缀,也知道PyTorch在某种意义上是Torch的继承者。但我仍然想知道:“-Torch”部分背后的原始想法是什么?是否已知道这个名称的来源?
这里是一个简短的回答,形式上是另一个问题:
PyTorch是从Torch7发展而来的。原始Torch的前身是一个叫做SVM-Torch的库,在2001年左右开发出来。SVM代表支持向量机。
SVM-Torch是一种分解算法,类似于SVM-Light,但针对回归问题进行了改进,详见this paper。
同时在这个时期,G.W.Flake描述了顺序最小优化算法(SMO),可用于训练稀疏数据集上的SVM,并被纳入NODElib。
有趣的是,这被称为the SMORCH algorithm。
你可以在NODElib docs中了解更多关于SMORCH的信息。
优化SVM是通过John Platt的顺序最小优化(SMO)算法的一种变体来执行的。这个版本的SMO是用于回归的,使用内核缓存,并结合了几种启发式方法;因此,我们将优化算法称为SMORCH。