# subclassing
TF Subclassed Model to TFLite
안녕하세요. 오늘은 Tensorflow Subclassed 모델을 TFLite로 변환하는 방법에 대해 다루겠습니다. 서브클래싱 모델은 tf.keras.Model을 상속받아 정의 모델입니다. call 함수를 직접 구현해야합니다. 이렇게 구현한 모델의 학습 결과를 저장했습니다. 저의 경우 크기를 줄이기 위해 h5에 가중치만 저장했습니다. 모델을 불러와서 가중치를 입히는 식.... 서론이 길었던 이유는 블로그나 스택오버플로우에 있는 건 대부분 서브클래싱 모델에서 동작 안하기 때문입니다 이렇게 변환된 모델 파일은 불러들여, 추론에 사용할 수 있겠다. 추론은 다음과 같은 코드로 사용할 수 있고, 메서드 이름만 다르고, 추론 절차는 동일함을 확인할 수 있다. 후기 ! 내가 코드를 잘못 짠건지... 모델 크기는 줄어들었으나, 추론 속도는 오히려 줄어들었다... 뭐가 문젠지 알게되면 포스팅을 수정하도록 하겠다..! 혹시 아신다면 댓글로 알려주세요!

Introduction Part. 02
GOF의 디자인 패턴 1장, 서론의 두번째를 정리해봅니다. 카탈로그 조직화 하기 영역을 기준으로 앞에서 말한 디자인 패턴들은 추상화 수준과 배움의 깊이가 다름 그렇기에 목적과 범위를 기준으로 조직화함 목적 생성: 객체들의 생성과정에 관여 구조: 클래스나 객체의 합성에 관한 패턴 행동: 클래스나 객체들의 상호작용 방법과 책임 분산 방법 범위 클래스: 클래스와 서브클래스 간의 관련성을 다루는 패턴 주로 상속 컴파일 타임에 정적으로 결정됨 객체: 객체 관련성을 다루는 패턴 런타임에 변경할 수 있음 조금더 동적인 성격을 지님 대부분은 상속을 이용함 복합적으로 얽힐 경우 어떤 식으로 이해할
CNN with TF low level
Prologue tf 공식문서를 보면 subclassing으로 layer block을 구성하고 model을 만드는 방법이 나와있다. 거기다가 tf.keras.layers에 있는 것들은 tf.nn에도 같은 기능을 하도록 구현하고 있다. low level에서는 결국 tf.nn이 돌아갈 거라고 생각은 했지만 그러려니 하면서 넘겨왔다. 그러다 소스코드를 봤는데 있어야 되나 싶은 조건문들이 많이 붙어있었고 이걸 다 걷어내고 싶었다. 그래서 굳이 해보는 subclassing을 활용한 ResNet구현. 단, tf.keras에서 상속은 받고 시작하기로 한다. 나중에는 이것도 덜어내고 순수 tf로만 구현하고 싶기는 하다. 여기서 전체 코드를 쓰면 너무 길어지므로 subclassing을 어떻게 활용하는지에 대해서 서술하고 세부코드는 링크로 대체한다. Custom layer 먼저 c
[iOS] Inheritance
Hits 상속 [ Type Inference ] 클래스 만이 상속 가능하며, 상속은 단일 상속만 허용된다. 클래스는 메서드, 프로퍼티 및 기타 특징들을 상속할 수 있다. 기본 클래스 [ Basic Class ] 아무런 상속을 받지 않는 클래스를 말한다. 서브 클래싱 [ Subclassing ] 기본 클래스를 기반으로 새로운 클래스를 만드는 작업이다. 클래스 Car 는 클래
[Aiffel] 아이펠 25일차 개념 정리 및 회고
1. 딥러닝 개념 - Tensorflow v2 api 1) Sequential Model > 기본 형식 모델의 입출력이 여러 개인 경우 적절하지 않음. 2) Functional API sequential model과의 차이 곧 바로 keras.Model 이용 sequential model이 keras.model을 상속받아 확장한 사례기 때문에 더 functional이 더 일반적이라고 할 수 있음 더 자유로운 모델링 가능 함수형으로 모델을 구성한다 = 입출력을 규정해 모델 전체를 규정함 Input을 지정: 텐서가 여러 개일 수 있음 다중입출력 가능 3) Subclassing keras.Model을 상속받음 init 매소드 안에서 레이어를 구성함 call 매소드 안에서 순전파를 구현 4) GradientTape tf.GradientTape tape: 진행된 모든 연산의 중간

서브클래싱, 커스텀UI에 Rx적용하기
서론 특별한 건 아니고, UIControl을 상속해서 만든 CustomTextField가 있다. 굳이 UITextField를 상속해서 만들지 않았던 이유는, CustomTextField를 UIView처럼 사용해야 하기 때문이었다. 만약 UITextField를 사용했다면, 사이즈나, 애니메이션 등에서 불편한게 많기 때문이라고 생각. 구현 어쨌든 그래서 UIControl을 사용해서 프로퍼티로 UITextField를 주입했는데 잘 알겠지만 TextField를 rx로 바인딩 할때 이런식으로 사용하는데 지금 형식은 View에서는 CustomTextField의 text속성에만 접근이 가능하고 UITextField에는 접근이 불가능하다. text속성에 rx 바인딩을 하고 싶어서 찾아봤는데, 생각보다 구글
Reshape Of AIFFEL (Fundamental 18)
18.2 Tensorflow 2의 구성과 특징 Tensorflow V1에 비해 V2가 갖는 특별한 장점 Keras라는 쉽고 간결한 머신러닝 프레임워크를 수용하여 Tensorflow V2의 표준 API로 삼았다. PyTorch가 제안한 Eager Mode는 딥러닝 그래프가 다 그려지지 않아도 부분적인 실행이나 오류 검증이 가능하였다. Tensorflow V2는 이를 수용하였다. Eager Mode는 설계나 구현, 디버깅에 대해 전 과정을 쉽고 직관적으로 만들어 준다. 아래 코드와 같이 session.run()에 의존하지 않고 쉽고 간결하게 처리할 수 있다. 이 외에도 사용의 용이성, 즉시 실행성, 설계 및 구현의 용이성, 데이터 파이프라인 단순화 등이 이전