TensorFlowでは、print命令を使って、標準出力にデータを記載できるが、tf.logging packageを用いれば、5つのログレベル(DEBUG, INFO, WARN, ERROR, FATAL)を含めた様々な出力形式が選べる。ただし、ログは、ファイルではなくて、標準出力に記載されることは変わりない。
ログレベルの指定は、
1 |
tf.logging set_verbosity |
を用いて、
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import tensorflow as tf tf.logging.set_verbosity(tf.logging.INFO) a = tf.constant(1, name='first') b = tf.constant(2, name='second') sum = a + b; with tf.Session() as sess: output = sess.run(sum) tf.logging.info('Output: %f', output) INFO:tensorflow:Output: 3.000000 |
ログに関する命令コードには、以下のようなものがある。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
set_verbosity(level) debug(msg, *args, **kwargs) info(msg, *args, **kwargs) warn(msg, *args, **kwargs) error(msg, *args, **kwargs) fatal(msg, *args, **kwargs) flush() log(level, msg, *args, **kwargs) log_if(level, msg, condition, *args) log_first_n(level, msg, n, *args) log_every_n(level, msg, n, *args) |
たとえば、log_if命令を用いると、
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import tensorflow as tf tf.logging.set_verbosity(tf.logging.INFO) a = tf.constant(1, name='first') b = tf.constant(2, name='second') sum = a + b; with tf.Session() as sess: output = sess.run(sum) tf.logging.log_if(tf.logging.INFO, 'Output: %f', (output > 2), output) INFO:tensorflow:Output: 3.000000 |
というように出力制御が可能となる。