講解**textcnn模型
1.載入conf檔案
x = import_module('models.' + model_name)
config = x.config(dataset, embedding)
2.載入model,初始化conf裡面值
model = x.model(config).to(config.device)
3.載入模型訓練
model.train()
optimizer = torch.optim.adam(model.parameters(), lr=config.learning_rate)
為何要先宣告是train
在eval的時候也要先宣告
def evaluate(config, model, data_iter, test=false):
model.eval()
loss_total = 0
4.進行模型訓練
model(trains)對應forward的引數
解釋鏈結
outputs = model(trains)
model.zero_grad()
loss = f.cross_entropy(outputs, labels)
loss.backward()
# fgm.attack() # 在embedding上新增對抗擾動
# outputs = model(trains)
# model.zero_grad()
# loss_adv = f.cross_entropy(outputs, labels)
# loss_adv.backward() # 反向傳播,並在正常的grad基礎上,累加對抗訓練的梯度
# fgm.restore() # 恢復embedding引數
# # 梯度下降,更新引數
optimizer.step()
Pytorch 四 訓練模型
1.在前三部分已經分別完成了資料的處理 神經網路的定義,還有優化器 損失函式的選擇,這次我們將開始學習如何訓練模型。2.模型的訓練其實也是套路,大致分為一下五個部分。1 載入trainloader中的資料,並將其轉換為variable 形式的資料,作為神經網路的輸入。2 每次迴圈開始之前,確保梯度的...
pytorch 修改預訓練模型
torchvision中提供了很多訓練好的模型,這些模型是在1000類,224 224的imagenet中訓練得到的,很多時候不適合我們自己的資料,可以根據需要進行修改。1 類別不同 coding utf 8 import torchvision.models as models 呼叫模型 mode...
pytorch 載入預訓練模型
pytorch的torchvision中給出了很多經典的預訓練模型,模型的引數和權重都是在imagenet資料集上訓練好的 載入模型 方法一 直接使用預訓練模型中的引數 import torchvision.models as models model models.resnet18 pretrai...