lululxvi / deepxde

A library for scientific machine learning and physics-informed learning
https://deepxde.readthedocs.io
GNU Lesser General Public License v2.1
2.69k stars 751 forks source link

save a trained model with L-BFGS-B optimizer #206

Closed letuyen2101 closed 3 years ago

letuyen2101 commented 3 years ago

Dear Lululxvi, In Burger equation, I tried to save model with difference optimizer algorithm. Code is as bellow: ..... model = dde.Model(data, net)

    model.compile("adam", lr=1.0e-3)
    checker = dde.callbacks.ModelCheckpoint("model_adam/model.ckpt",
                                    save_better_only=True, period=1000)

    model.train(epochs=10020, callbacks=[checker])
    model.compile("L-BFGS-B")
    checker1 = dde.callbacks.ModelCheckpoint("model_lbfgs/model.ckpt",
                                    save_better_only=True, period=200)

    model.train(callbacks=[checker1])

.... After running, I can save model in folder_adam but folder_lbfgs is empty, even the log file is that Step Train loss Test loss Test metric 0 [2.26e-02, 6.75e-02, 3.42e-01] [2.17e-02, 0.00e+00, 0.00e+00] []
1000 [3.59e-02, 3.51e-04, 4.62e-02] [4.64e-02, 0.00e+00, 0.00e+00] []
2000 [1.41e-02, 1.73e-04, 1.21e-02] [2.17e-02, 0.00e+00, 0.00e+00] []
3000 [5.38e-03, 5.57e-05, 3.37e-03] [7.20e-03, 0.00e+00, 0.00e+00] []
4000 [4.81e-03, 2.72e-05, 2.12e-03] [4.73e-03, 0.00e+00, 0.00e+00] []
5000 [3.28e-03, 2.76e-05, 1.52e-03] [3.52e-03, 0.00e+00, 0.00e+00] []
6000 [7.13e-03, 2.21e-05, 1.21e-03] [2.91e-03, 0.00e+00, 0.00e+00] []
7000 [2.55e-03, 1.54e-05, 1.01e-03] [2.41e-03, 0.00e+00, 0.00e+00] []
8000 [1.68e-03, 1.11e-05, 8.88e-04] [2.12e-03, 0.00e+00, 0.00e+00] []
9000 [1.22e-03, 8.74e-06, 8.30e-04] [1.85e-03, 0.00e+00, 0.00e+00] []
10000 [1.26e-03, 8.62e-06, 7.78e-04] [1.70e-03, 0.00e+00, 0.00e+00] []
10020 [1.13e-03, 7.20e-06, 7.57e-04] [1.68e-03, 0.00e+00, 0.00e+00] []

Best model at step 10020: train loss: 1.89e-03 test loss: 1.68e-03 test metric: []

'train' took 53.362224 s

Compiling model... 'compile' took 0.396387 s

Training model...

Step Train loss Test loss Test metric 10020 [1.13e-03, 7.20e-06, 7.57e-04] [1.68e-03, 0.00e+00, 0.00e+00] []
11000 [3.85e-04, 1.91e-06, 2.58e-04]
12000 [1.89e-04, 7.13e-07, 1.07e-04]
13000 [1.08e-04, 2.36e-07, 3.23e-05]
14000 [6.78e-05, 2.04e-07, 1.27e-05]
14536 [4.57e-05, 1.44e-07, 1.04e-05] [4.43e-04, 0.00e+00, 0.00e+00] []

Best model at step 14536: train loss: 5.63e-05 test loss: 4.43e-04 test metric: []

Could you give me some hints, please ! Appreciated !

lululxvi commented 3 years ago

L-BFGS-B doesn't support saving model during training. You can use model_save_path in Model.train() to save the final model. see https://deepxde.readthedocs.io/en/latest/modules/deepxde.html#deepxde.model.Model.train