PyInstaller打包TensorFlow模型体积过大,如何通过API优化?
关于TensorFlow模型服务与PyInstaller可执行文件体积优化的问题
问题背景
我正在开发一个使用预训练TensorFlow MLP模型进行预测的项目,使用PyInstaller生成可执行文件时,文件体积超过2GB,经排查发现仅TensorFlow依赖就占用了约1.3GB。
核心需求
我希望通过服务API的方式减小可执行文件的体积,但目前能找到的所有解决方案都需要依赖完整的TensorFlow,这会引入TensorFlow钩子,反而导致可执行文件体积进一步增大。
已尝试方案的局限
我曾找到一个接近需求的方案,思路是无需安装TensorFlow即可服务模型,但该方案存在以下局限:
- 需要预先掌握模型的细节信息
- 依赖numpy实现预测逻辑,无法在后续启用CUDA加速
- 会错过TensorFlow中除numpy基础多线程之外的其他非GPU优化
疑问
是否存在仅用于模型服务、同时能保持可执行文件体积较小的TensorFlow API?
参考代码(hook-tensorflow.py)
from PyInstaller.utils.hooks import collect_all def hook(hook_api): packages = [ 'tensorflow', 'tensorflow_core', 'keras', 'astor' ] for package in packages: datas, binaries, hiddenimports = collect_all(package) hook_api.add_datas(datas) hook_api.add_binaries(binaries) hook_api.add_imports(*hiddenimports)
内容的提问来源于stack exchange,提问作者Karthik Prakash
相关产品推荐
相关产品推荐

