본문 바로가기
반응형

전체 글153

[python] 정적메서드 @classmethod @staticmethod method? Class 내에서 객체가 구현할 특정한 기능을 함수 형태로 정의하는 것을 method라고 받아들일 때, 해당 method가 절자지향적인 역학을 수행할 때 해당 역학을 이용하여 별도의 class instance 생성없이 메모리에 올라와있는 해당 method를 사용할 수 있을 때, 이를 staticmethod라고 한다. instance method와의 차이는 비교하고자 하는 method가 어떻게 메모리에 올라오는 지의 차이에 있다. instance method의 경우에는 class의 instance가 정의되면서 해당 instance를 컴파일하는 과정에서 memory의 static한 공간에 method의 주소가 호출되는 형태로 이해하면 좋을 것 같다. 반면에 staticmethod 경우는 별도 .. 2023. 7. 11.
[python] collections-namedtuple() (cf. tuple) namedtuple() collections.namedtuple()은 일반적인 tuple과 다음의 차이를 보인다. 아래에서 구현해놓은 차이를 비교해보고 어떤 차이가 있는지 이해해보자. # 일반적인 tuple() """ offset을 통해 데이터에 접근할 수 있다. """ fruit = tuple(170, 70) # namedtuple() """ keys같이 정의된 값을 통해 데이터에 접근할 수 있다. ㄴ 구분방법 1: '필드명 필드명' ㄴ 구분방법 2: '필드명, 필드명' ㄴ 구분방법 3: ['필드명', '필드명'] """ fruit = namedtuple('fruit', 'height, weight') sampleFruit = fruit(height=170, weight=70) 위 코드를 살펴보면, t.. 2023. 7. 10.
[pytorch] Template - setup_logging (json파일 Decoding 작업) [4편] Setup 이전 게시글에서도 이야기했지만 우리들은 logging에 대한 설정값을 json파일을 활용한 configuration으로 제작하였다. 이에 실제로 python editor 상에서 저장된 log data들을 불러와서 어떤 작업을 해주기 위해선 editor 상에서 해당 데이터들을 Setup해줘야한다. setup이란 어떠한 목적을 위해서 미리 준비하거나 설정하는 작업을 의미하는데, 여기서는 logging이 이뤄지기 위해서 미리 설정해주는 작업을 의미한다. 위 Template에서는 setup_logging을 통해서 다음을 구현해보고자 한다. Json 파일로 작성된 Configuration을 python 객체로 Decoding해주는 작업 + handler의 저장위치를 절대주소로 변경 코드 정리 앞서 정의.. 2023. 7. 10.
[pytorch] Template - logger 구현 [3편] Motivation 이전 게시글에서 json - 인코딩/ 디코딩과 관련한 함수를 정의하고 이해해보는 시간을 가졌다. 기본적으로 학습에 필요한 파라미터들을 configuration 파일을 만들어서 쉽게 수정할 때도 json을 사용할 수 있지만 위 Template에서는 log 데이터에 대한 form을 저장하고 적용하는 용도로 logging_config.json 파일을 제작하여 활용하고 있다. 따라서 이번 게시글에서는 logging_config 제작에 필요한 logging의 기본적인 개념과 실제로 구현하는 과정에 대해서 알아보고자 한다. logging 우리가 작성한 코드가 잘 작동하는 지 print(확인용 멘트)를 활용하여 체크하곤 한다. 하지만 실무에서는 이런 print보다 좀 더 체계적인 확인방법을 사용한.. 2023. 7. 10.
[pytorch] Template - json(read, write) 구현 [2편] [📚 Study/😺 Github] - [pytorch] Template 뜯어보기 - [시작] [pytorch] Template 뜯어보기 - [시작] Motivation ipython에서 제공하는 ipynb - notebook을 사용하여 작업을 할 때 많은 장점들이 있다. 바로바로 cell 단위로 결과를 확인해볼 수 있다는 점 그외 에도 user-friendly한 다양한 기능들이 존재한다. finns-know-how.tistory.com 이전 게시글에서 소개한 Template에서 configuration을 json으로 제작한다. 따라서 Template을 뜯어보기 이전에 json파일을 읽고 쓸 수 있는 기능을 정의해야한다. 기본적으로 해당 기능들은 utils라는 폴더에서 함수형태로 정의되어있다. 이전 게시글.. 2023. 7. 10.
[pytorch] Template - 패키지 버전관리 [1편] 이전글 [pytorch] Template 뜯어보기 - [시작] Motivation ipython에서 제공하는 ipynb - notebook을 사용하여 작업을 할 때 많은 장점들이 있다. 바로바로 cell 단위로 결과를 확인해볼 수 있다는 점 그외 에도 user-friendly한 다양한 기능들이 존재한다. finns-know-how.tistory.com 이전글에서 소개한 Template의 tree structure를 살펴보면 requirements.txt파일이 존재한다. 기본적으로 어떤 프로그래머가 작성한 코드를 구현하고자 할 때 패키지 버전 차이로 인해 이슈가 발생하여 프로그램이 정상적으로 동작하지 않을 수 있다. 해서 우리는 가상환경이라는 것을 만들어주고 해당 프로그래머가 사용했던 패키지들의 버전도 통.. 2023. 7. 9.
[pytorch] Template 뜯어보기 - [시작] Motivation ipython에서 제공하는 ipynb - notebook을 사용하여 작업을 할 때 많은 장점들이 있다. 바로바로 cell 단위로 결과를 확인해볼 수 있다는 점 그외 에도 user-friendly한 다양한 기능들이 존재한다. 하지만 notebook을 가지고 협업을 하기엔 한계가 있어서 조금 더 파일 관리에 용이한 template을 만들고 싶어졌다. 상기 이유로 pytorch Template으로 유명한 https://github.com/victoresque/pytorch-template 에서 제시하는 Template에서 코드를 하나하나 살펴보고 정리해보고자 한다. Basic Template pytorch(template) │ ├── train.py - 훈련목적 main script to .. 2023. 7. 9.
[계절] IDE 설치 시 참고할 점 ! 32bit vs 64 bit 운영체제가 하드웨어에게 한번에 보낼 수 있는 데이터의 크기를 결정하는 크기라고 한다. 따라서 컴퓨터에 좋은 하드웨어로 구성하는 것도 중요하지만, 더 좋은 성능을 내기 위해선 적합한 운영체제를 선택하는 것도 중요하다는 것을 알 수 있다. 설치파일을 자세히 살펴보자 이번 계절학기에서 사용하는 code:block은 ide를 설치할 때 ide와 sdk를 별개로 설치할 수 있다. apple silicon이 내장된 mac에서 , IDE만 설치하고자 한다면 setup 파일을 설치하면 된다. 반면 SDK도 같이 설치하고 싶다면 ming + setup 이 포함된 이름의 파일을 설치해야한다. 보드에 따라 SDK가 다를 수 있기에 각자 환경에 맞는 SDK를 다운받아야할 것이다. 인스타 주소 🎗 .. 2023. 7. 6.
[계절] software 개발에 필요한 게 뭘까? software 개발용 도구모음 우리가 뭔가를 만들 때 필요한 도구들을 한번에 묶어서 보관하거나 사용하곤 한다. software를 개발할 때도 개발에 필요한 도구들을 묶어놓은 개념이 있는데 이를 SDK라고 부른다. SDK는 Software Develop Kit이고 SDK에는 다음의 것들이 포함된다. 디버거 : break point로 코드 실행 과정 검토 컴파일러 : 실행파일 생성 ( Ex. C) 인터프리터 : 실행파일 생성 후 실행 (Ex. 파이썬) 라이브러리 : 사용할 언어로 작성된 도구모음 사용할 언어 : 사용할 프로그래밍 언어 이 외에도 필요에 의해 더 추가할 수 있다. 디버거와 컴파일러가 들어가있어 짐작할 수 있겠지만 SDK는 사용하는 CPU나 보드, 운영체제(시스템)에 의존하여 선택하게 된다. .. 2023. 7. 6.
반응형