theano function調試有什麼好方法?
02-06
在用pdb和debug mode感覺好難用。
theano調試確實不方便,但theano.config.compute_test_value是個很好用的東西。Debugging Theano: FAQ and Troubleshooting已經給出了一些例子,寫模型的時候給定義的tensor variable賦予特定的test value(x.tag.test_value=...), 在函數編譯之前你就可以發現一些可能存在的錯誤了。引用tutorial里的話,"Sources of error can thus be identified with much more precision and much earlier in the compilation pipeline."
我個人的經驗是:自帶的調試 真一個老的不好用。
盡量保證每個函數的輸入和輸出經過太多的變換,比如y=f(g(h(k(x))))最好是 a=k(x),b=h(a),c=g(b),y=f(c), 寫一個測試一個發現不對 馬上檢查對應步驟就好了。。
theano的調試普遍覺得難用,個人經驗建議以下方法:對於語法正確性,可以從最簡單的示例模塊一點點往上加,哪一步出錯很容易發現對於演算法正確性,可以用numpy建立toy dataset來驗證. 添加一個watch當做function的輸出, 把要監控的變數放到watch里,就可以像matlab一樣調試theano啦. (不過就是麻煩了些)
所以我轉向了torch, debug so easy 哈哈哈
感覺很不好調,我是用numpy中與theano中對應的函數重寫一遍代碼進行測試的。但這樣很難受。請高手們多多指點。
推薦閱讀: