mirror of
https://github.com/lordmathis/CUDANet.git
synced 2025-11-05 17:34:21 +00:00
Add torch predict function
This commit is contained in:
@@ -1,20 +1,38 @@
|
|||||||
import torchvision
|
|
||||||
import torch
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from torchsummary import summary
|
import torch
|
||||||
|
import torchvision
|
||||||
|
from PIL import Image
|
||||||
|
from torchvision import transforms
|
||||||
|
|
||||||
sys.path.append('../../tools') # Ugly hack
|
sys.path.append('../../tools') # Ugly hack
|
||||||
from utils import export_model_weights, print_model_parameters
|
from utils import export_model_weights, print_model_parameters
|
||||||
|
|
||||||
|
|
||||||
|
def predict(model, image_path):
|
||||||
|
input_image = Image.open(image_path)
|
||||||
|
preprocess = transforms.Compose([
|
||||||
|
transforms.Resize(256),
|
||||||
|
transforms.CenterCrop(227),
|
||||||
|
transforms.ToTensor(),
|
||||||
|
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
|
||||||
|
])
|
||||||
|
input_tensor = preprocess(input_image)
|
||||||
|
input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model
|
||||||
|
|
||||||
|
# move the input and model to GPU for speed if available
|
||||||
|
if torch.cuda.is_available():
|
||||||
|
input_batch = input_batch.to('cuda')
|
||||||
|
model.to('cuda')
|
||||||
|
|
||||||
|
with torch.no_grad():
|
||||||
|
output = model(input_batch)
|
||||||
|
print(torch.argmax(output))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
alexnet = torchvision.models.alexnet(pretrained=True)
|
alexnet = torchvision.models.alexnet(weights=torchvision.models.AlexNet_Weights.DEFAULT)
|
||||||
print_model_parameters(alexnet) # print layer names and number of parameters
|
print_model_parameters(alexnet) # print layer names and number of parameters
|
||||||
export_model_weights(alexnet, 'alexnet_weights.bin')
|
export_model_weights(alexnet, 'alexnet_weights.bin')
|
||||||
print()
|
# predict('cat.jpg')
|
||||||
|
|
||||||
if torch.cuda.is_available():
|
|
||||||
alexnet.cuda()
|
|
||||||
|
|
||||||
summary(alexnet, (3, 227, 227))
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user