프로그래밍/Python

텐서, 배열 연결하기(numpy, pytorch - concat(concatenate, stack)

히또아빠 2023. 12. 4. 10:28

1.concat(=concatenate)

주어진 차원을 따라 텐서들을 연결하는데 사용
딥 러닝에서는 주로 모델의 입력 또는 중간 연산에서 두 개의 텐서를 연결하는 경우가 많음.
두 텐서를 연결해서 입력으로 사용하는 것은 두 가지의 정보를 모두 사용한다는 의미.

  • dim = 0: 첫번째 차원을 늘림
  • dim = 1: 두전째 차원을 늘림
# 예제 배열 생성 array1 = np.array([[1, 2], [3, 4]]) array2 = np.array([[5, 6]])
np.concatenate을 사용하여 두 배열을 첫 번째 차원(행)을 따라 이어붙이기
result_concatenate = np.concatenate((array1, array2), axis=0)

print("\nConcatenated array:")
print(result_concatenate)

예제 텐서 생성
tensor1 = torch.tensor([[1, 2], [3, 4]])
tensor2 = torch.tensor([[5, 6]])

torch.cat을 사용하여 두 텐서를 첫 번째 차원(행)을 따라 이어붙이기
result_cat = torch.cat((tensor1, tensor2), dim=0)

print("\nConcatenated tensor:")
print(result_cat)

Concatenated array:
[[1 2]
[3 4]
[5 6]]

Concatenated tensor:
tensor([[1, 2],
[3, 4],
[5, 6]])

2.stack

stack은 새로운 차원을 생성하여 텐서 쌓는데 사용

예제 배열 생성
array1 = np.array([1, 2])
array2 = np.array([3, 4])

np.stack을 사용하여 두 배열을 새로운 차원(축)을 생성하여 쌓기
result_stack = np.stack((array1, array2), axis=0)

print("\nStacked array:")
print(result_stack)

예제 텐서 생성
tensor1 = torch.tensor([1, 2])
tensor2 = torch.tensor([3, 4])

torch.stack을 사용하여 두 텐서를 새로운 차원(축)을 생성하여 쌓기
result_stack = torch.stack((tensor1, tensor2), dim=0)

print("\nStacked tensor:")
print(result_stack)

예제 배열 생성
array1 = np.array([1, 2])
array2 = np.array([3, 4])

np.stack을 사용하여 두 배열을 새로운 차원(축)을 생성하여 쌓기
result_stack = np.stack((array1, array2), axis=0)

print("\nStacked array:")
print(result_stack)

#예제 텐서 생성
tensor1 = torch.tensor([1, 2])
tensor2 = torch.tensor([3, 4])

#torch.stack을 사용하여 두 텐서를 새로운 차원(축)을 생성하여 쌓기
result_stack = torch.stack((tensor1, tensor2), dim=0)

print("\nStacked tensor:")
print(result_stack)

Stacked array:
[[1 2]
[3 4]]

Stacked tensor:
tensor([[1, 2],
[3, 4]])
300x250
반응형