본문 바로가기

분류 전체보기38

학습 데이터셋을 위한 WikiArt 이미지 크롤링 with Python https://towardsdatascience.com/creating-abstract-art-with-stylegan2-ada-ea3676396ffb Creating Abstract Art with StyleGAN2 ADA How I used Adaptive Discriminator Augmentation and Learning Transfer to generate improved abstract paintings with AI. towardsdatascience.com https://www.wikiart.org/ WikiArt.org - Visual Art Encyclopedia Wikiart.org is the best place to find art online. Discover paintings.. 2023. 2. 19.
ChatGPT로 파이썬 코드 짜보기(이미지 자르기) 나는 C++, C#을 주력으로 하고 이제까지 이외에 개발언어는 딱히 사용해 본 경험이 없었다. 그런데 최근에 StyleGan3, Stable Diffusion 이라는 AI모델을 돌려보면서 처음으로 머신러닝, 파이썬에 대해서 좀 공부를 해보게 되었다. 그중 파이썬이 굉장히 매력적인 언어라고 느꼈는데, C로 짜려면 굉장히 여러 과정을 거쳐야 하는 기능을 파이썬에서는 패키지를 받고 코드 한 두줄이면 끝나버리는 걸 보고 참 편한 언어라는 걸 느꼈다. 뭐 성능이 느리다니 뭐니 여러 말이 많지만, 생산성 측면에서는 내가 사용해온 C++, C#에 비해 굉장히 압도적이다라는 생각이 들었다. 약간 공부를 해놓고 사용할일이 생길 때 파이썬을 쓴다면 무척 유용할 거라 생각이 들었다. 그리고 최근 굉장히 핫한 ChatGPT를.. 2023. 2. 18.
순열(Permutation)과 조합(Combination)에 대해 이해하기 순열(Permutation) 순열이란 어떠한 수들의 집합에서 특정 개수의 숫자를 뽑아 중복 없이 나열한 것을 의미합니다. 1~9까지 수 중에서 3개의 숫자를 뽑아 나열한다고 해봅시다. 첫 번째 숫자가 올 수 있는 경우의 수 1~9 = 9개 두 번째 숫자가 올 수 있는 경우의 수 1~9에서 첫 번째 뽑힌 숫자를 제외한 수 = 8개 세 번째 숫자가 올 수있는 경우의 수 1~9에서 첫 번째, 두 번째 뽑힌 숫자를 제외한 수 = 7개 즉, 9개중 3개의 숫자를 뽑아 나열하는 모든 경우의 수는 곱의 법칙을 통해 9 x 8 x 7 이 됩니다. 이를 9P3 이라고 나타냅니다. 수 집합에서 특정 개수의 수를 뽑아 나열한 것은 순열이고, 모든 수를 나열하는 것을 팩토리얼(factorial)이라고 합니다. 즉 1~9 까지.. 2022. 10. 27.
[C#]추상클래스(abstract), 인터페이스(interface)는 어떻게 다르게 쓰일까 추상클래스(abstract), 인터페이스(interface)와 그 차이점에 대해 얘기해보고 왜 그러한 차이점이 생기도록 디자인되었나를 써보겠습니다. 차이점에 대해 알더라도 왜 그러한 차이가 있는지를 생각해보고 알맞게 사용해야 정말 그걸 안다고 말할 수 있다고 생각합니다. 우선 OOP에서 의미하는 ‘추상’은 뭘까요 ? 어떠한 클래스를 정의할 때 공통된 기능을 추출하는걸 ‘추상화시킨다’라고 합니다. 예를 들어 게임에서 여러 종류의 몬스터가 존재한다고 가정해봅시다. A몬스터는 근접에서 칼로 공격하고, B몬스터는 원거리에서 활로 공격하고, C몬스터는 마법 공격을 합니다. 이때 몬스터 클래스를 설계한다면 이 몬스터 클래스의 공격 기능을 추상화시켜야 합니다. 모든 몬스터는 공격이라는 공통된 기능이 있지만 그 공격의.. 2022. 10. 7.
[C#]IDisposable, Finalize, using 이 무엇인가? 그리고 왜 사용하는가? IDisposable, Finalize, using 이 무엇인가? 그리고 왜 사용하는가? C#의 가비지 컬렉터는 사용이 끝난 메모리를 자동적으로 해지시켜준다. 하지만 가바지 컬렉터가 인식하지 못하는 메모리의 종류가 있다. 관리되지 않는 리소스라고 칭하는데 파일스트림 객체나, 창 핸들, 디비 커넥션과 같은 객체들이다. 이러한 객체들을 해지 시켜주기 위해서 Finalize, IDisposable, using 과 같은 기능들이 있는데 하나씩 설명해보겠다. Finalize Finalize는 소멸자와 비슷한 개념이라고 생각하면 된다. 클래스에서 소멸자를 만들면 이는 Finalize를 오버라이딩한거와 같다. 그래서 관리되지 않는 리소스들을 소멸자에서 해지시켜주는 것 또한 하나의 방법이다. 하지만 이는 몇가지 문제점.. 2022. 10. 1.
디퍼드 렌더링, 포워드 렌더링이란? 그리고 차이점에 대해서 디퍼드 렌더링, 포워드 렌더링이란? 그리고 차이점에 대해서 유니티 코리아의 오지현님의 영상을 보고 디퍼드 렌더링과 포워드 렌더링의 기본적인 개념에 대해서 정리한 글입니다. Forward Rendering 포워드 렌더링은 많은 동적 라이팅을 처리하는데 한계가 있다. 왜냐면 오브젝트의 라이팅 처리 방식 때문인데 오브젝트가 화면에 그려질 때 맵에 존재하는 모든 라이팅들과 연산을 하고 렌더링 된다. 다시 말하면 오브젝트 하나가 그려질 때 그때그때마다 연산을 한다. 라이팅이 10개가 있고, 오브젝트가 10개가 있다면 10 x 10 = 100번의 연산이 필요하다(라이팅만을 위한 계산량). 라이트에 영향을 받지 않는 오브젝트 또한 연산을 하게 된다. 포워드 렌더링에는 멀티패스 방식과 싱글패스 방식이 존재하는데 멀티패.. 2022. 9. 30.