Bộ công cụ nhận thức của Microsoft (CNTK) - Giới thiệu
Trong chương này, chúng ta sẽ tìm hiểu CNTK là gì, các tính năng của nó, sự khác biệt giữa phiên bản 1.0 và 2.0 và những điểm nổi bật quan trọng của phiên bản 2.7.
Bộ công cụ nhận thức của Microsoft (CNTK) là gì?
Bộ công cụ nhận thức của Microsoft (CNTK), trước đây gọi là Bộ công cụ mạng tính toán, là bộ công cụ miễn phí, dễ sử dụng, mã nguồn mở, cấp thương mại cho phép chúng tôi đào tạo các thuật toán học sâu để học giống như não người. Nó cho phép chúng tôi tạo một số hệ thống học sâu phổ biến nhưfeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.
Để có hiệu suất tối ưu, các hàm khung của nó được viết bằng C ++. Mặc dù chúng ta có thể gọi hàm của nó bằng C ++, nhưng cách tiếp cận phổ biến nhất được sử dụng cho hàm tương tự là sử dụng một chương trình Python.
Các tính năng của CNTK
Sau đây là một số tính năng và khả năng được cung cấp trong phiên bản mới nhất của Microsoft CNTK:
Các thành phần tích hợp
CNTK có các thành phần tích hợp được tối ưu hóa cao để có thể xử lý dữ liệu dày đặc hoặc thưa thớt đa chiều từ Python, C ++ hoặc BrainScript.
Chúng tôi có thể triển khai CNN, FNN, RNN, Batch Normalization và Sequence-to-Sequence với sự chú ý.
Nó cung cấp cho chúng tôi chức năng để thêm các thành phần lõi mới do người dùng xác định trên GPU từ Python.
Nó cũng cung cấp khả năng điều chỉnh siêu thông số tự động.
Chúng tôi có thể triển khai học tập củng cố, Mạng đối thủ chung (GAN), Học tập có giám sát cũng như không giám sát.
Đối với các bộ dữ liệu lớn, CNTK đã tích hợp sẵn các trình đọc tối ưu hóa.
Sử dụng tài nguyên hiệu quả
CNTK cung cấp cho chúng ta tính song song với độ chính xác cao trên nhiều GPU / máy thông qua SGD 1-bit.
Để phù hợp với các mô hình lớn nhất trong bộ nhớ GPU, nó cung cấp chia sẻ bộ nhớ và các phương pháp tích hợp khác.
Dễ dàng thể hiện mạng lưới của chúng tôi
CNTK có đầy đủ các API để xác định mạng, người học, người đọc, đào tạo và đánh giá của riêng bạn từ Python, C ++ và BrainScript.
Sử dụng CNTK, chúng ta có thể dễ dàng đánh giá các mô hình với Python, C ++, C # hoặc BrainScript.
Nó cung cấp cả API cấp cao và cấp thấp.
Dựa trên dữ liệu của chúng tôi, nó có thể tự động định hình suy luận.
Nó có các vòng lặp Mạng thần kinh tái diễn (RNN) tượng trưng được tối ưu hóa đầy đủ.
Đo lường hiệu suất mô hình
CNTK cung cấp các thành phần khác nhau để đo hiệu suất của mạng nơ-ron mà bạn xây dựng.
Tạo dữ liệu nhật ký từ mô hình của bạn và trình tối ưu hóa liên quan, chúng tôi có thể sử dụng dữ liệu này để theo dõi quá trình đào tạo.
Phiên bản 1.0 so với Phiên bản 2.0
Bảng sau so sánh CNTK Phiên bản 1.0 và 2.0:
Phiên bản 1.0 | Phiên bản 2.0 |
---|---|
Nó được phát hành vào năm 2016. | Đây là một bản viết lại đáng kể của Phiên bản 1.0 và được phát hành vào tháng 6 năm 2017. |
Nó sử dụng một ngôn ngữ kịch bản độc quyền có tên là BrainScript. | Các hàm khung của nó có thể được gọi bằng C ++, Python. Chúng ta có thể dễ dàng tải các mô-đun của mình bằng C # hoặc Java. BrainScript cũng được hỗ trợ bởi Phiên bản 2.0. |
Nó chạy trên cả hệ thống Windows và Linux nhưng không chạy trực tiếp trên Mac OS. | Nó cũng chạy trên cả Windows (Win 8.1, Win 10, Server 2012 R2 trở lên) và hệ thống Linux nhưng không chạy trực tiếp trên Mac OS. |
Điểm nổi bật quan trọng của phiên bản 2.7
Version 2.7là phiên bản chính được phát hành cuối cùng của Bộ công cụ nhận thức của Microsoft. Nó có hỗ trợ đầy đủ cho ONNX 1.4.1. Sau đây là một số điểm nổi bật quan trọng của phiên bản CNTK được phát hành cuối cùng này.
Hỗ trợ đầy đủ cho ONNX 1.4.1.
Hỗ trợ CUDA 10 cho cả hệ thống Windows và Linux.
Nó hỗ trợ vòng lặp Mạng thần kinh tái tạo (RNN) nâng cao trong xuất ONNX.
Nó có thể xuất hơn 2GB mô hình ở định dạng ONNX.
Nó hỗ trợ FP16 trong hành động đào tạo của ngôn ngữ kịch bản BrainScript.