为什么深度学习库如此庞大?

11

我最近从PyPI上下载了所有软件包。有一个有趣的观察结果是在最大的15个软件包中,除了一个之外,其他全部都是深度学习软件包:

我查看了mxnet-cu90。它只有一个巨大的文件:libmxnet.so(936.7MB)。这个文件包含什么?有没有办法使它更小?

我特别惊讶于这些库如此之大,考虑到通常是在CUDA + cuDNN的基础上使用它们,我认为这些后者会负责大部分工作。

为了比较,我查看了一些相关的库,你也可以用它们构建深度学习库:

  • numpy:6MB
  • sympy:6MB
  • pycuda:3.6MB
  • tensorflow-cpu:116MB(因此GPU版本需要更多的241 MB或约3倍大小!)

3
我不确定我理解问题的意思。你为什么认为它们应该比现在小?你说的“巨大”是指什么? - EJoshuaS - Stand with Ukraine
2
它们是PyPI上迄今为止最大的包。mxnet-cu90有600MB。除了一个纯数据包之外,下一个最大的包不到350MB(我需要检查少多少)。此外,numpy约为6MB。因此,mxnet的1%。sympy也是6MB。pycuda是3.6MB。 - Martin Thoma
1
@EJoshuaS-ReinstateMonica 我添加了一些数字进行比较。 - Martin Thoma
1
是的,现在包括这些细节后,那些数字看起来确实异常高。我会投票支持重新开放。 - EJoshuaS - Stand with Ukraine
2
它很大是因为他们把cudnn打包在内。 - snowflake
显示剩余3条评论
1个回答

6

深度学习框架之所以庞大,是因为它们将NVIDIA的CuDNN打包到其安装程序中,这是为了方便终端用户。

CuDNN是框架调用以执行高度优化的神经网络操作(例如LSTM)的基元。

Windows 10的未压缩CuDNN版本大小为435MB。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接