tensorflow::ops::FractionalMaxPool

#include <nn_ops.h>

Effectue un regroupement maximal fractionnel sur l'entrée.

Résumé

Le max pooling fractionnel diffère légèrement du max pooling classique. Dans le max pooling classique, on réduit la taille d'un ensemble d'entrée en prenant la valeur maximale de sous-ensembles N x N (souvent 2 x 2) plus petits, et on tente de réduire l'ensemble d'un facteur N, où N est un entier. Le max pooling fractionnel, comme son nom l'indique, signifie que le taux de réduction global N n'est pas nécessairement un entier.

Les dimensions des zones de regroupement sont générées aléatoirement, mais restent relativement uniformes. Prenons par exemple la hauteur et les contraintes sur la liste des lignes qui serviront de limites aux zones de regroupement.

Nous définissons d'abord les éléments suivants :

  1. input_row_length : le nombre de lignes de l'ensemble d'entrée
  2. longueur_ligne_sortie : qui sera inférieure à la longueur_entrée
  3. alpha = longueur_ligne_entrée / longueur_ligne_sortie : notre taux de réduction
  4. K = partie entière de (alpha)
  5. row_pooling_sequence : il s'agit de la liste résultante des lignes de limite de pool

Ensuite, row_pooling_sequence doit satisfaire :

  1. a[0] = 0 : la première valeur de la séquence est 0
  2. a[end] = input_row_length : la dernière valeur de la séquence correspond à la taille
  3. K <= (a[i+1] - a[i]) <= K+1 : tous les intervalles sont de taille K ou K+1
  4. longueur(row_pooling_sequence) = longueur_output_row+1

Pour plus de détails sur le fractionnement max pooling, consultez cet article : Benjamin Graham, Fractional Max-Pooling

Arguments :

  • portée : un objet Scope
  • valeur : 4-D avec forme [batch, height, width, channels] .
  • pooling_ratio : Ratio de mise en commun pour chaque dimension de value . Actuellement, seules les dimensions « row » et « col » sont prises en charge et doivent être supérieures ou égales à 1,0. Par exemple, un ratio de mise en commun valide est [1,0 ; 1,44 ; 1,73 ; 1,0]. Le premier et le dernier élément doivent être égaux à 1,0 car la mise en commun n'est pas autorisée sur les dimensions « batch » et « channels ». 1,44 et 1,73 correspondent aux ratios de mise en commun sur les dimensions « height » et « width », respectivement.

Attributs optionnels (voir Attrs ) :

  • pseudo_random : Si la valeur est True, la séquence de pooling est générée de manière pseudo-aléatoire ; sinon, elle est aléatoire. Consultez l’article de Benjamin Graham, « Fractional Max-Pooling », pour comprendre la différence entre pseudo-aléatoire et aléatoire.
  • chevauchement : si la valeur est « Vrai », cela signifie que lors du regroupement, les valeurs à la limite des cellules de regroupement adjacentes sont utilisées par les deux cellules. Par exemple :

index 0 1 2 3 4

value 20 5 16 3 7

Si la séquence de regroupement est [0, 2, 4], alors la valeur 16, à l'indice 2, sera utilisée deux fois. Le résultat serait [20, 16] pour le regroupement maximal fractionnel.

  • déterministe : si la valeur est True, une région de pooling fixe sera utilisée lors de l’itération sur un nœud FractionalMaxPool dans le graphe de calcul. Principalement utilisé dans les tests unitaires pour rendre FractionalMaxPool déterministe.
  • Graine initiale : si l’une des valeurs de graine initiale ou de graine2 est différente de zéro, le générateur de nombres aléatoires est initialisé avec la graine fournie. Sinon, il est initialisé avec une graine aléatoire.
  • seed2 : Une deuxième graine pour éviter les collisions entre les graines.

Retours :

  • Output : tenseur de sortie après regroupement maximal fractionnaire.
  • Output row_pooling_sequence : séquence de regroupement des lignes, nécessaire au calcul du gradient.
  • Output col_pooling_sequence : séquence de regroupement des colonnes, nécessaire au calcul du gradient.

Constructeurs et destructeurs

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)

attributs publics

col_pooling_sequence
operation
output
row_pooling_sequence

fonctions statiques publiques

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

Structures

tensorflow::ops::FractionalMaxPool::Attrs

Définiteurs d'attributs optionnels pour FractionalMaxPool .

attributs publics

séquence de regroupement de colonnes

::tensorflow::Output col_pooling_sequence

opération

Operation operation

sortir

::tensorflow::Output output

séquence de mise en commun des lignes

::tensorflow::Output row_pooling_sequence

fonctions publiques

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
)

fonctions statiques publiques

Déterministe

Attrs Deterministic(
  bool x
)

Chevauchement

Attrs Overlapping(
  bool x
)

Pseudo-aléatoire

Attrs PseudoRandom(
  bool x
)

Graine

Attrs Seed(
  int64 x
)

Graine2

Attrs Seed2(
  int64 x
)