对于我正在开发的公开keras模型的库,我有以下文件结构:
relevancy (repo)
relevancy (package repo)
data
model.h5
tokenizer.pickle
test
__init__.py
test_model.py
model.py
__init__.py
__init__.py
setup.py
库基本上加载预先训练的tokenizer.pickle
和model.h5
,并对输入数据进行预测。
在model.py
中,我有一个函数,它包含以下代码,用于加载标记器和模型:
def load()
with open("data/tokenizer.pickle", "rb") as f:
tokenizer = pickle.load(f)
model = keras.models.load_model("data/model.h5")
return tokenizer, model
在test_model.py
中,我在测试中调用此函数。
然后,如果我在/relevancy (repo)
下调用python setup.py test
,我会得到一个错误,说找不到data/tokenizer.pickle
。显然,是亲戚造成了问题。
我应该如何设置我的目录或路径,以便标记器和模型始终可以正确加载?
如果需要访问存储在包中的数据文件,请考虑使用pkg_resources模块。
然后在model.py
中,您可以执行以下操作:
filename = pkg_resources.resource_filename(__name__, 'data/tokenizer.pickle')
with open(filename, 'rb') as f:
...