在深度學習中,有時候建立模型總是要先建立乙個class(類),而在初始化類的時候__init__的第乙個引數是self,那麼這個self有什麼作用呢?
對於乙個類來說,在建立例項的時候,如果需要新增比較多的引數,那麼self的作用就展現出來了,例如,在構建乙個生成模型時,在定義init方法的時候,可以將輸入雜訊的維度、卷積維度以及輸出的size等屬性新增進去,如下所示:
class generator(nn.module):
def __init__(self, noise_dim=100, cov_dim=32, output_size=64):
super(generator, self).__init__()
請注意,在建立init方法的時候,其第乙個引數一定是self,這表明init建立的是例項本身,後面我們自己建立的屬性是可以通過self來呼叫的。
但是當你自己新增了引數時,在進行例項化的時候,就不能傳入空引數了,需要和你自己定義的相匹配,自己定義了多少引數,就在例項化時傳入多少引數,但是self不需要傳入,因為python直譯器會自己把例項引數新增進去。例項化如下所示,和上面的是相對應的。
g = generator(noise_dim = 100, g_img_size=64)
其實,在類中定義方法,除了第乙個引數是self之外,和平常定義乙個普通方法沒什麼太大區別。
python在類中建立執行緒
import threading import time class mythread threading.thread def run self for i in range 3 time.sleep 1 msg i m self.name print msg def saypoem self p...
python類呼叫方法 在Python類中呼叫方法
您尚未建立上述類的物件。類中的任何函式 方法都只能由該類的物件訪問。有關物件導向程式設計基礎的詳細資訊,請檢視this頁。同時,要使其生效,請按以下方式定義類 class time def init self,x none,y none,z none self.hour x self.minute ...
Python建立類時錯誤 型別錯誤 類無引數
python是我第一門接觸到的物件導向的語言,很久前學過pyhton的基礎語法,和大多數人一樣,學了基礎過後了解了很多方向,學過一點基於requests的爬蟲,也了解過基於pygame的遊戲開發相關知識,也了解過python的numpy科學計算庫。到現在也有一段時間了,也差不多都忘了,感覺還是個小白...