在訓練模型的過程中,總會進行調參工作。
原則上是,讓機器跑,人抽身出來,做更愉悅身心的事。
此時,就可以想辦法把調參過程中的引數保留下來,等事後再來觀察結果,分析結論。
那麼有什麼打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...