企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# TF Slim TF Slim 是一个基于 TensorFlow 核心构建的轻量级库,用于定义和训练模型。 TF Slim 可与其他 TensorFlow 低级和高级库(如 TF Learn)结合使用。 TF Slim 是包装中 TensorFlow 安装的一部分:`tf.contrib.slim`。运行以下命令以检查 TF Slim 安装是否正常工作: ```py python3 -c 'import tensorflow.contrib.slim as slim; eval = slim.evaluation.evaluate_once' ``` TF Slim 提供了几个模块,可以独立挑选和应用,并与其他 TensorFlow 软件包混合使用。例如,在撰写本书时,TF Slim 有以下主要模块: | TF Slim 模块 | 模块说明 | | --- | --- | | arg_scope | 提供将元素应用于作用域下定义的所有图节点的机制。 | | 层 | 提供几种不同的层,如`fully_connected`,`conv2d`等等。 | | 损失 | 提供用于训练优化器的损失函数 | | 学习 | 提供训练模型的函数 | | 评测 | 提供评估函数 | | 指标 | 提供用于评估模型的度量函数 | | regularizers | 提供用于创建正则化方法的函数 | | 变量 | 提供变量创建的函数 | | 网 | 提供各种预制和预训练模型,如 VGG16,InceptionV3,ResNet | TF Slim 的简单工作流程如下: 1. 使用细长层创建模型。 2. 提供层的输入以实例化模型。 3. 使用 logits 和标签来定义损失。 4. 使用便利函数`get_total_loss()`获得全部损失。 5. 创建一个优化器。 6. 使用便利函数`slim.learning.create_train_op()`,`total_loss`和`optimizer`创建训练函数。 7. 使用上一步中定义的便捷函数`slim.learning.train()`和训练函数运行训练。 笔记本 `ch-02_TF_High_Level_Libraries` 中提供了 MNIST 分类示例的完整代码。 TF Slim MNIST 示例的输出如下: ```py INFO:tensorflow:Starting Session. INFO:tensorflow:Saving checkpoint to path ./slim_logs/model.ckpt INFO:tensorflow:global_step/sec: 0 INFO:tensorflow:Starting Queues. INFO:tensorflow:global step 100: loss = 2.2669 (0.010 sec/step) INFO:tensorflow:global step 200: loss = 2.2025 (0.010 sec/step) INFO:tensorflow:global step 300: loss = 2.1257 (0.010 sec/step) INFO:tensorflow:global step 400: loss = 2.0419 (0.009 sec/step) INFO:tensorflow:global step 500: loss = 1.9532 (0.009 sec/step) INFO:tensorflow:global step 600: loss = 1.8733 (0.010 sec/step) INFO:tensorflow:global step 700: loss = 1.8002 (0.010 sec/step) INFO:tensorflow:global step 800: loss = 1.7273 (0.010 sec/step) INFO:tensorflow:global step 900: loss = 1.6688 (0.010 sec/step) INFO:tensorflow:global step 1000: loss = 1.6132 (0.010 sec/step) INFO:tensorflow:Stopping Training. INFO:tensorflow:Finished training! Saving model to disk. final loss=1.6131552457809448 ``` 从输出中可以看出,便捷函数`slim.learning.train()`将训练输出保存在指定日志目录中的检查点文件中。如果重新开始训练,它将首先检查检查点是否存在,并且默认情况下将从检查点恢复训练。 在撰写本文时,TF Slim 的文档页面在以下链接中被发现为空:[https://www.tensorflow.org/api_docs/python/tf/contrib/slim](https://www.tensorflow.org/api_docs/python/tf/contrib/slim)。 但是,可以在以下链接的源代码中找到一些文档:[https://github.com/tensorflow/tensorflow/tree/r1.4/tensorflow/contrib/slim](https://github.com/tensorflow/tensorflow/tree/r1.4/tensorflow/contrib/slim)。 我们将使用 TF Slim 来学习如何在后面的章节中使用预训练的模型,如 VGG16 和 Inception V3。