最近在试着使用pyqt5,将tensorflow.keras模型打包成EXE应用程序,这样就比较方便的以界面形式展示给他人。下面是我写的一个非常简陋的pyqt5界面。
功能:以按钮+对话框形式加载keras的h5模型和任意一张验证集图像,实现预测分类结果。
现在问题来了,虽然这是一个简单的界面,实现的功能也很简单。但是,这个界面通过pyinstaller打包之后,竟然足足有890MB!!!而我的keras模型h5文件只有70MB,其他文件那就更小了,为什么多出来这么多内容呢?查阅资料后,说是pyinstaller会将anaconda中的一些无用的模块也一起打包。然后我就在anacona中新建了一个环境,只安装了tensorflow、pyqt5和pyinstaller三个模块(当然还有一些建立anaconda环境时自带的模块)。我再次打包,发现得到的EXE应用程序减小到了750MB。由此可见,通过新建anconda环境这种方法依然不能很好的解决问题。后来查阅资料看到有人说使用pipenv建立虚拟环境来打包程序,得到的EXE文件会小很多。不过,我的pycharm加载pipenv虚拟环境时出现了致命问题,弄了一下午都没弄好。接着放弃。
突然,我想到了一点,我的这个tensorflow.keras模型是在tensorflow-gpu上训练的,而我之前打包时环境里安装的是gpu版,如果我换成cpu版会怎么样?然后我在anaconda中新建了个CPU版的tensorflow环境&