比起寫好所有的程式後整體除錯,單元測試顯示了它的優勢,比如在深度學習的**中,比較重要的兩大塊是:資料集模組、網路結構模組。pytorch中,寫好資料集模組時,會測試『__getitem__
功能,這個時候可以用到unittest
和ipython
。
以下時今天寫的要給關於眼底的資料集測試:
import sys
import unittest
# 如果沒有此條,會出錯
# from config import cfg
from data.transforms import build_transforms
from data.build import build_dataset
from data import make_data_loader
"""測試資料集
"""class testdataset(unittest.testcase):
def test_dataset(self):
train_transform = build_transforms(cfg, true)
train_set = build_dataset(cfg, train_transform, true)
from ipython import embed
embed()
if __name__ == "__main__":
unittest.main()
需要什麼學什麼!!!這個很重要!!所以,這裡不是系統的介紹unittest,只是帶一筆
了解4個概念就可以用la
編寫單元測試時,需要編寫乙個測試類,這個測試類繼承於unittest.testcase
類中的測試方法必須以test
開頭,不以test
開頭的方法,測試時候不會執行。
如何執行單元測試??
直接在命令列中執行python -m unittest mydict_test
, 推薦使用這種方法。
程式末尾新增,以下**,然後執行指令碼**即可
if __name__ == "__main___":
unittest.main()
單元測試中兩個特殊的方法,setup(), teardown()
,在執行test_
方法前,先執行setup()
,執行test_
之後,執行teardown()
方法。(這個試一下就很好理解)
前面**中的embed()
,程式執行到embed()
時就會進入ipython互動介面,此時可以在命令列中,檢視程式中的變數,ctrl+d
退出互動介面,程式繼續執行,所以這種方法相當管用。其他關於ipyhon知識,以後遇到在說吧!!
關於除錯的其他的方法,還有logging
,pdb
,或者時ide中間的端點,下個星期會 總結一下logging、pdb,方法有好幾種,每種功能性其實差不多,最主要的熟悉一種自己喜歡的。
2019/7/9日
每日遇到的問題都記錄啦,乙個星期、或者兩個星期彙總一次
lua模組編寫
lua允許我們編寫自定義模組以便後面呼叫,在編寫模組之前我們先認識2個知識點 1.lua語言中陣列,模組其實都是table 2.在之前的lua基本語法裡我們知道函式是可以賦值給變數的 好,我們新建乙個檔案my.lua 如下 local my my.name 滄浪水 my.url www.freecl...
Python Jupyter 編寫模組
1.在jupyter notebook新建乙個python檔案 2.在檔案裡定義乙個名為say hi的函式,並且將檔案重新命名為mymodule1 3.儲存之後可看到當前資料夾多了乙個mymodule1.ipynb 4.開啟mymodule1.ipynb檔案,選擇file download as p...
編寫優秀的單元測試(五)編寫測試
準備 執行 斷言 arrange act assert 這個流程是 準備用於測試的物件 觸發執行 對輸出進行斷言 怎麼寫測試是個問題,寫多少測試,也一直是個問題。這裡我們給出乙個建議 檢查行為,而非實現。具體來說,我們應該跳出具體的實現,把關注點放在我們期望類有怎樣的行為上,不應該讓實現主導測試,而...