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設定日誌級別的幾種方式小結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。