Pytorch - Argmax

Pytorch - Argmax
„W tym samouczku Pytorcha zobaczymy, jak zwrócić pozycje indeksu maksymalnych wartości z tensora za pomocą argmax ().

Pytorch to open source dostępny z językiem programowania Python. Możemy przetwarzać dane w Pytorch w postaci tensora.

Tensor to wielowymiarowa tablica używana do przechowywania danych. Więc do używania tensora musimy zaimportować moduł pochodni.

Aby utworzyć tensor, zastosowaną metodą jest tensor () ”

Składnia:

latarka.tensor (dane)

Gdzie dane są wielowymiarową tablicą.

argmax ()

argmax () w Pytorch służy do zwrócenia wskaźnika maksymalnej wartości wszystkich elementów w tensorze wejściowym.

Składnia:

latarka.argmax (tensor, dim, keepdim)

Gdzie

  1. Tensor to tensor wejściowy
  2. Dim ma zmniejszyć wymiar. Dim = 0 Określa porównanie kolumny, które otrzyma indeks dla maksymalnej wartości wzdłuż kolumny, a Dim = 1 Określa porównanie wierszy, które otrzyma indeks dla wartości maksymalnej wzdłuż wiersza.
  3. Keepdim sprawdza, czy tensor wyjściowy ma wymiar (DIM) zachowany, czy nie

Przykład 1

W tym przykładzie utworzymy tensor z 2 wymiarami, które mają 3 wiersze i 5 kolumn i zastosujemy argmax () na rzędach i kolumnach.

#Import Moduł pochodni
Importuj pochodnię
#Utwórz tensor z 2 wymiarami (3 * 5)
#z losowymi elementami za pomocą funkcji randn ()
Data = pochodnia.Randn (3,5)
#wyświetlacz
Drukuj (dane)
#Zadzwoń maksymalny indeks wzdłuż kolumn z argmax
Drukuj (pochodnia.argmax (dane, dim = 0))
#Zadzwoń maksymalny indeks wzdłuż rzędów z Argmax
Drukuj (pochodnia.argmax (dane, dim = 1))

Wyjście:

tensor [[[0.6699, 1.3390, -1.0658, -1.8200, 0.6544],
[-0.3117, 0.2488, 0.2677, 0.2568, 0.5337],
[-1.0966, 1.8024, -0.7538, -0.2553, -1.0591]])
tensor ([0, 2, 1, 1, 0])
tensor ([1, 4, 1])

Widzimy, że maksymalne wartości obecne w indeksie wzdłuż kolumn to:

  1. Maksymalna wartość - 0.6699. Jego indeks to 0.
  2. Maksymalna wartość - 1.8024. Jego indeks to 2.
  3. Maksymalna wartość - 0.2677. Jego indeks wynosi 1.
  4. Maksymalna wartość - 0.2568. Jego indeks wynosi 1.
  5. Maksymalna wartość - 0.6544. Jego indeks to 0.

Podobnie maksymalne wartości obecne na indeksie wzdłuż rzędów to:

  1. Maksymalna wartość - 1.3390. Jego indeks wynosi 1.
  2. Maksymalna wartość - 0.5337. Jego indeks to 4.
  3. Maksymalna wartość - 1.8024. Jego indeks wynosi 1.

Przykład 2

Utwórz tensor z matrycą 5 * 5 i zastosuj argmax ()

#Import Moduł pochodni
Importuj pochodnię
#Utwórz tensor z 2 wymiarami (5 * 5)
#z losowymi elementami za pomocą funkcji randn ()
Data = pochodnia.Randn (5,5)
#wyświetlacz
Drukuj (dane)
#Zadzwoń maksymalny indeks wzdłuż kolumn z argmax
Drukuj (pochodnia.argmax (dane, dim = 0))
#Zadzwoń maksymalny indeks wzdłuż rzędów z Argmax
Drukuj (pochodnia.argmax (dane, dim = 1))

Wyjście:

tensor ([[-0.9553, -0.2611, -2.1233, -0.5208, -0.3458],
[-0.5466, -1.6395, 0.2576, -0.3123, 0.6785],
[-0.4574, 1.5301, 0.4812, 0.3434, 0.1388],
[0.8364, 0.3821, 0.1529, 1.4529, 0.3747],
[-1.4991, -1.8821, -0.2861, -0.4067, 1.1323]])
tensor ([3, 2, 2, 3, 4])
tensor ([1, 4, 1, 3, 4])

Widzimy, że maksymalne wartości obecne w indeksie wzdłuż kolumn to:

  1. Maksymalna wartość - 0.8364. Jego indeks to 3.
  2. Maksymalna wartość - 1.5301. Jego indeks to 2.
  3. Maksymalna wartość - 0.4812. Jego indeks to 2.
  4. Maksymalna wartość - 1.4529. Jego indeks to 3.
  5. Maksymalna wartość - 1.1323. Jego indeks to 4.

Podobnie maksymalne wartości obecne na indeksie wzdłuż rzędów to:

  1. Wartość maksymalna - -0.2611. Jego indeks wynosi 1.
  2. Maksymalna wartość - 0.6785. Jego indeks to 4.
  3. Maksymalna wartość - 1.5301. Jego indeks wynosi 1.
  4. Maksymalna wartość - 1.4529. Jego indeks to 3.
  5. Maksymalna wartość - 1.1323. Jego indeks to 4.

Pracuj z CPU

Jeśli chcesz uruchomić funkcję argmax () na procesorze, musimy utworzyć tensor z funkcją cpu (). Będzie to działać na komputerze procesora.

Kiedy tworzymy tensor, w tej chwili możemy użyć funkcji CPU ().

Składnia:

latarka.tensor (dane).procesor()

Przykład 1

Utwórz tensor z matrycą 5 * 5 z CPU () i zastosuj argmax ()
#Import Moduł pochodni
Importuj pochodnię
#Utwórz tensor z 2 wymiarami (5 * 5)
#z losowymi elementami za pomocą funkcji randn () z cpu ()
Data = pochodnia.Randn (5,5).procesor()
#wyświetlacz
Drukuj (dane)
#Zadzwoń maksymalny indeks wzdłuż kolumn z argmax
Drukuj (pochodnia.argmax (dane, dim = 0))
#Zadzwoń maksymalny indeks wzdłuż rzędów z Argmax
Drukuj (pochodnia.argmax (dane, dim = 1))

Wyjście:

tensor ([[-0.2213, 1.6140, -0.0774, 0.4135, 0.1379],
[-0.4415, -2.5789, 0.8294, -0.9309, 1.3535],
[-1.3256, -0.7233, -0.9713, 1.0742, 1.9350],
[-0.7126, -1.3336, 0.7371, -0.2253, 0.1675],
[-0.1174, -0.5773, 0.8887, -0.2563, -1.0667]])
tensor ([4, 0, 4, 2, 2])
tensor ([1, 4, 4, 2, 2])

Widzimy, że maksymalne wartości obecne w indeksie wzdłuż kolumn to:

  1. Wartość maksymalna - -0.1174. Jego indeks to 4.
  2. Maksymalna wartość - 1.6140. Jego indeks to 0.
  3. Maksymalna wartość - 0.8887. Jego indeks to 4.
  4. Maksymalna wartość - 1.0742. Jego indeks to 2.
  5. Maksymalna wartość - 1.9350. Jego indeks to 2.

Podobnie maksymalne wartości obecne na indeksie wzdłuż rzędów to:

  1. Maksymalna wartość - 1.6140. Jego indeks wynosi 1.
  2. Maksymalna wartość - 1.3535. Jego indeks to 4.
  3. Maksymalna wartość - 1.9350. Jego indeks to 4.
  4. Maksymalna wartość - 0.7371. Jego indeks to 2.
  5. Maksymalna wartość - 0.8887. Jego indeks to 2.

Przykład 2

W tym przykładzie utworzymy tensor z 2 wymiarami, które mają 3 wiersze i 5 kolumn za pomocą funkcji cpu () i zastosujemy argmax () na rzędach i kolumnach.

#Import Moduł pochodni
Importuj pochodnię
#Utwórz tensor z 2 wymiarami (3 * 5)
#z losowymi elementami za pomocą funkcji CPU () z funkcją CPU ()
Data = pochodnia.Randn (3,5).procesor()
#wyświetlacz
Drukuj (dane)
#Zadzwoń maksymalny indeks wzdłuż kolumn z argmax
Drukuj (pochodnia.argmax (dane, dim = 0))
#Zadzwoń maksymalny indeks wzdłuż rzędów z Argmax
Drukuj (pochodnia.argmax (dane, dim = 1))

Wyjście:

tensor [[[0.6699, 1.3390, -1.0658, -1.8200, 0.6544],
[-0.3117, 0.2488, 0.2677, 0.2568, 0.5337],
[-1.0966, 1.8024, -0.7538, -0.2553, -1.0591]])
tensor ([0, 2, 1, 1, 0])
tensor ([1, 4, 1])

Widzimy, że maksymalne wartości obecne w indeksie wzdłuż kolumn to:

  1. Maksymalna wartość - 0.6699. Jego indeks to 0.
  2. Maksymalna wartość - 1.8024. Jego indeks to 2.
  3. Maksymalna wartość - 0.2677. Jego indeks wynosi 1.
  4. Maksymalna wartość - 0.2568. Jego indeks wynosi 1.
  5. Maksymalna wartość - 0.6544. Jego indeks to 0.

Podobnie maksymalne wartości obecne na indeksie wzdłuż rzędów to:

  1. Maksymalna wartość - 1.3390. Jego indeks wynosi 1.
  2. Maksymalna wartość - 0.5337. Jego indeks to 4.
  3. Maksymalna wartość - 1.8024. Jego indeks wynosi 1.

Wniosek

W tej lekcji Pytorcha widzieliśmy, co argmax () i jak zastosować argmax () na tensor, aby zwrócić wskaźniki maksymalnych wartości w kolumnach i wierszach.

Stworzyliśmy również tensor z funkcją cpu () i zwróciliśmy wskaźniki o maksymalnych wartościach. DIM jest parametrem używanym do zwracania wskaźników maksymalnych wartości w kolumnach, gdy jest ustawiony na 0 i zwraca wskaźniki maksymalnych wartości między wierszami, gdy jest ustawiony na 1.