如何解决每历时损耗方程:Pytorch
我是Pytorch的新手,如果我的每个历元方程式正确与否,我会感到困惑,因为我的val_loss低于train_loss。代码如下。
from torch import optim
def fit(train_dl,model,test_dl=None,epoch=1000,lr=0.001):
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(),lr=0.001,momentum=0.9)
for epoch in range(epoch):
running_loss = 0.0
model.train()
for i,(inputs,labels) in enumerate(train_dl):
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs,labels)
loss.backward()
optimizer.step()
running_loss += loss.item()*inputs.size(0)
# if i % 2000 == 1999:
# print('[%d,%5d] loss: %.3f' %
# (epoch + 1,i + 1,running_loss/2000))
# running_loss = 0.0
print("Epoch: ",epoch+1)
print("Train Loss: ",running_loss/len(train_dl.sampler))
if test_dl is not None:
model.eval()
running_loss = 0
for i,labels) in enumerate(test_dl):
outputs = model(inputs)
loss = criterion(outputs,labels)
running_loss += loss.item()*inputs.size(0)
print("Validation Loss: ",running_loss/len(test_dl.sampler))
print("\n"*2)
print('Finished Training')
每周期火车和val数据的损失如下。
Epoch: 1
Train Loss: 1.1405704270362853
Validation Loss: 0.6346351503372193
Epoch: 2
Train Loss: 1.109910039997101
Validation Loss: 0.6700555039405822
Epoch: 3
Train Loss: 1.0855869434356689
Validation Loss: 0.5310997007369995
Epoch: 4
Train Loss: 1.0623883997917176
Validation Loss: 0.5400820639610291
Epoch: 5
Train Loss: 1.040262179851532
Validation Loss: 0.596698025226593
Epoch: 6
Train Loss: 1.0253396962165833
Validation Loss: 0.5367399935722351
Epoch: 7
Train Loss: 1.0021697312355042
Validation Loss: 0.48242439060211184
Epoch: 8
Train Loss: 0.9849149712562562
Validation Loss: 0.46645955047607424
Epoch: 9
Train Loss: 0.9655076077461243
Validation Loss: 0.5602270641326904
Epoch: 10
Train Loss: 0.9523622084617615
Validation Loss: 0.49749606523513795
Epoch: 11
Train Loss: 0.9366362886428833
Validation Loss: 0.4111686680316925
Epoch: 12
Train Loss: 0.9228082064628601
Validation Loss: 0.47805821266174314
Epoch: 13
Train Loss: 0.9069208443641663
Validation Loss: 0.3824161283493042
Epoch: 14
Train Loss: 0.8945751609802246
Validation Loss: 0.5301653007507324
Epoch: 15
Train Loss: 0.8807038812637329
Validation Loss: 0.41203391284942625
Epoch: 16
Train Loss: 0.8668060901641845
Validation Loss: 0.4474089996814728
Epoch: 17
Train Loss: 0.853671452999115
Validation Loss: 0.5498352452278137
Epoch: 18
Train Loss: 0.8409735582351685
Validation Loss: 0.3281970458984375
Epoch: 19
Train Loss: 0.8269806921958923
Validation Loss: 0.3685186356544495
Epoch: 20
Train Loss: 0.8118648974895477
Validation Loss: 0.4514490584373474
Finished Training
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。