모델 실습 6

tf.keras를 사용한 Neural Style Transfer

이번 포스팅은 딥러닝을 사용하여 원하는 이미지를 다른 스타일의 이미지로 구성하는 법을 공부하고 정리했다. TensorFlow공식 홈페이지에 있는 문서와 코드를 보고 공부했다. 이 기법은 Neural Style Transfer로 알려져있으며 Leon A.Gatys의 논문 A Neural Algorithm of Artistic Style에 잘 기술되어 있다. Neural style transfer은 콘텐츠 (content) 이미지와 (유명한 작가의 삽화와 같은) 스타일 참조 (style reference) 이미지를 이용하여, 콘텐츠 이미지의 콘텐츠는 유지하되 스타일 참조 이미지의 화풍으로 채색한 것 같은 새로운 이미지를 생성하는 최적화 기술이다. import tensorflow ..

모델 실습 2021.06.16

5. 심층 신경망 실습

CIFAR10 이미지 데이터셋에 심층 신경망을 훈련해보자. 먼저 100개의 뉴런을 가진 은닉층 20개로 심층 신경망을 만든다. He 초기화와 ELU 활성화 함수를 사용한다. from tensorflow import keras model=keras.models.Sequential() model.add(keras.layers.Flatten(input_shape=[32,32,3])) for _ in range(20): model.add(keras.layers.Dense(100, activation='elu', kernel_initializer='he_normal')) 그 다음 Nadam 옵티마이저와 조기 종료를 사용하여 CIFAR10 데이터셋에 이 네트워크를 훈련하자. 이 데이터셋은 10개의 클래스와 32x3..

모델 실습 2021.06.07

4. 다층 퍼셉트론 실습 (학습률을 바꿔가면서 학습하기)

심층 다층 퍼셉트론을 MNIST 데이터셋에 훈련해보자(keras.datasets.mnist.load_data() 함수를 사용해 데이터를 적재할 수 있다). 또한 최적의 학습률을 찾아보고 체크포인트를 저장하고, 조기종료를 사용하고, 텐서보드를 사용해 학습 곡선을 그려보자. from tensorflow import keras (X_train_full,y_train_full),(X_test,y_test)= keras.datasets.mnist.load_data() X_valid,X_train=X_train_full[:10000]/255.0,X_train_full[10000:]/255.0 y_valid,y_train=y_train_full[:10000],y_train_full[10000:] X_test=X_te..

모델 실습 2021.06.03

3. 비지도학습 - 실습

전통적인 올리베티 얼굴 데이터셋은 64x64 픽셀 크기의 흑백 얼굴 이미지 400개를 담고 있다. 각 이미지는 4096크기의 ID 벡터로 펼쳐져 있다. 사람 40명의 사진을 10장씩 찍은 것이다. 어떤 사람의 사진인지 예측하는 모델을 훈련하는 것이 일반적이다. sklearn.datasets.fetch_olivetti_faces() 함수를 사용해 데이터셋을 불러오고 훈련 세트, 검증 세트, 테스트 세트로 나눈다.(이 데이터셋은 이미 0에서 1사이로 스케일이 조정되어 있다.). 이 데이터셋은 매우 작으니 계층적 샘플링을 사용해 각 세트에 동일한 사람의 얼굴이 고루 섞이도록 하는 것이 좋다. 그다음 k-평균을 사용해 이미지를 군집해보자. 적절한 클러스터 개수를 찾아보고 클러스터를 시각화해보자. from skl..

모델 실습 2021.05.30

2. 앙상블 학습과 랜덤 포레스트 - 실습

MNIST 데이터를 불러들여 훈련 세트, 검증 세트, 테스트 세트로 나눈다. 그런 다음 랜덤 포레스트 분류기, 엑스트라 트리 분류기, SVM 분류기 같은 여러 종류의 분류기를 훈련시킨다. 그리고 검증 세트에서 개개의 분류기보다 더 높은 성능을 내도록 이들을 간접 또는 직접 투표 방법을 사용해 앙상블로 연결해보자. 앙상블을 얻고 나면 테스트 세트도 확인해보자. from sklearn.datasets import fetch_openml mnist=fetch_openml('mnist_784',version=1) from sklearn.model_selection import train_test_split X_train_val,X_test,y_train_val,y_test=train_test_split( mni..

모델 실습 2021.05.22

1. 서포트 벡터 머신(SVM) 실습

MNIST 데이터셋에 SVM 분류기를 훈련시켜보자. SVM 분류기는 이진 분류기라서 OvR전략을 사용해 10개의 숫자를 분류해야 한다. 처리 속도를 높이기 위해 작은 검증 세트로 하이퍼파라미터를 조정하는 것이 좋다. 먼저 데이터셋을 로드하고 훈련 세트와 테스트 세트로 나눈다. train_test_split() 함수를 사용할 수 있지만 보통 처음 60,000개의 샘플을 훈련 세트로 사용하고 나머지는 10,00개의 테스트 세트로 사용한다. from sklearn.datasets import fetch_openml import numpy as np mnist=fetch_openml('mnist_784',version=1,cache=True) X=mnist['data'] y=mnist['target'].asty..

모델 실습 2021.05.20