2017-03-06 70 views
7

Để lưu một mô hình trong keras, sự khác biệt giữa các tập tin xuất ra trong là gì:Sự khác nhau giữa keras model.save() và model.save_weights() là gì?

  1. model.save(),
  2. model.save_weights()?
  3. ModelCheckpoint() trong callback

Các tập tin lưu từ model.save() là lớn hơn so với mô hình từ model.save_weights(), nhưng lớn hơn đáng kể so với một json hoặc yaml tập tin cấu trúc mô hình. Tại sao điều này? Khôi phục điều này, tại sao kích thước (model.save()) + size (cái gì đó) = size (model.save_weights()) + size (model.to_json()), cái gì là "cái gì đó"?

Nó sẽ hiệu quả hơn chỉ với model.save_weights() và model.to_json(), và tải từ những thứ này hơn là chỉ làm model.save() và load_model()? Sự khác biệt là gì?

Trả lời

5

save() lưu trọng số và cấu trúc mô hình vào một tệp HDF5 duy nhất. Tôi tin rằng nó cũng bao gồm những thứ như trạng thái trình tối ưu hóa. Sau đó, bạn có thể sử dụng tệp HDF5 đó với load() để tạo lại toàn bộ mô hình, bao gồm cả trọng số.

save_weights() chỉ lưu trọng số cho HDF5 và không có gì khác. Bạn cần thêm mã để tạo lại mô hình từ tệp JSON.

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