본문 바로가기

전체보기

(121)
scala with cats 책 읽으면서 필기(하다보니 번역급) Chapter 2 (Monoids and Semigroups) 2020/02/07 - [전체보기] - scala with cats 책 읽으면서 필기(하다보니 번역급) Chapter 1 위 글에서 이어지는 글입니다. 다음 글은 2020/02/12 - [Programmer Jinyo/Scala & AKKA] - scala with cats 책 읽으면서 필기(하다보니 번역급) Chapter 3 입니다. 이 글은 scala with cats책을 읽으면서 거의 번역하다시피 한 글임을 먼저 밝히고요, https://books.underscore.io/scala-with-cats/scala-with-cats.pdf 여기서 보실 수 있습니다. Monoids and Semigroups 이 챕터에서는 monoid와 semigroup 타입 클래스에 대해서 알아 볼 것이다. 이 것들은 ..
Scala CaseClass에 대한 특징 정리 Programming in scala 를 참고하여 작성했음을 밝힘니다. 케이스 클래스는 다음과 같이 정의할 수 있다. abstract class Expr // trait가 되어도 괜찮아~ case class Var(name: String) extends Expr case class Number(num : Double) extends Expr case class UnOp(operator:String, arg:Expr) extends Expr case class BinOp(operator:String, left: Expr, right: Expr) extends Expr case수식자는 스칼라 컴파일러에게 해당 클래스에 문법적으로 편리한 기능 몇 가지를 추가하라고 지시하는 것이다. 1. 컴파일러는 클래스 이름..
scala with cats 책 읽으면서 필기(하다보니 번역급) Chapter 1 (Introduction) 책 링크 : https://books.underscore.io/scala-with-cats/scala-with-cats.pdf Preface 모나드, 그리고 관련 컨셉은 코드에 반복적으로 나타나는 객체지향 디자인 패턴 아키텍처 빌딩 블록과 비슷한 것들이다. 이것들은 객체지향패턴과 두가지 큰 차이점을 가진다. 1. 그것들은 형식을 갖추며, 따라서 자세하고, 정의되어 있다. 2. 그리고 굉장히 굉장히 일반적(일반화 되어있는)이다. 일반화는 이해하기 힘들다는 것을 의미할 수 있다. 모든 사람들이 어려움을 느낀다. 그러나 이 일반화 떄문에 다양한 상황에서 모나드와 같은 것을 적용할 수 있는 것이다. --- Chapter 1 Introduction Cats 는 함수형 프로그래밍을 위한 다양한 툴들을 제공한다. 대..
Scala를 익히기 위한 99 Problems 예제 http://aperiodic.net/phil/scala/s-99/ S-99: Ninety-Nine Scala Problems As in the previous section, we will start with a skeleton file, logic1.scala, and add code to it for each problem. The difference here is that the file starts out almost empty. First of all, consult a good book on discrete mathematics or algorithms for a d aperiodic.net 위 링크에 문제들이 싹 있고 이 포스트에서는 정답을 달아보도록 하겠다. ^_^ (28 번 까지만 풀고..
Scala Future에 대해 기본은 배워보자! 튜토리얼 ~~ 본 글은 http://allaboutscala.com/tutorials/chapter-9-beginner-tutorial-using-scala-futures/ 의 글을 번역(그렇지만 전부 하지는 않고 필요한 부분만)한 것임을 먼저 알립니다! Introduction. Official Scala Future에 대한 문서는 여기서 보시면 됩니다. Scala Future에 대해 짧은 코드 스니펫과 함께 Scala Future을 통한 asynchronous non-blocking operations에 익숙해질 수 있게 도와주겠다. 충성충성^^7. Scala에 대한 기본적인 이해가 있는 독자를 대상으로 하며, 일단은 Future은 일종의 code wrapper이라고 간략하게 알면 된다. Method with fut..
Scala의 모나드(Monad)에 대한 정리 들어가기에 앞서, 혹시 모를 수 있는 용어정리 더보기 Generic : 다양한 메소드를 사용할 때 클래스를 사용해 객체를 인스턴스화 할 때 필요한 Type을 지정해줄 수 있도록 프로그래밍하는 문법이다. 아래와 같은 예시가 있곘다. class GenericStack { stack: T[]; constructor() { this.stack = []; } addItem(item: T): void { this.stack.push(item); } toString(): string { return this.stack.join(', '); } get(index?: number): any { return index ? this.stack[index] : this.stack; } } const stringStack = ..
MarioNETte 논문 리뷰 Few-shot Face Reenactment Preserving Identity of Unseen Targets 요번에 AAAI에 올라간 하이퍼커넥트의 '보이지 않는 타겟의 Identity를 보존하며 몇장의 얼굴 사진만으로 얼굴을 재연'하는 논문이다. 기존의 방법들의 경우, (특히 few-shot setting에서) target 이미지와 source 이미지가 identity가 다를 때에는 얼굴 재연에 있어서 심각한 품질 저하가 일어나고는 했다. 1. identity mismatch를 무시하는 경우에는 새로운 얼굴을 합성했을 때 target이미지와 비슷해지는 결함이 발생한다. (트럼프 얼굴에 다른 표정의 아이린을 target으로 주면 아이린과 닮은 트럼프가 나와버리는 상황 발생 가능) 2. compressed vector representation(AdaIn layer과 같은)의 capacity를 너무 줄일 경우 원..
Depthwise Separable Convolution 설명 및 pytorch 구현 Depthwise Convolution 우선 Depth-wise Seperable Convolution에 대한 설명을 하기에 앞서 Depth-wise Convolution에 대한 설명을 먼저 할까 한다. 기본적인 개념은 쉽다. 위 처럼 H*W*C의 conv output을 C단위로 분리하여 각각 conv filter을 적용하여 output을 만들고 그 결과를 다시 합치면 conv filter가 훨씬 적은 파라미터를 가지고서 동일한 크기의 아웃풋을 낼 수 있다. 또한 각 필터에 대한 연산 결과가 다른 필터로부터 독립적일 필요가 있을 경우에 특히 장점이 된다. 이를 파이토치에서 구현하려면 다음과 같이 하면 된다. class depthwise_conv(nn.Module): def __init__(self, ni..