簡體   English   中英

快速暫停Python程序(並繼續)

[英]Pause Python program on the fly (and resume)

我正在構建一種機器學習算法(例如神經網絡),其中類變量 (即numpy 矩陣 )表示系統的各種參數

訓練系統是通過迭代更新所有類變量來完成的。 迭代次數越多越好。 我想每天早晨起床,檢查班級變量。 之后,我想恢復程序

我正在交互式終端中調用該程序。 這是我能想到的:

  1. 打印到終端->矩陣太大,不會有幫助
  2. 保存到磁盤並加載到另一個終端
  3. set_trace() ,但需要事先知道何時暫停

是否可以即時暫停程序並使用類變量然后恢復?

如果有人需要更多詳細信息,請訪問以下程序: github鏈接

我不熟悉numpy,但這是一個可以停止和繼續的簡單類:

class Program():

    def run(self):
        while 1:
            try:
                self.do_something()
            except KeyboardInterrupt:
                break

    def do_something(self):
        print("Doing something")


# usage:

a = Program()
a.run()

# will print a lot of statements

# if you hit CTRL+C it will stop
# then you can run it again with a.run()

如果您修改model.do_EM()方法以保存每一步的當前狀態並檢查配置文件,該怎么辦?

 def do_EM(self, n_iteration = 10):
    self.visualizer.visualize(self.param_alpha, self.param_mu, self.param_sigma)
    for i in range(n_iteration):
      print "iteration:", i 
      self.step_E()
      print "done step_E. ",
      self.step_M()
      print "done step_M. "
      self.visualizer.visualize(self.param_alpha, self.param_mu, self.param_sigma)

      # Save current state
      self.log.write( ... )
      # Check for config changes
      self.config.update( ... )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM