Épissage tenseur/tableau, épissage d'expansion de dimension et expansion de dimension

1. Épissage tenseur, épissage d'expansion dimensionnelle et expansion dimensionnelle

1.1 torch.cat

Dans PyTorch, vous pouvez utiliser torch.catla fonction pour effectuer des opérations d'épissage de tableau. torch.cat peut assembler deux tenseurs ou plus, et les dimensions d'épissage peuvent être spécifiées. Par exemple, en supposant que nous ayons deux tenseurs de taille (3, 4) et (3, 5), nous pouvons les concaténer dans la deuxième dimension avec le code suivant :

import torch

a = torch.randn(3, 4)
b = torch.randn(3, 5)

c = torch.cat([a, b], dim=1)
print(c.shape)

Le résultat est :

torch.Size([3, 9])

1.2 torche.stack

torch.stackLa fonction peut concaténer plusieurs tenseurs le long de la dimension nouvellement créée, par exemple :

import torch

a = torch.randn(3, 4)
b = torch.randn(3, 4)

c = torch.stack([a, b], dim=0)
print(c.shape)

Le résultat est :

torch.Size([2, 3, 4])

1.3 torche.unsqueeze

Si vous souhaitez étendre un tenseur à une nouvelle dimension, vous pouvez utiliser torch.unsqueezela fonction, par exemple :

import torch

a = torch.randn(3, 4)

b = torch.unsqueeze(a, dim=0)
print(b.shape)

Le résultat est :

torch.Size([1, 3, 4])

2 Épissage de tableau, épissage d'expansion de dimension et expansion de dimension

2.1 np.concaténer

Dans NumPy, vous pouvez utiliser np.concatenatela fonction pour effectuer des opérations d'épissage de tableau. np.concatenateDeux ou plusieurs tableaux peuvent être concaténés ensemble et les dimensions de la concaténation peuvent être spécifiées. Par exemple, en supposant que nous ayons deux tableaux de size (3, 4)et (3, 5), nous pouvons les concaténer dans la deuxième dimension avec le code suivant :

import numpy as np

a = np.random.randn(3, 4)
b = np.random.randn(3, 5)

c = np.concatenate([a, b], axis=1)
print(c.shape)

Le résultat est :

(3, 9)

2.2 np.stack

np.stackLa fonction peut concaténer plusieurs tableaux le long de la dimension nouvellement créée, par exemple :

import numpy as np

a = np.random.randn(3, 4)
b = np.random.randn(3, 4)

c = np.stack([a, b], axis=0)
print(c.shape)

Le résultat est :

(2, 3, 4)

2.3 np.newaxis

Si vous souhaitez étendre un tableau à une nouvelle dimension, vous pouvez utiliser np.newaxisla fonction, par exemple :

import numpy as np

a = np.random.randn(3, 4)

b = a[np.newaxis, ...]
print(b.shape)

Le résultat est :

(1, 3, 4)

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45471642/article/details/130674641
conseillé
Classement