在使用tensorflow的过程中,常常碰到在Graph中添加打印语句print的时候没有任何输出,这是什么问题呢,问题在于tensorflow有一个按级别进行日志输出的机制,可以通过tf.logging.set_verbosity这个API来设置,在tensorflow中有5个不同级别的日志输出条件(可以用print函数得到它们的具体结果),分别是tf.logging.DEBUG(值为10),tf.logging.INFO(值为20),tf.logging.WARN(值为30),tf.logging.ERROR(值为40),tf.logging.FATAL(值为50),默认情况下,即不通过tf.logging.set_verbosity这个API进行显示声明的话,级别为WARN,低于它的INFO、DEBUG日志信息是不会输出的,比如tensor的shape的信息,所以当我们要输出tensor的shape的时候,必须把级别调低,比如设置成为INFO,即在代码的开头部分(确切地说是在代码需要输出日志信息之前)加上tf.logging.set_verbosity(tf.logging.INFO)这条语句即可。
除了print语句之外,我们还可以利用tensorflow的API进行日志信息的输出,比如tf.logging.info(msg, *args, **kwargs)便是将INFO级别的日志信息输出,tf.logging.warn(msg, *args, **kwargs)便是将WARN级别的日志信息输出,以此类推。
网友评论