Python(212)
-
Python) pipreqs - 특정 폴더안에 있는 파이썬 패키지를 requirements.txt 만들어주는 패키지
유용하니까 사용하자. 몇 번 사용하였을 때 여러 장점이 있지만, pipereqs를 설치했지만 이 설치한 항목에 대해서는 requirements.txt 에 보이지가 않는다. 설치 pip install pipreqs 실행 경로를 설정하면 특정 경로에 패키지가 설치가 된다. 여기서는 예를 들어 /home/project/location/requirements.txt 로 있을 것이다. pipreqs /home/project/location 이거 말고 poetry도 있는 것 같기는 한데, 그것은 파이썬 버전까지 해서 관리할 수 있는 것 같은데 절차가 좀 있어서 간단하게 할 때는 이게 좋아보인다. 옵션 해보다보면, 리눅스에서는 잘 되는데, 윈도우에 잘 안되는 경우가 있다. 내가 겪은 문제는 인코딩이 문제였고, 다음과..
2021.10.13 -
선형 Kalman Filtering 알아보기
목차 Why Kalman filters? 자율 주행 자동차를 만들고 환경에서 그 위치를 파악하려고 한다고 상상해 보면, 자동차의 센서는 자동차, 보행자, 자전거 이용자를 감지할 수 있습니다. 이러한 물체의 위치를 알면 차량이 판단을 내리고 충돌을 방지하는 데 도움이 됩니다. 그러나 자동차는 물체의 위치를 아는 것 외에도 미래의 위치를 예측해야 사전에 무엇을 할지 계획할 수 있습니다. 예를 들어, 도로를 향해 달리는 어린이를 감지하는 경우 어린이가 멈추지 않을 것으로 예상해야 합니다. Kalman Filter는 시스템 상태의 추적 및 추정을 지원하는 데 사용되므로 이 문제를 해결하는 데 도움이 될 수 있습니다. 자동차에는 물체의 위치를 결정하는 센서와 물체의 미래 위치를 예측하는 모델이 있습..
2021.10.08 -
진행중) Reverb: a framework for experience replay 알아보기
경험(experience)의 활용은 강화 학습(RL)에서 중요한 역할을 한다. 이 데이터를 가장 잘 사용하는 방법은 이 필드의 핵심 문제 중 하나입니다. RL 에이전트가 최근 몇 년 동안 발전하면서 더 크고 복잡한 문제(Atari, Go, StarCraft, Dota)를 처리함에 따라 생성된 데이터의 크기와 복잡성이 모두 증가했습니다. 이러한 복잡성에 대처하기 위해 많은 RL 시스템은 학습 문제를 경험 생산자(행위자)와 경험 소비자(학습자)라는 두 개의 뚜렷한 부분으로 분할하여 이러한 서로 다른 부분을 병렬로 실행할 수 있도록 한다. 데이터 스토리지 시스템은 종종 이 두 구성 요소 사이의 교차점에 있습니다. 데이터를 효율적으로 저장하고 전송하는 방법에 대한 문제 자체가 어려운 엔지니어링 문제입니다. 딥마..
2021.10.07 -
tqdm, clear_output 같이 사용하는 방법
주피터에서 학습을 시키다 보면, 그림도 띄우고 싶고, tqdm으로 진행과정도 같이 보고 싶을 때가 있다. 하지만 이 2개를 동시에 하기 위해서는 일단 그림을 매번 쓰고 지우는 코드가 필요한데, 바로 clear_output이라는 코드이다. from IPython.display import clear_output plt.plot(np.arange(0,10)) plt.show() clear_output(wait=True) 위와 같이 작성을 하게 되면, 그림을 그리고 지우는 코드가 된다. 하지만 이걸 tqdm과 같이 하게 되면 tqdm bar도 지워지는 현상이 있다. 그래서 찾아보니 아래 링크와 같이 하면 된다는 것을 알았다. 이것을 하나의 주피터 셀안에 넣으면 그림도 그리면서 tqdm이 진행된다. import..
2021.10.05 -
python pkgs) pathlib 알아보기
목차 Working Directory Get a path to the current Python file curr_file = pathlib.Path(__file__) print(curr_file) Get a path to the current working directory cwd = pathlib.Path.cwd() print(cwd) Get a first parent folder path parent folder 찾기 one_above = pathlib.Path.cwd().parent print(one_above) Get an Nth parent folder path N번째 상위 폴더를 찾는 방법 mul_above = pathlib.Path.cwd().parent.parent.parent mul_a..
2021.09.22 -
NoSuchDisplayException: Cannot connect to "None" 해결하기
/opt/conda/lib/python3.8/site-packages/pyglet/canvas/xlib.py in __init__(self, name, x_screen) 121 self._display = xlib.XOpenDisplay(name) 122 if not self._display: --> 123 raise NoSuchDisplayException('Cannot connect to "%s"' % name) 124 125 screen_count = xlib.XScreenCount(self._display) NoSuchDisplayException: Cannot connect to "None" sudo apt install xvfb sudo apt install ffmpeg pip3 install..
2021.09.08 -
python) pip freeze에서 패키지 버전을 안보여주는 경우
기존에 패키지 requirements를 만들 때 다음과 같이 만드는 것을 다들 알고있을 것이다. pip freeze > ./requirments.txt 필자도 보통 위와 같이 만드는데, 만들고 나면 꼭 이상한 목록들이 몇개 생긴다. pkg @asdasdasdasd 이런식으로 패키지명하고 뒤에 @를 하고 적혀있는 것이 있다. 그래서 저러다보니 나중에 install을 할 경우 중간에 멈추는 경우가 발생한다. pip install -r ./requirements.txt # 에러 발생! 그래서 패키지 버전이 다 잘나오게 하는 것을 찾다보니, 아래와 같은 코드가 있어서 공유한다. pip list --format=freeze > ./requirements.txt 사실 아직 설치 테스트는 안한 상태라서 잘 될지는 모..
2021.09.06 -
vscode) line length 늘리기
파이썬에서 black으로 포맷팅할 때 line length 설정 방법 공유 F1 -> Preference : Open User Settings -> 검색 : python formatting black args ADD item -> --line-length -> ADD item -> 119 이렇게 하면 됨! 아니면 다른 방식 -> setting.json "python.formatting.blackArgs": [ "--line-length", "119" ] 이것을 추가해도 됨! https://dev.to/adamlombard/vscode-setting-line-lengths-in-the-black-python-code-formatter-1g62
2021.09.05 -
Python) Database 관련 자료
아래 링크에 들어가면 Database에 대한 설명과 장단점이 적혀있습니다. 이런쪽에 아직은 약해서 조사하는 것도 어려웠는데, 잘 정리되어 있는 것 같아 공유합니다. 더 많은 라이브러리를 알고 있다면 댓글에 적어주세요! 개인적으로 찾고 있는 것은 numpy를 저장할 수 있으면서 조회할 수 있으면서, 빠르게 INSERT 할 수 있는 DataBase인데, 어떤것이 좋을지 좀 더 알아보고 하나 정해서 테스트해봐야겠다 https://towardsdatascience.com/databases-101-how-to-choose-a-python-database-library-cf19d1157d45 Databases 101: How to Choose a Python Database Library SQL, NoSQL, al..
2021.09.04 -
Python) Numba 예제 (TODO)
목차 예전 Numba 관련 글 https://data-newbie.tistory.com/390 EX) Montecarlo Method import random from numba import jit @jit(nopython=True) def monte_carlo_pi(nsamples): acc = 0 for i in range(nsamples): x = random.random() y = random.random() if (x ** 2 + y ** 2) < 1.0: acc += 1 return 4.0 * acc / nsamples def monte_carlo_pi_no_numba(nsamples): acc = 0 for i in range(nsamples): x = random.random() y = r..
2021.08.13 -
Python) 회귀 분석 기본 사용법 정리(scikit-learn, statsmodels)
파이썬에서 Linear Regression 하는 것에서 기본적인 것이 Scikit-Learn이 있는데, 통계분석을 같이 하고 싶다면 statsmodels 을 쓰는 것이 더 좋다. 그래서 오랜만에 쓸 기회가 있어서 사용하다가 정리를 해봤다. 목차 Library import statsmodels.api as sm import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression 연속형 변수 data spector_data = sm.datasets.spector.load(as_pandas=True) df = spector_data.raw_data y_col = ["GRADE"] x_cols = ["GPA","TUCE"..
2021.08.11 -
Python) Yield 에 대해서 알아보기
yield에 대해서 생각보다 많이 쓰는 것 같은데, 너무 모르는 것 같아서 정리해보고자 합니다. yield는 주로 Generator에서 쓰이게 되며, Python Generator를 정의하는 핵심은 "yield" 키워드를 사용하는 것이라고 합니다. Python Generator는 대규모 collection이 필요한 시나리오 및 멀티 스레딩과 같은 기타 특정 시나리오 및 코드의 가독성을 향상하는 시나리오에서 널리 사용됩니다. 이 글에서 모든 것을 다룰 수는 없겠지만 기본적인 개념이나 고급 사용 방법에 대해서 적어보고자 합니다. 일단 generator를 알아보고자 합니다. 목차 Iterator란? 그 전에 알아야 하는 것은 Iterator입니다. Iterator란 반복 가능한 객체, 즉 반복문을 이용해서 데..
2021.08.07