일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- DeepLearning
- rnn
- vision transformer
- Torchvision
- tensorflow
- torch.nn.Module
- LSTM
- docker
- ViT
- pychram
- 가상환경
- ubuntu
- __init__
- AI
- 파이썬문법
- CNN
- Deep learning
- 파이썬
- objectdetection
- 가상환경구축
- 머신러닝
- __call__
- wsl2
- python
- python 문법
- pip install
- Anaconda
- pytorch
- 딥러닝
- torch.nn
- Today
- Total
목록인공지능 개발자의 기본 소양 (8)
인공지능을 좋아하는 곧미남
오늘은 간단한 딥러닝 모델 구축 프로세스에 대해 나열해보겠습니다. 추후 개별적으로 세부내용을 정리한 링크를 첨부하여 좀 더 보완하겠습니다. 1. Dataset 파이프라인 구축 - Data 수집 및 라벨링 - 학습용 데이터셋 구축 -> Train, Validation, Test (Cross Validation) - Data Pre-processing -> 이미지처리, Data Augmentation, Data Normalization, Data Type and Shape Transpose 2. 모델 하이퍼 파라미터 정의 - Learning Rate Scheduling - Batch size, Epoch - 기타 필요 파라미터 정의 3. 모델 레이어 정의 - 모델에 따른 Layer 구성 (Step Conne..
안녕하세요 오늘 2022년도 국제인공지능대전 AI EXPO KOREA에 참석하여 많은 인공지능 관련 기업들을 탐방했습니다. 개인적으로 서울 코엑스에서 개최되어 대구에 사는 저는 멀었지만, 인공지능 전시회는 처음이라 설레는 마음으로 고민하지않고 사전등록하여 참석하게 되었습니다. 1. 참석 기업 2. 기억에 남는 기업 3. 끝맺음 1. 참석 기업 여러 많은 기업들이 참석했는데요. (http://www.aiexpo.co.kr/shop_contents/myboard_read.htm?load_type=&page_idx=0&tag_on=&h_search_c=0&h_search_v=&me_popup=&myboard_code=notice&page_limit=10&idx=797830&page=1&category_idx=..
안녕하세요. 오늘은 학습 시 weight가 nan 값이 출력되는 문제에 관해 알아보겠습니다. 저도 처음에 왜 그런지 정말 궁금해서 많이 찾아봤는데 역시 stack overflow에 잘 설명이 되어있었습니다. 오늘의 내용을 아래와 같습니다. - INDEX - 1. Nan value 발생 현상 및 이유 2. Nan value 발생 시 대처 방법 3. 고찰 1. Nan value 발생 현상 및 이유 1) Gradient blow up: Gradient의 값이 너무 커서 weight update 시 발산되어 weight가 Nan으로 됨. 2) Bad learning rate policy and params: learning rate 자체가 inf나 nan이 될 경우. 3) Faulty loss function:..
Convolution Operation에 관해 수식만 본다면, 직관적으로 이해하기가 어려울 수 있다. 그래서, 나는 Image Pixel Matrix를 간단하게 시각화하여 블로그에 기록을 남긴다. 우선, Convolution Operation은 Kernel 크기 만큼의 Map(Weight를 가지는)과 Input image나 feature를 합성곱 연산을 통해 이미지의 특징을 추출하는 과정입니다. Kernel 이란? n x m 크기의 행렬로 Input으로 들어오는 Image나 Feature(Width X Height 크기)를 왼쪽 상단부터 오른쪽 하단까지 순차적으로 Window Sliding 하는것인데요. - Kernel 크기의 겹쳐지는 부분의 weight = K - Image pixel이나 Feature..
인공지능 모델을 개발하면, 여러가지 문제가 발생하는데요. 그 중 Over fitting되거나 local minimum에 빠지지 않도록 학습 가중치 업데이트를 원활히 하기 위한 적용 기법을 살펴보겠습니다. 우선, weight를 업데이트는 아래 식으로 설명이 가능한데요. 해당, 방정식과 같이 다음 step의 weight를 얻기 위해서는 이전 weight에 learning rate와 cost function을 미분한 값(비용함수의 T시점의 접점의 기울기)을 곱한 값으로 차감합니다. 여기서 가중치(W) 업데이트 방정식을 조금 변형하여 좀 더 학습에 유리하도록 연구한 내용들이 있습니다. 저는 그 중 weight decay와 momentum에 관해 설명하겠습니다. weight decay(β)는 하나의 항을 추가하여..
여러가지 인공지능 모델 개발을 한 후 해당 모델에 대해 평가를 해야합니다. 흔히 말해 성능 평가라고 하며, 각 모델별로 성능 지표들이 다르게 정의되어 있습니다. 포괄적인 인공지능 모델은 Classification, Object Detection, Segmentation이 있습니다. 저는 이 세가지 모델들의 평가 지표에 관해 설명하겠습니다. 오늘의 내용은 아래 목차와 같습니다. 1. Classification Metric 2. Segmentation Metric 3. Object Detection Metric 1. Classification 분류 모델의 성능을 평가하기 위해서 아래와 같이 결과들을 구분할 수 있습니다. 이해를 돕기 위해 하나의 예시를 들어보겠습니다. 예시) 강아지와 고양이..
Object Detection Open API를 배포하기 위해 텐서플로우는 데이터 직렬화로 Google Protocol Buffers를 많이 사용한다. 따라서, 본 내용에서는 내가 Protocol Buffers를 공부한 내용을 기록해보겠다. 오늘의 내용은 아래 목차와 같다. 1. 데이터 직렬화란? 2. Protocol Buffers? 3. Protocol Buffers with Python 4. 참고 블로그 5. 내가 쓴 Code Protocol Buffers를 처음 만난건 위성 사진에서 Ship Object Detection 하기 위해 GIT_HUB에서 RBOXCNN이라는 API를 찾아서 구현해보고 새로운 방법으로 정확도를 높여보는 작업을 했었던 시절이었다. (사실 지금은 작업을 하는..
(Input Size – Pool Size + 2*Padding)/Stride + 1 Conv Output data size = (Input Size – Filtersize + 2*Padding)/Stride + 1 1. conv layer1을 거친 L1 shape의 사이즈는 상기 공식에 따라서 (P = Padding="SAME") (28-3 + 2*P)/1 + 1 = 28 즉, P = 1이되어 입력과 출력의 사이즈를 같게 해준다. Pooling Output data size = (Input Size – Kernelsize + 2*Padding)/Stride + 1 2. MaxPooling Layer를 거친 L1 shape은 상기 공식에 따라서 (28-2 + 2*P)/2 + 1 = 14 P = 0이 된다..