首先,我有了乙個輸入args
,它是所有的引數,有可能有多層多級。
他的下一級是args.b
,而不是args["b"]
。但是在下一級就不一樣了,它是args.b["c"]
。
沒辦法,現在只能如此。
關於feeder,
我們首先得到兩個dataset,train_set
和test_set
。
然後,利用train_set
得到兩個loader,乙個是train_loader
,乙個是memory_loader
;另外就是test_set
得到test_loader
。
關於model (這塊因為涉及到重構,所以問題比較多)
之前的模型是,
backbone\(\rightarrow\)cl
也就是說,我寫了兩個類,乙個backbone,乙個是cl。我得寫兩套引數,然後分別把這兩套引數,給傳進去。
但是問題是:
如果我想要復用這套系統,那麼如果有乙個簡單的auto-encoder
並沒有cl
模組,不就是吃癟了嗎?
更遑論我把cl
的一些功能,寫進了類方法裡面,也就是def _train(self):
和def _test(self):
這倆。
所以說我們從一開始就應該打造,統一的模型,輸入輸出的介面啊。
另外乙個需要考慮的因素:
我們現在這個模型是乙個訓練和測試分離的模型,什麼意思呢?也就是說,在訓練過程中的諸多元件,在測試時並不會使用的。
最後就是一些小角色,比如adam的優化器,比如cross entropy的loss,實際上我們不需要了吧
番外篇,為什麼loss也需要.cuda()??
根據pytorch forum上面的討論,如果說loss function裡面沒有可訓練引數,那麼其實也不必一定使用.cuda()
additionally to what @royboy said, you need to push your criterion to the gpu, if it's stateful, i.e. if it has some parameters or internal states.還有乙個引數,我覺得可以把
num_classes
給變成nb_class
。 記錄一些工作上的事情
1.對於slot插入和拔出的時候,應該是連續成段的通知 基於slot的事件 各個關心該事件的模組,響應該事件,查詢並根據自己記錄的軟體資料,去寫晶元和繫結相關的硬體資料。2.對於單獨的埠有效,無效,up,down,切換狀態等事件,應該是基於每個埠傳送通知 基於埠的事件 本markdown編輯器使用s...
最近工作上的一些煩惱
去年在一家ota旅遊公司做旅遊業務相關的開發,一次偶然的機會決定離開上海入職一家硬體it行業做開發,抱著希望入職,大半年公司未有起色,內部管理層的鬥爭看在眼裡,領導換了又換,業務方向到現在還未定下來,越發覺得在這裡是讓費時間與生命,沒有技術上到積累 同時也是自己的鬆懈 與沉澱,職業方向有些迷失,所以...
實訓 第二週工作上
實現了登入註冊介面,實現了使用者發布需求介面,實現了檢視其他使用者需求的介面 server port 8080 spring datasource url jdbc mysql driver class name com.mysql.cj.jdbc.driver username root pass...