テンソルフロー::作戦:: FractionalMaxPool
#include <nn_ops.h>
入力に対してフラクショナル最大プーリングを実行します。
まとめ
フラクショナル最大プーリングは、通常の最大プーリングとは少し異なります。通常の最大プーリングでは、セットの小さい N x N サブセクション (多くの場合 2x2) の最大値を取得して入力セットをダウンサイズし、セットを N 倍に削減しようとします (N は整数)。 「フラクショナル」という言葉から予想されるように、フラクショナル最大プーリングは、全体の減速比 N が整数である必要がないことを意味します。
プーリング領域のサイズはランダムに生成されますが、かなり均一です。たとえば、高さの寸法と、プール境界となる行のリストの制約を見てみましょう。
まず、以下を定義します。
- input_row_length : 入力セットの行数
- Output_row_length : 入力よりも小さくなります
- alpha = input_row_length / Output_row_length : 縮小率
- K = フロア(アルファ)
- row_pooling_sequence : これはプール境界行の結果リストです。
次に、row_pooling_sequence は次を満たす必要があります。
- a[0] = 0 : シーケンスの最初の値は 0 です
- a[end] = input_row_length : シーケンスの最後の値がサイズです
- K <= (a[i+1] - a[i]) <= K+1 : すべての間隔は K または K+1 サイズです
- 長さ(行プーリングシーケンス) = 出力行の長さ+1
フラクショナル マックス プーリングの詳細については、次の論文を参照してください: Benjamin Graham、Fractional Max-Pooling
引数:
- スコープ:スコープオブジェクト
- 値: 形状
[batch, height, width, channels]
の 4-D。 - pooling_ratio:
value
の各次元のプーリング比率。現在は行次元と列次元のみをサポートしており、1.0 以上である必要があります。たとえば、有効なプーリング率は [1.0, 1.44, 1.73, 1.0] のようになります。バッチおよびチャネル ディメンションでのプーリングが許可されていないため、最初と最後の要素は 1.0 である必要があります。 1.44 と 1.73 は、それぞれ高さと幅の寸法のプーリング率です。
オプションの属性 ( Attrs
を参照):
- pseudo_random: True に設定すると、擬似ランダム方式でプーリング シーケンスが生成され、それ以外の場合はランダム方式でプーリング シーケンスが生成されます。擬似ランダムとランダムの違いについては、Benjamin Graham、Fractional Max-Pooling の論文を確認してください。
- 重複: True に設定すると、プーリング時に、隣接するプーリング セルの境界にある値が両方のセルで使用されることを意味します。例えば:
index 0 1 2 3 4
value 20 5 16 3 7
プーリング シーケンスが [0, 2, 4] の場合、インデックス 2 の 16 が 2 回使用されます。フラクショナル最大プーリングの場合、結果は [20, 16] になります。
- deterministic: True に設定すると、計算グラフ内のFractionalMaxPoolノードを反復するときに固定プーリング領域が使用されます。主に単体テストでFractionalMaxPoolを決定的にするために使用されます。
- シード: シードまたはシード 2 のいずれかが 0 以外に設定されている場合、乱数ジェネレーターには指定されたシードがシードされます。それ以外の場合は、ランダム シードによってシードされます。
- seed2: シードの衝突を避けるための 2 番目のシード。
戻り値:
-
Output
出力: フラクショナル最大プーリング後の出力テンソル。 -
Output
row_pooling_sequence: 勾配の計算に必要な行プーリング シーケンス。 -
Output
col_pooling_sequence: 勾配の計算に必要な列プーリング シーケンス。
コンストラクターとデストラクター | |
---|---|
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio) | |
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs) |
パブリック属性 | |
---|---|
col_pooling_sequence | |
operation | |
output | |
row_pooling_sequence |
パブリック静的関数 | |
---|---|
Deterministic (bool x) | |
Overlapping (bool x) | |
PseudoRandom (bool x) | |
Seed (int64 x) | |
Seed2 (int64 x) |
構造体 | |
---|---|
tensorflow:: ops:: FractionalMaxPool:: Attrs | FractionalMaxPoolのオプションの属性セッター。 |
パブリック属性
Col_pooling_sequence
::tensorflow::Output col_pooling_sequence
手術
Operation operation
出力
::tensorflow::Output output
row_pooling_sequence
::tensorflow::Output row_pooling_sequence
公共機能
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio )
FractionalMaxPool
FractionalMaxPool( const ::tensorflow::Scope & scope, ::tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs )
パブリック静的関数
決定論的
Attrs Deterministic( bool x )
重複
Attrs Overlapping( bool x )
擬似ランダム
Attrs PseudoRandom( bool x )
シード
Attrs Seed( int64 x )
シード2
Attrs Seed2( int64 x )