에러 내용
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1323, in _do_call
return fn(*args)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1302, in _run_fn
status, run_metadata)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Nan in summary histogram for: layer1/weight_1
[[Node: layer1/weight_1 = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](layer1/weight_1/tag, layer1/weight/read)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Project/AI/SAI/02. PySource/pi-work/PIAnalClass.py", line 108, in <module>
summary, _ = sess.run([merged_summary, train], feed_dict={X: input, Y: output})
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 889, in run
run_metadata_ptr)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1120, in _run
feed_dict_tensor, options, run_metadata)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1317, in _do_run
options, run_metadata)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1336, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Nan in summary histogram for: layer1/weight_1
[[Node: layer1/weight_1 = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](layer1/weight_1/tag, layer1/weight/read)]]
Caused by op 'layer1/weight_1', defined at:
File "C:/Project/AI/SAI/02. PySource/pi-work/PIAnalClass.py", line 73, in <module>
w_hist = tf.summary.histogram("weight", W)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\summary\summary.py", line 192, in histogram
tag=tag, values=values, name=scope)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_logging_ops.py", line 187, in _histogram_summary
"HistogramSummary", tag=tag, values=values, name=name)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 2956, in create_op
op_def=op_def)
File "C:\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1470, in __init__
self._traceback = self._graph._extract_stack() # pylint: disable=protected-access
InvalidArgumentError (see above for traceback): Nan in summary histogram for: layer1/weight_1
[[Node: layer1/weight_1 = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](layer1/weight_1/tag, layer1/weight/read)]]
텐서플로우로 학습을 진행하는 도중, 위와같은 에러가 발생하였다. 보통 학습중에 Nan이 발생할 때 Learning Rate와 epochs를 적절히 수정하면 되어서, 기존 Learning Rate, 0.01을 0.005로 변경하고 다시 돌렸으나 변함없이 Nan이 발생하였음.
에러로그를 자세히 보니, 텐서보드에서 나는 것으로 보이고, 다른 사람들 컴에는 정상적으로 돌아가는 것을 보니 현재 내 컴터에 너무 많은 리소스가 잡혀져 있다고 판단하여 불필요한 창을 닫고 다시 돌리기로 함
InvalidArgumentError (see above for traceback): Nan in summary histogram for: layer1/bias_1
[[Node: layer1/bias_1 = HistogramSummary[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](layer1/bias_1/tag, layer1/bias/read)]]
첫번째는 weight 부분에서 에러가 발생하였지만, 두번째는 bias에서 에러가 발생하였음. 텐서보드에 값을 전달할 때 bias와 weight값들이 이상하게 전달되는 것으로 보이며, 구글링 하여 아래와 같이 조치를 취함
AS-IS
cost = tf.reduce_mean(-tf.reduce_sum(Y_onehot * tf.log(model), axis=1), name='cost')
TO-BE
cost = tf.reduce_mean(-tf.reduce_sum(Y_onehot * tf.log(model + 1e-8), axis=1), name='cost')
위와 같이 tf.log 부분에 값을 안정화 시켜주는 1e-8이라는 값을 더해주었다. log를 계산할 때, 너무 큰 값(소수점)들을 연산할 때 cpu가 처리를 못하는 것으로 보이며 1e-8로 값의 자리를 고정하여 log를 연산하는 것으로 해결됨.
'Stackoverflow > Tensorflow' 카테고리의 다른 글
[Tensorflow] Could not load dynamic library 'cudart64_101.dll' (0) | 2020.07.31 |
---|---|
Tensorflow, ImportError: DLL load failed while importing _pywrap_tensorflow_internal (0) | 2020.07.27 |
[Keras] Layer model is not connected, no input to return. (0) | 2020.05.20 |
Tensorflow, ImportError: DLL load failed 에러 (0) | 2020.03.24 |
케라스(Keras) 'tensorflow' has no attribute 'get_default_graph' (0) | 2019.11.18 |