본문 바로가기

잡다한 코딩 노하우/Python7

클래스와 상속 클래스 클래스는 간단하다. 현실에 있는 사물을 추상화를 통해 프로그래밍한 것이다. 즉 현실에 사람이 있다면 사람의 전체적인 특징을 변수, 함수로 만들어 함께 넣어놓은 것이다. 클래스끼리는 상속도 가능해서 상속받은 클래스의 변수와 함수를 그대로 가져다 쓸 수 있다. 이렇게 클래스화 시키면 프로그램을 계층적으로 구성을 가능하게 한다. 또한 불필요한 소스코드 작성을 줄일 수 있다는 장점을 가지고 있다. 클래스에서 변수는 멤버, 함수는 그대로 함수 또는 메서드라고 불른다. # class 선언 class Human : # 클래스의 생성자. 클래스라면 누구나 가지고 있는 생성자 # 생성자는 함수형태로 이름이 __init__으로 약속되어 있다. # 또한 클래스 내부의 함수들은 매개변수로 self를 무조건 넣는다. d.. 2021. 12. 17.
python에서 *과 **의 의미 def function(*args): 로 함수의 파라미터 안에 *이 들어간 것을 가끔 볼 수 있다. 이것은 매개변수가 몇 개 들어올지 모를 때 쓰인다. 보통 def function(a):를 하면 매개변수로는 변수 a하나만 들어간다. 그러나 들어오는 매개변수가 하나가 아니고 가변적으로 변할 때 *을 쓰는 것이다. def function(*args): print(args) function('asdf') function('asdf',123,'asdfdfdsf') # 결과 #('asdf',) #('asdf', 123, 'asdfdfdsf') 이렇게 매개변수가 하나가 아니라 여러개가 들어갈 때 쓰인다. def function(**kwargs): 그럼 또 **은 뭐냐? 이것도 앞의 *과 같은 기능에 추가로 딕셔너리.. 2021. 11. 3.
함수 정의 in python 함수 정의할 때, def func(x : int, y: float=1.0) -> int: ~~~~ return ~~ 여기서 x 인자 이후 콜론(:) 은 인자의 형식을 할당해준다. 지금은 x를 int형 인자만 받아온다는 뜻. y 는 float형인데 기본값(=)으로 1.0이 설정된다. 마지막으로 ->는 return값이 int형 변수란 뜻이다. 2021. 10. 26.
colab에 CUDA OpenCV 설치하기 from google.colab import drive drive.mount('/content/gdrive') !git clone https://github.com/opencv/opencv.git !git clone https://github.com/opencv/opencv_contrib.git !mkdir /content/build %cd /content/build !cmake -DOPENCV_EXTRA_MODULES_PATH=/content/opencv_contrib/modules \ -DBUILD_SHARED_LIBS=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_EXAMPLES=OFF \ -DWITH_OPENEXR=OFF \ -DWITH_.. 2021. 8. 24.
colab에서 스크립트 sh파일 실행시키기 AI를 하다보면 git에 있는 bat파일이나 sh파일 실행시켜야 할 순간이 온다.(케글도 뭐 비슷함... 데이터셋을 그렇게 묶어놓더라구..) openpose git 안에 getModels.sh파일이 있음. 까먹지 않기 위해 적어놓는다. !chmod +x getModels.sh %%sh /content/gdrive/MyDrive/OpenPose/openpose/models/getModels.sh #sh 파일에 대한 권한추가가 필요한 상황으로, 이러한 오류 발생 시에는 !chmod +x 명령어를 실행해 주면 해결된다. !chmod +x file_name # !chmod +x getModels.sh 이 코드를 적어놓으면 된다! 2021. 8. 24.
마지막 데이터 짤짤이 컷하는 방법 in python vaild dataset 배치로 만든 마지막 텐서 크기가 갯수가 모자라서 8개로 설정된거라 vaild dataset 만드실때 파라미터로 drop_last = True 추가해주시면 됩니다. 즉 데이터가 16개씩 들어가는데, 마지막에 16개가 들어가야하나 8개만 들어가서 생기는 오류. val_dataloader = torch.utils.data.DataLoader(val_dataset, batch_size=16, shuffle=True, num_workers=2) 여기에 drop_last = True 를 인자로 넣어보자. 2021. 8. 21.
colab 멈추지 않게 하기 colab으로 모델을 공부하다 보면 모델의 학습에 많은 시간이 소요되는 것을 느낄 수 있다. 그러는 와중에 모델을 학습시키고 딴짓을 하고 있으면 어느새 코랩은 멈춰있다.ㅜㅜ 이떄 필요한게 이 코드 인데, ctrl+shift+i를 눌러 console window에 밑의 코드를 넣어주고 enter을 눌러주면 멈추지 않는다! 계속 클릭하게 해주는 약간 매크로같은 코드지만 우리한텐 매우 유용하다 function ClickConnect(){ console.log("Working"); document.querySelector("colab-toolbar-button#connect").click() } setInterval(ClickConnect,60000) 2021. 8. 14.