【问题标题】:I want to eavalute the time needed to perform prediction using a trained model [duplicate]我想评估使用经过训练的模型执行预测所需的时间 [重复]
【发布时间】:2017-03-26 21:15:27
【问题描述】:

我知道 timeit 可以用来测量经过的时间,但我不知道如何在我的代码中实现。例如,我将评估模型性能如下:

scores = model.evaluate(X_test, Y_test, verbose=0)

如何添加timeit或其他一些函数来测量需要的时间?

【问题讨论】:

    标签: python


    【解决方案1】:

    这是一个基本设置:

    import time
    start_time = time.time()
    # code
    print("time - {}".format(time.time()-start_time))
    

    您还可以使用 Python 的函数包装器,并制作一个包装器来为您的函数计时。例如。

    import time
    
    def getime(func):
        def func_wrapper(*args, **kwargs):
            start_time = time.time()
            func(*args, **kwargs)
            print("function {} completed in - {} seconds".format(
                func.__name__,
                time.time()-start_time))
        return func_wrapper
    
    # ------------ test example of wrapper --------- #
    @getime
    def foo():
        for i in range(1000):
            for j in range(2000):
                pass
    
    foo()
    

    输出:

    function foo completed in - 0.13300752639770508 seconds
    

    【讨论】:

      【解决方案2】:

      试试:

      import time
      ...
      t = time.time()
      scores = model.evaluate(X_test, Y_test, verbose=0)
      elapsed_time = time.time()-t
      

      要检查 10000 次(为了更准确),请尝试:

      def check():
          t = time.time()
          scores = model.evaluate(X_test, Y_test, verbose=0)
          elapsed_time = time.time()-t
          return elapsed_time
      average_elapsed_time = [sum(check() for i in range(10000))/10000][0]
      

      【讨论】:

      • 如何进一步修改,多次执行,得到更准确的结果?
      • 这样行吗?
      • 非常感谢!那行得通!
      猜你喜欢
      • 2019-10-05
      • 2020-07-04
      • 2022-11-11
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2021-09-06
      相关资源
      最近更新 更多