当前位置: 移动技术网 > IT编程>脚本编程>Python > 一维卷积 tf.nn.conv1d

一维卷积 tf.nn.conv1d

2020年07月30日  | 移动技术网IT编程  | 我要评论
tf.nn.conv1d(value, filters, stride, padding, use_cudnn_on_gpu=None, data_format=None, ...

tendorflow里面怎么用tf.nn.conv1d

基本格式:

tf.nn.conv1d(value,  

                           filters,

                           stride,

                            padding,

                           use_cudnn_on_gpu=None,

                           data_format=None,

                            name=None )

我的代码:

 

我的cnn层之前是word_embedding,维度是[batch_size,seq_lenth,embedding_dim];[40,120,300]

用tf.nn.conv1d的时候

1. value就是我这里的word_embedding。value的格式为:[batch, in_width, in_channels],batch为样本维,表示多少个样本,in_width为宽度维,表示样本的宽度,in_channels维通道维,表示样本有多少个通道。

value其实就是和我的word_embedding是对应的维度。

2. filters:filters的格式为:[filter_width, in_channels, out_channels]。按照value的第二种看法,filter_width可以看作每次与value进行卷积的行数,可以看作是卷积核的维度,in_channels表示value一共有多少列(与value中的in_channels相对应)。out_channels表示输出通道,可以理解为一共有多少个卷积核,即卷积核的数目。

     这里定义一个conv_weights,就相当于filters。 维度是 [3,hidden_size,filter_num],

     第一维就是卷积核的维度;

     第二维是前面传进来的value的列数,取value的最后一维的维度即可: hidden_size = self.word_embeddings.shape[-1].value;  

     第三维就是卷积核数量。

3.stride:  整数类型,表示步长,卷积核每次向右边移动几个位置。我这里定为1。

4.padding:'SAME' 'VALID',这两个是有区别的,用不好会报错。

我开始用的VALID 一直报错,错误写在这里了https://blog.csdn.net/weixin_40793657/article/details/107526612

5.name:名称。可省略。我这里的名称是"conv"。

 

结束,撒花!

本文地址:https://blog.csdn.net/weixin_40793657/article/details/107657105

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网