【问题标题】:How to evaluate a single image in PyTorch model?如何评估 PyTorch 模型中的单个图像?
【发布时间】:2020-08-18 10:16:42
【问题描述】:

我用这段代码训练了一个模型:

def train(model, epochs):
    for epoch in range(epochs):
        for idx, batch in enumerate(train_loader):
            x, bndbox = batch    # unpack batch
            pred_bndbox = model(x)# forward pass
            #print('label:', bndbox, 'prediction:', pred_bndbox)
            loss = criterion(pred_bndbox, bndbox)     # compute loss for this batch
            optimiser.zero_grad()# zero gradients of optimiser
            loss.backward()     # backward pass (find rate of change of loss with respect to model parameters)
            optimiser.step()# take optimisation step
            print('Epoch:', epoch, 'Batch:', idx, 'Loss:', loss.item())
            writer.add_scalar('DETECTION Loss/Train', loss, epoch*len(train_loader) + idx)    # write loss to a graph

train(cnn, epochs)

torch.save(cnn.state_dict(), str(time.time()))# save model

def visualise(model, n):
    model.eval()
    for idx, batch in enumerate(test_loader):
        x, y = batch
        pred_bndbox = model(x)
        S40dataset.show(batch, pred_bndbox=pred_bndbox)
        if idx == n:
            break

如何评估单个图像上的模型预测以检查神经网络的运行情况?

【问题讨论】:

  • 您好,您说要“上传”图像到 NN 是什么意思?您的意思是在新图像上评估网络的预测吗?
  • 是的。请帮帮我

标签: python python-3.x pytorch


【解决方案1】:

你可以使用:

model.eval()              # turn the model to evaluate mode
with torch.no_grad():     # does not calculate gradient
    class_index = model(single_image).argmax()   #gets the prediction for the image's class

这段代码会将网络的预测保存为class_index变量中的类索引。您必须将要检查的图像保存在正确形状的 single_image 变量中。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 2020-09-11
    • 1970-01-01
    • 2022-01-07
    • 2019-02-12
    • 2019-09-01
    • 2022-07-05
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多