git 명령어 정리
2022. 3. 4. 10:21
🚦 Server/git
프로젝트(레파지토리) 폴더 생성 git init git status git add [관리할파일명] git config --global user.name [유저이름] git config --global user.email [이메일] 이걸 하지 않고 진행하는 경우 --global to set the identity only in this repository 매세지가 보이게 됨 git commit 만약 윈도우10에서 git commit 실행시 vim으로 실행 안된느 경우 다음 코드 실행 : git config --global core.editor vim vim 이 실행되었을 때 commit message를 작성 git log git add [업데이트 할 파일명] 처음 추가할 때도, 버전 업 할 때도 add를 ..
CNN - Batch Normalization
2022. 3. 3. 21:27
🖼 Computer Vision/CNN
목차 Feature Scaling Scaling 기법 Min-Max scaling : 0~1 사이 값으로 변환 Z score 정규화 : 평균이 0, 표준편차가 1 인 데이터셋으로 변환 Scaling 적용 유무에 따른 Loss함수의 Gradient Descent 변화 Batch Normalization Batch Normalization의 필요성 - Internal Covariate Shift Batch Normalization 개요 Batch Normalization의 적용 CNN에서 Batch Normalization 구성 Batch Normalization의 효과 Batch size 변화에 따른 모델 성능 Feature Scaling 서로 다른 Feature 값들을 동일한 척도로 변환시키는 것 Sca..
CNN - Weight Initialization
2022. 3. 3. 21:03
🖼 Computer Vision/CNN
목차 가중치 초기화 (Weight Initialization) 좋은 가중치 초기화 조건 평균이 1 이고 표준편차가 1인 표준 정규분포에서 난수 추출 표준 편차 변경에 따른 Sigmoid 출력 결과 Xavier Glorot Initialization Xavier initialization - 정규분포(glorot_normal), 균일분포(glorot_uniform) He Initialization Weight Initialization을 He Normal로 변경 후 성능 검증 가중치 초기화 (Weight Initialization) 좋은 가중치 초기화 조건 값이 동일해서는 안된다. 충분히 작아야 한다. 적당한 분산(또는 표준편차)를 가져야 한다. 충분히 작을 수 있도록 도와주기 위한 적당한 분산. 평균이 ..
CIFAR10
2022. 3. 3. 16:46
🖼 Computer Vision/CNN
목차 CIFAR10 Dataset 생성 CIFAR10 데이터 시각화 Data preprocessing Custom Model 생성 Model 학습 수행 및 테스트 데이터로 평가 model.predict()를 통해 이미지 분류 예측 1. CIFAR10 Dataset 생성 tf.keras.datasets의 cifar10.load_data()는 웹에서 Local computer로 Download후 train과 test용 image와 label array로 로딩. import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) import os from tensorflow.keras.d..
CNN - Convolution 연산 후 Feature map 크기 계산 이해하기
2022. 3. 2. 22:32
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 출력 Feature Map 크기 계산 공식 Stride가 1이고 Padding이 없는 경우 Stride가 1이고 Padding이 1인 경우 Stride가 2이고 Padding이 없는 경우 Stride가 2이고 Padding이 1인 경우 입력이 6X6에서 Stride가 2 적용 output Feature map의 크기 공식의 일반적인 적용 출력 Feature Map 크기 계산 공식 I : 입력 Feature Map의 크기 F : Filter의 크기(Kernel size) : 4x4 P : Padding(정수) : 모서리 채우는 것, 1이면 4x4 → 5x5 S : Strides(정수) : 몇단위로 이동하나 크기는 모두 가..
CNN - Convolution 연산에서 Filter에 대한 이해
2022. 3. 2. 20:56
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 다채널 Input에 여러 개의 Filter 적용 Filter 채널수와 개수, 그리고 입력과 출력 Feature map의 채널수 관계 다채널 Input의 Convolution Filter 적용 메커니즘 다채널 Input에 3x3 Filter 적용 메커니즘 Quiz 1. Filter, Kernel, Channel 수 Quiz 2. Filter의 shape 다채널 Input에 여러 개의 Filter 적용 지금까지 이해를 돕기 위해 Filter를 2차원(면적)으로 표현했지만 일반적으로 Filter는 3차원이며, CNN에서는 이 3차원 Filter 여러개를 개별 Feature map에 적용하는 방식이다. Filter 채널수와 개..
CNN - Fashion MNIST 예측 모델 구현하기
2022. 3. 2. 17:29
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 전처리 학습 데이터, 테스트 데이터 분리 scaling 및 형 변환 원핫 인코딩 학습, 검증 데이터 분리 학습, 검증, 테스트 데이터 셋 생성 모델링 모델 생성 모델 학습 모델 성능 평가 전처리 from tensorflow.keras.datasets import fashion_mnist import numpy as np from tensorflow.keras.utils import to_categorical from sklearn.model_selection import train_test_split 학습 데이터, 테스트 데이터 분리 # 전체 6만개 데이터 중, 5만개는 학습 데이터용, 1만개는 테스트 데이터용으로 분리..
🤬 Speech-to-text(STT)를 이용한 욕설 필터링 프로그램
2022. 2. 22. 20:21
💡 AI/토이 프로젝트
목차 STT(Speech-To-Text)란? STT 연결 및 동작 확인 코드 및 설명 느낀점 STT(Speech-To-Text)란? Google AI 기술로 지원되는 API를 사용하여 음성을 텍스트로 변환하는 기술 Google Cloud Platform(GCP)의 Cloud Speech API를 이용 기존의 Google Assistant API와는 다름 Key 발급을 통해 쉽게 사용할 수 있는 Cloud API 적당히 조용한 환경에서의 인식률은 DeepSpeech와 겨루지만, 노이즈 환경에서는 부족함 STT 연결 및 동작확인 빠른시작 페이지를 참고하여 API활성화 후 다음 코드를 실행한다 과정 요약 GC에서 프로젝트 생성 프로젝트 결제 사용 설정(신용카드 등록) - 60분 이내 무료 프로젝트내에 서비스 ..
CNN - Conv2D 와 Pooling 적용 실습
2022. 2. 18. 19:00
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Keras에서 Conv2D와 Pooling의 적용 Conv2D 적용하기 Pooling 적용하기 CNN 모델 생성하기 Fully Connected Layer와 연결 Keras에서 Conv2D와 Pooling의 적용 Conv2D() 를 모델에 적용 시에는 반드시 입력은 배치 크기를 제외하고 3차원이 되어야 한다.(즉., 배치를 포함하면 4차원) 1개의 Filter는 무조건 3차원이다. 따라서 32개의 커널을 만들어 주세요 라는 의미로 쓰인게 아니다. 그냥 Filter의 개수가 32개라는 것이다. Filter 에는 커널이 하나 들어가 있다. 입력으로 들어오는 채널의 차원 (28, 28, 1) 과 자동적으로 맞아야 한다. 안 ..
😷 마스크 탐지 인공지능
2022. 2. 15. 20:13
💡 AI/토이 프로젝트
마스크를 썼는지 안썼는지 실시간으로 확인하는인공지능을 구현해보자. 목차 Load dataset Training model Labeling Construct model Training Use pre-trained model Result Load Dataset 마스크 쓴 사람과 마스크 안쓴 사람의 데이터로 학습이 끝난 마스크 classifier를 활용한 마스크 detector로 진행이 됩니다. 아래와 같이 마스크 안 쓴사람의 이미지를 구해서, Face detection을 한번 하고, 잘라낸 face 에서 랜드마크 detection을 합니다. 그 다음에 배경이 투명한 마스크 이미지를 구해서 랜드마크를 기준으로 마스크를 씌워줍니다. 요런 식으로 해서 마스크를 안쓴 이미지에서 마스크를 쓴 이미지를 만들었습니다. ..
CNN - Stride, Padding, Pooling
2022. 2. 15. 17:04
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Stride : Sliding window가 이동하는 간격 Padding : 모서리에 0값을 채워 원본 Feature Map의 크기를 유지시키는 방법 Pooling : Feature Map의 일정 영역별로 하나의 값을 추출하여 Feature Map의 크기를 줄이는 방법 Stride와 Pooling의 비교 Stride stride는 입력 데이터(원본 image 또는 입력 feature map)에 Conv Filter를 적용할 때 Sliding Window가 이동하는 간격을 의미한다. stride는 입력 데이터(원본 image또는 입력 feature map)에 Conv Filter를 적용할 때 Sliding Window가 ..
CNN - Kernel & Feature map
2022. 2. 15. 16:44
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 Filter와 Kernel의 구분 Kernel size 특징 Kernel size와 Receptive field Feature Map CNN에서 Filter 값의 결정 Filter와 Kernel의 구분 CNN에서 Filter와 Kernel은 거의 혼용되어서 사용된다. 하지만 명확히 구분하자면 필터는 여러개의 Kernel로 구성되어 있으며 개별 Kernel은 필터내에서 서로 다른 값을 가질 수 있다. kernel의 개수가 바로 channel의 개수이다. Conv2D(filter=32, kernel_size=3)(input_tensor) : 3x3 인 정방행렬을 가지는 필터 32개를 input_tensor에 적용하겠다. K..
CNN - Convolution 연산의 이해
2022. 2. 15. 15:54
🖼 Computer Vision/CNN
📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다. 목차 일반 Dense Layer에서 Image Classification시 주요 문제 이미지의 크기가 커질수록 너무 많은 weight가 필요 Feature Extraction 기반의 Image Classification 메커니즘 ML과 DL의 차이 Deep Learning CNN 구조 CNN Classification Network 구조 이미지 필터 이미지 필터링 적용 예 이미지 배열에 Convolution 연산 적용하기 일반 Dense Layer에서 Image Classification시 주요 문제 대상이 전체 이미지 상에서 고정적이지 않고 가변적으로 존재한다. 또한 0이 아닌 유형인 피쳐들이 들어가 있다. (ex. 벽, ..
CNN - Callback
2022. 2. 14. 21:11
🖼 Computer Vision/CNN
목차 Callback 개요 ModelCheckpoint ReduceLROnPlateau : Loss가 줄지 않거나 성능이 향상되지 않을 때, Learning rate를 바꿈 EarlyStopping : 성능이 변하지 않을 때 멈춤 보통은 세개를 한꺼번에 다 쓴다. Callback 개요 함수를 호출하는 것보다는 등록을 한다. 그러면 Callback 함수는 루프를 돌 때마다 특정한 이벤트가 발생할 때마다 등록된 Callback을 호출하게 된다. Roop시에 중간중간 함수가 돌아갈 수 있게끔 하는 프레임워크이다. ModelCheckpoint ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_onl..