欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一维卷积 tf.nn.conv1d

程序员文章站 2022-03-16 10:12:44
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 )

我的代码:

一维卷积 tf.nn.conv1d

 

我的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',这两个是有区别的,用不好会报错。

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

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

 

结束,撒花!

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