본문 바로가기

Framework4

[PyTorch] unsqueeze() vs squeeze() PyTorch로 딥러닝 모델을 다루다 보면 차원(Dimension) 을 추가하거나 제거해야 할 때가 자주 있습니다.이때 자주 등장하는 것이 바로 unsqueeze() 와 squeeze() 함수입니다.torch.unsqueeze() " 차원 하나를 살짝 껴 넣는다!" unsqueeze는 특정 위치(dim) 에 새로운 차원을 추가합니다. 추가된 차원은 크기가 1입니다. 1. torch.unsqueeze(x, dim=0)x = torch.tensor([1, 2, 3])# 0번째 축에 차원 추가x_unsqueezed = torch.unsqueeze(x, dim=0)print(x.shape) # torch.Size([3])print(x_unsqueezed.shape) # torch.Size([1, 3]) 2.. 2025. 4. 29.
[PyTorch] cat() vs stack() 딥러닝 실습을 하다 보면 데이터를 합치는 작업이 꼭 필요합니다.PyTorch에서는 주로 torch.cat()과 torch.stack() 두 가지 함수를 사용하는데, 저도 매번 헷갈려서 이번에 한번 쭉 정리해보려 합니다.torch.cat() "이미 있는 축(axis) 방향으로 나란히 연결한다." cat은 같은 차원끼리 이어붙이는 함수입니다. 차원 수는 변하지 않습니다. input들의 shape이 모든 차원에서 일치해야 하며, 붙이려는 차원만 다를 수 있습니다.1. torch.cat((a, b), dim=0)a = torch.tensor([[1, 2], [3, 4]]) # shape: (2, 2)b = torch.tensor([[5, 6], [7, 8]]) # shape: (2, 2)# dim=0 (.. 2025. 4. 29.
[TensorFlow] TensorFlow에서 Gradient Tape를 이용한 자동 미분 TensorFlow에는 자동 미분을 가능케 해주는 tf.GradientTape API가 있습니다.이번 포스팅에서는 TensorFlow의 Gradient Tape를 활용하여 자동 미분 계산을 수행해보고, 그 과정을 수식으로 하나씩 풀어서 살펴보겠습니다.Gradient Tape를 사용한 예제 코드# 가중치(W)와 편향(b)W = tf.Variable(tf.random.normal((3,2)), name ="wieghts")b = tf.Variable(tf.zeros(2, dtype=tf.float32), name = "biases")# 입력 데이터 (1x3)x = [[1., 2., 3.]]with tf.GradientTape() as tape: y = x @ W + b # 선형 회귀 연산 (y = .. 2025. 2. 6.
[TensorFlow] TensorFlow 기초 개념과 활용 TensorFlow는 Google이 개발한 오픈소스 머신러닝 라이브러리로, 딥러닝 모델을 효율적으로 구축하고 학습시키는 데 최적화되어 있습니다.본 포스팅에서는 TensorFlow의 핵심 개념과 함께 간단한 예제를 통해 기본적인 사용법을 알아보겠습니다.TensorFlow 시작하기 TensorFlow를 사용하기 위해 먼저 라이브러리를 설치하고 버전을 확인해 봅니다. import tensorflow as tfprint(tf.__version__) # 2.18.0 저는 2.18.0 버전을 사용하고 있습니다.텐서(Tensor)의 객체타입(Type) : string, float32, float16, int32, int8 등딥러닝의 경우 숫자의 경향만 표현하면 되기 때문에 계산량을 줄이고 빠르게 계산하기 위해 일반적.. 2025. 2. 6.