为什么深度学习库如此庞大?
Why are deep learning libraries so huge?
我最近从 PyPI 下载了所有包。一个有趣的观察是最大软件包的前 15 名,除了一个都是深度学习软件包:
- mxnet:mxnet-cu90 (600 MB), mxnet-cu92, mxnet-cu101mkl, mxnet-cu101(以及另外 6 个 mxnet 版本)
- cntk: cntk-gpu (493MB)
- H2O4GPU (366MB)
- 张量流:tensorflow-gpu (357MB), tensorflow
我看了一下mxnet-cu90。它只有一个巨大的文件:libmxnet.so
(936.7MB)。这个文件包含什么?有什么办法可以让它变小吗?
考虑到人们通常在 CUDA + cuDNN 之上使用它们,我特别惊讶这些库如此庞大,我认为这会完成繁重的工作。
作为对比,我查看了相关库,您也可以使用这些库构建深度学习库:
- numpy: 6MB
- 同情:6MB
- pycuda: 3.6MB
- tensorflow-cpu:116MB(因此 GPU 版本需要 241MB 以上或大约 3 倍的大小!)
深度学习框架很大,因为它们将来自 NVIDIA 的 CuDNN 打包到它们的轮子中。这样做是为了方便下游用户。
CuDNN 是框架调用以执行高度优化的神经网络操作(例如 LSTM)的原语
windows10 的 CuDNN 解压版本为 435MB。
我最近从 PyPI 下载了所有包。一个有趣的观察是最大软件包的前 15 名,除了一个都是深度学习软件包:
- mxnet:mxnet-cu90 (600 MB), mxnet-cu92, mxnet-cu101mkl, mxnet-cu101(以及另外 6 个 mxnet 版本)
- cntk: cntk-gpu (493MB)
- H2O4GPU (366MB)
- 张量流:tensorflow-gpu (357MB), tensorflow
我看了一下mxnet-cu90。它只有一个巨大的文件:libmxnet.so
(936.7MB)。这个文件包含什么?有什么办法可以让它变小吗?
考虑到人们通常在 CUDA + cuDNN 之上使用它们,我特别惊讶这些库如此庞大,我认为这会完成繁重的工作。
作为对比,我查看了相关库,您也可以使用这些库构建深度学习库:
- numpy: 6MB
- 同情:6MB
- pycuda: 3.6MB
- tensorflow-cpu:116MB(因此 GPU 版本需要 241MB 以上或大约 3 倍的大小!)
深度学习框架很大,因为它们将来自 NVIDIA 的 CuDNN 打包到它们的轮子中。这样做是为了方便下游用户。
CuDNN 是框架调用以执行高度优化的神经网络操作(例如 LSTM)的原语
windows10 的 CuDNN 解压版本为 435MB。