TensorFlow-Slim解析
TensorFlow-Slim,是TensorFlow中旨在完成代码瘦身的库,能够定义、训练、和评估复杂的模型。同时,它能够与原生的Tensorflow兼容。接下来,本文将根据Slim的英文文档和源码进行解析。
使用方法
在Python中,可以采用如下代码引入slim库
import tensorflow.contrib.slim as slim
使用TF-Slim目的
TF-Slim是能够使构建、训练和评估神经网络变得简单:
它能够使定义模型更加简洁。我们可以通过使用argument scoping和高级的层以及变量使定义网络,这样不仅可以提高代码可读性和可维护性,降低拷贝超参数带来的错误。
使用公共使用的regularizers开发模型更加简单。
大多数视觉模型使用slim开发,例如VGG、AlexNet,同时可以在官方开源代码nets中获得。
Slim使扩展复杂网络变得简单,这样可以在已训练网络的checkppoints基础上进行训练。
TF-Slim组件
arg_scope
TF-Slim提供新的名字作用域,叫做参数作用域,它允许用户对指定的操作使用作用域定义默认的参数。
data
TF-Slim提供读取不同格式的数据加载库。TF-Slim的data模块包括各种
evaluation
它包含常规的模型评估方法。
layers
它包含对TensorFlow內建构造模型的高级抽象layer
learning
包含常见的训练模型
losses
包含常用的的损失函数
metrics
包含比较流行的评估策略
nets
包含比较流行的网络,例如VGG、AlexNet模型
queues
它提供能够便捷安全地启动和关闭队列的上下文管理器
reqularizers
它包含权重的正则器。
variables
它提供变量的创建和操作的简便封装。