pytorch
27 строк · 769.0 Байт
1import torchvision.models as models
2
3import torch
4import torch.autograd.profiler as profiler
5
6
7for with_cuda in [False, True]:
8model = models.resnet18()
9inputs = torch.randn(5, 3, 224, 224)
10sort_key = "self_cpu_memory_usage"
11if with_cuda and torch.cuda.is_available():
12model = model.cuda()
13inputs = inputs.cuda()
14sort_key = "self_cuda_memory_usage"
15print("Profiling CUDA Resnet model")
16else:
17print("Profiling CPU Resnet model")
18
19with profiler.profile(profile_memory=True, record_shapes=True) as prof:
20with profiler.record_function("root"):
21model(inputs)
22
23print(
24prof.key_averages(group_by_input_shape=True).table(
25sort_by=sort_key, row_limit=-1
26)
27)
28