목록분류 전체보기 (124)
minhui study
데이터 준비 및 이미지 분석 데이터 준비 데이터 분석 - Label 0의 데이터 갯수 확인 - Label 1의 데이터 갯수 확인 ▷ 데이터 별 갯수 비교 Pillow로 열기 TensorFlow로 열기 Label 얻기 데이터 이미지 사이즈 알기 데이터의 학습에 대한 이해 Batch - Epoch이란? : 전체 sample 데이터를 이용하여 한 바퀴 돌며 학습하는 것을 1회 epoch이라 부른다. 따라서 2 epochs은 전체 sample을 이용하여 두 바퀴를 돌며 학습한 것이다. - Step이란? : Weight와 Bias를 1회 업데이트하는 것을 1 Step이라 부른다. - Batch Size란? : 1회 Step에서 사용한 데이터의 수이다. 따라서 Batch Size가 100이라고 가정하고 Step..
PyTorch : Optimization & Training * 랜덤 생성에 사용되는 시드(seed)는 torch.manual_seed() 명령으로 설정 * batch size : 한 번의 batch(데이터셋)마다 주는 데이터 샘플의 size * iteration : epoch를 나누어서 실행하는 횟수 Preprocess 파이토치에서는 데이터를 좀 더 쉽게 다룰 수 있도록 유용한 도구로서 데이터셋(Dataset)과 데이터로더(DataLoader)를 제공한다. 이를 사용하면 미니 배치 학습, 데이터 셔플(shuffle), 병렬 처리까지 간단히 수행할 수 있다. 기본적인 사용 방법은 Dataset을 정의하고, 이를 DataLoader에 전달하는 것이다. Model - nn.Module은 신경망 모듈로 매개변..
PyTorch Layer 이해하기 예제 불러오기 * PyTorch는 TensorFlow와 다르게 [Batch Size, Channel, Height, Width] 임을 명시해야한다. 각 Layer별 설명 Network 쌓기 위한 준비 ▶ Convolution in_channels: 받게 될 channel의 갯수 out_channels: 보내고 싶은 channel의 갯수 kernel_size: 만들고 싶은 kernel(weights)의 사이즈 detach() method는 그래프에서 잠깐 빼서 gradient에 영향을 받지 않게 한다. output 시각화 준비를 위해 numpy화 Input으로 들어간 이미지 numpy화 ▶ Pooling input을 먼저 앞에 넣고, 뒤에 kernel 사이즈와 stride..
전체적인 학습 과정 Optimizer 및 Training Build Model Preprocess ( 데이터 전처리 ) tf.data 사용 ( 텐서텐서플로우 공식홈페이지에서 말한 expert한 방법 ) MNIST Dataset 준비 RGB로 channel이 이미 3이었다면 차원을 늘려줄 필요가 없지만 gray scale이기 때문에 늘려줘야 한다. ▶ Generate batch data with tf.data from_tensor_slices(): 일반 이미지나 array를 넣을 때 list형식으로 넣어준다. 이미지 경로들이 담긴 리스트 일 수도 있고, raw 데이터의 리스트 일 수도 있다. shuffle() : 한번 epoch이 돌고 나서 랜덤하게 섞을 것인지 정한다. batch(batch_size) :..
Layer Explaination Input Image input으로 들어갈 DataSet을 들여다보면서 시각화까지 CNN, Convolutional Neural Network 이란 무엇일까? 다음의 그림은 CNN의 과정을 잘 나타내는 그림이다. CNN은 Convolution과 Pooling, Dense(또는 Fully Connected)라는 세가지 종류의 계층을 통해 만들어진다. CNN은 크게 Feature Extraction(특징 추출)과 Classification(분류) 2단계로 나뉜다. ● Feature Extraction(특징 추출) : 입력 데이터(input)의 고유한 특징을 찾아가는 단계 ● Classification(분류): 찾은 특징들을 가지고 class를 고르는 단계 ▶ Convolut..
Data Preprocess (MNIST) TensorFlow에서 제공해주는 데이터셋(MNIST) 예제 불러오기 * train_x와 train_y는 모델 학습에 사용되는 훈련 세트이다. * test_x와 test_y는 모델 테스트에 사용되는 테스트 세트이다. * 이미지는 28x28 크기의 Numpy배열이고 픽셀 값은 0과 255사이이다. label은 0에서 9까지의 정수 배열이다. ( 훈련 세트에는 60000개의 레이블이 있고 각 레이블은 0과 9 사이이 정수이다. ) Image Dataset 들여다보기 ● Data 하나만 뽑기 ● 시각화해서 확인 Channel 관련 [Batch Size, Height, Width, Channel] GrayScale이면 1, RGB이면 3으로 만들어줘야 한다. ● 데이터..
Tensorflow 기초 사용법 Tensor 생성 ● tf.constant() - list → Tensor - tuple → Tensor - Array → Tensor Tensor에 담긴 정보 확인 ● shape, data type 확인 - Data Type에 따라 모델의 무게나 성능 차이에도 영향을 줄 수 있다. * Tensor 생성 시 data type을 정해주지 않기 때문에 data type에 대한 혼동이 올 수 있다. ● data type 정의 및 변환 - Numpy에서 astype()을 주었듯이 TesorFlow에서는 tf.cast를 사용한다. ● Tensor에서 Numpy불러오기 난수 생성 ● tf.random.normal - Tensorflow에서 Normal Distribution * Nu..