오늘은 코랩을 통해서 Style Transfer model을 직접 구성해보고 실습해 보려한다! 다소 어렵고 딱딱한 내용들이 많이 있지만 가볍게 다가가보도록 하자!
완성시 나오는 예
모든 실습은 import로 부터!
주석을 열심히 달아 두었긴 하지만 상세히 설명해 보겠다.
1번째 줄에서 functools를 import 해오는데 호출가능한 객체에 대한 고차함수 관련 함수역할과 작업을 통괄하는 것이 functools 라고 생각하면 편하다. 궁금해 하실 분들이 있을것같아 공식문서를 통해 궁금증을 해소해 드리고 싶다.
2번째 줄에서는 import os로 os 모듈을 불러왔다. 여담으로 import 문과 from import 문의 차이는 import만 사용하면 모듈 안의 함수를 사용할 때, 모듈명.함수명( )으로 하고, from을 사용하면 바로 함수명( )으로 사용
한다는 차이점이 있다!
3번째 줄에서 matplotlib 으로부터 gridspec을 impor해왔는데 잠시후 사용될 Figure 내에 서브플롯을 배치하기 위한 그리드 레이아웃을 임포트 해온 것이다!
4번째줄에서는 pylab을 import 해왔는데 matplotlib.pyplot과 numpy를 하나의 네임스페이스에 import 시키는 역할을 한다.
5,6,7은 보이는 그대로 머신러닝에 필요한 numpy랑 tensorflow를 import 해오는 구문이고 style transfer모델을 임포트해올 tensorflow_hob도 import해온것을 알 수 있다.
그 밑은 잘 import 되었는지 확인 하는 print문이다!
입력과 출력을 정해주기
이 부분은 우리가 인풋으로 받을 이미지(content img,style img)의 입출력을 담당하는 함수들이다! 우리는 이함수 3개와 tnsorflow_hub에서 import 해온 모델만 있다면 원하는 stylized img를 출력값으로 쉽게 얻을 수 있다!!
Don't reinvent the wheel
우리는 바퀴를 다시 발명할 필요가 없다. 즉 개념이해조차 어려운 딥러닝을 우리가 실습과정에서 깊이 이해하지 않아도 얼마든지 깊은 고찰로 탄생한 style transfer model을 사용할 수 있다는 것이다.
이렇게 이미지만 로드하고 나면.
바로 모델을 가져온다
style transfer model 결과
이렇게 아웃풋으로 import해온 model에 content img와 style img를 넣어주게 되면 바로 아웃풋으로 나오게 된다.
오늘 이렇게 간단하면서도 매력적인 style transfer model 실습을 해 보았다. 딥러닝없는 딥러닝 실습이라 아쉬워할 사람들을 위해 style transfer 딥러닝 모델에 이해를 도울수 있는 논문하나를 소개하며 물러나 보도록 하겠다 !
style transfer model 논문
바다를 표류하던 익명이도 style transfer model의 힘으로 해안가로 떠내려 온듯 하다.
진짜끝
와! 정말 유익해요^^