본문 바로가기
728x90
반응형
SMALL

DNN with Keras72

[TensorFlow] 모델 저장 / 복원 (1) 모델 저장 / 복원 모델 진행 상황은 훈련 중 및 훈련 후에 저장할 수 있다. 즉, 모델이 중단된 위치에서 다시 시작하고 긴 훈련 시간을 피할 수 있다. 저장은 또한 모델을 공유할 수 있고 다른 사람들이 작업을 다시 만들 수 있음을 의미한다. 연구 모델 및 기술을 게시할 때 대부분의 머신러닝 실무자는 다음을 공유한다. 모델을 만드는 코드 모델의 훈련된 가중치 또는 파라미터 이런 데이터를 공유하면 다른 사람들이 모델의 작동 방식을 이해하고 새로운 데이터로 모델을 실험하는데 도움이 된다. (주의: TensorFlow 모델은 코드이며 신뢰할 수 없는 코드에 주의하는 것이 중요하다. 자세한 내용은 TensorFlow 안전하게 사용하기를 참조) 저장 방식 사용 중인 API에 따라 TensorFlow 모델을 저장하.. 2022. 6. 15.
[TensorFlow] 과대적합 / 과소적합 (2) 가중치 규제하기 오캄의 면도날 (Occam's Razor) 이론에서는 어떤 것을 설명하는 두 가지 방법이 있다면 더 정확한 설명은 최소한의 가정이 필요한 가장 "간단한" 설명일 것이다. 이는 신경망으로 학습되는 모델에도 적용된다. 훈련 데이터와 네트워크 구조가 주어졌을 때 이 데이터를 설명할 수 있는 가중치의 조합 (즉, 가능한 모델)은 많다. 간단한 모델은 복잡한 것보다 과대적합되는 경향이 작을 것이다. 여기서 "간단한 모델"은 모델 파라미터의 분포를 봤을 때 엔트로피 (entropy)가 작은 모델이다 (또는 적은 파라미터를 가진 모델). 따라서, 과대적합을 완화시키는 일반적인 방법은 가중치가 작은 값을 가지도록 네트워크의 복잡도에 제약을 가하는 것이다. 이는 가중치 값의 분포를 좀 더 균일하게 만들어.. 2022. 6. 15.
[TensorFlow] 과대적합 / 과소적합 (1) 과대적합 / 과소적합 tf.keras API를 사용한다. 텐서플로 케라스 가이드에서 tf.keras API에 대해 더 많은 정보를 얻을 수 있다. 일정 에포크 동안 훈련하면 검증 세트에서 모델 성능이 최고점에 도달한 다음 감소하기 시작한 것을 알 수 있다. 다른 말로 하면, 모델이 훈련 세트에 과대적합 (overfitting)된 것이다. 과대적합을 다루는 방법이 필요하다. 훈련 세트에서 높은 성능을 얻을 수 있지만 진짜 원하는 것은 테스트 세트 (또는 이전에 본 적 없는 데이터)에 잘 일반화되는 모델이다. 과대적합의 반대는 과소적합 (underfitting)이다. 과소적합은 테스트 세트의 성능이 향상될 여지가 아직 있을 때 일어난다. 발생하는 원인은 여러가지이다. 모델이 너무 단순하거나, 규제가 너무 많.. 2022. 6. 15.
[TensorFlow] 회귀 (Regression) (2) 모델 만들기 모델을 구성한다. 여기에서는 두 개의 완전 연결 (densely connected) 은닉층으로 Sequential 모델을 만든다. 출력 층은 하나의 연속적인 값을 반환한다. 나중에 두 번째 모델을 만들기 쉽도록 build_model 함수로 모델 구성 단계를 감싼다. def build_model(): model = keras.Sequential([ layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]), layers.Dense(64, activation='relu'), layers.Dense(1) ]) optimizer = tf.keras.optimizers.RMSprop(0.001) model.compile(l.. 2022. 6. 15.
[TensorFlow] 회귀 (Regression) (1) 회귀 (Regression) 회귀 (regression)는 가격이나 확률 같이 연속된 출력 값을 예측하는 것이 목적이다. 이와는 달리 분류 (classification)는 여러개의 클래스 중 하나의 클래스를 선택하는 것이 목적이다 (예를 들어, 사진에 사과 또는 오렌지가 포함되어 있을 때 어떤 과일인지 인식하는 것). Auto MPG 데이터셋을 사용하여 1970년대 후반과 1980년대 초반의 자동차 연비를 예측하는 모델을 만든다. 이 기간에 출시된 자동차 정보를 모델에 대한 정보가 있다. 이 정보에는 실린더 수, 배기량, 마력 (horsepower), 공차 중량 같은 속성이 포함된다. 이 예제는 tf.keras API를 사용한다. 자세한 내용은 케라스 가이드를 참고하면 된다. # 산점도 행렬을 그리기 위.. 2022. 6. 15.
[TensorFlow] 기본 분류 (텍스트 분류) (2) 모델 구성 신경망은 층 (layer)을 쌓아서 만든다. 이 구조에서는 두 가지를 결정해야 한다. 모델에서 얼마나 많은 층을 사용할 것인가? 각 층에서 얼마나 많은 은닉 유닛 (hidden unit)을 사용할 것인가? 이 예제의 입력 데이터는 단어 인덱스의 배열이다. 예측할 레이블은 0 또는 1이다. 이 문제에 맞는 모델을 구성한다. # 입력 크기는 영화 리뷰 데이터셋에 적용된 어휘 사전의 크기입니다(10,000개의 단어) vocab_size = 10000 model = keras.Sequential() model.add(keras.layers.Embedding(vocab_size, 16, input_shape=(None,))) model.add(keras.layers.GlobalAveragePooling.. 2022. 6. 15.
[TensorFlow] 기본 분류 (텍스트 분류) (1) 영화 리뷰를 사용한 텍스트 분류 영화 리뷰 (review) 텍스트를 긍정 (positive) 또는 부정 (negative)으로 분류한다. 이 예제는 이진 (binary) 또는 클래스 (class)가 두 개인- 분류 문제이다. 이진 분류는 머신러닝에서 중요하고 널리 사용된다. 여기에서는 인터넷 영화 데이터베이스 (Internet Movie Database)에서 수집한 50,000개의 영화 리뷰 텍스트를 담은 IMDB 데이터셋을 사용한다. 25,000개 리뷰는 훈련용으로, 25,000개는 테스트용으로 나뉘어져 있다. 훈련 세트와 테스트 세트의 클래스는 균형이 잡혀 있다. 즉 긍정적인 리뷰와 부정적인 리뷰의 개수가 동일하다. 모델을 만들고 훈련하기 위해 텐서플로의 고수준 파이썬 API인 tf.keras를 사용.. 2022. 6. 15.
[TensorFlow] 기본 분류 (이미지 분류) (2) 모델 구성 신경망 모델을 만들려면 모델의 층을 구성한 다음 모델을 컴파일한다. 층 설정 신경망의 기본 빌딩 블록은 레이어이다. 레이어는 레이어에 공급된 데이터로부터 표현을 추출한다. 이러한 표현은 당면한 문제에 의미가 있어야 한다. 대부분 딥러닝은 간단한 층을 연결하여 구성된다. tf.keras.layers.Dense와 같은 층들의 가중치 (parameter)는 훈련하는 동안 학습된다. model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10) ]) 이 네트워크의 첫 번째 층인 tf.keras.la.. 2022. 6. 15.
[TensorFlow] 기본 분류 (이미지 분류) (1) 의류 이미지 분류 텐서플로 모델을 만들고 훈련할 수 있는 고수준 API인 tf.keras를 사용한다. # TensorFlow and tf.keras import tensorflow as tf # Helper libraries import numpy as np import matplotlib.pyplot as plt print(tf.__version__) 패션 MNIST 데이터셋 임포트하기 10개의 범주 (category)와 70,000개의 흑백 이미지로 구성된 패션 MNIST 데이터셋을 사용한다. 이미지는 해상도 (28x28 픽셀)가 낮고 다음처럼 개별 옷 품목을 나타낸다. 패션 MNIST는 컴퓨터 비전 분야의 "Hello, World" 프로그램격인 고전 MNIST 데이터셋을 대신해서 자주 사용된다. M.. 2022. 6. 15.
[TensorFlow] TensorSpace TensorSpace TensorSpace는 TensorFlow.js, Three.js 및 Tween.js로 구축된 신경망 3D visualization framework이다. TensorSpace는 layer API를 제공하여 DL layer를 구축하고, 사전 훈련된 모델을 로드하고, 브라우저에서 3D visualization를 생성한다. TensorSpace API를 적용하면 TensorFlow, Keras, TensorFlow.js 등에 의해 구축된 사전 훈련된 모델을 visualization하고 이해하는 것이 더 직관적이다. # Install in the Progressive Framework pip install tensorspacejs npm install @tensorflow/tfjs # o.. 2021. 12. 23.
728x90
반응형
LIST