区分磁盘模型的类型

Distinguish types of on-disk models

Tensorflow有几个types of model formats:

  1. TensorFlow SavedModel 2. Frozen Model 3. Session Bundle 4. Tensorflow Hub module

你如何在磁盘上区分它们? (稍后与 tensorflowjs-converter 一起使用)

每个模型是如何创建的?

是的,有很多不同的模型类型,它们都有充分的理由。我不会声称我对每一个都非常清楚,但这是我所知道的(我想我知道)。

  • .pb文件:PB代表protobuff或Protocol Buffer。这是模型结构,一般没有训练好的权重,以二进制格式存储。
  • .pbtxt 文件:pb 文件的非二进制供人类阅读。
  • 未冻结的 Protobuff 文件也需要检查点 .ckpt 文件。检查点文件是 pb 需要的缺失的一组权重。
  • .h5 文件:模型 + 来自 Keras 保存的权重
  • .tflite 文件将是一个 TensorflowLite 模型
  • 冻结模型:冻结模型结合了pb和权重文件,因此您不必管理其中两个。通常,这意味着将单词 frozen 添加到文件名中。我确定这可以在加载文件时推断出来,但在磁盘上它们更多地位于荣誉系统上并且没有 ckpt 文件。这会去除无关的图形信息;它基本上就像模型的 "Production Ready" 版本。
  • Session Bundle:是一个目录。它们不再使用,而且很少见。
  • Tensorflow Hub 模块:这些 pre-existing 流行模型很可能已经导出到 TFJS,不需要您手动转换它们。我认为他们得到支持是为了 Google 的利益,而不是我们的。但很高兴知道如果你使用集线器,你可以随时转换它。

一组 multi-exported 文件看起来像这张图片。从这里,您可以看到很多可以变成 TFJS 的内容。