python函式手冊(1)
阿新 • • 發佈:2018-11-16
copy
copy.copy(x)
Return a shallow copy of x.
copy.deepcopy(x)
Return a deep copy of x.
深複製和淺複製的區別:
- A shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original.
- A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original.
PyTorch
模型儲存和恢復
model.state_dict()
返回一個字典,儲存著module的所有狀態(state)。
parameters和persistent buffers都會包含在字典中,字典的key就是parameter和buffer的 names。
儲存
torch.save(the_model.state_dict(), PATH)
恢復
the_model = TheModelClass(*args, **kwargs)
the_model.load_state_dict(torch.load(PATH))
input.size(0)
input
是包含batchsize
維度為4
的tensor
,即(batchsize,channels,x,y)
,x.size(0)
指batchsize
的值。
NOTE: x = x.view(x.size(0), -1)
簡化x = x.view(batchsize, -1)。
學習率衰減
class torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)
將每個引數組的學習速率設定為每個step_size
時間段由gamma
衰減的初始lr
。當last_epoch = -1
時,將初始lr
lr
。
optimizer (Optimizer)
– 包裝的優化器。
step_size (int)
– 學習率衰減期。
gamma (float)
– 學習率衰減的乘積因子。預設值:-0.1。
last_epoch (int)
– 最後一個時代的指數。預設值:1。
model.eval()
讓model
變成測試模式,這主要是對dropout
和batch
normalization
的操作在訓練和測試的時候是不一樣的。框架會自動把BN
和DropOut
固定住,不會取平均,而是用訓練好的值。
train(mode=True)
將模組設定為訓練模式。
僅僅當模型中有Dropout
和BatchNorm
是才會有影響。