Từ những gì tôi đã thu thập cho đến nay, có một số cách khác nhau để kết xuất đồ thị TensorFlow vào một tệp và sau đó tải nó vào một chương trình khác, nhưng tôi không thể tìm thấy các ví dụ / thông tin rõ ràng về cách chúng hoạt động. Những gì tôi đã biết là:
- Lưu các biến của mô hình vào tệp điểm kiểm tra (.ckpt) bằng cách sử dụng a
tf.train.Saver()
và khôi phục chúng sau ( nguồn ) - Lưu mô hình thành tệp .pb và tải lại bằng cách sử dụng
tf.train.write_graph()
vàtf.import_graph_def()
( nguồn ) - Tải vào một mô hình từ tệp .pb, đào tạo lại và kết xuất mô hình đó vào tệp .pb mới bằng cách sử dụng Bazel ( nguồn )
- Cố định biểu đồ để lưu biểu đồ và trọng số cùng nhau ( nguồn )
- Sử dụng
as_graph_def()
để lưu mô hình và đối với trọng số / biến, ánh xạ chúng thành hằng số ( nguồn )
Tuy nhiên, tôi không thể giải đáp một số câu hỏi liên quan đến các phương pháp khác nhau này:
- Về các tệp điểm kiểm tra, chúng chỉ lưu các trọng lượng đã được đào tạo của một mô hình? Các tệp điểm kiểm tra có thể được tải vào một chương trình mới và được sử dụng để chạy mô hình hay chúng chỉ đơn giản là cách để lưu trọng số trong một mô hình tại một thời điểm / giai đoạn nhất định?
- Về vấn đề
tf.train.write_graph()
, các trọng số / biến có được lưu không? - Về Bazel, nó chỉ có thể lưu vào / tải từ các tệp .pb để đào tạo lại? Có một lệnh Bazel đơn giản chỉ để kết xuất một biểu đồ thành .pb không?
- Về vấn đề đóng băng, có thể tải đồ thị được đóng băng khi sử dụng
tf.import_graph_def()
không? - Bản demo Android cho TensorFlow tải trong mô hình Inception của Google từ tệp .pb. Nếu tôi muốn thay thế tệp .pb của chính mình, tôi sẽ làm như thế nào? Tôi có cần thay đổi bất kỳ mã / phương thức gốc nào không?
- Nói chung, sự khác biệt chính xác giữa tất cả các phương pháp này là gì? Hay rộng hơn, sự khác biệt giữa
as_graph_def()
/.ckpt/.pb là gì?
Tóm lại, những gì tôi đang tìm kiếm là một phương pháp để lưu cả một biểu đồ (như trong, các phép toán khác nhau, v.v.) và trọng số / biến của nó vào một tệp, sau đó có thể được sử dụng để tải biểu đồ và trọng số vào một chương trình khác , để sử dụng (không nhất thiết phải tiếp tục / đào tạo lại).
Tài liệu về chủ đề này không đơn giản lắm, vì vậy mọi câu trả lời / thông tin sẽ được đánh giá cao.