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

あまり頻繁にパッケージのバージョンが変わるようだと手間なので、バージョンを戻すよう一つセルを追加してもいいかもしれない。 ■

いいなと思ったら応援しよう!