
이번 게시물에서는 Catalog Design Pattern에 대하여 포스팅 해보려고 한다. 디자인 패턴하면 GoF 디자인 패턴이 가장 유명할텐데, Catalog 패턴은 GoF에도 들어가지 않고 검색해도 자료가 잘 나오지 않는다... Catalog 패턴은 사실 온갖 python design pattern을 구현해 놓은 github를 보다가, Code maintainability를 유지하면서 딥러닝 프로젝트에 적용해 볼 수 있을 것 같아서 catalog 패턴 주제를 잡게 되었다. Catalog 패턴은 생성자 파라미터에 의해 지정된 method가 호출되도록 하는 디자인 패턴이라고 정의할 수 있다. method A를 호출하던 모델을 method B를 호출하게 하기 위해서는 메인 모델 코드의 수정이 불가피하다. ..

딥러닝 프로젝트에서 메인이 되는 모델에 서브 모듈을 추가 혹은 변경할 때마다, 메인에는 서브 모듈 선언 등의 코드 수정이 불가피하다. 하지만 본 포스트에서 python decorator를 사용하여 메인 코드의 수정없이 모듈을 변경하는 방법을 게시한다. 지난 게시글에서 DenseLayer(fully connected layer)로 이루어진 MNIST 예제를 실행해 보았다. 그런데, 이 DenseLayer를 ConvolutionLayer로 변경하고 싶다고 가정해보자 일반적이라면, 메인 네트워크 모델의 코드를 바꾸어 주면 된다. 하지만 decorator를 사용한다면 코드 수정이 필요없어진다. 그냥 YAML파일만 바꾸어 주면 된다. 간단한 다이어그램으로 다음과 같이 나타낼 수 있다. 이제 실습 코드와 함께 더 ..

2022.04.19 - [Computer Science/Software Engineering] - #1 Code Maintainability for Deep Learning_YAML 사용하기 #1 Code Maintainability for Deep Learning_YAML 사용하기 개발자로 살아간다면 소프트웨어 품질이라는 말을 한 번 쯤은 들어봤을 것이다. 소프트웨어 품질을 결정하는 특징 중에는 Maintainability가 있다. 말 그대로 코드의 유지보수성이다. Code Maintainabilit tjd229.tistory.com 이전 게시물에서 YAML을 이용하여 딥러닝 프로젝트에서 어떻게 Code Maintainability를 유지할 수 있을지 예제를 소개해보았다. 본 게시물에는 YAML을 공부..

개발자로 살아간다면 소프트웨어 품질이라는 말을 한 번 쯤은 들어봤을 것이다. 소프트웨어 품질을 결정하는 특징 중에는 Maintainability가 있다. 말 그대로 코드의 유지보수성이다. Code Maintainability를 구글링 했을 때, 여러 업계 종사자들이 정의를 내리거나 설명하는 글들을 찾을 수 있었다. 이 중 나는 "code that is easy to modify or extend"라고 깔끔하게 정의한게 제일 공감되었다. 딥 러닝 프로젝트나 연구들 중에서 어떻게 하면 코드의 Maintainability를 유지하고, 코드의 품질을 높일 수 있을지 공부해보았던 것들을 정리해본다. 이 중 첫 번째는 YAML 사용하기다. YAML은 JSON과 같이 데이터 직렬화에 사용되는 포맷으로써, *.yaml..
- Total
- Today
- Yesterday
- Math
- two pointer
- Binary Search
- codejam
- Codeforces
- oj.uz
- 인터렉티브
- ICPC
- DeepLearning
- NERC
- ioi
- 함수컵
- 인터렉션
- boj
- Book
- line sweeping
- DataScience
- Divide and conquer
- TensorFlow
- 구간합
- Sqrt Decomposition
- Decorator
- LCA
- RMI
- greedy
- 함수 구현
- yaml
- graph
- pytorch
- Joi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |