전체 글 28

MobileNet paper review

Full paper name : MobileNets : Efficient Convolutional Neural Networks for Mobile Vision Applications Abstract : 모바일, embedded vision 앱에서 사용되는 것을 목적으로 모델을 제시하였다. Depth-wise separable convolutions 라는 구조에 기반하며 2개의 단순한 hyper-parameter를 가진다. 여기서 depth-wise convolution은 feature map 뭉치를 채널별로 따로따로 나눠서 각각을 feature kernel에 통과시킨다는 것을 의미한다. 지금까지의 합성곱을 사용하는 CV model들은 크기가 너무 크고 가성비가 좋지 않다. 컴퓨팅 파워가 좋은 데스크탑에서..

논문 리뷰 2023.02.08

Squeeze-and-Excitation Networks(SENet) review

※이해가 잘 안 되는 부분들 미리 정리. 딥러닝에서 -wise라는 용어가 자주 언급됨. -wise : ~별로 따로따로 나눠서 뭔가를 수행한다. ~에 따라 뭔가를 수행한다. ex) depth-wise convolution : feature map 뭉치를 채널별로 따로따로 나눠 각각을 특정 커널에 통과. channel-wise concatenation : 여러 feature map 뭉치를 채널에 따라 feature map을 쌓는다(일반적인 딥러닝 concat을 의미) point-wise convolution : feature map의 픽셀 포인트별로 따로따로 나눠서 각각을 특정 커널에 통과. spatial-wise attention : feature map 뭉치를 하나하나 떼서, 즉 공간 별로 따로따로 나눠..

논문 리뷰 2023.02.04

소프트웨어공학 프로젝트

어플리케이션 다운로드 ↓ (size : 52MB) https://drive.google.com/file/d/19Zql-knadVkNiHPjAZ8ac1eeoBEivEAY/view?usp=sharing 알콜위키.apk drive.google.com Development Environment : Android Studio Development Framework : Flutter Using Package: image_picker, tflite, lottie, shared_preference, cupertino_icons, http, google_fonts, wrapped_korean_text, fluttertoast Application DB : Our application only needs to add th..

어플리케이션 개발 #1

Flutter를 사용하여 어플리케이션을 개발한지 어느덧 3주가 되려고 한다. 매일매일을 이 앱개발을 붙잡으면서 하니깐 기한 내에 겨우겨우 끝마칠 수 있을 거 같다. Dart의 객체 지향적인 프로그래밍 스타일부터 나를 힘들게 했지만, 더더욱 힘들었던건 환경을 조정하는 과정이였다. Flutter라는 플랫폼을 사용하려면 따로 Flutter를 설치하여 Android Studio 내의 Flutter Directory를 지정해줘야 한다. 단순하게 Flutter Directory를 Flutter 설치한 파일경로로 따오면 되지않느냐는 생각이 들지만, 폴더 경로 사이사이에 "한글"이 있다면 매우 사고가 된다. 초반에는 따로 환경변수를 생성하는 과정으로 어떻게든 "한글"이 있는 폴더들을 피해나갔으나, 꼬이고 꼬여서 망하고..

어플리케이션 개발 #0

어플리케이션 개발에 입문하려고 다양한 개발환경에 대해 알아보았다. 처음에는 단순 JAVA를 사용해서 Android Studio를 이용하여 개발하려고 하였다. 그런데, 이는 코딩을 처음하는 사람이 C언어를 입문하려는 상황과 매우 유사하였다. 즉, Native형식으로 코딩해야하는 극한의 난이도로 들어갈 뻔 했다. 어플리케이션의 하나를 만드는데 드는 시간과 그 만드는걸 배우는 과정이 지금은 매우 버거울거같았다. 당장 1달이라는 시간안에 어플리케이션 하나를 만들어야하는 상황에 좀 더 쉽게 개발할 수 있는 플랫폼을 찾아야했다. 다양한 플랫폼들을 찾아보던중 크로스플랫폼 React-Native, Flutter가 있었다. 이는 파이썬처럼 Native-Code가 아닌 언어로 코딩을 한 이후, 프로그램 실행 시, ios/..

밑바닥부터 시작하는 딥러닝 #2

#1에서는 리스트와 클래스, numpy에 대해서 알아보았다. 하지만, 우리는 1장의 마지막 내용을 안 했기에 지금 하려고 한다. 딥러닝에 있어서 가장 중요한 것은 성능평가이다. 내가 아무리 좋은 성능을 지니고 있는 모델을 만들었다지만, 이를 어떻게 평가하겠는가? 바로 그래프 그리기와 데이터 시각화이다. 1장의 마지막 내용으로는 그래프는 그려주는 라이브러리 matplotlib이다. 단순한 그래프 그리기 그래프를 그리려면 matplotlib에서의 pyplot 모듈을 사용해야 한다. 바로 sin 함수를 그려보자. 변수 x는 np.arange(0, 10, 0.1)이라고 나타내었다. 이 뜻은 넘 파이의 arange 메소드로 넘파이 배열로 [0, 0.1, 0.2 ... 9.9, 10.0] 을 만드는 것을 의미한다...

밑바닥부터 시작하는 딥러닝 #1

이 책은 파이썬이라는 프로그래밍 언어를 사용하여 딥러닝을 구현하는 법을 알려주는 책이다. 당연히, 파이썬을 어느정도 다룰줄 알아야 이 책에 있는 내용들을 실습할 때 편할 것 같다. 헷갈리거나, 애매모호한 문법들이 있어서 정리를 해본다. 리스트(List) 리스트란 여러 데이터들을 묶어서 정리하는 문법이다. 위 그림처럼 리스트를 만들면, print(a) 로 리스트를 출력, len(a)로 리스트의 길이를 출력할 수 있다. 그리고 리스트에 접근할 때는 a[0] 로 하여 0번째 인덱스에 접근할 수 있다. 위 그림에서는 리스트를 출력하는 다른 방법으로 '슬라이싱'이라는 기법이 있다. 슬라이싱은 내가 원하는 범위를 지정하여 부분 리스트를 얻는 기법이다. a[0:2] 라고 쓰면 0번째 인덱스, 1번째 인덱스를 뽑겠다는..