Antorcha algunas viejas funciones olvidadas

1. torch.diag_embed(input) convierte la última dimensión del tensor de entrada en una matriz diagonal

parámetro

la entrada es tensor

ejemplo

import torch
a = torch.tensor([[1,2],[3,4]])
print(a)
'''a->tensor([[1, 2],
             [3, 4]]), shape->(1,2)'''
b = torch.diag_embed(a)
print(b)
'''tensor([[[1, 0],
         [0, 2]],
        [[3, 0],
         [0, 4]]]), shape->(1,2,2)'''

2. torch.linalg.qr(A, modo)

parámetro

  • A: Tensor cuya forma es más de dos dimensiones
  • modo: uno de 'reducido', 'completo', 'r'. Controla la forma del tensor devuelto, por defecto es 'reducido'

retorno (Q,R)

Propósito: Calcular la descomposición QR de la matriz.
La descomposición QR requiere una comprensión simple.
Cuando mode='reduced', la descomposición QR simplificada Q ∈ R m × k Q \in \mathbb{R}^{m \times k}qRm × kR ∈ R k × n R \in \mathbb{R}^{k \times n}RRk × norte . dondek = min ( metro , norte ) k=min(m,n)k=min ( m ,n )
Cuando mode='complete', la descomposición QR completaQ ∈ R m × m Q \in \mathbb{R}^{m \times m}qRmetro × metroR ∈ R metro × norte R \in \mathbb{R}^{m \times n}RRm × n . Tenga en cuenta que cuandon >= m n>=m
norte>=m , la descomposición QR simplificada es consistente con la descomposición QR completa.
Cuando mode='r', solo se devuelve la matriz r de la descomposición QR simplificada, y la matriz Q está vacía. R ∈ R k × n R \in \mathbb{R}^{k \times n}RRk × norte

Aviso

  1. mode='r' no es compatible con la retropropagación, utilice mode='reduced'
  2. Cuando el primer k de A = min ( m , n ) k=min(m,n)k=min ( m ,n ) Cuando las columnas son linealmente independientes, la descomposición QR solo es única en la diagonal de R. Si este no es el caso, diferentes bibliotecas o en diferentes dispositivos pueden producir diferentes descomposiciones efectivas.
  3. Solo si la primera k de cada matriz en A = min ( m , n ) k=min(m,n)k=min ( m ,n ) El cálculo del gradiente solo se admite cuando las columnas son linealmente independientes. Si no se cumple esta condición, no se arrojará ningún error, pero el gradiente resultante será incorrecto. Esto se debe a que la descomposición QR no es diferenciable en estos puntos.

Supongo que te gusta

Origin blog.csdn.net/REstrat/article/details/127197414
Recomendado
Clasificación