2015-11-20 47 views
6

Các nhóm khác nhau sử dụng các thư viện khác nhau để đào tạo và chạy các mạng thần kinh (caffe, torch, theano ...). Điều này làm cho việc chia sẻ khó khăn: mỗi thư viện có định dạng riêng để lưu trữ mạng và bạn phải cài đặt một thư viện mới mỗi lần bạn muốn kiểm tra công việc của các nhóm khác.Có định dạng chung cho mạng thần kinh không

Tôi đang tìm các giải pháp để làm cho điều này ít tẻ nhạt: - Có định dạng ưa thích (được chia sẻ?) Để lưu trữ mạng neural không? - Có dịch vụ hoặc thư viện nào có thể giúp xử lý các loại mạng khác nhau hoặc chuyển đổi một loại khác không?

Cảm ơn bạn!

+2

Câu trả lời ngắn gọn: không và không. Thông thường, mỗi thư viện đều có ưu và khuyết điểm tùy thuộc vào chính xác bạn định làm gì. Khi chúng hoạt động khác nhau, sẽ rất khó để xây dựng các nguyên tắc hoặc thông số phù hợp với mọi thư viện, do đó không có định dạng chung được ưu tiên. Trừ khi ai đó tìm ra một định dạng phù hợp với hầu hết các nhu cầu, tất nhiên. –

Trả lời

8

Có định dạng ưa thích (được chia sẻ?) Để lưu trữ mạng nơron không?

Mỗi thư viện/khung công tác có tuần tự hóa riêng, ví dụ: Caffe sử dụng Protocol Buffers, Torch có một đối tượng built-in serialization scheme và Theano có thể là serialized with pickle.

Trong một số trường hợp như thế OverFeat hoặc darknet trọng lượng và những thành kiến ​​được lưu trữ trên đĩa ở định dạng nhị phân thông qua đồng bằng fwrite -s của float (hoặc double) mảng tiếp giáp tương ứng (xem this answer để biết thêm chi tiết). Lưu ý rằng điều này không bao gồm kiến ​​trúc của mạng/mô hình mà phải được biết hoặc được biểu diễn riêng biệt (như declared explicitly at load time).

Ngoài ra: thư viện như libccv lưu trữ cấu trúc và trọng số trong một SQLite database.

Có dịch vụ hoặc thư viện nào có thể giúp xử lý các loại mạng khác nhau hoặc chuyển đổi loại này sang loại mạng khác không?

Tôi không nghĩ có một thư viện (meta) duy nhất tuyên bố làm như vậy. Nhưng nó tồn tại các dự án riêng biệt cung cấp các trình biến đổi thuận tiện.

Một số ví dụ (không đầy đủ):

-

CẬP NHẬT (2017-09): hai sáng kiến ​​đáng chú ý là:

(1) định dạng ONNX (a.k.a. Mở Neural Network hối):

[...] một tiêu chuẩn cho đại diện cho mô hình học sâu cho phép mô hình được chuyển giao giữa các khuôn khổ

Xem những blogposts.

(2) định dạng CoreML giới thiệu bởi Apple:

[...] một định dạng tập tin công cộng (.mlmodel) cho một tập hợp các phương pháp ML [...] Các mô hình ở định dạng này có thể được tích hợp trực tiếp vào ứng dụng thông qua Xcode.

Các vấn đề liên quan