Pytorch - Cummax

Pytorch - Cummax
Pytorch è un framework open source per il linguaggio di programmazione Python.

Un tensore è un array multidimensionale che viene utilizzato per archiviare i dati. Quindi, per usare un tensore, dobbiamo importare il modulo Torcia.

Per creare un tensore il metodo utilizzato è tensore ().

Sintassi:

torcia.tensore (dati)

Dove i dati sono un array multidimensionale.

torcia.cummax ()

torcia.Cummax () restituisce il massimo cumulativo di elementi in un tensore bidimensionale attraverso le righe o attraverso le colonne. Restituisce inoltre gli indici dei valori massimi restituiti.

Sintassi:

torcia.cummax (tensor_object, dim)

Parametri:

  1. Ci vuole Tensor_Object come primo parametro. Deve essere bidimensionale.
  2. Dim = 0 Specifica il calcolo per la colonna e Dim = 1 Specifica il calcolo della riga

Esempio 1:

In questo esempio, creeremo un tensore che ha quattro righe e quattro colonne e restituiremo il massimo cumulativo di ciascun elemento attraverso la riga.

Modulo Torcia #IMport
Torcia di importazione
#Crea tensore
data1 = torcia.tensore ([[2,3,4,5], [1,3,5,3], [2,3,2,1], [2,3,4,2]])
#Schermo
Stampa ("Tensore reale:")
Stampa (Data1)
stampa ("massimo cumulativo attraverso la riga:")
#return cumulative massimo
Stampa (torcia.cummax (data1,1))

Produzione:

Tensor reale:
tensore ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]])
Massimo cumulativo attraverso la riga:
torcia.return_types.cummax (
valori = tensore ([[2, 3, 4, 5],
[1, 3, 5, 5],
[2, 3, 3, 3],
[2, 3, 4, 4]]),
Indici = tensore ([[0, 1, 2, 3],
[0, 1, 2, 2],
[0, 1, 1, 1],
[0, 1, 2, 2]]))

Lavorando:

ROW-1: 2, massimo (2,3), massimo (2,3,4), massimo (2,3,4,5) = [2, 3,4,5]

Quindi, [2, 3,4,5] le posizioni dell'indice nel tensore effettivo sono - [0,1,2,3]

ROW-2: 1, massimo (1,3), massimo (1,3,5), massimo (1,3,5,3) = [1,3,5,5]

Quindi, le posizioni dell'indice [1,3,5,5] nel tensore effettivo sono - [0,1,2,2]

ROW-3: 2, massimo (2,3), massimo (2,3,2), massimo (2,3,2,1) = [2,3,3,3]

Quindi, le posizioni dell'indice [2,3,3,3] nel tensore effettivo sono - [0,1,1,1]

Row-4: 2, massimo (2,3), massimo (2,3,4), massimo (2,3,4,2) = [2,3,4,4]

Quindi, [2,3,4,4] le posizioni dell'indice nel tensore effettivo sono - [0,1,2,2]

Esempio 2:

In questo esempio, creeremo un tensore che ha quattro righe e quattro colonne e restituiremo il massimo cumulativo di ciascun elemento attraverso la colonna.

Modulo Torcia #IMport
Torcia di importazione
#Crea tensore
data1 = torcia.tensore ([[2,3,4,5], [1,3,5,3], [2,3,2,1], [2,3,4,2]])
#Schermo
Stampa ("Tensore reale:")
Stampa (Data1)
stampa ("massimo cumulativo attraverso la colonna:")
#return cumulative massimo
Stampa (torcia.cummax (data1,0))

Produzione:

Tensor reale:
tensore ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]])
Massimo cumulativo attraverso la colonna:
torcia.return_types.cummax (
valori = tensore ([[2, 3, 4, 5],
[2, 3, 5, 5],
[2, 3, 5, 5],
[2, 3, 5, 5]]),
indici = tensore ([[0, 0, 0, 0],
[0, 1, 1, 0],
[2, 2, 1, 0],
[3, 3, 1, 0]]))

Lavorando:
Colonna-1: 2, massimo (2,1), massimo (2,1,2), massimo (2,1,2,2) = [2, 2,2,2]

Quindi, [2, 2,2,2] le posizioni dell'indice nel tensore effettivo sono - [0,0,2,3]

Colonna 2: 3, massimo (3,3), massimo (3,3,3), massimo (3,3,3,3) = [3,3,3,3]

Quindi, le posizioni dell'indice [3,3,3,3] nel tensore effettivo sono - [0,1,2,3]

Colonna-3: 4, massimo (4,5), massimo (4,5,2), massimo (4,5,2,4) = [4,5,5,5]

Quindi, le posizioni dell'indice [4,5,5,5] nel tensore effettivo sono - [0,1,1,1]

Colonna-4: 5, massimo (5,3), massimo (5,3,1), massimo (5,3,1,2) = [5,5,5,5]

Quindi, le posizioni dell'indice [5,5,5,5] nel tensore effettivo sono - [0,0,0,0]

Lavorare con la CPU

Se si desidera eseguire una funzione Cummax () sulla CPU, allora dobbiamo creare un tensore con una funzione CPU (). Questo funzionerà su una macchina CPU.

Al momento, quando stiamo creando un tensore, possiamo usare la funzione CPU ().

Sintassi:

torcia.tensore (dati).processore()

Esempio 1:

In questo esempio, creeremo un tensore che ha quattro righe e quattro colonne e restituiremo il massimo cumulativo di ciascun elemento attraverso la riga

Modulo Torcia #IMport
Torcia di importazione
#Crea tensore
data1 = torcia.tensore ([[2,3,4,5], [1,3,5,3], [2,3,2,1], [2,3,4,2]]).processore()
#Schermo
Stampa ("Tensore reale:")
Stampa (Data1)
stampa ("massimo cumulativo attraverso la riga:")
#return cumulative massimo
Stampa (torcia.cummax (data1,1))

Produzione:

Tensor reale:
tensore ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]])
Massimo cumulativo attraverso la riga:
torcia.return_types.cummax (
valori = tensore ([[2, 3, 4, 5],
[1, 3, 5, 5],
[2, 3, 3, 3],
[2, 3, 4, 4]]),
Indici = tensore ([[0, 1, 2, 3],
[0, 1, 2, 2],
[0, 1, 1, 1],
[0, 1, 2, 2]]))

Lavorando:

ROW-1: 2, massimo (2,3), massimo (2,3,4), massimo (2,3,4,5) = [2, 3,4,5]

Quindi, [2, 3,4,5] le posizioni dell'indice nel tensore effettivo sono - [0,1,2,3]

ROW-2: 1, massimo (1,3), massimo (1,3,5), massimo (1,3,5,3) = [1,3,5,5]

Quindi, le posizioni dell'indice [1,3,5,5] nel tensore effettivo sono - [0,1,2,2]

ROW-3: 2, massimo (2,3), massimo (2,3,2), massimo (2,3,2,1) = [2,3,3,3]

Quindi, le posizioni dell'indice [2,3,3,3] nel tensore effettivo sono - [0,1,1,1]

Row-4: 2, massimo (2,3), massimo (2,3,4), massimo (2,3,4,2) = [2,3,4,4]

Quindi, [2,3,4,4] le posizioni dell'indice nel tensore effettivo sono - [0,1,2,2]

Esempio 2:

In questo esempio, creeremo un tensore che ha quattro righe e quattro colonne e restituiremo il massimo cumulativo di ciascun elemento attraverso la colonna.

Modulo Torcia #IMport
Torcia di importazione
#Crea tensore
data1 = torcia.tensore ([[2,3,4,5], [1,3,5,3], [2,3,2,1], [2,3,4,2]]).processore()
#Schermo
Stampa ("Tensore reale:")
Stampa (Data1)
stampa ("massimo cumulativo attraverso la colonna:")
#return cumulative massimo
Stampa (torcia.cummax (data1,0))

Produzione:

Tensor reale:
tensore ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]])
Massimo cumulativo attraverso la colonna:
torcia.return_types.cummax (
valori = tensore ([[2, 3, 4, 5],
[2, 3, 5, 5],
[2, 3, 5, 5],
[2, 3, 5, 5]]),
indici = tensore ([[0, 0, 0, 0],
[0, 1, 1, 0],
[2, 2, 1, 0],
[3, 3, 1, 0]]))

Lavorando:

Colonna-1: 2, massimo (2,1), massimo (2,1,2), massimo (2,1,2,2) = [2, 2,2,2]

Quindi, [2, 2,2,2] le posizioni dell'indice nel tensore effettivo sono - [0,0,2,3]

Colonna 2: 3, massimo (3,3), massimo (3,3,3), massimo (3,3,3,3) = [3,3,3,3]

Quindi, le posizioni dell'indice [3,3,3,3] nel tensore effettivo sono - [0,1,2,3]

Colonna-3: 4, massimo (4,5), massimo (4,5,2), massimo (4,5,2,4) = [4,5,5,5]

Quindi, le posizioni dell'indice [4,5,5,5] nel tensore effettivo sono - [0,1,1,1]

Colonna-4: 5, massimo (5,3), massimo (5,3,1), massimo (5,3,1,2) = [5,5,5,5]

Quindi, le posizioni dell'indice [5,5,5,5] nel tensore effettivo sono - [0,0,0,0]

Conclusione

In questo tutorial di Pytorch, abbiamo visto come eseguire un'operazione cumulativa massima su un tensore usando la torcia.funzione cummax (). Restituisce il massimo cumulativo di elementi in un tensore bidimensionale e indicizza anche le posizioni dei valori massimi tra le righe o tra le colonne. Abbiamo anche implementato questa funzione sulla CPU usando la funzione CPU ().