반응형

컴퓨터/밑딥3 3

[밑바닥부터 시작하는 딥러닝3] 딥러닝 프레임워크의 동작 방식

딥러닝 프레임워크의 동작 방식 딥러닝 프레임워크는 동작 방식에 따라 '정적 계산 그래프' 혹은 '동적 계산 그래프' 방식으로 나뉜다. 정적 계산 그래프 방식 (Define-and-Run) 계산 그래프를 정의한 뒤 데이터를 흘려보낸다. 즉, 계산 그래프 정의는 사용자가 제공하고, 프레임워크는 주어진 그래프를 컴퓨터가 처리할 수 있는 형태로 변환하여 데이터를 흘려보낸다. # 계산 그래프 정의 a = Variable('a') b = Variable('b') c = a * b d = c + Constant(1) # 계산 그래프 컴파일 f = compile(d) # 데이터 흘려보내기 d = f(a=np.array(2), b=np.array(3)) 계산 그래..

컴퓨터/밑딥3 2020.12.18

[밑바닥부터 시작하는 딥러닝3] 연산자 오버로드

20. 연산자 오버로드 (1) 20.2 연산자 오버로드 곱셈/덧셈의 특수 메소드를 사용하여 연산자 오버로드를 했다. # Variable 간 *를 사용하면 1) __mul__ 메소드가 호출, 2) 그 안의 mul() 함수를 호출 def __mul__(self, other): # a * b 연산시 a는 self, b는 other에 대응 return mul(self, other) def __add__(self, other): return add(self, other) # 파이썬에서는 함수도 객체이므로 함수 자체를 할당하여 처리하면 다음과 같이 작성할 수 있다. Variable.__mul__ = mul Variable.__add__ = add 21. 연산자 오버로드 (2) 21.1 ndarray와 함께 사용하기..

컴퓨터/밑딥3 2020.12.14

[밑바닥부터 시작하는 딥러닝3] 메모리 관리

17. 메모리 관리와 순환 참조 17.1 메모리 관리 파이썬은 불필요한 객체를 인터프리터가 제거해준다. 코드를 제대로 작성하지 않은 경우 '메모리 누수'나 '메모리 부족'등의 문제가 발생할 수 있다. 파이썬은 두 가지 방식으로 메모리를 관리한다. 참조 카운트 방식의 메모리 관리 모든 객체는 참조 카운트가 0인 상태로 생성 다른 객체가 참조할 때마다 1씩 증가, 참조가 끊길 때마다 1만큼 감소, 0이 되면 파이썬 인터프리터가 회수 참조 카운트가 증가하는 경우 대입 연산자 사용할 때 함수의 인수로 전달할 때 컨테이너 타입 객체(리스트, 튜플, 클래스 등)에 추가할 때 참조 카운트 방식은 '순환 참조'를 해결할 수 없음 -> Garbage Collection으로 해결..

컴퓨터/밑딥3 2020.12.13
반응형