TensorFlow-Slim解析

  • TensorFlow-Slim解析
    • 使用方法
    • 使用TF-Slim目的
    • TF-Slim组件
      • arg_scope
      • data
      • evaluation
      • layers
      • learning
      • losses
      • metrics
      • nets
      • queues
      • reqularizers
      • variables
    • 定义模型
      • 变量
      • 作用域
      • 实践:VGG16
    • 训练模型
      • 损失
      • 迭代次数
      • 实践: 训练VGG16模型
    • 微调训练
    • 模型评估
  • 参考文献

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

它提供变量的创建和操作的简便封装。

定义模型

变量

作用域

实践:VGG16

训练模型

损失

迭代次数

实践: 训练VGG16模型

微调训练

模型评估

参考文献

1. 辅助工具篇——tensorflow slim(TF-Slim)介绍

你可能感兴趣的:(深度学习,tensorflow)