Theano - Đồ thị tính toán
Từ hai ví dụ trên, bạn có thể nhận thấy rằng trong Theano, chúng tôi tạo một biểu thức mà cuối cùng được đánh giá bằng cách sử dụng Theano function. Theano sử dụng các kỹ thuật tối ưu hóa nâng cao để tối ưu hóa việc thực thi một biểu thức. Để trực quan hóa biểu đồ tính toán, Theano cung cấpprinting gói trong thư viện của nó.
Biểu đồ tượng trưng cho phép cộng vô hướng
Để xem đồ thị tính toán cho chương trình cộng vô hướng của chúng tôi, hãy sử dụng thư viện in như sau:
theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)
Khi bạn thực hiện câu lệnh này, một tệp được gọi là scalar_addition.pngsẽ được tạo trên máy của bạn. Biểu đồ tính toán đã lưu được hiển thị ở đây để bạn tham khảo nhanh -
Dưới đây là danh sách chương trình đầy đủ để tạo ra hình ảnh trên:
from theano import *
a = tensor.dscalar()
b = tensor.dscalar()
c = a + b
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)
Biểu đồ tượng trưng cho Hệ số ma trận
Bây giờ, hãy thử tạo đồ thị tính toán cho hệ số nhân ma trận của chúng ta. Dưới đây là danh sách đầy đủ để tạo biểu đồ này:
from theano import *
a = tensor.dmatrix()
b = tensor.dmatrix()
c = tensor.dot(a,b)
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="matrix_dot_product.png", var_with_name_simple=True)
Biểu đồ đã tạo được hiển thị ở đây -
Đồ thị phức tạp
Trong các biểu thức lớn hơn, các đồ thị tính toán có thể rất phức tạp. Một biểu đồ như vậy được lấy từ tài liệu của Theano được hiển thị ở đây -
Để hiểu hoạt động của Theano, điều quan trọng trước tiên là phải biết tầm quan trọng của các đồ thị tính toán này. Với sự hiểu biết này, chúng ta sẽ biết tầm quan trọng của Theano.
Tại sao lại là Theano?
Bằng cách nhìn vào độ phức tạp của các đồ thị tính toán, bây giờ bạn sẽ có thể hiểu mục đích đằng sau việc phát triển Theano. Một trình biên dịch điển hình sẽ cung cấp các tối ưu hóa cục bộ trong chương trình vì nó không bao giờ xem toàn bộ tính toán như một đơn vị duy nhất.
Theano thực hiện các kỹ thuật tối ưu hóa rất tiên tiến để tối ưu hóa đồ thị tính toán đầy đủ. Nó kết hợp các khía cạnh của Đại số với các khía cạnh của một trình biên dịch tối ưu hóa. Một phần của biểu đồ có thể được biên dịch thành mã ngôn ngữ C. Đối với các phép tính lặp lại, tốc độ đánh giá là rất quan trọng và Theano đáp ứng mục đích này bằng cách tạo ra một mã rất hiệu quả.