작성
·
183
0
안녕하세요? 알찬 교육에 정말 감사드립니다.
trainer(), validation(), tester() 함수를 정의해서 학습을 시킬때... 그냥 학습시키면 작동이 되는데, @tf.function 데코레이터만 붙여서 사용하면 ValueError 예외가 발생하는데요, 집의 컴퓨터에서 돌릴때와 코랩에서 돌릴 때 동일한 issue 가 생깁니다.
만약 for epoch in range(EPOCHS): 이후의 코드 대신에
와 같이 model.compile 이나 model.fit 을 통해서 학습시키는 경우에는 @tf.function 데코레이터가 제대로 작동합니다;
제가 만든 아래 코드 중에서 뭐가 문제일까요?? ㅠㅠ 그리고 학습 데이터 뿐아니라 validation 이나 test data 도 100% 예측성능이 나와서 제대로 한것이 맞나도 모르겠네요 ㅠㅠ 코드를 한번 점검해 주실 수 있으실지.... 문의 드립니다.
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-1-896c4f98ef4d> in <module>() 120 121 for epoch in range(EPOCHS): --> 122 trainer() 123 validation() 124
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs) 975 except Exception as e: # pylint:disable=broad-except 976 if hasattr(e, "ag_error_metadata"): --> 977 raise e.ag_error_metadata.to_exception(e) 978 else: 979 raise
ValueError: in user code: <ipython-input-1-896c4f98ef4d>:91 trainer * for images, labels in train_ds: /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:424 for_stmt iter_, extra_test, body, get_state, set_state, symbol_names, opts) /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:719 _tf_dataset_for_stmt _verify_loop_init_vars(init_vars, symbol_names) /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:193 _verify_loop_init_vars raise ValueError(error_msg) ValueError: 'predictions' must be defined before the loop.
--- 아래 부터 full code 입니다 ---
아래 결과가 @tf.function 를 지우고 돌렸을 때의 결과 입니다. 정상적으로 학습이 되는데
Validation Accuracy 나 Test Accuracy 가 100% 로 나오는데... 원래 MNIST 정도의 데이터는 이렇게 잘 맞는 건가요?? ;;
=================
Epoch 1 Train Loss : 0.2663 / Train Accuracy : 96.88 Validation Loss : 0.1054 / Validation Accuracy : 96.88 Epoch 2 Train Loss : 0.0721 / Train Accuracy : 100.00 Validation Loss : 0.0400 / Validation Accuracy : 100.00 Epoch 3 Train Loss : 0.0665 / Train Accuracy : 100.00 Validation Loss : 0.0373 / Validation Accuracy : 100.00 Epoch 4 Train Loss : 0.0575 / Train Accuracy : 96.88 Validation Loss : 0.0157 / Validation Accuracy : 100.00 Epoch 5 Train Loss : 0.1948 / Train Accuracy : 90.62 Validation Loss : 0.0192 / Validation Accuracy : 100.00 Epoch 6 Train Loss : 0.0520 / Train Accuracy : 96.88 Validation Loss : 0.0250 / Validation Accuracy : 100.00 Epoch 7 Train Loss : 0.0365 / Train Accuracy : 100.00 Validation Loss : 0.0134 / Validation Accuracy : 100.00 Epoch 8 Train Loss : 0.0342 / Train Accuracy : 100.00 Validation Loss : 0.0166 / Validation Accuracy : 100.00 Epoch 9 Train Loss : 0.0837 / Train Accuracy : 96.88 Validation Loss : 0.0062 / Validation Accuracy : 100.00 Epoch 10 Train Loss : 0.0166 / Train Accuracy : 100.00 Validation Loss : 0.0112 / Validation Accuracy : 100.00 TEST Test Loss : 0.0096 / Test Accuracy : 100.00
답변