TensorFlow, Keras, Theano: Nên sử dụng


Võ Lệ Quyên
2 năm trước
Hữu ích 3 Chia sẻ Viết bình luận 0
Đã xem 8510

Vì vậy, trong vài tháng qua, tôi đã dành một lượng thời gian đáng kể để làm việc với TensorFlow và Keras (với TensorFlow dưới Keras), và tôi đã gặp phải câu hỏi khi nào tôi nên sử dụng bộ công cụ nào.

Đối với những người chưa từng làm việc với Keras, đó là thư viện Python được thiết kế để lắp ráp mạng thần kinh dễ dàng đi kèm với một số lượng lớn các loại mạng được đóng gói sẵn, từ các mạng chập trong các hương vị hai và ba chiều, cho đến dài và các mạng ngắn hạn, đến các mạng thường xuyên hơn. Xây dựng mạng bằng Keras rất đơn giản - mặc dù việc xác định chính xác mạng nào sẽ không được xây dựng. Các ngữ nghĩa mà Keras sử dụng trong thiết kế API của nó rất định hướng theo lớp, làm cho việc lắp ráp mạng tương đối trực quan.

Mặt khác, TensorFlow mạnh hơn nhiều - nhưng không có tất cả các mạng được đóng gói sẵn. Nó cũng không được đóng gói với nhiều bộ dữ liệu hoặc các tiện ích thao tác mà Keras làm. Nó không , tuy nhiên, cho phép bạn xây dựng kiến trúc thần kinh tùy tiện phức tạp.

Hãy nhớ rằng: Keras rất định hướng lớp. Không phải tất cả các mạng sử dụng phân lớp nghiêm ngặt. Nếu chúng ta quan tâm đến một thiết kế trong đó một số phần tử bỏ qua một lớp nhất định sẽ được sử dụng trong các lớp sau, thì việc triển khai trong Keras sẽ trở nên hơi phức tạp. Trong TensorFlow, bạn có nhiều quyền kiểm soát hơn đối với mạng và loại triển khai này dễ thực hiện hơn. Nếu bạn đang sử dụng các thiết kế mạng đã biết và kết hợp chúng theo những cách mới hoặc áp dụng chúng cho dữ liệu mới, Keras không thể bị đánh bại. Nhưng nếu bạn đang thiết kế các loại mạng mới, thì TensorFlow có vẻ như là sự lựa chọn tốt nhất.

Mặc dù vậy, vấn đề là, khi bạn đã triển khai một kiến ​​trúc mạng mới, việc có thể sử dụng lại kiến ​​trúc đó thực sự có thể giúp cuộc sống của bạn dễ dàng hơn. Và bạn thực sự có thể thực hiện các lớp tùy chỉnh truyền dữ liệu cho các lớp sau hoặc làm những việc phức tạp hơn.

Vì vậy, đặt cược tốt nhất của bạn? Sử dụng cả hai. Sử dụng máy ảnh khi bạn triển khai các kiến ​​trúc đã biết đối với dữ liệu mới và TensorFlow khi triển khai các mô hình mới. Khi hoàn thành với các mô hình TensorFlow, hãy chuyển sang Keras và thêm vào thư viện cá nhân của bạn (hoặc thậm chí tốt hơn, dự án Keras). Bằng cách này, bạn có thể tập trung vào những thứ khác mà bạn cần quan tâm khi xây dựng các loại hệ thống này: định dạng dữ liệu đầu vào, đánh giá kết quả, điều chỉnh siêu âm, loại điều đó. Cách tiếp cận này cũng hiệu quả với Theano, cũng như bất kỳ khuôn khổ học tập sâu nào khác mà bạn yêu thích.

Đây là loại việc tôi đã làm: Tôi đã sử dụng TensorFlow để tạo mẫu và sau đó xây dựng các mô hình cuối cùng bằng cách sử dụng các nguyên hàm Keras và Keras cho tính di động. Bằng cách này, tôi có được điều tốt nhất của cả hai thế giới. Làm điều này, và bạn cũng sẽ như vậy.

Hữu ích 3 Chia sẻ Viết bình luận 0
Đã xem 8510