Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import torch | |
| import spaces | |
| def test(model, model2, decoder, device, test_loader): | |
| model = model.to(device) | |
| decoder = decoder.to(device) | |
| decoder.eval() | |
| model2 = model2.to(device) | |
| model2.eval() | |
| y_pred_val = [] | |
| with torch.no_grad(): | |
| for batch in test_loader: | |
| input_ids = batch['input_ids'].to(device) | |
| attention_mask = batch['attention_mask'].to(device) | |
| labels = batch['labels'].to(device) | |
| images = batch['images'].to(device) | |
| outputs1 = model2(input_ids, attention_mask) | |
| with torch.no_grad(): | |
| image_features = model.encode_image(images) | |
| image_features = image_features.to(torch.float32) | |
| outputs2 = decoder(image_features) | |
| outputs = (3 * outputs1 + 1 * outputs2) / 4 | |
| preds = outputs | |
| y_pred_val.extend(preds.cpu().numpy()) | |
| y_pred = np.array(y_pred_val) | |
| y_pred = np.reshape(y_pred, (-1, 8)) | |
| model.cpu() | |
| model2.cpu() | |
| decoder.cpu() | |
| return y_pred | |