実行したファイルの残り時間をターミナルに表示する
機械学習のプログラムを書き始めると、大きいファイルを扱う機会が増えた。 そこでターミナルに残り時間を表示させたいと思ったので、 h5ファイルを作成する関数を例にしてメモっておく。
def create_h5(h5_fpath, image_fpaths, better_model, num): start_time = datetime.now() # 現在時刻取得 print('============================') print("Start: " + str(start_time)) print("Num : " + str(num)) # 読み込む画像の枚数 with h5py.File(h5_fpath, "w") as f: for i, image_fpath in enumerate(image_fpaths): # ここでファイルを読み込んでh5ファイルを作成する処理を行っていることとする # 100枚毎に残り時間を表示させる if i % 100 == 0 and i != 0: elapsed_time = datetime.now() - start_time # 経過時間 ave_time = elapsed_time/i # 現在における1つあたりの平均処理時間を算出 remain_time = (ave_time*num) - elapsed_time # 「平均*画像枚数」で全体的なかかる時間を計算し、経過時間を引く print(str(i)+": "+str(remain_time)+" left")
実際の出力はこんな感じ。
4200: 0:00:57.961352 left 4300: 0:00:50.587814 left 4400: 0:00:43.323896 left 4500: 0:00:35.996341 left 4600: 0:00:28.692517 left 4700: 0:00:21.979801 left 4800: 0:00:14.650676 left 4900: 0:00:07.381439 left