如何加载经过训练的模型以推断预测数据

阿拉斯

我训练了CNN模型并将其保存了1000个纪元,现在想检索验证数据(预测的图像)。在下面的代码中test_predtest_real并在验证集中输出预测图像和真实图像。我是否应该再加载并运行保存的模型另外1个时间段来检索预测的图像(由于数据量巨大,这将以CUDA形式在内存中结束)?还是有其他方法?您可以在下面看到我的代码的一部分:

for epoch in range(epochs):
    mse_train_losses= []
    mae_train_losses = []
    N_train = []
    mse_val_losses = []
    mae_val_losses = []
    N_test = []
    
    if save_model:
        if epoch % 50 ==0:
            checkpoint = {'state_dict' : model.state_dict(),'optimizer' : optimizer.state_dict()}
            save_checkpoint(checkpoint)
   
    model.train()
    for data in train_loader:

        x_train_batch, y_train_batch = data[0].to(device, 
            dtype=torch.float), data[1].to(device, dtype=torch.float)  
        y_train_pred = model(x_train_batch)            # 1) Forward pass
        mse_train_loss = criterion(y_train_batch, y_train_pred, x_train_batch, mse) 
        mae_train_loss = criterion(y_train_batch, y_train_pred, x_train_batch, l1loss)  
        
        optimizer.zero_grad()                   
        mse_train_loss.backward()                        
        optimizer.step()                        
        
        mse_train_losses.append(mse_train_loss.item())
        mae_train_losses.append(mae_train_loss.item())
        N_train.append(len(x_train_batch))
        
                       
    test_pred=[] 
    test_real=[]
    model.eval()
    with torch.no_grad():
        for data in test_loader:
            x_test_batch, y_test_batch = data[0].to(device, 
                dtype=torch.float), data[1].to(device, dtype=torch.float)

            y_test_pred = model(x_test_batch)
            mse_val_loss = criterion(y_test_batch, y_test_pred, x_test_batch, mse)
            mae_val_loss = criterion(y_test_batch, y_test_pred, x_test_batch, l1loss)
            
            mse_val_losses.append(mse_val_loss.item())
            mae_val_losses.append(mae_val_loss.item())
            N_test.append(len(x_test_batch))
            
            test_pred.append(y_test_pred)                        
            test_real.append(y_test_batch)
德怀特·福斯特

当您将其追加到列表中时,请尝试在最后使用.cpu(),如下所示:

test_pred.append(t_test_pred.cpu())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何加载经过训练的 RandomForestClassificationModel 模型?

如何使用经过训练的Tensorflow模型进行预测

如何使用经过训练的 XGB 分类模型预测新数据行?

使用经过训练的模型进行预测

如何在 Django 中加载经过训练的模型

TensorFlow-如何在不同的测试数据集上使用经过训练的模型进行预测?

保存的 sklearn 模型的预测与经过训练的模型不同

使用经过训练的 Keras 模型对新的 csv 数据进行预测

预测经过训练的 DNN 模型的类别时出错

如何使用Google Cloud中经过训练的模型自动进行预测

加载经过训练的Keras模型并继续训练

如何使用经过训练的神经网络(Tensorflow 2.0,回归分析)预测新数据?

如何使用经过训练并保存的前馈NN预测新数据

如何使用经过训练的模型预测 MNIST 数据(输入形状的预期轴 -1 的值为 784,但接收到的输入形状为 (784, 1))

从经过训练的卷积网络进行预测

Tensorflow:如何保存经过训练的模型的差异

如何在pytesseract中使用经过训练的数据?

使用经过训练的对象检测API模型和TF 2进行批量预测

我无法使用load.models()加载经过训练的h5模型,如何解决此错误?

Tensorflow(tfjs)-保存经过训练的模型

如何在 r 中使用经过训练的 xgb 模型将其应用于新数据集?

使用gensim加载经过训练的快速文本模型时出现问题

在嵌入式系统上加载经过训练的模型(无库)

TensorFlowJs | 如何在两个经过训练的模型之间获取模型增量

使用经过训练的 MNB 分类器预测值

Amazon Web Service:使用非csv数据并检索经过训练的模型

在不同的数据集上运行经过训练的机器学习模型

BigQuery ML K-means 与经过训练的模型后的新数据集

我如何使用经过mnist训练的模型来预测图像