Tensorflow常见函数用法

1、tf.get_variable()

1.1.函数原型:

  tf.get_variable(name, shape, initializer)

1.2.参数说明:

  (1)name:变量名称;
  (2)shape:变量的维度;
  (3)initializer:变量初始化的方式,包括以下几种方式:
  tf.constant_initializer:常量初始化函数
  tf.random_normal_initializer:正态分布
  tf.truncated_normal_initializer:截取的正态分布
  tf.random_uniform_initializer:均匀分布
  tf.zeros_initializer:全部是0
  tf.ones_initializer:全是1
  tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值

1.3.例程:

example = tf.get_variable(name='example', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))

2、tf.Variable()

2.1.函数原型:

  tf.Variable(initial_value,trainable=True,collections=None, validate_shape=True, name=None)

2.2.参数说明:

Tensorflow常见函数用法_第1张图片

2.3.例程:

tf.Variable(tf.random_normal((2,3),stddev=1,seed=1))

3、tf.nn.conv2d()

3.1.函数原型:

  tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)

3.2.参数说明:

  (1)input:4维Tensor,要求是具有[batch, in_height, in_width, in_channels]这样的shape,含义为[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],要求类型为float32和float64其中之一。比如在输入层,input[0,:,:,:]表示第一张图片,input[1,:,:,:]表示第二张图片,以此类推。
  (2)filter:4维Tensor,相当于CNN中的卷积核,要求具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维。
  (3)strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4
  (4)padding:string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。”SAME”是考虑边界,不足的时候用0去填充周围,”VALID”则不考虑
  (5)use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true
  (6)name:

3.3.返回值

  结果返回一个Tensor,这个输出,就是我们常说的feature map,shape仍然是[batch, new_height, new_width, channels]这种形式

3.4.例程

filter_weight = tf.get_variable('weights', [2, 2, 1, 1], initializer = tf.constant_initializer([[1, -1],[0, 2]]))
x = tf.placeholder('float32', [1, None, None, 1])
conv = tf.nn.conv2d(x, filter_weight, strides = [1, 2, 2, 1], padding = 'SAME')

4、tf.nn.max_pool()

4.1.函数原型:

  tf.nn.max_pool(value, ksize, strides, padding, name=None)

4.2.参数说明:

  (1)value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape。
  (2)ksize:池化窗口的大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1。
  (3)strides:和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]
  (4)padding:string类型,值为“SAME” 和 “VALID”,表示的是卷积的形式,是否考虑边界。”SAME”是考虑边界,不足的时候用0去填充周围,”VALID”则不考虑
  (5)name:

4.3.返回值

  结果返回一个Tensor,类型不变,shape仍然是[batch, height, width, channels]这种形式

4.4.例程:

tf.nn.max_pool(tensor,ksize[1,2,2,1],strides=[1,2,2,1],padding='SAME')

你可能感兴趣的:(机器学习)