tf.slice
函数原型 tf.slice(inputs,begin,size,name=’’)
用途:从inputs中抽取部分内容
inputs:可以是list,array,tensor
begin:n维列表,begin[i] 表示从inputs中第i维抽取数据时,相对0的起始偏移量,也就是从第i维的begin[i]开始抽取数据
size:n维列表,size[i]表示要抽取的第i维元素的数目
有几个关系式如下:
(1) i in [0,n]
(2)tf.shape(inputs)[0]=len(begin)=len(size)
(3)begin[i]>=0 抽取第i维元素的起始位置要大于等于0
(4)begin[i]+size[i]<=tf.shape(inputs)[i]
代码:
1 | import tensorflow as tf |
tf.transpose
主要注意多维的时候perm的用法,其实很简单,就是正常perm顺序是[0,1,2],如果原来的shape是2x3x4的,对应的新perm顺序是多少,就把乘数的位置换到多少,也就是perm变成[1,0,2]那么shape就是3x2x4
1 | import tensorflow as tf |
输出:
1 | output: |
tf.nn.conv1d
conv1d的参数含义:(以NHWC格式为例,即,通道维在最后)
value:在注释中,value的格式为:[batch, in_width, in_channels],batch为样本维,表示多少个样本,in_width为宽度维,表示样本的宽度,in_channels维通道维,表示样本有多少个通道。
filters:在注释中,filters的格式为:[filter_width, in_channels, out_channels]。按照value的第二种看法,filter_width可以看作每次与value进行卷积的行数,in_channels表示value一共有多少列(与value中的in_channels相对应)。out_channels表示输出通道,可以理解为一共有多少个卷积核,即卷积核的数目。
stride:一个整数,表示步长,每次(向下)移动的距离
padding:同conv2d,value是否需要在下方填补0。 Valid: 用过滤器在输入的矩阵中按步长移动时候,会把最后的不足部分的列和行抛弃;Same: 先在输入矩阵上下各加个值为0的行,在左右各加个个值为0的列,也就是用0把原先的矩阵包裹一层,然后在移动的时候如果输入矩阵的列或者行长度不够,就用0来补齐
name:名称。
测试代码:
1 | import tensorflow as tf |
输出:
1 | a: shape (1, 10, 2) |