분류 전체보기128 GC(Garbage Collection) 1. GC(Garbage Collection) 파이썬에선 기본적으로 garbage collection(가비지 컬렉션)과 reference counting(레퍼런스 카운팅)을 통해 할당 된 메모리를 관리한다. 기본적으로 참조 횟수가 0 이된 객체를 메모리에서 해제하는 레퍼런스 카운팅 방식을 사용하지만, 참조 횟수가 0 은 아니지만 도달할 수 없는 상태인 reference cycles(순환 참조)가 발생했을 때는 가비지 컬렉션으로 그 상황을 해결한다. 엄밀히 말하면 레퍼런스 카운팅 방식을 통해 객체를 메모리에서 해제하는 행위가 가비지 컬렉션의 한 형태지만 여기서는 순환 참조가 발생했을 때 cyclic garbage collector 를 통한 가비지 컬렉션과 레퍼런스 카운팅을 통한 가비지 컬렉션을 구분했다. .. 2022. 2. 16. GIL(Global Interpreter Lock) 1. GIL 과 그로인한 성능 문제 GIL 때문에 성능 문제가 대두되는 경우는 압축, 정렬, 인코딩 등 수행시간에 CPU 의 영향이 큰 작업(CPU bound)을 멀티 스레드로 수행하도록 한 경우다. 이 땐 GIL 때문에 멀티 스레드로 작업을 수행해도 싱글 스레드일 때와 별반 차이가 나지 않는다. 이를 해결하기 위해선 멀티 스레드는 파일, 네트워크 IO 같은 IO bound 프로그램에 사용하고 멀티 프로세스를 활용해야한다. 2. GIL(Global Interpreter Lock) GIL 은 스레드에서 사용되는 Lock 을 인터프리터 레벨로 확장한 개념인데 여러 스레드가 동시에 실행되는걸 방지한다. 더 정확히 말하자면 어느 시점이든 하나의 Bytecode 만이 실행되도록 강제한다. 각 스레드는 다른 스레드.. 2022. 2. 16. [DL] Cost Function -목차- 1. Cost Function 1.1 오차 최소화 관점 1.2 최대우도추정 관점 2. Cost Function의 종류 2.1 MSE(Mean Squared Error) 2.2 RMSE(Mean Squared Error) 2.3 Binary Crossentropy Loss 2.3.1 정보량(Information) 2.3.2 엔트로피(Entropy) 2.3.3 크로스 엔트로피(Cross Entropy) 2.3.4 손실 함수로서 이진 크로스 엔트로피의 동작 2.4 Categorical Crossentropy Loss 1. Cost Function Cost Function이란 데이터 셋과 어떤 가설 함수와의 오차를 계산하는 함수이다. Cost Function의 결과가 작을수록 데이터셋에 더 적합한 Hy.. 2022. 2. 15. Generator[파이썬/Python] 1. Generator란? Generator(제너레이터)는 제네레이터 함수가 호출될 때 반환되는 iterator(이터레이터)의 일종이다. 제너레이터 함수는 일반적인 함수와 비슷하게 생겼지만 yield 구문을 사용해 데이터를 원하는 시점에 반환하고 처리를 다시 시작할 수 있다. 일반적인 함수는 진입점이 하나라면 제너레이터는 진입점이 여러개라고 생각할 수 있다. 이러한 특성때문에 제너레이터를 사용하면 원하는 시점에 원하는 데이터를 받을 수 있게된다. 구현 코드 : generator >>> def test_generator(): ... yield 1 ... yield 2 ... yield 3 ... >>> gen = test_generator() >>> type(gen) >>> next(gen) 1 >>> n.. 2022. 2. 15. 이전 1 ··· 14 15 16 17 18 19 20 ··· 32 다음