6. Jupyter Notebook 실행
윈도우 시작 메뉴 > Anaconda Prompt 실행
> Activate py35
> jupyter notebook
Step-1
“12편 Python + Pandas 활용” 소스 파일 오픈 및 실행
Jupyter Home > 12.Python&Pandas 활용.ipynb > 열기
Cell 메뉴 > Run All
Step-2
Training 및 Test 데이터 생성
Normal = df[df.result == 0]
Bad = df[df.result == 1]
X_train_normal = Normal.sample(frac=0.8)
X_test_bad = Bad.sample(frac=0.2)
X_train_normal = X_train_normal.drop(['result'], axis=1)
X_test_bad = X_test_bad.drop(['result'], axis=1)
inputX_train_normal = X_train_normal.as_matrix()
inputX_test_bad = X_test_bad.as_matrix()
Step-3
10. 변수 초기화 및 학습모델 저장 설정
init = tf.global_variables_initializer()
save_model = os.path.join("D:model", 'saved_autoencoder_model.ckpt')
saver = tf.train.Saver()
Step-10
손실값 및 최적화 정의
loss = tf.reduce_mean(tf.pow(x_true - x_pred, 2))
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss)
Step-9
11. 오토인코더 신경망 학습 및 모델 생성
with tf.Session() as sess:
sess.run(init)
for i in range(1, epoch_steps+1):
for batch in range(int(n_batch/batch_size)):
batch_x=inputX_train_normal[batch*batch_size : (1+batch)*batch_size]
_, l = sess.run([optimizer, loss], feed_dict={X: batch_x})
if i % display_step == 0 or i==1:
print('Epoch %i: Minibatch Loss: %f' % (i, l))
print('### AutoEncoder Training/Model 완료 ###')
save_path = saver.save(sess, save_model)
print("Model saved: %s" % save_path)
Step-11
12. 오토인코더 모델 테스트
save_model = os.path.join('D:model', 'saved_autoencoder_model.ckpt')
saver = tf.train.Saver()
with tf.Session() as sess:
saver.restore(sess, save_model)
idx1 = 10
result1 = sess.run(decoder_op, feed_dict={X: inputX_train_normal [[idx1]]})
print("### 정상 데이터 ###")
print("오토인코더 입력 값:", np.around(inputX_train_normal[[idx1]], decimals=2) , ",sum: %0.2f" %
np.sum(inputX_train_normal[idx1]))
print("오토인코더 출력 값:", np.around(result1.astype(float), decimals=2), ",sum: %0.2f" %
np.sum(result1[0]))
print("")
print("------------------------------------------------------------------------------------------")
print("")
idx2 = 20
result2 = sess.run(decoder_op, feed_dict={X: inputX_test_bad[[idx2]]})
print("### 비정상 데이터 ###")
print("오토인코더 입력 값:", np.around(inputX_test_bad[[idx2]],decimals=2)
, ",sum: %0.2f"% np.sum(inputX_test_bad[idx2]) )
print("오토인코더 출력 값:", np.around(result2.astype(float),decimals=2)
, ",sum: %0.2f"% np.sum(result2[0]))
Step-12
13. 실무로 배우는 빅데이터 기술
확장하기 13편–Tensorflow Autoencoder
[ 강의자료 ]
동 영 상: 유튜브 www.youtube.com
실습문서: 슬라이드쉐어 www.slideshare.net