View
파이토치(PyTorch)는 주로 딥러닝(Deep Learning) 모델을 만들고 훈련하는 데 사용하는 프레임워크야.
네 연구(뉴로모픽, 메모리 소자)와도 관련이 있을 수 있어, 특히 머신러닝 기반 분석을 할 경우 도움이 될 거야.
✅ PyTorch 어디에 쓰는지 정리
1️⃣ 딥러닝(Deep Learning) 모델 구현
- 컴퓨터 비전 (CV, Computer Vision): 이미지 인식, 객체 탐지, 스타일 변환 등
- 자연어 처리 (NLP, Natural Language Processing): 챗봇, 번역, 감성 분석 등
- 시계열 분석(Time Series Analysis): 주가 예측, 센서 데이터 분석
- 강화학습(Reinforcement Learning): 자율주행, 게임 AI
2️⃣ 과학/공학 분야 연구
- 뉴로모픽 컴퓨팅(Neuromorphic Computing): 스파이킹 뉴런 네트워크(SNN) 모델링
- 소재 연구(Material Science): 머신러닝 기반 신소재 설계, 데이터 분석
- 바이오/의료 데이터 분석: 유전자 데이터 분석, 단백질 구조 예측
- 물리 시뮬레이션: 미분 방정식 기반 모델링
3️⃣ 머신러닝/AI 기반 자동화
- 추천 시스템 (Recommendation Systems)
- 자율주행 (Self-Driving Cars)
- AI 음악/그림 생성 (AI Art & Music)
✅ PyTorch 주요 특징
- Numpy처럼 동작하면서 GPU 연산이 가능함
- torch.Tensor를 사용하면 넘파이처럼 데이터를 다룰 수 있음
- cuda()를 붙이면 GPU에서 빠르게 연산 가능 (tensor.cuda())
- 동적 연산 그래프 (Dynamic Computation Graph)
- 딥러닝 모델을 실행하면서 연산 그래프를 동적으로 생성함
- 텐서플로우(TensorFlow)보다 디버깅과 수정이 쉬움
- 신경망 쉽게 구축 가능 (torch.nn)
- CNN, RNN, Transformer 같은 모델을 쉽게 정의할 수 있음
- 자동 미분 기능 (Autograd)
- requires_grad=True 설정하면 자동으로 미분 계산
- 역전파(Backpropagation) 자동 수행
- ONNX, TensorRT 변환 가능
- PyTorch 모델을 ONNX로 변환하면 TensorFlow에서도 사용 가능
✅ PyTorch 기본 코드 예제
import torch
# 텐서 생성 (넘파이처럼 사용 가능)
x = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
print(x)
# GPU 연산 (CUDA 사용 가능)
device = "cuda" if torch.cuda.is_available() else "cpu"
x = x.to(device)
print(x)
# 자동 미분 (Autograd)
x = torch.randn(3, requires_grad=True) # 미분 가능 텐서
y = x * 2
z = y.mean()
z.backward() # 역전파 실행
print(x.grad) # x에 대한 미분값 출력
✅ 기본적인 타입 변환
1️⃣ 숫자 ↔ 문자열
# 정수 → 문자열
num = 123
str_num = str(num) # "123"
# 문자열 → 정수
num2 = int("456") # 456
# 문자열 → 실수
float_num = float("3.14") # 3.14
2️⃣ 리스트 ↔ 튜플 ↔ 세트
# 리스트 → 튜플
lst = [1, 2, 3]
tpl = tuple(lst) # (1, 2, 3)
# 튜플 → 리스트
tpl2 = (4, 5, 6)
lst2 = list(tpl2) # [4, 5, 6]
# 리스트 → 세트 (중복 제거됨)
set1 = set([1, 2, 2, 3]) # {1, 2, 3}
# 세트 → 리스트
lst3 = list(set1) # [1, 2, 3]
3️⃣ 딕셔너리 변환
# 키, 값만 리스트로 변환
dic = {'a': 1, 'b': 2, 'c': 3}
keys = list(dic.keys()) # ['a', 'b', 'c']
values = list(dic.values()) # [1, 2, 3]
items = list(dic.items()) # [('a', 1), ('b', 2), ('c', 3)]
4️⃣ Numpy ↔ PyTorch 변환
🔹 Numpy → PyTorch Tensor
import numpy as np
import torch
arr = np.array([1, 2, 3])
tensor = torch.tensor(arr) # Numpy 배열 → PyTorch 텐서
🔹 PyTorch Tensor → Numpy
arr2 = tensor.numpy() # PyTorch 텐서 → Numpy 배열
5️⃣ JSON ↔ Python 딕셔너리 변환
import json
# Python 딕셔너리 → JSON 문자열
data = {"name": "Alice", "age": 25}
json_str = json.dumps(data) # '{"name": "Alice", "age": 25}'
# JSON 문자열 → Python 딕셔너리
data2 = json.loads(json_str) # {'name': 'Alice', 'age': 25}
6️⃣ Pandas 변환
🔹 DataFrame ↔ 리스트/딕셔너리
import pandas as pd
# 리스트 → DataFrame
data = [[1, 'Alice'], [2, 'Bob']]
df = pd.DataFrame(data, columns=['ID', 'Name'])
# DataFrame → 리스트
list_data = df.values.tolist() # [[1, 'Alice'], [2, 'Bob']]
# DataFrame → 딕셔너리
dict_data = df.to_dict() # {'ID': {0: 1, 1: 2}, 'Name': {0: 'Alice', 1: 'Bob'}}
'TIL' 카테고리의 다른 글
내일배움캠프 본캠프 49일차 (0) | 2025.02.07 |
---|---|
내일배움캠프 본캠프 48일차 (0) | 2025.02.06 |
내일배움캠프 본캠프 46일차 (0) | 2025.02.04 |
내일배움캠프 9주차 WIL (0) | 2025.01.31 |
내일배움캠프 본캠프 45일차 - 설날 끝 (0) | 2025.01.31 |
reply