tensorflow :: ops :: FractionalMaxPool

#include <nn_ops.h>

入力に対して小数最大プーリングを実行します。

概要

フラクショナル最大プーリングは、通常の最大プーリングとは少し異なります。通常の最大プーリングでは、セットの小さいN x Nサブセクション(多くの場合2x2)の最大値を取得して入力セットのサイズを小さくし、セットをNの係数(Nは整数)だけ減らします。 「フラクショナル」という言葉から予想されるように、フラクショナル最大プーリングは、全体的な削減率Nが整数である必要がないことを意味します。

プーリング領域のサイズはランダムに生成されますが、かなり均一です。たとえば、高さのディメンションと、プールの境界となる行のリストの制約を見てみましょう。

まず、以下を定義します。

  1. input_row_length:入力セットの行数
  2. output_row_length:入力よりも小さくなります
  3. alpha = input_row_length / output_row_length:削減率
  4. K =フロア(アルファ)
  5. row_pooling_sequence:これはプール境界行の結果リストです

次に、row_pooling_sequenceは次の条件を満たす必要があります。

  1. a [0] = 0:シーケンスの最初の値は0です
  2. a [end] = input_row_length:シーケンスの最後の値はサイズです
  3. K <=(a [i + 1] -a [i])<= K + 1:すべての間隔はKまたはK +1サイズです
  4. length(row_pooling_sequence)= output_row_length + 1

フラクショナルマックスプーリングの詳細については、このペーパーを参照してください:ベンジャミングラハム、フラクショナルマックスプーリング

引数:

  • スコープ:スコープオブジェクト
  • 値:形状[batch, height, width, channels] 4D。
  • 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、FractionalMax-Poolingを確認してください。
  • オーバーラップ:Trueに設定すると、プーリング時に、隣接するプーリングセルの境界の値が両方のセルで使用されることを意味します。例えば:

index 0 1 2 3 4

value 20 5 16 3 7

プーリングシーケンスが[0、2、4]の場合、インデックス2の16が2回使用されます。分数最大プーリングの結果は[20、16]になります。

  • 決定論的:Trueに設定すると、計算グラフのFractionalMaxPoolノードを反復処理するときに固定プーリング領域が使用されます。 FractionalMaxPoolを決定論的にするために、主に単体テストで使用されます。
  • seed:seedまたはseed2のいずれかがゼロ以外に設定されている場合、乱数ジェネレーターは指定されたシードによってシードされます。それ以外の場合は、ランダムシードによってシードされます。
  • 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
)

Seed2

Attrs Seed2(
  int64 x
)