12.1. Trình Biên Dịch Và Trình Thông Dịch

12.1.3.1. Tăng tốc bằng Hybrid hóa¶

Để minh hoạ những cải thiện đạt được từ quá trình biên dịch, ta hãy so sánh thời gian cần thiết để đánh giá net(x) trước và sau phép hybrid hóa. Đầu tiên hãy định nghĩa một hàm để đo thời gian trên. Hàm này sẽ hữu ích trong suốt chương này khi chúng ta đo (và cải thiện) hiệu năng.

#@save class Benchmark: def __init__(self, description='Done'): self.description = description def __enter__(self): self.timer = d2l.Timer() return self def __exit__(self, *args): print(f'{self.description}: {self.timer.stop():.4f} sec')

Bây giờ ta có thể gọi mạng hai lần với có hybrid hóa và không hybrid hóa.

net = get_net() with Benchmark('Without hybridization'): for i in range(1000): net(x) npx.waitall() net.hybridize() with Benchmark('With hybridization'): for i in range(1000): net(x) npx.waitall() Without hybridization: 0.6715 sec With hybridization: 0.2874 sec

Như quan sát được trong các kết quả trên, sau khi thực thể HybridSequential gọi hàm hybridize, hiệu năng tính toán được cải thiện thông qua việc sử dụng lập trình ký hiệu.

Từ khóa » Trình Biên Dịch Python