집 PC의 Anaconda 용량이 심상치 않아졌다. 뭔가 Cache가 쌓인건지... envs 용량 체크해도 저정도는 아니던데 내가 모르는 곳에 뭔가 많이 쌓였나보다. 어디에 뭐가 쌓여서 그런건지 탐색하기 귀찮아서 아예 제거하고 miniconda로 다시 설치했다. https://docs.conda.io/en/latest/miniconda.html Miniconda — conda documentation Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small num..
pre-commit 이란 commit 하기전 user가 정의한 특정한 작업들이 자동으로 실행되게 도와주는 툴로 생각하면된다. commit 하기전에 formatting 잘했는지 정도의 최소한의 검증 과정이 존재하는 것 만으로 프로젝트 관리에 아주 유용할 것이다. 위 같은 검증을 ci/cd 단계에서 특정 Server에서 해준다고하더라도, Local에서 검증 과정을 거치지 않고 push를 하게되면 ci/cd용 Server 에서 장고의 시간을 거친뒤에서야 문제를 찾을 수 있을거다. 그리고 그 문제가 formatting 같이 사소한거라면 상당히 열 받을지도 모른다. Local에서 한 번 검증을 해주고 push 하면 ci/cd용 Server에서 발생하는 ci/cd횟수와 ci/cd 통과 여부를 확인하는 동안의 대기 ..
https://github.com/psf/black GitHub - psf/black: The uncompromising Python code formatter The uncompromising Python code formatter. Contribute to psf/black development by creating an account on GitHub. github.com auto-formatter 로 black을 사용해보려한다. 찾아보니 autopep8 나 yapf 가 있는데, 우선은 star 수가 가장 많은 black을 사용해보려한다. 설치 pip install black 사용법 black *.py black path/ 테스트해볼 코드(1) a = 1+ 3 b = 2 +3 c = a+b def ..
va = 1 vb = 2 n = 3 import pdb pdb.set_trace() 위 코드를 실행고나서 중단점 걸린다음 va 입력하면 1이 출력될거고 vb 입력하면 2가 출력될거다. 그다음 n을 입력하면 사용자 입장에서는 n 이라는 변수값을 확인하고 싶은 의도로 입력했겠지만, pdb 는 n을 입력받으면 다음 라인으로 건너뛰게 된다. 단순히 n의 값을 출력해보는거라면 p n 이라고 입력하면 그 값을 확인할 수 있긴하다. 그런데 n의 값을 수정해주고 싶을때는 어떻게 해야할까? p 는 단순히 출력만을 위해 사용되는 pdb 전용 커맨드이다. n += 3을 해보면 역시나 다음 라인으로 넘어간다. 보다 범용적으로 pdb 디버깅 커맨드를 무시하면서 디버깅을 할 수 있는 방법은 맨 앞에 !를 붙이고 값을 확인하고 싶..
class Foo: def __init__(self): pass def getx(self): return self.x foo = Foo() foo.x = 1 print(foo.getx()) C++ 로 위와 같이 코드를 작성했으면 foo.x = 1 라인에서 아래와 같은 오류가 출력됐을것이다. error: ‘class Foo’ has no member named ‘x’ 근데 Python 에서는 에러가 안난다. 저렇게 하면 없던 멤버변수 x 가 생긴다. 실제 사용 예 YOLOv8 에서 nn.Sequential 클래스의 객체에 i, f, type 이라는 멤버변수를 위 방법을 이용해 정의한다. https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn..
python의 Built-in Functions 중 eval 이라는 함수가 있다. eval 은 문자열을 입력으로 받는다. eval 의 출력은 입력받은 문자열이 Python interpreter로 해독가능하다면 그 문자열을 "코드"로 보고 실행한다. 그렇지 않은 경우는 예외가 발생한다. eval('1+2') # 3 eval("'1'+'2'") # "12" 이런것도 가능하다. class Foo: def __init__(self, x): self.x = x pass foo = eval("Foo(x=5)") print(foo.x) # 5 too = eval("Foo")(15) print(too.x) # 15 활용 방법은 무궁무진하다. 실제 사용 예 YOLOv8 의 경우 모델 아키텍쳐가 컨피그 파일에 정의돼있다...
클래스의 함수 바깥에서 변수를 정의하면 이 변수는 static 멤버변수가 된다. 이 변수를 static 멤버변수로서 값을 수정하고 싶다면 클래스이름.변수 로 접근하여 수정해야한다. 그렇지않고 self.변수 나 객체.변수 이런식으로 값을 수정하게 되면 static의 특성을 잃고 멤버 변수로써 재정의가 된다. 아래의 예제코드에서 foo.x 가 static 멤버변수이다. class foo(object): x = 'original' def __init__(self): self.y = 'hi' def setx(self, x): foo.x = x c1 = foo() print(c1.x) # original print(c1.y) # hi c2 = foo() print(c2.x) # original print(c2.y..
conda update conda conda update anaconda https://docs.anaconda.com/anaconda/install/update-version/ Updating from older versions — Anaconda documentation Updating from older versions Follow the instructions below to update Anaconda to the latest version. Windows: Open Anaconda Prompt. macOS or Linux: Open a terminal window. To update to the latest version of Anaconda, enter these commands: #upda..
- Total
- Today
- Yesterday
- FairMOT
- 문제집
- C++ Deploy
- 위상 정렬 알고리즘
- 이분탐색
- MOT
- cosine
- 순열
- 가장 긴 증가하는 부분 수열
- 백준 11053
- 인공지능을 위한 선형대수
- 백트래킹
- LCA
- 백준 1766
- ㅂ
- Lowest Common Ancestor
- PyCharm
- 조합
- 파이참
- 단축키
- 백준 11437
- 자료구조
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |