일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 오류
- LIST
- Selenium
- YOLO
- 컨테이너
- VS Code
- JSON
- 핑거스타일
- error
- 기타 연주
- paramiko
- Docker
- C++
- OpenCV
- 프로그래머스
- Linux
- SSH
- mysql
- windows forms
- label
- Numpy
- 채보
- Visual Studio
- Python
- ubuntu
- pip
- pandas
- C#
- C
- pytorch
- Today
- Total
목록AI (32)
기계는 거짓말하지 않는다
xmin, ymin, xmax, ymax 좌표를 YOLO label 형식인 center x, center y, width, height 로 변환한다. 원본 이미지 해상도를 나누어 0~1 사이의 비율로 표현한다. 다른 형식으로 된 원본 좌표도 계산 식을 변경하여 응용 가능하다. def get_object_params(i_width: int, i_height: int, xmin, ymin, xmax, ymax): image_width = 1.0 * i_width image_height = 1.0 * i_height center_x = xmin + 0.5 * (xmax - xmin) cneter_y = ymin + 0.5 * (ymax - ymin) absolute_width = xmax - xmin abso..
입력 신호의 합을 출력 신호로 변환하는 함수를 활성화 함수(Activation Function)라 한다. 임곗값을 경계로 출력 신호가 바뀐다. 신경망에서는 선형 함수일 경우 신경망의 층을 깊게 하는 의미가 없어진다. 미분하였을 때 항상 동일한 gradient가 나오게 된다. 따라서 비선형 함수를 사용한다. Step Function 입력이 0 초과일 경우 1, 그 외 0 import numpy as np import matplotlib.pyplot as plt def step_function(x : np): return (x > 0).astype(np.int64) x = np.arange(-5.0, 5.0, 0.1) y = step_function(x) plt.plot(x, y) plt.plot([0, 0..
선행: 단층 퍼셉트론 단층 퍼셉트론(Single-Layer Perceptron) AND, OR, NAND 단층 퍼셉트론은 값을 보내는 Input Layer와 출력하는 Output Layer 두 단계로 나뉨 활성화 함수가 사용되지 않으며 입출력 레이어 중간에 Hidden Layer가 추가되면 다층 퍼셉트론(Multi-Layer Perceptron)이 된 machine-does-not-lie.tistory.com 퍼셉트론은 층을 쌓아 다층 퍼셉트론(Multi-Layer Perceptron)을 만들 수 있다. 단층 퍼셉트론의 AND, OR, NAND를 이용한 층을 하나 더 쌓아 XOR 표현(비선형)이 가능하다. def XOR_gate(x1, x2): o1 = OR_gate(x1, x2) o2 = NAND_ga..
Pytorch를 이용한 Multiclass Classification Custom Data feature 5개, label 종류 6개로 이루어진 데이터. 각 label마다 기본 base 값을 토대로 무작위로 생성 (Total 1200개) import pandas as pd dataFrame = pd.read_csv("custom_random_data.csv", delimiter=","); # label 종류 별 feature 표준편차 확인 print(dataFrame.groupby("Name").std()) 표준편차가 큰 F3 feature를 제외한 나머지로 학습을 진행 Custom Dataset, Custom Model class CustomDataset(Dataset): def __init__(sel..
이미지 Augmentation을 할 때 사용할 수 있다. Augmentation은 데이터의 양을 늘리기 위해 원본에 각종 변환을 적용하고 데이터를 늘릴 수 있다. 동일한 이미지들을 조금씩 변형시켜가며 학습하면서 Overfitting을 방지하는 데 도움이 된다. 학습 용도에 맞는 augmentation을 선택해서 사용하여야 한다. 보통 Training 단계에서 많이 사용되지만 Test 단계에서도 사용이 가능하며, 이를 Test Time-Augmentation(TTA)이라고 함 Dataloader를 이용하여 받으면 channel, height, width(c, h, w) shape가 되며 img.cpu().numpy().transpose(1, 2, 0).copy()를 이용하면 OpenCV에서 사용할 수 있는..
PyTorch는 torch.utils.data.Dataset과 torch.utils.data.DataLoader의 두 가지 데이터셋 라이브러리를 제공하며 미리 준비된(pre-loaded) 데이터셋 뿐 아니라 가지고 있는 데이터를 사용할 수 있다. Dataset은 data와 label을 저장한다. DataLoader는 Dataset에 쉽게 접근할 수 있도록 iterable 객체로 만들어 주고 sampler, shuffle, batch_size 등 다양한 매개변수를 설정 할 수 있다. from torch.utils.data import Dataset from torch.utils.data import DataLoader class CustomDataset(Dataset): def __init__(self, ..
Pytorch에서 model을 선언 후 validation 혹은 test를 진행할 때 model.eval()과 with torch.no_grad(): 혹은 함수에 @torch.no_grad를 선언한다. 이 의미는 다음과 같다. no_grad Pytorch의 autograd engine을 사용하지 않는다. 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. 이것은 gradient 계산을 하지 않는다는 의미이다. 역전파(backpropagation)를 진행하지 않고 이렇게 함으로써 계산에 대한 메모리 소비를 줄인다. test 시에는 이 과정을 활용하지 않기 때문에 명시한다. model.eval() 선언한 모델을 평가 모드로 전환한다. training 시에 model.train()을 선언하는 것과 다..
단층 퍼셉트론은 값을 보내는 Input Layer와 출력하는 Output Layer 두 단계로 나뉨 활성화 함수가 사용되지 않으며 입출력 레이어 중간에 Hidden Layer가 추가되면 다층 퍼셉트론(Multi-Layer Perceptron)이 된다. 입력 신호는 각각 고유한 가중치가 곱해지고 각 신호는 출력에 영향을 준다. 단층 퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제만 구현이 가능하므로 XOR 구현은 불가능하다. def AND_gate(x1, x2): w1 = 0.5 w2 = 0.5 b = -0.7 result = x1 * w1 + x2 * w2 + b if result