尝试使用 tf.saved_model.load() 加载张量流时出现"Read less bytes than requested"错误



我一直在尝试在本地运行我的同事创建的web服务器,其中包含处理对象检测请求的部署模型。有很多兼容性问题,因为他在Windows上,我在MacOS上。

我已经能够解决与依赖关系的所有兼容性问题,并使web服务器运行,但是当我试图从saved_model目录加载对象检测模型时,我一直遇到这个问题。目录的结构为:
saved_model/
variables/
variables。数据- 00000 - 00001
         变量。指数
saved_model.pb

我创建了一个测试脚本来尝试隔离问题,它看起来如下:

import tensorflow as tf
model = tf.saved_model.load("./saved_model")
# print model summary
print("loaded model")
print(model.summary())

当我运行脚本时,我得到以下错误,这是我在运行web服务器时得到的相同错误。

Traceback(最近一次调用):文件"/Users/alexandrospouroullis/programming-projects/elevat3d/backend/workspace/training_demo/exported-models/my_model_1024/testFile.py&quotModel = tf.saved_model.load("/saved_model")File "/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/saved_model/load.py",第782行,在load.py&quotresult = load_partial(export_dir, None, tags, options)["root"]文件"/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/saved_model/load.py",第912行,在load_partial .py&quotloader = loader (object_graph_proto, saved_model_proto, export_dir,文件"/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/saved_model/load.py",第189行,在initself._restore_checkpoint ()文件"/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/saved_model/load.py",第507行,在_restore_checkpointLoad_status = saver。恢复(variables_path self._checkpoint_options)文件"/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/training/tracking/util.py",第1430行,在restoreobject_graph_string = reader.get_tensor(base.OBJECT_GRAPH_PROTO_KEY)文件"/Users/alexandrospouroullis/opt/miniconda3/envs/elevat3d-api/lib/python3.10/site-packages/tensorflow/python/training/py_checkpoint_reader.py",第66行,在get_张量CheckpointReader返回。CheckpointReader_GetTensor (error: Read less bytes than request

我知道像Docker这样的东西就是为此而设计的;我实际上创建了一个docker-compose。我设法启动并运行的yaml文件,但它面临着完全相同的问题。

我在网上看了一下,但这似乎不是一个常见的问题,而且据我所知,没有补救办法。

出了什么问题?

您必须检查两件事:

  1. 确保您的权重文件(在变量文件夹下)正确加载到您的docker环境中(检查文件的大小)。有时,文件没有正确加载,只有2kb,而实际文件至少为0.5 GB甚至更高。
  2. 加载模型时内存足够。TF型号占用相当大的基础设施,建议至少使用16GB RAM。我也遇到过类似的问题。我的原因是权重文件point1损坏。

相关内容

  • 没有找到相关文章

最新更新