动态暂停Python程序(并继续)

动态暂停Python程序(并继续),python,numpy,pandas,machine-learning,neural-network,Python,Numpy,Pandas,Machine Learning,Neural Network,我正在建立一个类似机器学习算法的神经网络,其中类变量I.e numpy矩阵表示系统的各种参数 通过迭代更新所有类变量来训练系统。迭代次数越多越好。我想每天早上起床检查课堂变量。在那之后,我想继续这个计划 我正在一个交互式终端中调用该程序。以下是我能想到的: 打印到终端->矩阵太大,没有帮助 保存到磁盘并加载到另一个终端 设置跟踪,但需要事先知道何时暂停 是否可以在运行中暂停程序并使用类变量,然后继续 如果有人需要更多详细信息,程序如下:我不熟悉numpy,但这里有一个简单的类,可以停止并继续:

我正在建立一个类似机器学习算法的神经网络,其中类变量I.e numpy矩阵表示系统的各种参数

通过迭代更新所有类变量来训练系统。迭代次数越多越好。我想每天早上起床检查课堂变量。在那之后,我想继续这个计划

我正在一个交互式终端中调用该程序。以下是我能想到的:

打印到终端->矩阵太大,没有帮助 保存到磁盘并加载到另一个终端 设置跟踪,但需要事先知道何时暂停 是否可以在运行中暂停程序并使用类变量,然后继续


如果有人需要更多详细信息,程序如下:

我不熟悉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( ... )

是否可以在每次迭代时将状态保存到一个文件中,并检查自上次读取以来是否修改了另一个文件?如果配置文件已更改,请加载新参数并继续运行。如果您只想读取进度,而不想对其进行编辑/更改,为什么不让它每隔N次将矩阵写入一个文件。假设每次迭代花费的时间大致相同,您应该能够找到一定数量的迭代,这些迭代大致适合您认为方便的时间窗口。简短而甜蜜,+1: