본문 바로가기

python4

Pypi 사용법 & 명령어 모음 & 폐쇄망 사용법 Pypi란? Pypi(Python Package Index)는 Python을 위한 오픈소스 패키지 저장소이다. Pypi는 오픈소스 패키지를 매우 쉽게 설치할 수 있게 하여, 지금의 Python의 인기를 만든 가장 큰 요인이다. Pypi 명령어 패키지 설치 기본적으로 패키지 설치는 pip install을 통해 가능하다. 특정 버전을 명시할 수 있지만, 버전을 명시하지 않으면, pip 버전 내 저장소 안에 있는 가장 최근 버전의 패키지를 설치한다. --upgrade를 붙여주면, pip 버전 내 저장소 안에 있는 가장 최근 버전의 패키지를 설치해 준다. 실제 코드에선 패키지가 매우 많고, 의존성이 복잡하기 때문에 별도의 파일로 관리하는데, (보통 requirements.txt) 이때, -r 옵션을 붙여주면, .. 2023. 8. 16.
JAX: Just Another XLA 설명 JAX 란? JAX란, 머신러닝의 연산을 가속화하기 위해, Google에서 발표한 컴파일러를 최적화하는 기술이다. JAX는 머신러닝에서 필수적인 Autograd와 XLA(integrated with Accelerated Linear Algebra, 가속 선형 대수) 컴파일러를 통해, 머신러닝의 연산을 빠르게 실행해 준다. JAX는 설치가 매우 쉽고, 기존 Python에서 구현된 Numpy를 쉽게 변환할 수 있어서, 많이 활용되고 있다. 다만 JAX는 구글의 공식 제품이 아닌, 연구 프로젝트 기 때문에, 아직은 이런저런 버그가 있을 수 있다고 한다. JAX 설치 방법 JAX는 우선 기본적으로 Linux나 Mac 운영 체제에서 동작한다. Window도 동작하기는 하지만, 실험버전으로 CPU를 활용한 jax만.. 2023. 8. 7.
Python 프로파일링을 위한 도구들 (Process, Memory, Execution Time) Introduction Python으로 짜인 Code를 서비스하다 보면, CPU 100%나 Memory Fault, 실행시간이 길어지는 등 다양한 문제를 만나게 된다. 자신이 개발한 코드에서는 직감적으로 어느 부분이 문제가 될지를 간파할 수 있지만, 다른 사람이 짠 코드에서 문제에 원인이 되는 부분을 찾아내기는 매우 어렵다. 일반적으로 가장 쉽게 떠올릴수 있는 방법은 실행시간은 time 모듈을 이용한 print 디버깅이나 unittest, CPU나 memory는 작업 관리자를 통해 확인하는 방법이다. 하지만, 이 방법들은 대략적인 정도만 알아낼 수 있고, 어느 부분이 문제가 있는지 진단하기 매우 어렵다. Python에서는 Profiling을 위한 다양한 도구들을 가지고 있어, code 분석이 매우 용이하.. 2023. 7. 6.
Python 속도 최적화 - NUMBA Introduction [문제] Python은 매우 간단하고, 응용 모듈이 많아서, 많이 선호되지만, 속도가 중요한 프로그램에서는 항상 문제가 된다.(Python 코드의 속도 튜닝의 끝은 다른 언어로 다시 개발하는 것이라고 할 만큼, Python은 느리다.) 하지만, Python에만 존재하는 응용 패키지들이 많아서, Python 언어를 유지하면서 속도 튜닝이 필요한 경우가 많다. Python이 느린 이유는 많지만, 아래의 이유가 치명적이다. 인터프리터 언어 : 코드를 한줄 씩 읽고, 해석하는 식으로 동작한다. 동적 타이핑 : Python은 형식을 지정해주지 않아, 코드 실행 중에 Type 지정이 필요하다. [Numba] Numba는 이러한 Python의 실행 속도를 개선하기 위한 대표적인 라이브러리로, .. 2023. 6. 8.