[Coursera/IBM course #4] Tensors

2025. 6. 7. 16:44·🥇 certification logbook
목차
  1. Overview of Tensors
  2. Tensors 1D
  3. Two-Dimensional Tensors
  4. Differentiation in PyTorch
728x90
반응형

[IBM course #4] Introduction to Neural Networks and PyTorch

 

Overview of Tensors

신경망은 수학적 함수이며, 입력 → 처리 → 출력 구조로 구성.

PyTorch의 모든 구성 요소는 텐서로 표현된다.

즉,

입력 x → 텐서

출력 y → 텐서

신경망의 가중치 (파라미터) → 텐서

 

PyTorch 텐서는 쉽게 NumPy 배열로 변환 가능

PyTorch는 GPU 연산을 손쉽게 지원

 

파라미터에 대해 requires_grad=True로 설정 시, 자동 미분이 가능

→ 이를 통해 모델 학습이 가능해짐

 

Tensors 1D

0차원 텐서 → 숫자

1차원 텐서 → 숫자의 배열 (DB의 row, vector, time series)

 

tensor types

실수 → float tensor / double tensor

정수 → int tensor / byte tensor

 

tensor 생성 방법

torch.tensor([7,4,3]) 형태로 생성 가능

 

tensor attributes

속성 / 메서드 설명 예시
dtype 텐서 내부 데이터의 타입 확인 tensor.dtype → torch.float32, torch.int32, torch.uint8 등
type() 텐서의 타입 문자열 반환 tensor.type() → 'torch.FloatTensor' 등
ndimension() 텐서의 차원 수 반환 (Rank) tensor.ndimension() → 1 (1D 텐서일 경우)
size() 텐서의 요소 개수 반환 tensor.size() → 5 (예: 5개의 값 포함)
item() 스칼라 값을 추출 (1-element 텐서에서) tensor[0].item() → 값 자체 (예: 3.0)

 

tensor type casting

방법 설명 예시
생성 시 dtype 지정 명시적으로 텐서 타입 지정 torch.tensor(data, dtype=torch.float32)
.type() 이용 기존 텐서를 다른 타입으로 변환 tensor.type(torch.FloatTensor)
.FloatTensor() 사용 특정 타입의 텐서 생성 torch.FloatTensor([1.0, 2.0])

 

tensor 차원 변환& reshape

메서드 설명 예시
view(rows, cols) 텐서의 shape 변환 tensor.view(5, 1)
view(-1, 1) 행 수 자동 추론 (총 요소 수 기준) tensor.view(-1, 1) → 요소 수에 따라 행 자동 계산됨
unsqueeze(dim) 차원 추가 tensor.unsqueeze(1)
squeeze() 크기 1인 차원 제거 tensor.squeeze()

 

NumPy/ Pandas 호환 관련

메서드 / 함수 설명
torch.from_numpy(numpy_array) numpy array → torch tensor
tensor.numpy() torch tensor → numpy array
tensor.tolist() torch tensor → Python list
pandas_series.values → torch.from_numpy() Pandas Series → Tensor

 

Indexing & Slicing

리스트처럼 [i:j]로 슬라이싱

인덱스로 특정 값 수정도 가능

 

연산 관련

연산 예시 설명
+, *, / tensor + scalar 브로드캐스팅 적용
torch.dot(u, v) 벡터 간 내적  
tensor.mean() 평균값 계산  
tensor.max() 최댓값 반환  
torch.sin(tensor) 사인 함수 적용 (원소별)  

 

참고

Hadamard Product : C=A⊙B. 위치별 곱셈. 벡터 또는 텐서가 결과로 나옴

Dot Product : u⋅v=∥u∥∥v∥cos(θ). 곱한 후 합. 스칼라(숫자 하나)가 결과로 나옴 → 두 벡터가 얼마나 유사한지 나타내는 숫자. dot product가 크다 → 각도가 작다 → 방향이 비슷하다 → 유사도가 높다

 

수학 함수 및 시각화

항목 설명 예시
torch.linspace(start, end, steps) 일정 간격의 텐서 생성 torch.linspace(0, 2*math.pi, 100)
torch.sin(tensor) 사인값 계산 y = torch.sin(x)
matplotlib.pyplot.plot(x.numpy(), y.numpy()) 텐서 → NumPy 변환 후 시각화  
matplotlib inline Jupyter에서 그래프 표시 설정  

 

Two-Dimensional Tensors

행렬 형태의 데이터, 이미지 데이터 표현

각 행은 샘플, 열은 특성

 

텐서 생성

중첩 리스트로 생성 가능

.ndimension(), .shape, .size(), .numel()로 정보 확인

 

Indexing & Slicing

tensor[i][j], tensor[i, j]로 값 접근

행/열 단위로 슬라이싱 가능

 

기본 연산

덧셈 : 동일한 위치 요소끼리 덧셈 (행렬 덧셈과 동일)

스칼라 곱 : 모든 요소에 곱 적용

Hadamard 곱 : 동일 위치 요소끼리 곱

행렬 곱 (Matrix Multiplication) : .mm() 사용 → 행렬 곱의 규칙 (A 열 = B 행) 만족해야 함

 

Differentiation in PyTorch

기본 미분 개념

y=x2⇒y′=dydx=2x⇒y′(2)=2×2=4

 

PyTorch에서의 미분

  1. x = torch.tensor(2.0, requires_grad=True)
  2. y = x ** 2
  3. y.backward()
  4. x.grad → 결과: 4

 

 

PyTorch 내부 작동 원리

PyTorch는 미분을 자동으로 계산하기 위해 backward graph (역전파 그래프)라는 걸 만듬. (텐서(Tensor)와 함수(Function)를 노드(Node)로 갖는 그래프)

속성 이름 설명
data 실제 값이 저장된 곳
grad 계산된 미분(기울기) 값이 저장되는 곳
grad_fn 이 텐서를 만든 연산(함수)을 가리키는 노드
requires_grad 이 텐서에 대해 미분을 계산할지 여부 (True면 계산함)
is_leaf 이 텐서가 그래프의 "입력값(시작점)"인지 여부 (직접 만든 텐서면 True)

 

편도함수(Partial Derivatives)

f(u,v)=uv+u2 일 때

u에 대한 편미분 ∂f∂u=v+2u

v에 대한 편미분 ∂f∂v=u

이를 pytorch에서는 아래와 같이 계산

import torch

u = torch.tensor(1.0, requires_grad=True)
v = torch.tensor(2.0, requires_grad=True)

f = u * v + u ** 2  # f = uv + u^2 → 값은 1×2 + 1^2 = 3
f.backward()

print(u.grad)  # df/du = v + 2u = 2 + 2×1 = 4
print(v.grad)  # df/dv = u = 1

728x90
반응형

'🥇 certification logbook' 카테고리의 다른 글

[Coursera/IBM course #5] Softmax  (0) 2025.07.13
[Coursera/IBM course #4] Linear Regression Prediction  (0) 2025.06.14
[Coursera/IBM course #4] Dataset  (0) 2025.06.07
[Coursera/IBM course #3] 강화학습(Reinforcement Learning)  (2) 2025.06.04
[Coursera/IBM course #3] Advanced Keras Techniques  (2) 2025.06.01
[Coursera/IBM course #3] Unsupervised Learning in Keras  (2) 2025.05.31
[Coursera/IBM course #3] Transformers in Keras  (2) 2025.05.28
[Coursera/IBM course #3] TensorFlow for Image Processing  (1) 2025.05.24
  1. Overview of Tensors
  2. Tensors 1D
  3. Two-Dimensional Tensors
  4. Differentiation in PyTorch
'🥇 certification logbook' 카테고리의 다른 글
  • [Coursera/IBM course #4] Linear Regression Prediction
  • [Coursera/IBM course #4] Dataset
  • [Coursera/IBM course #3] 강화학습(Reinforcement Learning)
  • [Coursera/IBM course #3] Advanced Keras Techniques
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (218) N
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (68) N
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    인공지능 입문
    certificate
    형법
    민법
    데이터사이언스 입문
    datascience
    법학과
    deeplearning
    방통대
    Python
    Coursera
    온라인 강의 추천
    머신러닝
    인공지능
    자격증
    기본권의기초이론
    근로기준법
    IBM
    데이터분석준전문가
    ADsP
  • hELLO· Designed By정상우.v4.10.3
이소야
[Coursera/IBM course #4] Tensors

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.