Làm thế nào để lưu giữ lại ma trận trọng số sau khi train xong và dùng để load lại để predict?
Làm thế nào để lưu giữ lại ma trận trọng số sau khi train xong và dùng để load lại để predict?
trí tuệ nhân tạo
Ví dụ khi tạo mô hình Deep learning bằng Lasagne ta cần lưu lại bộ trọng số sau khi huấn luyện, sau đó gọi bộ trọng số đó ra cho quá trình gán nhãn dữ liệu mới:
#training ...
# build model
bi_lstm_cnn_crf = ...
# save parameter
numpy.savez('models/weights', *lasagne.layers.get_all_param_values(bi_lstm_cnn_crf))
#predict...
# load parameter
with numpy.load('models/weights.npz') as f:
param_values = [f['arr_%d' % i] for i in range(len(f.files))]
lasagne.layers.set_all_param_values(bi_lstm_cnn_crf, param_values)
Nội dung liên quan
Dung Doan
Ví dụ khi tạo mô hình Deep learning bằng Lasagne ta cần lưu lại bộ trọng số sau khi huấn luyện, sau đó gọi bộ trọng số đó ra cho quá trình gán nhãn dữ liệu mới:
#training ...
# build model
bi_lstm_cnn_crf = ...
# save parameter
numpy.savez('models/weights', *lasagne.layers.get_all_param_values(bi_lstm_cnn_crf))
#predict...
# load parameter
with numpy.load('models/weights.npz') as f:
param_values = [f['arr_%d' % i] for i in range(len(f.files))]
lasagne.layers.set_all_param_values(bi_lstm_cnn_crf, param_values)
Tú Trần
Nếu bạn đang tự viết NN của riêng mình, thì hầu hết các ngôn ngữ đều có hàm để serialize/deserialize một object. Ví dụ, trong Python có pickle(), Matlab có save(), Java có ObjectOutputStream, ...
Nếu bạn đang sử dụng một thư viện, thì khả năng lớn tính năng này cũng được hỗ trợ sẵn. Ví dụ, Keras có save()/load_model(), Tensorflow có tf.train.Saver(), ...
Edit: