我正在遵循 pytorch 迁移学习教程并将其应用于 kaggle 种子分类任务,我只是不确定如何将预测保存在 csv 文件中,以便我可以提交,任何建议都会有帮助,这就是我所拥有的,
use_gpu = torch.cuda.is_available()
model = models.resnet50(pretrained=True)
for param in model.parameters():
param.requires_grad = False
num_ftrs = model.fc.in_features
model.fc = torch.nn.Linear(num_ftrs, len(classes))
if use_gpu:
model = model.cuda()
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.fc.parameters(), lr=0.001, momentum=0.9)
exp_lr_scheduler = lr_scheduler.StepLR(optimizer, step_size=7, gamma=0.1)
loaders = {'train':train_loader, 'valid':valid_loader, 'test': test_loader}
model = train_model(loaders, model, criterion, optimizer, exp_lr_scheduler, num_epochs=50)
Run Code Online (Sandbox Code Playgroud)
训练完模型后,您可以根据测试数据对其进行评估。这会给你一个Variable,可能在 GPU 上。从那里,您需要使用 将其张量复制到 CPUcpu()并将其转换为 numpy 数组numpy()。然后,您可以使用 numpy 的CSV 功能或使用 pandas 的DataFrame.to_csv等。在第一种情况下,你会得到这样的结果:
# evaluate on Variable x with testing data
y = model(x)
# access Variable's tensor, copy back to CPU, convert to numpy
arr = y.data.cpu().numpy()
# write CSV
np.savetxt('output.csv', arr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11392 次 |
| 最近记录: |