我想通过类似平均池的类似方法来减小输入向量的维数。输入是一些长度为K * L的向量,我想通过取每L个条目的平均值以形成长度为K的向量来减小其尺寸。我尝试使用类似 tf.layers.average_pooling1d 的函数和 tf.nn.avg_pool ,但这些功能需要输入4D或3D张量来处理图像。我无法弄清楚我的情况下渠道的含义。我试图简单地将维添加为通道,但是即使在以前的完全连接层中也报告了错误。我想知道是否可以使用类似的功能或使用自定义功能。如果我不清楚,请参阅下面的代码。
x = tf.placeholder(tf.float32, [None, N])
layer_out = tf.contrib.layers.fully_connected(x, K * L)
layer_out = tf.layers.average_pooling1d(layer_out, L, L)
output = tf.contrib.layers.softmax(layer_out)
基本上将长度为N的向量拉伸到K * L,然后将它们压缩为长度L。