[tensorflow]学习笔记

最近看去年出的相关教程,发现tf不同版本接口名字不一样,有的参数名字也换了……记录一下。
tfGirls教学:(up主挺好玩的)
video:https://space.bilibili.com/16696495#!/channel/detail?cid=1588
code:https://github.com/CreatCodeBuild/TensorFlow-and-DeepLearning-Tutorial/

在看项目代码,记一下api用法。

tf.summary系列

tf.summary.image

tf.image_summary ---> tf.summary.image

官方文档:
https://www.tensorflow.org/api_docs/python/tf/summary/image

image(
    name,
    tensor,
    max_outputs=3,
    collections=None,
    family=None
)

参数:max_images -> max_outputs

tf.scalar_summary  ---> tf.summary.scalar
tf.histogram_summary ---> tf.summary.histogram
tf.merge_all_summery ---> tf.summary.merge_all()

tf.nn 系列

tf.nn.conv2d

参考:http://blog.csdn.net/mao_xiao_feng/article/details/78004522
文档:https://www.tensorflow.org/api_docs/python/tf/nn/conv2d

tf.nn.conv2d(
input, # 四维tensor,[batch, in_height, in_width, in_channels]
filter, # 四维tensor,[filter_height, filter_width, in_channels, out_channels]
strides, # 1x4维tensor,表示每一维步长。1x4的一维向量
padding, # string,卷积方式
use_cudnn_on_gpu=None, # 是否使用GPU,默认True
data_format='NHWC', # #保存格式 N->batch_size,H->Height,W->width,C->channels
name=None
)

input: 指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一

filter: 相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维

strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4

padding: string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同的卷积方式(后面会介绍)

use_cudnn_on_gpu: bool类型,是否使用cudnn加速,默认为true

Returns:
A Tensor. Has the same type as input. A 4-D tensor. The dimension order is determined by the value of data_format, see below for details.


tf.nn.conv3d

文档:https://www.tensorflow.org/api_docs/python/tf/nn/conv3d

tf.nn.conv3d(
    input, # 5维tensor,[batch, in_depth, in_height, in_width, in_channels]
    filter,# 5维tensor, [filter_depth, filter_height, filter_width, in_channels, out_channels]
    strides, #整数list,lenth>=5,
    padding,# same as conv2d
    data_format='NDHWC',#保存格式 N->batch_size,D->depth,H->Height,W->width,C->channels
    name=None
)

input: A Tensor. Must be one of the following types: float32, float64. Shape [batch, in_depth, in_height, in_width, in_channels].
filter: A Tensor. Must have the same type as input. Shape [filter_depth, filter_height, filter_width, in_channels, out_channels]. in_channels must match between input and filter.
strides: A list of ints that has length >= 5. 1-D tensor of length 5. The stride of the sliding window for each dimension of input. Must have strides[0] = strides[4] = 1.
padding: A string from: “SAME”, “VALID”. The type of padding algorithm to use.
data_format: An optional string from: “NDHWC”, “NCDHW”. Defaults to “NDHWC”. The data format of the input and output data. With the default format “NDHWC”, the data is stored in the order of: [batch, in_depth, in_height, in_width, in_channels]. Alternatively, the format could be “NCDHW”, the data storage order is: [batch, in_channels, in_depth, in_height, in_width].
name: A name for the operation (optional).

Returns:
A Tensor. Has the same type as input.

tf.nn.max_pool3d

https://www.tensorflow.org/api_docs/python/tf/nn/max_pool3d

max_pool3d(
    input, # 输入,必须是rank5,默认NDHWC
    ksize, # 窗口每一维的大小
    strides, # 每一维的步长
    padding, # SAME orVALID
    data_format='NDHWC',
    name=None
)

Args:

input: A Tensor. Must be one of the following types: float32. Shape [batch, depth, rows, cols, channels] tensor to pool over.
ksize: A list of ints that has length >= 5. 1-D tensor of length 5. The size of the window for each dimension of the input tensor. Must have ksize[0] = ksize[4] = 1.
strides: A list of ints that has length >= 5. 1-D tensor of length 5. The stride of the sliding window for each dimension of input. Must have strides[0] = strides[4] = 1.
padding: A string from: “SAME”, “VALID”. The type of padding algorithm to use.
data_format: An optional string from: “NDHWC”, “NCDHW”. Defaults to “NDHWC”. The data format of the input and output data. With the default format “NDHWC”, the data is stored in the order of: [batch, in_depth, in_height, in_width, in_channels]. Alternatively, the format could be “NCDHW”, the data storage order is: [batch, in_channels, in_depth, in_height, in_width].
name: A name for the operation (optional).

Returns:

A Tensor. Has the same type as input. The max pooled output tensor.

tf.nn.max_pool

http://blog.csdn.net/mao_xiao_feng/article/details/53453926

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

tf.nn.max_pool(
   value,#输入,[batch, height, width, channels]
   ksize, #池化窗口大小,取一个四维向量,一般是[1, height, width, 1],因为我们不想在batch和channels上做池化,所以这两个维度设为了1
   strides, #和卷积类似,窗口在每一个维度上滑动的步长,一般也是[1, stride,stride, 1]
   padding, #VALID or SAME
   name=None
   )

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

tf系列

tf.reshape

docs: https://www.tensorflow.org/versions/r1.2/api_docs/python/tf/reshape

reshape(
    tensor,
    shape,
    name=None
)

Args:
tensor: A Tensor.
shape: A Tensor. Must be one of the following types: int32, int64. Defines the shape of the output tensor.
name: A name for the operation (optional).

Returns:
A Tensor. Has the same type as tensor.

EXAMPLE:

# tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9]
# tensor 't' has shape [9]
reshape(t, [3, 3]) ==> [[1, 2, 3],
                        [4, 5, 6],
                        [7, 8, 9]]

# tensor 't' is [[[1, 1], [2, 2]],
#                [[3, 3], [4, 4]]]
# tensor 't' has shape [2, 2, 2]
reshape(t, [2, 4]) ==> [[1, 1, 2, 2],
                        [3, 3, 4, 4]]

# tensor 't' is [[[1, 1, 1],
#                 [2, 2, 2]],
#                [[3, 3, 3],
#                 [4, 4, 4]],
#                [[5, 5, 5],
#                 [6, 6, 6]]]
# tensor 't' has shape [3, 2, 3]
# pass '[-1]' to flatten 't'
reshape(t, [-1]) ==> [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6]

# -1 can also be used to infer the shape

# -1 is inferred to be 9:
reshape(t, [2, -1]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
                         [4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1 is inferred to be 2:
reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],
                         [4, 4, 4, 5, 5, 5, 6, 6, 6]]
# -1 is inferred to be 3:
reshape(t, [ 2, -1, 3]) ==> [[[1, 1, 1],
                              [2, 2, 2],
                              [3, 3, 3]],
                             [[4, 4, 4],
                              [5, 5, 5],
                              [6, 6, 6]]]

# tensor 't' is [7]
# shape `[]` reshapes to a scalar
reshape(t, []) ==> 7

tf.matmul

矩阵乘法。(并非点乘哦)

matmul(
    a, #矩阵a
    b, #矩阵b
    transpose_a=False, #if True,a在相乘之前转置
    transpose_b=False, # if True,b在相乘之前转置
    adjoint_a=False, # If True, a is conjugated and transposed before multiplication.在相乘之前共轭转置
    adjoint_b=False,
    a_is_sparse=False, # if True,a is treated as a sparse matrix
    b_is_sparse=False,
    name=None
)

(what is 共轭转置:共轭转置

tf.multiply

点乘。

multiply(
    x, 
    y,
    name=None
)

Args:

  • x: A Tensor. Must be one of the following types: half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128.
  • y: A Tensor. Must have the same type as x.
  • name: A name for the operation (optional).

Returns:
A Tensor. Has the same type as x.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值