首先介绍几个概念,个人理解,希望读者指正:
1、tensorflow的ckpt模型
2、tensorflow的pb模型
3、tensorflow的tflite模型
1、tensorflow的ckpt模型和pb模型
话不多说,我用最少的语句介绍,我们通常使用saver=tf.train.import_meta_graph和saver.restore使用的是ckpt模型model
model name | LFW accuracy | training datasets | Architecture |
20180402-114759 | 0.9965 | VGGFace2 | Inception ResNet v1 |
就拿FaceNet(20180402-114759)举例,文件目录如下
(a)model-20180402-114759.ckpt-275.data-00000-of-00001
model-20180402-114759.ckpt-275.index
这两个文件是二进制文件,其中包含所有的权值,偏差,梯度和其他所有保存的值。或者说保存了参数和参数列表。
(b)model-20180402-114759.meta
这个文件是一个保存完整的Tensorflow图的协议缓存区,即所有的变量操作,集合等等。该文件具有.meta扩展名。
(c)20180402-114759.pb
注意上面的保存参数的值文件,和保存图文件是分下来的。这个pb文件是将图和参数的值保存到一个文件。
总结:ckpt模型就是将图和参数的值保存两个文件,pb模型就是讲图和参数的值保存为一个文件。
注意:一些pb模型保存了图和图中的常量,但不保存变量。“冻结”过的pb模型将模型里面的所有变量都变为常量,那么就可以直接使用.pb文件做成接口,无需.ckpt文件再次导入变量的值。(冻结见下一篇文章)
2、tensorflow的tflite模型
tensorflow lite是 Google I/O 2017 大会上的其中一个重要宣布,有了TensorFlow Lite,应用开发者可以在移动设备上部署人工智能。
简单介绍一下图片图片就是将训练好的tensorflow模型使用Tensorflow Lite Converter转换为.tflite模型,然后就可以用在Android和IOS APP上(当然也可以用在PC上,在tensorflow框架下直接调用)。
总结:tflite模型就是已.tflite模型结尾的文件可以用在Android和IOS APP上面。