본문 바로가기

전체 글465

[Pytorch] softmax와 log_softmax (그리고 CrossEntropyLoss) Pytorch로 MNIST 분류 예제 문제를 구현하다가, torch.nn.functional에 softmax, log_softmax 두 가지가 있다는 것을 발견했습니다. 2020/12/01 - [ML & DL/pytorch] - [Pytorch] MNIST Classification (2020/12/02 수정) [Pytorch] MNIST Classification (2020/12/02 수정) (pytorch v1.7.0+cu101 / Colab을 사용했습니다.) (2020/12/12 수정내용) model의 마지막에 log_softmax는 빼야합니다. 아래에서 loss function으로 CrossEntropyLoss를 사용하는데, CrossEntropyLoss내에서 log_.. junstar92.tis.. 2020. 12. 2.
Neural Style Transfer 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 네 번째 강의 Convolutional Neural Networks를 듣고 정리한 내용입니다. (Week 4) [What is neural style transfer?] Neural Style Transfer는 Convnet으로 구현할 수 있는 흥미로운 어플리케이션 중의 하나이다. 이 네트워크를 통해서 자신만의 예술 작품을 만들 수 있다. 이미지를 새로운 Style로 변형하는 것인데, 원본 이미지(Content)와 변형할 스타일(Style)을 가지고 새로운 Style의 이미지(Generated Image)를 합성하는 것이다. Neural Style Transfer를 구현하려면 ConvNet의 다양한 la.. 2020. 12. 1.
[Pytorch] MNIST Classification (2020/12/02 수정) (pytorch v1.7.0+cu101 / Colab을 사용했습니다.) (2020/12/12 수정내용) model의 마지막에 log_softmax는 빼야합니다. 아래에서 loss function으로 CrossEntropyLoss를 사용하는데, CrossEntropyLoss내에서 log_softmax 연산을 수행하고 있습니다. 따라서, model의 output은 log_softmax를 처리하지 않은 raw output이 되어야 합니다. log_softmax를 한번 더 수행했을뿐, 결과는 거의 유사합니다. tensorflow를 사용하다가 pytorch는 어떤가 궁금해서 pytorch도 사용을 해보려고 합니다. 기본적인 사용법은 pytorch 공식 홈페이지 튜토리얼을 참조하였고, 그 내용을 토대로 MNIST .. 2020. 12. 1.
Face recognition 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 네 번째 강의 Convolutional Neural Networks를 듣고 정리한 내용입니다. (Week 4) [What is face recognition?] 얼굴 인식 분야에서 세부적으로 얼굴 검증(Verification)과 인식(Recognition)으로 분류된다. Face Verification의 경우에는 사람의 이름이나 ID, 이미지가 주어졌을 때, 이 사람이 맞는가에 대한 여부를 확인한다. 1:1 문제라고도 부르고, 요청한 그 사람이 맞는지 여부를 알게 한다. 반면에 Face Recognition의 경우에는 1:K 문제라고도 하는데, K 명의 database가 있으면 주어진 이미지를 통해서 K.. 2020. 11. 30.
교통 표지판 분류 예제 (tensorflow v2.3.1) 이번에는 위와 같은 교통 표지판을 분류하는 모델을 만들어보겠습니다. 기본 내용은 실전활용! 텐서플로 딥러닝 프로젝트를 참고하였습니다. 분류에 필요한 데이터는 아래 경로에서 다운받으실 수 있습니다. benchmark.ini.rub.de/?section=gtsrb&subsection=dataset#Imageformat German Traffic Sign Benchmarks Dataset Overview Single-image, multi-class classification problem More than 40 classes More than 50,000 images in total Large, lifelike database Reliable ground-truth dat.. 2020. 11. 26.
AutoEncoder(오토인코더) - MNIST dataset 사용 MNIST dataset을 사용해서 여러 모델로 오토인코더를 구성해보았습니다. 내용은 아래 사이트를 참조하였습니다. keraskorea.github.io/posts/2018-10-23-keras_autoencoder/ 케라스로 이해하는 Autoencoder Building Autoencoders in Keras keraskorea.github.io AutoEncoder(오터인코더)란 ? 오토인코더는 비지도 방식을 사용해서 데이터코딩을 학습하는데 사용되는 신경망입니다. 단순하게 말하자면 입력을 출력으로 복사하는 신경망인데, 네트워크의 layer를 쌓으면서 데이터를 압축하거나 입력 데이터의 노이즈를 제거해서 깔끔한 이미지로 복원한다거나하는 여러가지 다양한 오토인코더가 있습니다. 모델을 구성할 때 여러가지 제.. 2020. 11. 25.
KMP 알고리즘 문자열에 조금 약한 편이라서 한동안 문자열과 관련된 알고리즘에 대해서 공부해보려고 합니다. 첫 번째로는 KMP(Knuth-Morris-Pratt) 알고리즘입니다. KMP는 문자열을 탐색하기 위한 것인데, 어떤 문자열 A와 B가 있을때, 문자열 A에서 B를 포함하고 있는지 탐색하는 것입니다. "This is a pen. I have a pen." 이라는 문장에서 have라는 단어를 찾는다고 한다면, 사람이야 그저 눈으로 훑어보고 바로 어디 있는지 찾을 수 있지만, 컴퓨터로 단순하게 찾는다면 이중for문으로 완전탐색을 통해서 찾을 수 있습니다. 완전탐색으로 찾는다면, 시간복잡도는 O(NM)이며, 문자열의 길이가 길어질수록 급격하게 걸리는 시간이 증가해서 시간초과가 발생하기 십상입니다. 그러나, KMP 알고리.. 2020. 11. 25.
[C++] 참조자(Reference)에 대해서 우리는 변수(Variable)이 할당된 메모리 공간을 지칭하는 것, 즉 메모리 공간에 붙여진 이름이라는 것을 알고 있습니다. 그리고 C++에서 처음 도입된 참조자(Reference)는 메모리가 할당된 변수에 또 다른 이름, 즉 별명을 붙이는 것이라고 할 수 있습니다. 이번에 C++에서 사용되는 참조자의 특징에 대해서 한 번 알아보겠습니다. 1. 참조자의 사용 참조자는 '&'를 사용해서 선언할 수 있습니다. 다만 주의해야할 점은 선언과 동시에 정의를 해주어야 하고, 상수는 참조할 수 없습니다.(뒤에서 다시 설명하겠습니다.) int main() { int a = 10; int& ref_a = a; printf("a : %d\n", a); printf("ref_a : %d\n", ref_a); printf(".. 2020. 11. 24.
Hand SIGNS 분류 예제 (3) - ResNet (tensorflow v2.3.0) 2020/11/17 - [ML & DL/tensorflow] - Hand SIGNS 분류 예제 (1) Hand SIGNS 분류 예제 (1) (tensorflow v2.3.0) Coursera Deep Learning 특화과정에 실습으로 진행했던 SIGNS dataset을 가지고, 위 이미지와 같이 분류를 해보도록 할 것입니다. Coursera 실습은 tensorflow 1로 진행되는데, 2버전에 맞추.. junstar92.tistory.com 2020/11/17 - [ML & DL/tensorflow] - Hand SIGNS 분류 예제 (2) - CNN 구조 사용 Hand SIGNS 분류 예제 (2) - CNN 구조 사용 (tensorflow v2.3.0) 2020/1.. 2020. 11. 24.
Object Detection(YOLO algorithm) 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 네 번째 강의 Convolutional Neural Networks를 듣고 정리한 내용입니다. (Week 3) Learning Objectives Describe the challenges of Object Localization, Object Detection and Landmark Finding Implement non-max suppression to increase accuracy Implement intersection over union Label a dataset for an object detection application Identify the components used for obj.. 2020. 11. 22.