pyTorch 7

0, 1 로 이루어진 배열, 텐서 만들기(pytorch,numpy - ones_like, zeros_like)

0, 1로 채워진 텐서를 만드는 방법, 기존 텐서의 크기와 데이터 타입을 그대로 유지하면서 생성 1.ones_like # 예제 배열 생성 original_array = np.array([[1, 2], [3, 4]]) # np.ones_like를 사용하여 1로 채워진 배열 생성 ones_array = np.ones_like(original_array) print("Original array:") print(original_array) print("\nArray of ones:") print(ones_array) # 예제 텐서 생성 original_tensor = torch.tensor([[1, 2], [3, 4]]) # torch.ones_like를 사용하여 1로 채워진 텐서 생성 ones_tensor =..

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

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..

텐서 타입 변경하기(numpy - astype(float), pytorch - float())

# NumPy 배열 생성 numpy_array = np.array([1, 2, 3]) # NumPy 배열을 다른 데이터 타입으로 변환 float_array = numpy_array.astype(float) int_array = numpy_array.astype(int) print("Original NumPy array:", numpy_array) print("Float array:", float_array) print("Integer array:", int_array) # PyTorch 텐서 생성 torch_tensor = torch.tensor([1, 2, 3]) # PyTorch 텐서를 다른 데이터 타입으로 변환 float_tensor = torch_tensor.float() int_tensor = ..

텐서 차원 변경하기(pytorch - squeeze, unsqueeze/ numpy - squeeze, expand_dims)

텐서의 원소를 유지한채 모양과 차원크기 변환 차원이 1인경우 해당 차원을 제거, 특정 위치에 1인차원을 추가 dim은 제거하거나 추가할 차원의 위치 1.numpy - squeeze, expand_dims # 1차원 배열 생성 array = np.array([[1], [2], [3]]) # 차원을 추가하여 2차원 배열로 만들기 expanded_array = np.expand_dims(array, axis=0) # 차원을 제거하여 1차원 배열로 만들기 squeezed_array = np.squeeze(expanded_array, axis=0) print("Original array:") print(array) print(array.shape) print("\nAfter expand_dims:") print(..

배열구조 바꾸기(numpy - reshape, pytorch - view/reshape)

원소의 수를 유지하면서 배열의 모양을 바꾸는 방법 1.[numpy - reshape] array.reshape(변환 shape), np.reshape(array, 변환 shape) 재배정이 불가능한 경우 ValueError arr = np.arange(1, 10) # [1, 2, 3, 4, 5, 6, 7, 8, 9] reshaped_arr = np.reshape(arr, (3, 3)) print("Original array:") print(arr) print("\nReshaped array:") print(reshaped_arr) Original array: [1 2 3 4 5 6 7 8 9] Reshaped array: [[1 2 3] [4 5 6] [7 8 9]] 2.[pytorch - view, r..

텐서, 행렬의 곱셈 - numpy(*, dot, @), pytorch(mul, matmul, @) 비교

1.[Numpy]의 곱연산자 '*' '*' 연산자는 원소별(element-wise) 곱셈 스칼라 곱 별연산은 같은 shape 여야만 계산 다른 경우는 (1, n)꼴 일때 브로드캐스팅 적용 브로드캐스팅 지원 'dot' 'dot'함수는 두 행렬간의 내적(dot product) 앞의 행렬의 마지막 축과 뒤의 행렬의 두 번째 축간의 내적 수행 '@' 행렬 곱셈 행렬이라는 2차원 공간에서는 내적 'dot'과 같은 역할 3차원부터는 텐서곱(외적)이라 다른 결과 마지막 축에 대해서만 행렬 곱셈 pytorch의 'matmul', '@'와 동일한 행렬곱셈 np의 'matmul'과도 동일 2.[pytorch] 의 곱연산자 'mul' 원소별(element-wise) 곱셈 브로드캐스팅 지원 'matmul' 행렬곱셈 '@'와 ..

tensor(텐서) 개념 및 numpy, pytorch 비교하기

1.개념 1-1.텐서 차원별 개념 스칼라(Scalar), 벡터(Vector), 행렬(Matrix), 텐서(Tensor)는 선형 대수학(Linear Algebra)에서 중요한 개념들입니다. 각각은 다양한 수학적 객체를 나타내며, 데이터 및 연산을 표현하는 데에 활용된다. 스칼라(Scalar): 크기만 가지고 방향이 없는 양, 실수나 정수 0차원 벡터(Vector): 벡터는 크기와 방향을 가지는 양 2차원 벡터는 평면에서의 위치, 3차원 벡터는 공간에서의 위치를 나타냄 벡터는 순서가 있는 숫자의 나열로 표현되며, 각 요소는 벡터의 한 차원을 나타냄 1차원 행렬(matrix): 숫자들을 2차원 배열로 나타낸 것으로 행과 열로 이루어짐 M x N 행렬은 M개의 행과 N개의 열로 이루어짐 2차원 텐서(tensor..