SegmentMinV2

classe finale publique SegmentMinV2

Calcule le minimum le long des segments d'un tenseur.

Lisez [la section sur la segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation) pour une explication des segments.

Calcule un tenseur tel que \\(output_i = \min_j(data_j)\\) où `min` est supérieur à `j` tel que `segment_ids[j] == i`.

Si le minimum est vide pour un ID de segment `i` donné, il génère la plus grande valeur possible pour le type numérique spécifique, `output[i] = numeric_limits ::max()`.

Remarque : cette opération n'est actuellement prise en charge qu'avec jit_compile=True.

Attention : sur le processeur, les valeurs dans `segment_ids` sont toujours validées pour être triées et une erreur est générée pour les indices qui n'augmentent pas. Sur GPU, cela ne génère pas d'erreur pour les index non triés. Sur GPU, les index dans le désordre entraînent un comportement sûr mais non spécifié, qui peut inclure le traitement des index dans le désordre comme un index suivant plus petit.

La seule différence avec SegmentMin est l'entrée supplémentaire « num_segments ». Cela aide à évaluer la forme de sortie au moment de la compilation. `num_segments` doit être cohérent avec segment_ids. par exemple, Max(segment_ids) doit être égal à `num_segments` - 1 pour un segment_ids 1-d Avec des num_segments incohérents, l'opération s'exécute toujours. la seule différence est que la sortie prend la taille de num_segments quelle que soit la taille des segment_ids et des données. pour num_segments inférieur à la taille de sortie attendue, les derniers éléments sont ignorés pour num_segments supérieur à la taille de sortie attendue, les derniers éléments se voient attribuer la plus grande valeur possible pour le type numérique spécifique.

Par exemple:

>>> @tf.function(jit_compile=True) ... def test(c) : ... return tf.raw_ops.SegmentMinV2(data=c, segment_ids=tf.constant([0, 0, 1]), num_segments=2) >>> c = tf.constant([[1,2,3,4], [4, 3, 2, 1], [5,6,7,8]]) >>> test( c).numpy() tableau([[1, 2, 2, 1], [5, 6, 7, 8]], dtype=int32)

Méthodes publiques

Sortie <T>
comme Sortie ()
Renvoie le handle symbolique d'un tenseur.
static <T étend le nombre, U étend le nombre, V étend le nombre> SegmentMinV2 <T>
créer ( Portée de la portée , Données de l'opérande <T>, Opérande <U> segmentIds, Opérande <V> numSegments)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération SegmentMinV2.
Sortie <T>
sortir ()
A la même forme que les données, à l'exception des premières dimensions `segment_ids.rank`, qui sont remplacées par une seule dimension qui a la taille `num_segments`.

Méthodes héritées

Méthodes publiques

sortie publique <T> asOutput ()

Renvoie le handle symbolique d'un tenseur.

Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.

public static SegmentMinV2 <T> créer (portée de portée , données d'opérande <T>, opérandes <U> segmentIds, opérande <V> numSegments)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération SegmentMinV2.

Paramètres
portée portée actuelle
ID de segment Un tenseur 1D dont la taille est égale à la taille de la première dimension des « données ». Les valeurs doivent être triées et peuvent être répétées. Les valeurs doivent être inférieures à « num_segments ».

Attention : Les valeurs sont toujours validées pour être triées sur CPU, jamais validées sur GPU.

Retour
  • une nouvelle instance de SegmentMinV2

sortie publique <T> sortie ()

A la même forme que les données, à l'exception des premières dimensions `segment_ids.rank`, qui sont remplacées par une seule dimension qui a la taille `num_segments`.