<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
記錄使用pytorch構建網路模型過程遇到的點
各個模組和網路模型的輸入, 一定要是tensor
張量;
可以用一個列表存放多個張量。
如果是張量維度不夠,需要升維度,
可以先使用 torch.unsqueeze(dim = expected)
然後再使用torch.cat(dim )
進行拼接;
需要傳遞梯度的資料,禁止使用numpy
, 也禁止先使用numpy,然後再轉換成張量的這種情況出現;
這是因為pytorch的機制是隻有是 Tensor
張量的型別,才會有梯度等屬性值,如果是numpy這些類別,這些變數並會丟失其梯度值。
class ex: def __init__(self): pass
__init__
方法必須接受至少一個引數即self,
Python中,self是指向該物件本身的一個參照,
通過在類的內部使用self變數,
類中的方法可以存取自己的成員變數,簡單來說,self.varname的意義為”存取該物件的varname屬性“
當然,__init__()
中可以封裝任意的程式邏輯,這是允許的,init()方法還接受任意多個其他引數,允許在初始化時提供一些資料,例如,對於剛剛的worker類,可以這樣寫:
class worker: def __init__(self,name,pay): self.name=name self.pay=pay
這樣,在建立worker類的物件時,必須提供name和pay兩個引數:
b=worker('Jim',5000)
Python會自動呼叫worker.init()方法,並傳遞引數。
細節參考這裡init方法
此時,可以使用python自帶的內建函數 setattr()
, 和對應的getattr()
setattr(object, name, value)
object – 物件。
name – 字串,物件屬性。
value – 屬性值。
對已存在的屬性進行賦值:
>>>class A(object):
... bar = 1
...
>>> a = A()
>>> getattr(a, 'bar') # 獲取屬性 bar 值
1
>>> setattr(a, 'bar', 5) # 設定屬性 bar 值
>>> a.bar
5
如果屬性不存在會建立一個新的物件屬性,並對屬性賦值:>>>class A():
... name = "runoob"
...
>>> a = A()
>>> setattr(a, "age", 28)
>>> print(a.age)
28
>>>
setattr() 語法
setattr(object, name, value)
object – 物件。
name – 字串,物件屬性。
value – 屬性值。
注意到, 在python的 __init__()
函數中, self
本身就是該類的物件的一個參照,即self是指向該物件本身的一個參照,
利用上述這一點,當在神經網路中,
需要給多個屬性進行範例化時,
且這多個屬性使用的是同一個類進行範例化.
則使用 setattr(self, string, object1)
新增屬性;
class Temporal_GroupTrans(nn.Module): def __init__(self, num_classes=10,num_groups=35, drop_prob=0.5, pretrained= True): super(Temporal_GroupTrans, self).__init__() conv_block = Basic_slide_conv() for i in range( num_groups): setattr(self, "group" + str(i), conv_block) # 自定義transformer模型的初始化, CustomTransformerModel() 在該類中傳入初始化模型的引數, # nip:512 輸入序列中,每個列向量的編碼維度, 16: 注意力頭的個數 # 600: 中間mlp 隱藏層的維數, 6: 堆疊transforEncode 編碼模組的個數; self.trans_model = CustomTransformerModel(512,16,600, 6,droupout=0.5,nclass=4)
則使用 getattr(self, string, object1)
獲取屬性;
trans_input_sequence = [] for i in range(0, num_groups, ): # 每組語譜圖的大小是一個 (bt, ch,96,12)的矩陣,組與組之間沒有重疊; cur_group = x[:, :, :, 12 * i:12 * (i + 1)] # VARIABLE_fun = "self.group" # 每一組,與之對應的折積模組; # cur_fun = eval(VARIABLE_fun + str(i )) cur_fun = getattr(self, 'group'+str(i)) cur_group_out = cur_fun(cur_group).unsqueeze(dim=1) # [bt,1, 512] trans_input_sequence.append(cur_group_out)
到此這篇關於pytorch網路模型構建場景的問題介紹的文章就介紹到這了,更多相關pytorch網路模型構建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45