Download 3rdparty/caffe/tools/extra/extract_seconds.py from camenduru/openpose: direct link, hf CLI and curl.
- Browser
- Download file 2.21 kB
-
https://huggingface.co/camenduru/openpose/resolve/main/3rdparty/caffe/tools/extra/extract_seconds.py
- Command line
-
hf download hf://camenduru/openpose/3rdparty/caffe/tools/extra/extract_seconds.py
-
curl -L -o extract_seconds.py https://huggingface.co/camenduru/openpose/resolve/main/3rdparty/caffe/tools/extra/extract_seconds.py
2.21 kB
| #!/usr/bin/env python | |
| import datetime | |
| import os | |
| import sys | |
| def extract_datetime_from_line(line, year): | |
| # Expected format: I0210 13:39:22.381027 25210 solver.cpp:204] Iteration 100, lr = 0.00992565 | |
| line = line.strip().split() | |
| month = int(line[0][1:3]) | |
| day = int(line[0][3:]) | |
| timestamp = line[1] | |
| pos = timestamp.rfind('.') | |
| ts = [int(x) for x in timestamp[:pos].split(':')] | |
| hour = ts[0] | |
| minute = ts[1] | |
| second = ts[2] | |
| microsecond = int(timestamp[pos + 1:]) | |
| dt = datetime.datetime(year, month, day, hour, minute, second, microsecond) | |
| return dt | |
| def get_log_created_year(input_file): | |
| """Get year from log file system timestamp | |
| """ | |
| log_created_time = os.path.getctime(input_file) | |
| log_created_year = datetime.datetime.fromtimestamp(log_created_time).year | |
| return log_created_year | |
| def get_start_time(line_iterable, year): | |
| """Find start time from group of lines | |
| """ | |
| start_datetime = None | |
| for line in line_iterable: | |
| line = line.strip() | |
| if line.find('Solving') != -1: | |
| start_datetime = extract_datetime_from_line(line, year) | |
| break | |
| return start_datetime | |
| def extract_seconds(input_file, output_file): | |
| with open(input_file, 'r') as f: | |
| lines = f.readlines() | |
| log_created_year = get_log_created_year(input_file) | |
| start_datetime = get_start_time(lines, log_created_year) | |
| assert start_datetime, 'Start time not found' | |
| last_dt = start_datetime | |
| out = open(output_file, 'w') | |
| for line in lines: | |
| line = line.strip() | |
| if line.find('Iteration') != -1: | |
| dt = extract_datetime_from_line(line, log_created_year) | |
| # if it's another year | |
| if dt.month < last_dt.month: | |
| log_created_year += 1 | |
| dt = extract_datetime_from_line(line, log_created_year) | |
| last_dt = dt | |
| elapsed_seconds = (dt - start_datetime).total_seconds() | |
| out.write('%f\n' % elapsed_seconds) | |
| out.close() | |
| if __name__ == '__main__': | |
| if len(sys.argv) < 3: | |
| print('Usage: ./extract_seconds input_file output_file') | |
| exit(1) | |
| extract_seconds(sys.argv[1], sys.argv[2]) | |