TensorFlow vs Theano vs Torch vs Keras: Thư viện Deep Learning
Trí tuệ nhân tạo ngày càng phổ biến kể từ năm 2016 với 20% các công ty lớn sử dụng AI trong doanh nghiệp của họ (McKinsey báo cáo, 2018). Theo cùng một báo cáo, AI có thể tạo ra giá trị đáng kể trong các ngành. Ví dụ, trong ngân hàng, tiềm năng của AI được ước tính là $300 tỷ, trong bán lẻ con số tăng vọt lên $600 tỷ đồng.
Để khai thác giá trị tiềm năng của AI, các công ty phải chọn khuôn khổ deep learning phù hợp. Trong hướng dẫn này, bạn sẽ tìm hiểu về các thư viện khác nhau có sẵn để thực hiện các nhiệm vụ học sâu. Một số thư viện đã tồn tại được nhiều năm trong khi thư viện mới như TensorFlow mới xuất hiện trong những năm gần đây.
8 thư viện/framework học sâu tốt nhất
Trong danh sách này, chúng tôi sẽ so sánh các framework Deep learning hàng đầu. Tất cả chúng đều là nguồn mở và phổ biến trong cộng đồng nhà khoa học dữ liệu. Chúng tôi cũng sẽ so sánh ML phổ biến với tư cách là nhà cung cấp dịch vụ
Torch
Torch là một thư viện máy học mã nguồn mở cũ. Nó được phát hành lần đầu tiên cách đây 15 năm. Ngôn ngữ lập trình chính của nó là LUA, nhưng được triển khai bằng C. So sánh PyTorch với TensorFlow, nó hỗ trợ một thư viện rộng lớn cho các thuật toán học máy, bao gồm cả học sâu. Nó hỗ trợ triển khai CUDA để tính toán song song.
Công cụ học sâu Torch được hầu hết các phòng thí nghiệm hàng đầu như Facebook, Google, Twitter, Nvidia, v.v. sử dụng. Torch có một thư viện ở Python tên Pytorch.
Suy luận.net
Infer.net được phát triển và duy trì bởi Microsoft. Infer.net là một thư viện tập trung chủ yếu vào thống kê Bayes. Infer.net là một công cụ trực quan hóa cho Deep Learning được thiết kế để cung cấp cho người thực hành các thuật toán tiên tiến nhất để lập mô hình xác suất. Thư viện chứa công cụ phân tích như phân tích Bayes, chuỗi Markov ẩn, phân cụm.
Máy ảnh
Keras là một Python khuôn khổ cho việc học sâu. Đây là một thư viện thuận tiện để xây dựng bất kỳ thuật toán học sâu nào. Ưu điểm của Keras là nó sử dụng cùng Python mã để chạy trên CPU hoặc GPU. Ngoài ra, môi trường mã hóa trong sạch và cho phép đào tạo thuật toán tiên tiến về thị giác máy tính, nhận dạng văn bản, v.v.
Keras được phát triển bởi François Chollet, một nhà nghiên cứu tại Google. Keras được sử dụng trong các tổ chức nổi bật như CERN, Yelp, Square hoặc Google, Netflixvà Uber.
Theano
Theano là thư viện deep learning được phát triển bởi Đại học Montréal vào năm 2007. So sánh Theano với TensorFlow, nó cung cấp khả năng tính toán nhanh và có thể chạy trên cả CPU và GPU. Theano đã được phát triển để đào tạo các thuật toán mạng lưới thần kinh sâu.
Microsoft Bộ công cụ nhận thức (CNTK)
Microsoft toolkit, trước đây gọi là CNTK, là một thư viện deep learning được phát triển bởi Microsoft. Theo Microsoft, thư viện này thuộc hàng nhanh nhất trên thị trường. Microsoft bộ công cụ là một thư viện mã nguồn mở, mặc dù Microsoft đang sử dụng nó rộng rãi cho sản phẩm của mình như Skype, Cortana, Bing và Xbox. Bộ công cụ có sẵn ở cả Python và C++.
MX Net
MXnet là một thư viện học sâu gần đây. Nó có thể truy cập được bằng nhiều ngôn ngữ lập trình bao gồm C++, Julia, Python và R. MXNet có thể được cấu hình để hoạt động trên cả CPU và GPU. MXNet bao gồm kiến trúc học sâu tiên tiến như Mạng nơ-ron tích chập và Bộ nhớ dài hạn ngắn hạn. MXNet được xây dựng để hoạt động trong harmony với cơ sở hạ tầng đám mây năng động. Người dùng chính của MXNet là Amazon
Caffe
Caffe là thư viện được Yangqing Jia xây dựng khi ông còn là nghiên cứu sinh tiến sĩ tại Berkeley. So sánh Caffe với TensorFlow, Caffe được viết bằng C++ và có thể thực hiện tính toán trên cả CPU và GPU. Công dụng chính của Caffe là Convolutional Neural Network. Mặc dù, vào năm 2017, Facebook đã mở rộng Caffe với kiến trúc học sâu hơn, bao gồm cả Recurrent Neural Network. Caffe được sử dụng bởi các học giả và công ty khởi nghiệp nhưng cũng có một số công ty lớn như Yahoo!.
TensorFlow
TensorFlow là dự án nguồn mở của Google. TensorFlow là thư viện deep learning nổi tiếng nhất hiện nay. Nó được ra mắt công chúng vào cuối năm 2015
TensorFlow được phát triển tại C++ và có tiện lợi Python API, mặc dù C++ API cũng có sẵn. Các công ty nổi tiếng như Airbus, Google, IBM v.v. đang sử dụng TensorFlow để tạo ra các thuật toán học sâu.
TensorFlow Vs Theano Vs Torch Vs Keras Vs infer.net Vs CNTK Vs MXNet Vs Caffe: Sự khác biệt chính
Thư viện | Nền tảng | Viết vào | Cuda hỗ trợ | Thực hiện song song | Có người mẫu được đào tạo | RNN | CNN |
---|---|---|---|---|---|---|---|
Torch | Linux, macOS, Windows | lấy | Có | Có | Có | Có | Có |
Suy luận.Net | Linux, macOS, Windows | Visual Studio | Không | Không | Không | Không | Không |
Máy ảnh | Linux, macOS, Windows | Python | Có | Có | Có | Có | Có |
Theano | Nền tảng | Python | Có | Có | Có | Có | Có |
TensorFlow | Linux, macOS, Windows, Android | C++, Python, CUDA | Có | Có | Có | Có | Có |
BỘ CÔNG CỤ NHẬN THỨC CỦA MICROSOFT | Linux, Windows, Mac với Docker | C++ | Có | Có | Có | Có | Có |
Caffe | Linux, macOS, Windows | C++ | Có | Có | Có | Có | Có |
MX Net | Linux, Windows, macOS, AndroidIOS, Javascript | C++ | Có | Có | Có | Có | Có |
Phán quyết
TensorFlow là thư viện tốt nhất vì nó được xây dựng để mọi người đều có thể truy cập. Thư viện TensorFlow kết hợp các API khác nhau để xây dựng kiến trúc học sâu ở quy mô lớn như CNN hoặc RNN. TensorFlow dựa trên tính toán đồ thị, cho phép nhà phát triển hình dung việc xây dựng mạng nơ-ron với Tensorboad. Công cụ này rất hữu ích để gỡ lỗi chương trình. Cuối cùng, Tensorflow được xây dựng để triển khai trên quy mô lớn. Nó chạy trên CPU và GPU.
Tensorflow thu hút sự phổ biến lớn nhất trên GitHub so với các thư viện deep learning khác.
So sánh Machine Learning như một dịch vụ
Sau đây là 4 nhà cung cấp dịch vụ DL phổ biến
Google Cloud ML
Google cung cấp cho nhà phát triển mô hình được đào tạo trước trong Cloud AutoML. Giải pháp này tồn tại dành cho nhà phát triển không có nền tảng vững chắc về học máy. Các nhà phát triển có thể sử dụng mô hình được đào tạo trước tiên tiến nhất của Google trên dữ liệu của họ. Nó cho phép bất kỳ nhà phát triển nào đào tạo và đánh giá bất kỳ mô hình nào chỉ trong vài phút.
Google hiện cung cấp API REST cho thị giác máy tính, nhận dạng giọng nói, dịch thuật và NLP.
Sử dụng Google Cloud, bạn có thể đào tạo bản dựng khung máy học trên TensorFlow, Scikit-learn, XGBoost hoặc Keras. Google Cloud học máy sẽ đào tạo các mô hình trên đám mây của nó.
Ưu điểm khi sử dụng điện toán đám mây của Google là dễ dàng triển khai machine learning vào sản xuất. Không cần thiết lập vùng chứa Docker. Bên cạnh đó, đám mây sẽ đảm nhận cơ sở hạ tầng. Nó biết cách phân bổ tài nguyên bằng CPU, GPU và TPU. Nó làm cho việc đào tạo nhanh hơn với tính toán song song.
AWS SageMaker
Một đối thủ cạnh tranh lớn của Google Cloud is Amazon đám mây, AWS. Amazon đã phát triển Amazon SageMaker cho phép các nhà khoa học và nhà phát triển dữ liệu xây dựng, đào tạo và đưa vào sản xuất bất kỳ mô hình học máy nào.
SageMaker có sẵn ở dạng Jupyter Notebook và bao gồm thư viện máy học được sử dụng nhiều nhất, TensorFlow, MXNet, Scikit-learn cùng nhiều thư viện khác. Các chương trình được viết bằng SageMaker sẽ tự động chạy trong vùng chứa Docker. Amazon xử lý việc phân bổ nguồn lực để tối ưu hóa việc đào tạo và triển khai.
Amazon cung cấp API cho các nhà phát triển để bổ sung thêm thông tin cho ứng dụng của họ. Trong một số trường hợp, không cần phải phát minh lại bánh xe bằng cách xây dựng lại từ đầu các mô hình mới trong khi đã có những mô hình được đào tạo trước mạnh mẽ trên đám mây. Amazon cung cấp các dịch vụ API cho thị giác máy tính, chatbot đàm thoại và dịch vụ ngôn ngữ:
Ba API chính có sẵn là:
- Amazon Sự công nhận: cung cấp nhận dạng hình ảnh và video cho một ứng dụng
- Amazon Hiểu: Ví dụ, thực hiện khai thác văn bản và xử lý ngôn ngữ thần kinh để tự động hóa quy trình kiểm tra tính hợp pháp của tài liệu tài chính
- Amazon Lex: Thêm chatbot vào ứng dụng
Azure Studio học máy
Có lẽ một trong những cách tiếp cận thân thiện nhất với học máy là Azure Xưởng học máy. Ưu điểm đáng kể của giải pháp này là không cần có kiến thức lập trình trước đó.
Microsoft Azure Machine Learning Studio là một công cụ cộng tác kéo và thả để tạo, đào tạo, đánh giá và triển khai giải pháp học máy. Mô hình có thể được triển khai hiệu quả dưới dạng dịch vụ web và được sử dụng trong một số ứng dụng như Excel.
Azure Giao diện máy học có tính tương tác, cho phép người dùng xây dựng mô hình chỉ bằng cách kéo và thả các thành phần một cách nhanh chóng.
Khi mô hình đã sẵn sàng, nhà phát triển có thể lưu nó và đẩy nó vào Azure Góc ảnh or Azure Thương trường.
Azure Học máy có thể được tích hợp vào R hoặc Python gói tích hợp tùy chỉnh của họ.
IBM Watson ML
Watson studio có thể đơn giản hóa các dự án dữ liệu bằng một quy trình hợp lý cho phép trích xuất giá trị và thông tin chi tiết từ dữ liệu để giúp doanh nghiệp trở nên thông minh hơn và nhanh hơn. Watson studio cung cấp môi trường học máy và khoa học dữ liệu cộng tác dễ sử dụng để xây dựng và đào tạo các mô hình, chuẩn bị và phân tích dữ liệu cũng như chia sẻ thông tin chuyên sâu, tất cả ở cùng một nơi. Watson Studio rất dễ sử dụng với mã kéo và thả.
Studio Watson hỗ trợ một số framework phổ biến nhất như Tensorflow, Keras, Pytorch, Caffe và có thể triển khai thuật toán deep learning trên các GPU mới nhất của Nvidia để giúp tăng tốc mô hình hóa.
Phán quyết
Theo quan điểm của chúng tôi, giải pháp đám mây của Google là giải pháp được khuyên dùng nhiều nhất. Giải pháp đám mây của Google cung cấp mức giá thấp hơn AWS ít nhất 30% cho giải pháp lưu trữ dữ liệu và máy học. Google đang làm rất tốt việc dân chủ hóa AI. Nó đã phát triển một ngôn ngữ nguồn mở, TensorFlow, được tối ưu hóa kho dữ liệu kết nối, cung cấp các công cụ to lớn từ trực quan hóa dữ liệu, phân tích dữ liệu đến học máy. Ngoài ra, Google Console còn tiện dụng và toàn diện hơn nhiều so với AWS hoặc Windows.