1. 程式人生 > 程式設計 >TensorFlow設定日誌級別的幾種方式小結

TensorFlow設定日誌級別的幾種方式小結

TensorFlow中的log共有INFO、WARN、ERROR、FATAL 4種級別。有以下幾種設定方式。

1. 通過設定環境變數控制log級別

可以通過環境變數TF_CPP_MIN_LOG_LEVEL進行設定,TF_CPP_MIN_LOG_LEVEL的不同值的含義分別如下:

Level Level for Humans Level Description
0 DEBUG all messages are logged (Default)
1 INFO INFO messages are not printed
2 WARNING INFO and WARNING messages are not printed
3 ERROR INFO,WARNING,and ERROR messages are not printed

設定TF_CPP_MIN_LOG_LEVEL的值,遮蔽該級別以及更低級別的日誌,如:設定為1,表示遮蔽自己級別的INFO和更低級別的DEBUG日誌。

設定環境變數,有兩種方式,一種是永久設定,一種臨時性設定。

永久設定

修改環境變數:將export TF_CPP_MIN_LOG_LEVEL=1加入到Linux的 ~/.bashrc、~/.zshrc或/etc/profile配置檔案中,其中加入到/etc/profile檔案是對所有使用者都有效。可以在配置檔案中設定為1或者2,不建議設定為更高級別的3.

臨時性設定

終端中輸入export TF_CPP_MIN_LOG_LEVEL="1"

python程式碼實現方法

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = "1"

ps:os.environ是一個mapping,一系列的鍵、值對儲存在該mapping中,系統環境資訊全部儲存在該mapping中。如果是print(os.environ['HOME'])這樣輸出資訊,呼叫的是getenv("HOME")函式,如果環境變數被改變,將會呼叫putenv()函式進行修改。

python程式碼中一種錯誤的設定方法:

os.system("export TF_CPP_MIN_LOG_LEVEL=1") – 錯誤用法

不能使用的原因 — 不能通過shell的子程序改變shell的環境變數 — 具體可以參考 stackoverflow alex的回答。

2.通過 tf.logging 模組進行設定 – 推薦

python程式碼中可以新增如下部分程式碼進行設定。

import tensorflow as tf
tf.logging.set_verbosity(tf.logging.ERROR)

tf.logging.ERROR可以換成 {DEBUG,INFO,WARN,ERROR,FATAL} 中的任何一個。

這裡有所不同,設定ERROR,將輸出ERROR、FATAL級別日誌。

程式碼測試:

def main(self): 
  tf.logging.set_verbosity(tf.logging.ERROR)
  tf.logging.debug("debug")
  tf.logging.info("info")
  tf.logging.warning("warning")
  tf.logging.error("error")
  tf.logging.fatal("fatal")
  
if __name__ == '__main__':
  tf.app.run()

執行上述程式碼,可以獲得ERROR、FATAL級別日誌。

TensorFlow設定日誌級別的幾種方式小結

以上這篇TensorFlow設定日誌級別的幾種方式小結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。