1. 程式人生 > >python函式手冊(1)

python函式手冊(1)

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維度為4tensor,即(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變成測試模式,這主要是對dropoutbatch normalization的操作在訓練和測試的時候是不一樣的。框架會自動把BNDropOut固定住,不會取平均,而是用訓練好的值。

train(mode=True)

將模組設定為訓練模式。

僅僅當模型中有DropoutBatchNorm是才會有影響。