순환신경망 구현 및 학습¶
In [1]:
import tensorflow as tf
하이퍼 파라미터¶
In [2]:
EPOCHS = 10 # 10번 수행
NUM_WORDS = 10000
모델 정의¶
In [3]:
class MyModel(tf.keras.Model) :
def __init__(self):
super().__init__()
self.emb = tf.keras.layers.Embedding(NUM_WORDS, 16)
# self.lstm = tf.keras.layers.LSTM(32) # 뉴런의 개수
self.gru = tf.keras.layers.GRU(32) # LSTM의 간소한 버전
# self.basic = tf.keras.layers.SimpleRNN(32) # LSTM의 간소한 버전
self.dense = tf.keras.layers.Dense(1, activation = 'sigmoid') # 이진분류 이기때문에 sigmoid
def call(self, x, training = None, mask = None):
x = self.emb(x)
#x = self.lstm(x)
x = self.gru(x)
#x = self.basic(x)
return self.dense(x)
데이터셋 준비¶
In [4]:
imdb = tf.keras.datasets.imdb
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words = NUM_WORDS)
x_train = tf.keras.preprocessing.sequence.pad_sequences(x_train,
value = 0,
padding = 'pre',
maxlen = 32)
x_test = tf.keras.preprocessing.sequence.pad_sequences(x_test,
value= 0,
padding = 'pre',
maxlen = 32 )
train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(1000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)
모델 생성¶
In [5]:
model = MyModel()
model.compile(optimizer='adam',
loss='binary_crossentropy', # 긍정, 부정
metrics=['accuracy'])
학습 루프 동작¶
In [6]:
model.fit(train_ds, validation_data=test_ds, epochs=EPOCHS)
Out[6]:
'Machine Learning > Deep Running' 카테고리의 다른 글
Tensorflow 1.x -> 2.x 로 변환하기 (0) | 2020.07.17 |
---|---|
Tensorflow 1.5 사용시 "Could not flatten dictionary: key Tensor("MultiRNNCellZeroState/BasicLSTMCellZeroState/zeros:0", shape=(int, int ), dtype=float32) is not unique" 오류 발생시 (0) | 2020.07.17 |
딥러닝 프로젝트 결과 보고서 (0) | 2019.12.05 |
Dense 레이어 (Keras)등등 캐글과 CCTV프로젝트로 알게되거나 되짚은 내용 (Tensorflow2.0)(Keras) (0) | 2019.11.16 |
yolo를 이용한 영상 객체인식 (0) | 2019.10.22 |