!pip install package_name
!
)는 주피터 노트북 코드셀에서 터미널 명령어를 실행하는 경우 사용GradientTape
) 이용Dense
클래스를 사용하는 밀집층(dense layer):
(샘플수, 특성수)
모양의 2D 텐서로 제공된 데이터셋LSTM
클래스, Conv1D
클래스 등을 사용하는 순환층(recurrent layer):
(샘플수, 타임스텝수, 특성수)
모양의 3D 텐서로 제공된 순차 데이터셋Cons2D
클래스 등을 사용하는 층:
(샘플수, 가로, 세로, 채널수)
모양의 4D 텐서로 제공된 이미지 데이터셋Layer
클래스와 __call__()
메서드¶__call__()
메서드의 역할__call__()
메서드의 대략적 정의¶def __call__(self, inputs):
if not self.built:
self.build(inputs.shape)
self.built = True
return self.call(inputs)
self.built
: 가중치와 편향 벡터가 초기화가 되어 있는지 여부 기억self.build(inputs.shape)
: 입력 배치 데이터셋(inputs
)의 모양(shape) 정보 이용self.call(inputs)
: 출력값 계산(forward pass)Dense
클래스처럼 입력 데이터에 정보 미리 요구하지 않음from tensorflow import keras
from tensorflow.keras import layers
model = keras.Sequential([
layers.SimpleDense(512, activation="relu"),
layers.SimpleDense(10, activation="softmax")
])
Sequential
모델Dense
층을 이용한 Sequential
모델relu()
등의 활성화 함수를 연속적으로 적용한 데이터 표현 변환모델의 구조를 정의한 후에 아래 세 가지 설정을 추가로 지정해야 함.
fit()
메서드 작동법¶모델을 훈련시키려면 fit()
메서드를 적절한 인자들과 함께 호출해야 함.
Dataset
객체 사용epochs
): 전체 훈련 세트를 몇 번 훈련할 지 지정batch_size
): 배치 경사하강법에 적용될 배치(묶음) 크기 지정아래 코드는 앞서 넘파이 어레이로 생성한 (2000, 2) 모양의 양성, 음성 데이터셋을 대상으로 훈련한다.
훈련된 모델이 완전히 새로운 데이터에 대해 예측을 잘하는지 여부를 판단하려면 전체 데이터셋을 훈련 세트와 검증 세트로 구분해야 함.
model.fit(
training_inputs,
training_targets,
epochs=5,
batch_size=16,
validation_data=(val_inputs, val_targets)
)