2017-09-24 23 views

答えて

0

timeitモジュールを使用して、機能の2つの実装の実行時間を比較するための一般的な方法である:

FirstClassifierというクラスを実装し、SecondClassifier両方のことを、次の2つのモジュール、first.pysecond.pyを持っていると仮定しますともにclassifyというメソッドを実装しています。また、trainというメソッドがあり、呼び出されたときにトレーニングデータを読み込んでそのモデルをトレーニングし、classifyメソッドの速度を測定するとします。

のでfirst.pyは次のようになります。

# Fill in imports here. 
import random 

class FirstClassifier(object): 
    def __init__(self): 
     # Fill in initialization code here. 
     pass 

    def train(self): 
     # Fill in code to train model here. 
     pass 

    def classify(self, text): 
     # Fill in classification code here. 
     # Dummy "classification": 
     return random.choice(['sports', 'politics', 'video games']) 

そしてsecond.pyは次のようになります。

# Fill in imports here. 

class SecondClassifier(object): 
    def __init__(self): 
     # Fill in initialization code here. 
     pass 

    def train(self): 
     # Fill in code to train model here. 
     pass 

    def classify(self, text): 
     # Fill in classification code here. 
     # Dummy "classification": 
     return 'sports' 

あなたがそうのようなtimeitを使用してclassifyメソッドの実行を時間を計ることができます。

python -m timeit -s 'from first import FirstClassifier;classifier = FirstClassifier();classifier.train();' 'classifier.classify("The game ended in a draw.")' 

サンプルの出力は、「ゲームはドローイングで終了しました」という分類を示しています。平均で0.417μ秒かかる。分類いることを示す

python -m timeit -s 'from second import SecondClassifier;classifier = SecondClassifier();classifier.train();' 'classifier.classify("The game ended in a draw.")' 

出力例、:

1000000 loops, best of 3: 0.417 usec per loop 

そして、第2の実施のための「ゲームは引き分けに終わりました。」平均で0.0836μ秒かかる。

10000000 loops, best of 3: 0.0836 usec per loop 
timeit

これらのコマンドの一般的な形式はpython -m timeit -s 'SETUP_CODE' 'CODE_TO_TIME'あります。したがって、測定する関数を準備するために実行する必要のあるコードは、-sオプションに行き、メインの式はコマンドの最初の非フラグ引数に渡されます。

関連する問題