2016-04-24 3 views
5

高密度レイヤーと読み出しの前に圧縮のために画像の深さ(rgb)を超えて最大プールを行うために定義された以下のパラメーターがあります。Tensorflow:プールの深さはどうですか?

sunset_poolmax_1x1x3_div_2x2x3_params = \ 
    {'pool_function':tf.nn.max_pool, 
    'ksize':[1,1,1,3], 
    'strides':[1,1,1,3], 
    'padding': 'SAME'} 

私はその深さがプールで減少寸法のみです...しかし、それはまだ動作しません[1,1,1,3]に一歩を変更しました。私は...私は色を保つためににすべてを圧縮する必要があり、小さな画像で良い結果を得ることができません

実際のエラー:

ValueError: Current implementation does not support pooling in the batch and depth dimensions.

+0

エラーメッセージは、何が起こっているかを説明しています。 – etarion

+0

@etarionああ...論理的な「AND」:バッチとデプスのディメンション(「バッチまたはデプス」ディメンションのように見える)の代わりに読みました。ですから、論理的には、私が1つをプールしなければ、もう一方のプールにプールすることができます。とにかく、あなたが何を言っているのか説明していれば、それは意味が分かりました。なぜなら、エラーメッセージは、それが意図していたもの以外の何かを言っているからです。 – bordeo

答えて

6

tf.nn.max_poolが終わっプーリングをサポートしていません深さのディメンションが原因でエラーが発生します。

あなたが探しているものを達成する代わりに、最大の減少を使用することができます。

tf.reduce_max(input_tensor, reduction_indices=[3], keep_dims=True)

上記keep_dimsパラメータがテンソルの階数が保存されていることを保証します。これにより、max reductionの動作がtf.nn.max_poolオペレーションが深さディメンション上でプールをサポートしていた場合の動作と一致することが保証されます。

+0

残念ながらmax_poolだけでなく、conv2dでも発生します。これは私の関数 'tf.nn.conv2d(img_input、w、strides = [1,1,1,3]、padding = 'SAME')、b)'であり、@bordeoと同じエラーです。私は色を維持する必要があります。 これはconv2d関数の非効率性だと思いますか? – Kyrol

関連する問題