Deeplabのログ制御(for tf1.1.5)
Google Colaboratoryは素晴らしいのだけど、ちょいちょいパッケージがアップデートされて動きが変わってしまう。
先日もDeeplabで学習してたらdeprecated(非推奨)が復活してしまい、tensorflowのバージョンを確認したら案の定1.1.4から1.15.0rc3に…。
deprecatedを抑制するために追加したのは下記。
from tensorflow.python.util import deprecation_wrapper
deprecation_wrapper._PER_MODULE_WARNING_LIMIT = 0
from tensorflow.python.util import deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False
まずはtensorflow.python.util.deprecation_wrapperを見てみると、
■1.1.4
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import sys
import types
from tensorflow.python.platform import tf_logging as logging
from tensorflow.python.util import tf_decorator
from tensorflow.python.util import tf_inspect
from tensorflow.python.util import tf_stack
from tensorflow.tools.compatibility import all_renames_v2
_PER_MODULE_WARNING_LIMIT = 5
■1.15.0rc3
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from tensorflow.python.util import module_wrapper
# For backward compatibility for other pip packages that use this class.
DeprecationWrapper = module_wrapper.TFModuleWrapper
移動されてる。
tensorflow.python.util.module_wrapperを確認すると、
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import importlib
import sys
import types
from tensorflow.python.platform import tf_logging as logging
from tensorflow.python.util import tf_decorator
from tensorflow.python.util import tf_inspect
from tensorflow.python.util import tf_stack
from tensorflow.tools.compatibility import all_renames_v2
_PER_MODULE_WARNING_LIMIT = 1
_PER_MODULE_WARNING_LIMITを発見した。
だから以下のように修正すれば再びdeprecatedを抑制できる。
from tensorflow.python.util import module_wrapper
module_wrapper._PER_MODULE_WARNING_LIMIT = 0
from tensorflow.python.util import deprecation
deprecation._PRINT_DEPRECATION_WARNINGS = False
あまり頻繁にパッケージのバージョンが変わるようだと手間なので、バージョンを戻すよう一つセルを追加してもいいかもしれない。 ■