微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用tenserflow将python项目部署到exe文件? 甚至有可能吗?

如何解决如何使用tenserflow将python项目部署到exe文件? 甚至有可能吗?

我有一个基于ImageAI的项目(代码直接取自文档),用到了tenserflow、keras等依赖,需要打包成exe文件

问题是,到目前为止,我一直无法做到,我一直在使用 pyinstaller 库。但是我遇到的问题是我无法创建一个可以工作的 exe 文件。 exe 文件会在几分之一秒内关闭。一切都在你身上。

现在更详细地,这是代码本身:

StartRequest()

我使用虚拟环境“virtual env”,以便在那里存储所有依赖项,没有任何额外的东西。 一开始我尝试这样打包:pyinstallerdetect.py,这是最常用的打包方式,但是我收到警告说找不到正确的tenserflow文件,例如:

from imageai.Detection import ObjectDetection
import easygui
import os


path = easygui.fileopenBox();
print(path);

exec_path = os.getcwd()

detector = ObjectDetection()
detector.setModelTypeAsRetinaNet()
detector.setModelPath(os.path.join(exec_path,"resnet50_coco_best_v2.0.1.h5"))
detector.loadModel()


list = detector.detectObjectsFromImage(
    input_image = os.path.join(exec_path,path),output_image_path= os.path.join(exec_path,"new_objects.jpg"),minimum_percentage_probability = 60)

还有一些库的语法问题(虽然代码运行正常):

166260 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.mixed_precision" not found!
166440 WARNING: Hidden import "tensorflow_core._api.v1.compat.v2.keras.callbacks" not found!
166615 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.estimator" not found!
166626 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.estimator.tpu" not found!
168300 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.estimator" not found!
168307 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.applications.nasnet" not found!
168839 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.activations" not found!
168854 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.preprocessing.text" not found!
169538 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.metrics" not found!
169711 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.applications.inception_v3" not found!
169815 WARNING: Hidden import "tensorflow_core._api.v1.compat.v1.keras.datasets.cifar10" not found!

和一切本着这种精神,之后我意识到必须连接隐藏的导入并立即连接模型(yolo.h5),这实际上是我所做的:

Traceback (most recent call last):
  File "<string>",line 21,in walk_packages
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\notebook\terminal\__init__.py",line 4,in <module>
    import terminado
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\terminado\__init__.py",line 7,in <module>
    from .websocket import TermSocket
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\terminado\websocket.py",line 18,in <module>
    import tornado.web
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\tornado\web.py",line 84,in <module>
    from tornado.concurrent import Future,future_set_result_unless_cancelled
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\tornado\concurrent.py",line 28,in <module>
    import asyncio
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\asyncio\__init__.py",in <module>
    from .base_events import *
  File "c:\users\sleping\appdata\local\programs\python\python37-32\lib\site-packages\asyncio\base_events.py",line 296
    future = tasks.async(future,loop=self)
                       ^
SyntaxError: invalid Syntax

不幸的是结果仍然令人失望,虽然没有关于缺少tenserflow的消息,其他一些错误也没有了,取而代之的是新的,例如:

pyinstaller --paths ..\env\Lib\site-packages --add-data yolo.h5;. --hidden-import=h5py;. --hidden-import=h5py.defs --hidden-import=h5py.utils --hidden-import=h5py.h5ac --hidden-import=h5py._proxy detect.py

或:

241397 WARNING: Hidden import "pkg_resources.py2_warn" not found!
241417 WARNING: Hidden import "pkg_resources.markers" not found!

而且语法无效的问题也是一样,和上面一模一样。

总而言之,我很抱歉问题变得如此之大,对此我深表歉意。但是我非常非常需要这个exe文件。 有哪些解决方案?是否有可能将这样的项目打包成一个 exe 文件?如果是,通过什么方式可能?还是可以用pyinstaller解决问题?

这是我放入的依赖项:tensorflow==2.4.0、keras==2.4.3、numpy==1.19.3、pillow==7.0.0、scipy==1.4.1、h5py==2.10 .0,matplotlib==3.3.2,opencv-python,keras-resnet==0.2.0,imageai。在项目文件夹中,我有模型“yolo.h5”,运行机器学习

解决方法

1.首先你需要保存你的tensorflow模型权重,即(model.pb)

  1. 将其转换为 tensorflowlite (TF.lite) & 你可以在安卓手机中使用它

    load and save model -tensorflow

甚至你可以参考这个coursera课程device-based-models-tensorflow

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。