深度學習系統中的log問題

2021-09-23 23:50:05 字數 1105 閱讀 1461

在訓練模型的過程中,總會進行調參工作。

原則上是,讓機器跑,人抽身出來,做更愉悅身心的事。

此時,就可以想辦法把調參過程中的引數保留下來,等事後再來觀察結果,分析結論。

那麼有什麼打log的方法呢?

1. 首先是利用第三方工具,logging,去打log。

但這種方法要求你在**中要定義相應的logging。

比如logging.info("這是一條log")

假設用第三方的**,人家用print輸出,那你就毫無辦法了。

2. 其次是利用自帶的工具,比如tensorflow中自己會自帶一些打log的工具。

而我這一次使用的chainer,也有自己的log元件。

trainer.extend(extensions.logreport(log_name="log_file.txt"))
可是這個log元件,並不好用,它只能儲存上一次的log_file,也就是最近一次執行的log。
我沒有在文件裡發現解決只能儲存最後一次的方案,並且,其輸出模式受到限制。或許重寫是個好辦法。

3.   第三種是檔案重定向的方法。

比如說用》 方法,將print的資訊直接輸出到文件中去。

但這種方法付出的代價是不能在輸出中看到print的資訊,那有的時候,我們想要同時觀察,那就只能開啟log檔案。

4.   第四種是tmux的方法。

用tmux這個工具可以解決這個問題,因為我們可以用control + b +【 去檢視相應的儲存區的記錄。

可惜,這個記錄是有限的,大夥可以調控,2000行,5000行都可以。如果超了,就沒記錄了。

那麼只要將所有記錄儲存在檔案中就行了。

在進入tmux的某個session之後,用如下**,就可以將其儲存了。

記住,一定要在前面加tmux,並且,一定要有exec cat >> ,直接的路徑,在我這裡,是沒有儲存的。(或許有,在整個計算機裡搜尋一下,我沒有做這件事。)

tmux pipe-pane -o "exec cat >> /home/guowei/contextual_augmentation/log1.txt"
祝好: ****:[email protected]

深度學習問題積累中。。。

為什麼用交叉熵代替二次代價函式 感覺其實主要就兩點 深層表示帶來的高階語義 單層雖也可以擬合任意函式,但是相對而言參數量指數級上公升,太大,且不好訓練 為什麼神經網路選擇了 深度 單層神經網路 多層感知機 深度學習的總結 吳恩達深度學習筆記 24 為什麼要使用深度神經網路?詳解機器學習中的梯度消失 ...

深度學習中的數值計算問題

連續數學在數字計算機上的根本困難 我們需要通過有限數量的位模式來表示無限多的實數。計算機在表示實數時總會引入一些近似誤差,這些捨入誤差會導致上溢和下溢問題。舉例 softmax函式 sof tmax x i exi jn exj softmax x frac e softma x x i jn ex...

做深度學習訓練記錄log檔案

import logging import time 建立乙個logger logger logging.getlogger mylogger logger.setlevel logging.debug 建立乙個handler,用於寫入日誌檔案 timestamp str int time.time...