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 :
- input_row_length : le nombre de lignes de l'ensemble d'entrée
- longueur_ligne_sortie : qui sera inférieure à la longueur_entrée
- alpha = longueur_ligne_entrée / longueur_ligne_sortie : notre taux de réduction
- K = partie entière de (alpha)
- row_pooling_sequence : il s'agit de la liste résultante des lignes de limite de pool
Ensuite, row_pooling_sequence doit satisfaire :
- a[0] = 0 : la première valeur de la séquence est 0
- a[end] = input_row_length : la dernière valeur de la séquence correspond à la taille
- K <= (a[i+1] - a[i]) <= K+1 : tous les intervalles sont de taille K ou K+1
- 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. -
Outputrow_pooling_sequence : séquence de regroupement des lignes, nécessaire au calcul du gradient. -
Outputcol_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 )