keras 转换vgg16时出现SavedModel文件不存在错误

rwqw0loc  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(158)

我想将rcmalli_vggface_tf_vgg16.h5预训练模型转换为js格式,以便在tensorflow-js项目中使用。
要转换此文件,我尝试了不同的方法,但我无法解决这个问题。
我使用converters.convert_tf_saved_model方法加载,然后将其转换为json文件。

converters.convert_tf_saved_model('rcmalli_vggface_tf_vgg16.h5','web_model')

但每次显示以下错误:

SavedModel file does not exist at: rcmalli_vggface_tf_vgg16.h5

虽然我确信h5文件就在运行程序的文件旁边。
我尝试完整路径地址,但发生了相同的错误。我不知道是什么问题

dwbf0jvd

dwbf0jvd1#

您正在转换keras * saved_model *,但该模型是keras * layers_model *,因为它存储在h5文件中。
我发现这种方法转换模型最简单。而且它在大约2秒钟内就完成了。
1.转到TensorflowJS converter Github
1.遵循安装说明

  • 下载您指向from the Github repo的模型。
  • 模型以HDF5文件格式编写
  • 顺便说一下,这是最老的模型,为什么不下载一个新的?
  • 此外,这是一个巨大的模型,除非运行在服务器上,否则它对浏览器没有任何用处(产生50个4MB的碎片文件)
  • 执行转换 *
tensorflowjs_converter --input_format=keras rcmalli_vggface_tf_vgg16.h5 ./converted

1.输出将是一个层模型,必须使用tf.loadLayers API加载。
1.例如,使用const model = await tf.loadGraphModel('path/to/model.json');
注 *:./converted是输出目录,请确保不要覆盖自己的东西。

相关问题