From f9afdc282fa448b3f7998ae0d2356eaae7a43302 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Wed, 11 Aug 2021 18:08:44 -0400 Subject: [PATCH 1/2] convert `decay_rate` to `stop_lr` from old inputs close #919. --- deepmd/utils/compat.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/deepmd/utils/compat.py b/deepmd/utils/compat.py index e3fd0c3177..e8f2db25e1 100644 --- a/deepmd/utils/compat.py +++ b/deepmd/utils/compat.py @@ -5,6 +5,7 @@ from pathlib import Path from typing import Any, Dict, Optional, Sequence, Union +import numpy as np from deepmd.common import j_must_have @@ -237,6 +238,25 @@ def _jcopy(src: Dict[str, Any], dst: Dict[str, Any], keys: Sequence[str]): dst[k] = src[k] +def remove_decay_rate(jdata: Dict[str, Any]): + """convert decay_rate to stop_lr. + + Parameters + ---------- + jdata: Dict[str, Any] + input data + """ + lr = jdata["learning_rate"] + if "decay_rate" in lr: + decay_rate = lr["decay_rate"] + start_lr = lr["start_lr"] + stop_step = jdata["training"]["stop_batch"] + decay_steps = lr["decay_steps"] + stop_lr = np.exp(np.log(decay_rate) * (stop_step / decay_steps)) * start_lr + lr["stop_lr"] = stop_lr + lr.pop("decay_rate") + + def convert_input_v1_v2(jdata: Dict[str, Any], warning: bool = True, dump: Optional[Union[str, Path]] = None) -> Dict[str, Any]: @@ -259,6 +279,9 @@ def convert_input_v1_v2(jdata: Dict[str, Any], jdata["training"] = new_tr_cfg + # remove deprecated arguments + remove_decay_rate(jdata) + if warning: _warning_input_v1_v2(dump) if dump is not None: From d9b0a657c23e72cbda8c647cf969ef454595cfb2 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Wed, 11 Aug 2021 19:48:40 -0400 Subject: [PATCH 2/2] fix tests --- source/tests/compat_inputs/water_v2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/tests/compat_inputs/water_v2.json b/source/tests/compat_inputs/water_v2.json index 0bb1281f55..af923b606d 100644 --- a/source/tests/compat_inputs/water_v2.json +++ b/source/tests/compat_inputs/water_v2.json @@ -17,7 +17,7 @@ "learning_rate" :{ "type": "exp", "decay_steps": 5000, - "decay_rate": 0.95, + "stop_lr": 3.505266624882874e-08, "start_lr": 0.001 },