TF-Slim是Tensorflow中一个轻量级的库,用于定义、训练和评估复杂的模型。TF-Slim中的组件可以与Tensorflow中原生的函数一起使用,与其他的框架,比如与tf.contrib.learn也可以一起使用
使用方法:import tensorflow.contrib.slim as slim
因为建立,训练和评估模型更加简单,所以是轻量级
优点
l 允许用户通过减少模板代码使得模型更加简洁。这个可以通过使用argument scoping和大量的高层layers、variables来实现;
l 通过使用常用的正则化( regularizers)使得建立模型更加简单;
l 一些广泛使用的计算机视觉相关的模型(比如VGG,AlexNet)已经在slim中定义好了,用户可以很方便的使用;这些既可以当成黑盒使用,也可以被扩展使用,比如添加一些“multiple heads”到不同的内部的层;
l Slim使得扩展复杂模型变得容易,可以使用已经存在的模型的checkpoints来开始训练算法。
组成部分
TF-Slim由几个独立存在的组件组成,主要包括以下几个:
l arg_scope:提供一个新的作用域(scope),称为arg_scope,在该作用域(scope)中,用户可以定义一些默认的参数,用于特定的操作;
l data:包含TF-Slim的dataset定义,data providers,parallel_reader,和 decoding utilities;
l evaluation:包含用于模型评估的常规函数;
l layers:包含用于建立模型的高级layers;
l learning:包含一些用于训练模型的常规函数;
l losses:包含一些用于loss function的函数;
l metrics:包含一些热门的评价标准;
l nets:包含一些热门的网络定义,如VGG,AlexNet等模型;
l queues:提供一个内容管理者,使得可以很容易、很安全地启动和关闭QueueRunners;
l regularizers:包含权重正则化;
l variables:提供一个方便的封装,用于变量创建和使用。
定义模型
使用TF-Slim,结合variables, layers 和 scopes,模型可以很简洁地被定义详情: https://www.cnblogs.com/hejunlin1992/p/8082535.html
https://blog.csdn.net/cyiano/article/details/75006883
slim.batch_norm: https://blog.csdn.net/luccao/article/details/82857412
这个有参数含义:https://www.cnblogs.com/hellcat/p/8058092.html#_label1_0
https://www.cnblogs.com/adong7639/p/7904575.html