【TensorFlow】如何理解tensorflow.contrib.slim函数?

原创 2018年04月16日 20:01:11
slim库是tensorflow中的一个高层封装,它将原来很多tf中复杂的函数进一步封装,省去了很多重复的参数,以及平时不会考虑到的参数。可以理解为tensorflow的升级版。
导入方式:
import tensorflow as tf
import tensorflow.contrib.slim as slim
常用函数
slim.conv2d
slim.conv2d是基于tf.conv2d的进一步封装,省去了很多参数,一般调用方法如下:
net = slim.conv2d(inputs, 256, [3, 3], stride=1, scope='conv1_1')
前三个参数依次为网络的输入,输出的通道,卷积核大小,stride是做卷积时的步长。除此之外,还有几个经常被用到的参数:
padding : 补零的方式,例如'SAME'activation_fn : 激活函数,默认是nn.relunormalizer_fn : 正则化函数,默认为None,normalizer_params : slim.batch_norm中的参数,以字典形式表示weights_initializer : 权重的初始化器,initializers.xavier_initializer()weights_regularizer : 权重的正则化器,一般不怎么用到biases_initializer : 如果之前有batch norm,那么这个及下面一个就不用管了biases_regularizer : trainable : 参数是否可训练,默认为True
slim.max_pool2d
 这个函数更简单了,用法如下:
net = slim.max_pool2d(net, [2, 2], scope='pool1')
slim.fully_connected
slim.fully_connected(x, 128, scope='fc1')
        前两个参数分别为网络输入、输出的神经元数量。
slim.arg_scope
slim.arg_scope可以定义一些函数的默认参数值,在scope内,我们重复用到这些函数时可以不用把所有参数都写一遍。
slim.variable 
 在原生的Tensorflow中,创建Variable需要一个预定义的值或者一种初始化机制(比如从一个高斯分布中随机采样)。此外,如果一个变量需要在一个特定的设备上(如GPU)创建,那么必须被明确说明。为了减少变量创建所需的代码,TF-Slim提供了一些封装函数(定义在variables.py中),可以使得用户定义变量变得简单。
 举个例子,定义一个权重(weight)变量,使用一个截断的正态分布来初始化,使用l2 loss正则化,并将该变量放置在CPU中,我们只需要声明如下:
weights = slim.variable('weights',
                                    shape=[10, 10, 3 , 3],
                                    initializer=tf.truncated_normal_initializer(stddev=0.1),
                                    regularizer=slim.l2_regularizer(0.05),
                                    device='/CPU:0')

【Tensorflow】tensorflow.contrib.slim 包

TF-Slim 是Tensorflow为了定义,训练和评估复杂模型的一个轻量级工具, tf-slim的组件可以与本地tensorflow以及其他框架(如tf.contrib.learn)自由混合。 g...
  • zj360202
  • zj360202
  • 2017-11-20 18:39:36
  • 646

import tensorflow.contrib.slim as slim ImportError: No module named slim

import tensorflow.contrib.slim as slim ImportError: No module named slim 处理方法 参考网站https://github.c...
  • zhuiqiuk
  • zhuiqiuk
  • 2016-11-29 13:31:53
  • 4181

【Tensorflow slim】slim nets包

slim nets中包含几种常用的net网络 from tensorflow.contrib.slim.python.slim.nets import alexnet from tensorflow...
  • zj360202
  • zj360202
  • 2017-11-21 17:49:12
  • 715

tensorflow中slim模块api介绍

最近需要使用slim模块,先把slim的介绍放在这,后续会进行整理 github:https://github.com/tensorflow/tensorflow/edit/master/tensor...
  • guvcolie
  • guvcolie
  • 2017-08-29 20:13:35
  • 15218

怎样理解TensorFlow中的Tensor?

Tensor翻译成中文是“张量”,在数学和物理学中运用较多,那么TensorFlow中的Tensor到底是什么呢?...
  • clcwcxfwf
  • clcwcxfwf
  • 2017-07-04 20:49:28
  • 635

tensorflow 函数接口的理解

1. tf.nn.softmax tf.nn.softmax(logits, dim=-1, name=None) logits:w*x+b softmax 函数执行的操作:exp(logits)/...
  • lanchunhui
  • lanchunhui
  • 2017-03-20 12:11:10
  • 489

TensorFlow入门--基本概念的理解

TensorFlow 人工智能引擎 入门教程之一 基本概念以及理解
  • fengxueniu
  • fengxueniu
  • 2017-06-25 16:20:54
  • 438

TensorFlow - Tensor理解与使用

如何理解TensorFlow中的tensorflyfishtensor 张量 英 [‘tensə; -sɔː] 美 [‘tɛnsɚ]What is a Tensor? Tensors are ...
  • flyfish1986
  • flyfish1986
  • 2017-05-30 11:33:33
  • 2643

tensorflow学习(2):tensorflow中基本概念的理解

前言:tensorflow中有很多基本概念要理解,最好的方法是去官网跟着教程一步一步看,这里还有一些翻译的版本,对照着看有助于理解:tensorflow1.0 文档翻译正文:1,graph(图计算):...
  • qq_32166627
  • qq_32166627
  • 2017-03-23 19:04:58
  • 2521

对Tensorflow中tensor的理解

对Tensorflow中tensor的理解
  • u012196371
  • u012196371
  • 2017-04-30 22:19:15
  • 853
收藏助手
不良信息举报
您举报文章:【TensorFlow】如何理解tensorflow.contrib.slim函数?
举报原因:
原因补充:

(最多只允许输入30个字)