11import os ,sys ,platform ,shutil ,dpdata ,json
22import numpy as np
33import unittest
4+ import subprocess as sp
45
56from deepmd .infer import DeepPot
67from deepmd .env import MODEL_VERSION
@@ -17,6 +18,16 @@ def _file_delete(file) :
1718 if os .path .exists (file ):
1819 os .remove (file )
1920
21+ def _subprocess_run (command ):
22+ popen = sp .Popen (command .split (), shell = False , stdout = sp .PIPE , stderr = sp .STDOUT )
23+ for line in iter (popen .stdout .readline , b'' ):
24+ if hasattr (line , 'decode' ):
25+ line = line .decode ('utf-8' )
26+ line = line .rstrip ()
27+ print (line )
28+ popen .wait ()
29+ return popen .returncode
30+
2031def _init_models ():
2132 data_file = str (tests_path / os .path .join ("model_compression" , "data" ))
2233 frozen_model = str (tests_path / "dp-original.pb" )
@@ -28,12 +39,12 @@ def _init_models():
2839 with open (INPUT , "w" ) as fp :
2940 json .dump (jdata , fp , indent = 4 )
3041
31- ret = os . system ("dp train " + INPUT )
32- assert (ret == 0 ), " DP train error!"
33- ret = os . system ("dp freeze -o " + frozen_model )
34- assert (ret == 0 ), " DP freeze error!"
35- ret = os . system ("dp compress " + " -i " + frozen_model + " -o " + compressed_model )
36- assert (ret == 0 ), " DP model compression error!"
42+ ret = _subprocess_run ("dp train " + INPUT )
43+ np . testing . assert_equal (ret , 0 , ' DP train failed!' )
44+ ret = _subprocess_run ("dp freeze -o " + frozen_model )
45+ np . testing . assert_equal (ret , 0 , ' DP freeze failed!' )
46+ ret = _subprocess_run ("dp compress " + " -i " + frozen_model + " -o " + compressed_model )
47+ np . testing . assert_equal (ret , 0 , ' DP model compression failed!' )
3748 return INPUT , frozen_model , compressed_model
3849
3950INPUT , FROZEN_MODEL , COMPRESSED_MODEL = _init_models ()
0 commit comments