-
밑바닥부터 시작하는 딥러닝3 (1) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:23
🎯 목표
딥러닝 프레임워크의 이해
- 미분을 계산하기 위한 도구
- 프로그래밍 언어의 일종
DeZero의 기반을 마련 : 미분을 자동으로 구하는 구조 만들어줌
- 딥러닝 프레임워크는 미분을 계산하기 위한 도구
- Variable, Function 이라는 두 클래스로 미분 자동 계산 기반 완성
1 단계 상자로서의 변수
- 딥러닝 프레임워크는 미분을 계산하기 위한 도구
- Variable, Function 이라는 두 클래스로 미분 자동 계산 기반 완성
1.1 변수란?
변수는 DeZero에서 가장 중요한 개념
"하나의 값을 저장할 수 있는 저장공간"
1.2 Variable 클래스 구현
Class Variable: def __init__(self, data): self.data = data
- __init__: 초기화 함수
- 간단한 코드지만 Variable 클래스를 상자(변수)로 사용할 수 있다 ⇒ 실제 데이터가 Variable의 data에 보관되기 때문
import numpy as np data = np.array(1.0) x = Variable(data) print(x.data) # 1.0 x.data = np.array(2.0) print(x.data) # x.data 의 형태로 쓰면 새로운 데이터가 댕비됨
- x : Variable의 instance (x는 데이터 자체가 아니라 데이터를 담은 상자)
- 실제 데이터는 x 안에 담겨있음
- 머신러닝 시스템은 기본 데이터 구조로 '다차원 배열' 사용
- 'DeZero' 의 Variable 클래스는 numpy의 다차원 배열만 취급
'현재 Variable 클래스는 단 3줄이지만 이것을 기점으로 DeZero를 현대적인 프레임워크로 만들것임!'
🔥 다차원 배열? ⇒ 숫자 등의 원소가 일정하게 모여 있는 데이터 구조 ⇒ 다차원 배열을 tensor라고도 함
import numpy as np x = np.array(1) x.ndim # ndim : 'number of dimensions'의 약자, 다차원 배열의 '차원 수' x = np.array([[1,2,3],[4,5,6]])
⛔ '벡터를 다룰 때는 차원이라는 말에 주의 해야함'
ex) np.array([1,2,3])은 벡터인데, 세 개의 요소가 일렬로 늘어서 있기 때문에 '3차원 벡터'라고도 함 ⇒ 이때 '벡터의 차원'은 벡터의 원소 수 '3차원 배열'이라고 할때의 '배열의 차원'은 (원소가 아닌) 축이 3개라는 의미
- ndarray 인스턴스를 사용하면 스칼라, 벡터, 행렬, 심지어 더 높은 차원의 텐서를 만들 수 있습니다
'Deep learning study > 밑바닥 부터 시작하는 딥러닝3' 카테고리의 다른 글
밑바닥부터 시작하는 딥러닝3 (5) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (4) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (3) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (2) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (0) (0) 2022.09.03