2016-07-28 17 views
2

可変サイズ入力(文章行列)をとり、その後完全に接続されたレイヤー(similar to this paper)の固定サイズ出力を生成するCNNモデルを作成しようとしています。可変サイズ畳み込みニューラルネットワーク入力と固定出力

私は最大プール層の動的カーネルサイズを実装しようとしていますので、これを実現するために実行時に入力の形状が必要です。 ksize=[1, s, 1, 1]

input = tf.placeholder(tf.float32) 
# convolution layer here .... 

tf.nn.max_pool(convolution_output, ksize=[1, s, 1, 1], 
         strides=[1, 1, 1, 1], padding='VALID') 

s入力形状から推測されるべきです。

しかし、私はTensorflowでそれを行う方法を見つけることができません。

誰かがそれを行う方法を知っていますか?

+0

これは、ここでの動作に似ています(https://arxiv.org/abs/1412.6071)。しかし残念ながら、これはテンソルフロー(https://github.com/tensorflow/tensorflow/issues/2953)によって直接サポートされていません。一度追加すると、あなたがやりたいことは単なる拡張機能に過ぎません。 –

+1

この場合、 'tf.reduce_max'が動作する可能性がありますか?これがあなたが実装している論文のためのものであるかどうかは確かではありませんが、少なくとも可変の入力サイズを持つ単純なCNNで動作します。 –

+0

tf.reduce_maxは、私がやりたかった仕事をしました。バッチサイズのサイズに応じてプールしたかったのです。 (ただし、すべての文章ではありません)ありがとう! – rAyyy

答えて

2

私はそれが古いスレッドだと知っていますが、解決策を探している人のためです。 tensorflow 1.4.0

tf.nn.max_pool()は、古いバージョンのintのリストではなく、1dテンソルを入力として使用するようになりました。したがって、ksizeの引数としてプレースホルダを使用できます。

2

私はTensorflowでそれを行う方法が見つからず、私のモデルをtheanoで再実装し、別の解決法を使用しなければならなかった:Dynamic KMax Pooling

関連する問題