PyTorch torch.multinomial Funktion
PyTorch torch-Referenzhandbuch
torch.multinomialIst eine Funktion in PyTorch für multinomiale Stichprobenentnahme, die aus jeder Zeile des Eingabe-Tensors gemäß der Wahrscheinlichkeitsverteilung Stichproben zieht.
Funktionsdefinition
torch.multinomial(input, num_samples, replacement=False, generator=None)
Parameterbeschreibung
input- Wahrscheinlichkeitsverteilungs-Tensor, jede Zeile ist eine Wahrscheinlichkeitsverteilung, und die Summe aller Wahrscheinlichkeiten sollte 1 seinnum_samples- Anzahl der Stichprobenreplacement- Ob Stichproben mit Zurücklegen erlaubt sind (Standard: False)generator- Zufallszahlengenerator (optional)
Anwendungsbeispiel
Beispiel
import torch
# Wahrscheinlichkeitsverteilung definieren
weights = torch.tensor([[0.0, 1.0], # Die Wahrscheinlichkeit der zweiten Kategorie ist 1
[0.5, 0.5], # Die beiden Kategorien haben gleiche Wahrscheinlichkeiten
[0.2, 0.3, 0.5]]) # Drei Kategorien
# Stichprobenentnahme ohne Zurücklegen
result = torch.multinomial(weights, num_samples=2, replacement=False)
print("Wahrscheinlichkeitsverteilung:")
print(weights)
print("Ergebnisse der Stichprobenentnahme ohne Zurücklegen (2 Stichproben pro Zeile):")
print(result)
# Stichprobenentnahme mit Zurücklegen
result_with_replacement = torch.multinomial(weights, num_samples=5, replacement=True)
print("Ergebnisse der Stichprobenentnahme mit Zurücklegen (5 Stichproben pro Zeile):")
print(result_with_replacement)
# Wahrscheinlichkeitsverteilung definieren
weights = torch.tensor([[0.0, 1.0], # Die Wahrscheinlichkeit der zweiten Kategorie ist 1
[0.5, 0.5], # Die beiden Kategorien haben gleiche Wahrscheinlichkeiten
[0.2, 0.3, 0.5]]) # Drei Kategorien
# Stichprobenentnahme ohne Zurücklegen
result = torch.multinomial(weights, num_samples=2, replacement=False)
print("Wahrscheinlichkeitsverteilung:")
print(weights)
print("Ergebnisse der Stichprobenentnahme ohne Zurücklegen (2 Stichproben pro Zeile):")
print(result)
# Stichprobenentnahme mit Zurücklegen
result_with_replacement = torch.multinomial(weights, num_samples=5, replacement=True)
print("Ergebnisse der Stichprobenentnahme mit Zurücklegen (5 Stichproben pro Zeile):")
print(result_with_replacement)
Andere Erweiterungen