본문 바로가기

전체 글

(43)
[Paper Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (1) StyleGAN ( A Style-Based Generator Architecture for Generative Adversarial Networks ), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문입니다. ProGAN 혹은 PGGAN으로 불리는 논문의 저자들이 progressive growing의 아이디어와 함께 style transfer의 architecture로부터 영감을 받아 혁신적인 generator를 고안해냈습니다. 최근에 언급되는 stylegan은 대부분 stylegan2를 의미하고 활용되지만 전체적인 연구의 흐름을 따라가기 위해서 읽어보기를 추천하고 이에 앞서 AdaIN의 개념을 간단히 알고 ProGAN을 읽어봤다면 좋을 것 같습니다. 본..
[ 2022 상반기 회고 ] 보호되어 있는 글입니다.
Python - configparser & argparser 안녕하세요 이번에는 실제 파이썬 프로그램을 실행할 때 많이 마주치게 될 configparser와 argparser에 대해서 알아보도록 하겠습니다. 그럼 시작하겠습니다. :) 개발을 하다보면 타인의 좋은 프로그램 혹은 코드를 가져다 사용하는 경우가 많다. 그런데, 해당 프로그램 혹은 코드를 그대로 가져다쓰는 것이 아니라 수정해서 사용하고 싶다면 어떻게 해야할까? 이 방법으로는 크게 두가지가 있는데 그 중 하나가 파일에 설정을 저장해두고 사용하는 configparser고, 다른 하나는 실행시점에 터미널 창에서 인자를 통해 설정을 조정해줄 수 있는 argparser다. Configparser 프로그램 개발자들은 프로그램의 설정들을 config 파일에 저장해두고, 이러한 설정 config 파일을 읽어다가 사용함..
Python - JSON & Pickle 이번에는 간단히 JSON이 뭔지에 대한 overview를 살펴보면서, 파이썬에서 어떻게 json파일을 읽고 쓸 수 있는지 정도를 간단히 다루고 Pickle에 대해서도 동일하게 다뤄보겠습니다. 그리고 마지막으로 이 두개를 비교하면서 마치도록 하겠습니다. 그럼 시작하겠습니다 :) JSON 데이터를 저장하거나, 전송할 때 많이 사용되는 경량의 데이터 교환형식이다. 정확한 의미는 javascript에서 객체를 만들 때 사용하는 표현식이다. 이러한 JSON 표현식은 사람과 기계 모두가 이해하기 쉬우며, 용량이 작기 때문에, 최근에는 JSON이 XML을 대체해서 데이터 전송등에 많이 사용한다. 즉, JSON은 데이터 포맷일 뿐, 어떠한 통신방법도 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현방법일 뿐이다. ..
Python - Exception Handling 안녕하세요! 프로그래밍을 하면서 많은 Error Message들을 마주치시게 될 텐데료. 이번에는 Exception을 어떻게 다루는지와 Exception에 대해서 알아보겠습니다. 그럼 시작하겠습니다! :) Error 우리가 마주치는 Error Message들은 크게 2가지로 분류할 수 있다. 바로 Syntax Error(구문상의 오류)와 Exception이다. 전자는 문법상의 문제를 해결하는 것으로 에러메세지에서 잘못된 부분을 ^를 통해 잘 짚어주기에 비교적 해결하기 쉽다. 후자의 경우 코드가 문법상 문제가 없더라도 실행시 발생하는 오류들을 이야기하며, 이런 Exception이라고 해서 무조건 프로그램에 치명적이지는 않다. 지금부터는 Exception에 초점을 맞춰서 살펴보도록 하겠다. 이러한 Excep..
Python - File Handling & With Statement 안녕하세요 이번에는 파이썬에서 파일을 어떻게 다루는지에 대해서 알아보려고 합니다. 그럼 시작하겠습니다 :) File 우선 File에 대해 기본적으로 이야기해보면 위키피디아에서는 File을 컴퓨터에서 정보를 저장하는 논리적 단위라고 정의하고 있다. 개인적으로 다른 언어들에 비해서 파이썬에서 File Handling하는 것이 특히 쉽고 짧다고 생각한다. 이러한 파일은 text file과 binary file로 나뉜다. Text File은 character들의 연속으로 저장된 파일로 user가 이해할 수 있는 형태의 파일이라고 보면 될 것 같다. 우리가 작성하는 파이썬 소스코드 파일같은 .py의 확장자를 가진 파일 또한 text file일 것이다. Binary File은 0 or 1의 데이터의 연속으로 저장된..
Python - Module & Project 안녕하세요 이번에는 본격적으로 파이썬 프로그램을 작성하기 위한 Module의 개념에 대해서 알아보도록 하겠습니다. 그럼 시작하겠습니다 :) Module 먼저 Module 모듈의 개념은 단순히 소프트웨어에서만 사용되는 개념이 아니다. 간단히 아래와 같은 예시를 생각해보자. 우리는 어떤 커다란 자동차를 만들어야한다. 이 자동차의 어떤 부품은 A라는 기능을 어떤 부품은 B라는 기능을 해야한다. 이 자동차를 만들기 위해서 우리는 이러한 기능단위의 부품들로 나누어서 구성을 한다. 이러한 과정을 모듈화라고 한다. 즉, 소프트웨어를 모듈화한다는 것은 소프트웨어를 기능단위로 코드를 분리하고 추상화해서 재사용가능한 모듈이라는 단위들로 만드는 것이다. 결국 커다란 프로그램을 작은 조각들인 (기능단위) 모듈들로 나누고, 이..
Python OOP - Part2 앞선 내용에 이어 이번에는 OOP의 4원칙과 함께 OOP에 대해서 더 알아보도록 하겠습니다. 다만, 추상화의 경우 앞선 Part 1에서 이미 설명했으니 이번에는 나머지 3개( 상속, 다형성, 캡슐화 ) 에 대해서만 알아보도록 하겠습니다! 시작하겠습니다 :) 상속( Inheritance ) 우선 상속이란, 클래스간의 계층관계를 형성하는 것으로, 상속해주는 대상인 부모 클래스가 상속받는 대상인 자식 클래스에 상속을 해줄 때 모든 메소드와 속성을 그대로 상속, 전달 해주는 것이다. 그렇다면 이러한 상속을 하는 이유는 뭘까? 당연히 다양한 이유가 있겠지만, 대표적인 이유로는 부모 클래스의 속성과 메소드를 그대로 유지하고 싶거나 대부분 유지하면서 일부를 변경하고 싶기 때문이다. 즉, 상속을 통해 반복은 엄청나게 ..