Tensorflow 2.0 공식 가이드에서 권장하는 방법은 아래 두 가지이다.
model.fit()
, model.evaluate()
, model.predict()
)GradientTape
객체를 활용해 직접 구현하는 방법두 번째의 경우는 첫 번째의 경우보다 일일히 구현해야 하지만, 좀 더 복잡한 로직을 구현할 수 있다는 장점이 있다.
keras 모델 객체는 여러 method가 내장돼 있다. 따라서 이 내장 메서드를 사용하면 된다.
손실 함수(loss function), Opimizer, 평가에 사용될 지표(metric) 등 정의하기
moel.compile(optimizer=tf.keras.optimizers.Adam(),
loss=tf.keras.losses.CategoricalCrossentropy(),
metrics=[tf.keras.metrics.Accuracy()])
혹은 문자열 형태로 지정
moel.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy])
model.fit(x_train, y_train, batch_size=64, epochs=3, validation_data=(x_val, y_val)
텍스트의 긍정/부정을 예측하는 감정 분석(Sentiment Analysis) 모델을 구축해보자.
우선 각 단어로 구성된 입력값은 임베딩된 벡터로 변형.
이후 각 벡터를 평균해서 하나의 벡터로 만들기.
이후 하나의 은닉층을 거친 후 하나의 결과값을 뽑는 구조.
마지막으로 sigmoid 적용해 0과 1사이 값 구하기.
출처: 텐서플로2와 머신러닝으로 시작하는 자연어 처리