1. 程式人生 > 其它 >pytorch程式碼學習--類名作為函式引數傳遞&&其他語法知識

pytorch程式碼學習--類名作為函式引數傳遞&&其他語法知識

  我的python程式碼能力真的相當之差,幾乎是一邊看一邊學。

  起因是《Neural Architecture Search as Program Transformation》這篇論文的學習,其中有幾個點我不是很清楚,現在把學習到的東西記錄一下。

  程式碼在https://github.com/jack-willturner/nas-as-program-transformation-exploration

  1.__init__.py的作用

  2.

  這段程式碼的super是為了獲取torch.nn.Moudle這個父類方法。

  3.上圖當中的def __init__()建構函式相關問題。

  4. 最重要的一點,python當中的類名作為函式引數傳遞的問題。

  這裡的類名BasicBlock只在

  

  類ResNet的建構函式當中被呼叫。

  ResNet的建構函式如下圖所示:

  

  可見類名BasicBlock傳遞進來成為了block這個東西。

  block又被ResNet當中的這個函式被呼叫:

  

  最終可以看到

  

  BasicBlock類需要的三個引數in_planes,planes,layer_config最終被Resnet當中的這些引數所滿足。

  所以繞了很大彎路,在C++當中簡直不敢想象。

  其實之前的https://www.cnblogs.com/theda/p/15367083.html這篇部落格裡,第一篇程式碼:

  

  已經例項化了類Net,但是例項化之後的類仍然能接收引數!