flux tensoriel : : opérations : : FractionalMaxPool
#include <nn_ops.h>
Effectue un pooling maximum fractionnaire sur l’entrée.
Résumé
La mise en commun maximale fractionnée est légèrement différente de la mise en commun maximale régulière. Dans le pooling maximal régulier, vous réduisez la taille d'un ensemble d'entrées en prenant la valeur maximale des sous-sections N x N plus petites de l'ensemble (souvent 2x2) et essayez de réduire l'ensemble d'un facteur N, où N est un nombre entier. La mise en commun fractionnée maximale, comme on peut s'y attendre du mot « fractionnaire », signifie que le rapport de réduction global N ne doit pas nécessairement être un nombre entier.
Les tailles des régions de pooling sont générées de manière aléatoire mais sont assez uniformes. Par exemple, regardons la dimension de hauteur et les contraintes sur la liste des lignes qui constitueront les limites du pool.
Nous définissons d’abord ce qui suit :
- input_row_length : le nombre de lignes de l'ensemble d'entrée
- output_row_length : qui sera plus petit que l'entrée
- alpha = input_row_length / output_row_length : notre taux de réduction
- K = étage (alpha)
- row_pooling_sequence : c'est la liste des résultats des lignes de limite de pool
Ensuite, row_pooling_sequence devrait 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 est la taille
- K <= (a[i+1] - a[i]) <= K+1 : tous les intervalles sont de taille K ou K+1
- longueur (row_pooling_sequence) = sortie_row_length+1
Pour plus de détails sur le pooling maximum fractionnaire, consultez cet article : Benjamin Graham, Fractional Max-Pooling
Arguments :
- scope : un objet Scope
- valeur : 4-D avec forme
[batch, height, width, channels]
. - pooling_ratio : ratio de regroupement pour chaque dimension de
value
, ne prend actuellement en charge que les dimensions de ligne et de colonne et doit être >= 1,0. Par exemple, un ratio de mise en commun valide ressemble à [1,0, 1,44, 1,73, 1,0]. Le premier et le dernier élément doivent être 1.0 car nous n'autorisons pas le pooling sur les dimensions des lots et des canaux. 1,44 et 1,73 sont respectivement le rapport de regroupement sur les dimensions de hauteur et de largeur.
Attributs facultatifs (voir Attrs
) :
- pseudo_random : lorsqu'il est défini sur True, génère la séquence de pooling de manière pseudo-aléatoire, sinon de manière aléatoire. Consultez l'article Benjamin Graham, Fractional Max-Pooling pour connaître la différence entre pseudo-aléatoire et aléatoire.
- chevauchement : lorsque la valeur est True, 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 pooling est [0, 2, 4], alors 16, à l'index 2, sera utilisé deux fois. Le résultat serait [20, 16] pour un pooling maximum fractionnaire.
- déterministe : lorsqu'elle est définie sur 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.
- seed : Si seed ou seed2 sont définis comme étant différents de zéro, le générateur de nombres aléatoires est amorcé par la graine donnée. Sinon, il est ensemencé par une graine aléatoire.
- seed2 : Une deuxième graine pour éviter la collision des graines.
Retours :
- Sortie
Output
: tenseur de sortie après mise en commun maximale fractionnaire. -
Output
row_pooling_sequence : séquence de regroupement de lignes, nécessaire pour calculer le gradient. -
Output
col_pooling_sequence : séquence de regroupement de colonnes, nécessaire pour calculer le 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 | Setters d'attributs facultatifs pour FractionalMaxPool . |
Attributs publics
col_pooling_sequence
::tensorflow::Output col_pooling_sequence
opération
Operation operation
sortir
::tensorflow::Output output
rangée_pooling_sequence
::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 )
Semence2
Attrs Seed2( int64 x )