首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问Tkinter文件中的模型权重?

如何访问Tkinter文件中的模型权重?
EN

Stack Overflow用户
提问于 2021-05-02 20:42:14
回答 1查看 86关注 0票数 0

我已经生成了一个Tkinter并生成了一个复制模型权重的exe文件。

权重文件夹位于myTKcode.py文件的同一个文件夹中。

我生成模型并按以下方式加载权重:

代码语言:javascript
复制
import tensorflow as tf
model = MyModel()
model.load_weights("weights/MyModelWeights")

现在,如果我使用pyinstaller生成一个exe文件,如下所示:

代码语言:javascript
复制
pyinstaller --onefile --add-data weights;weights myTKcode.py

根据myTKcode.exe文件的大小,我可以说已经在myTKcode.exe中添加了权重。但是,当我运行myTKcode.exe文件时,它找不到权重文件夹。但是,如果我将权重文件夹复制到dist文件夹( myTKcode.exe所在)中,它就能工作。

我的问题是如何访问存储在myTKcode.exe**?**中的权重

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 23:04:31

以前也问过类似的问题,并找到了解决方案here

简而言之,对于每个文件夹/文件,必须将一个绝对路径添加到独立的exe文件中。

因为我有一个名为权重的文件夹;我只需将以下代码添加到我的代码中:

代码语言:javascript
复制
def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

然后我按以下方式加载重量;

代码语言:javascript
复制
import tensorflow as tf
model = MyModel()
#model.load_weights("weights/MyModelWeights")
weightDir = resource_path("weights") # resource_path get the correct path for weights directory.
model.load_weights(weightDir+"/MyModelWeights")

然后运行pyinstaller,如下所示:

代码语言:javascript
复制
pyinstaller --onefile --add-data weights;weights myTKcode.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67360938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档