Производительность Google colab снизилась после определенного количества итераций - PullRequest
2 голосов
/ 17 марта 2020

У меня есть следующий код для итерации более 6000 элементов, открытия и анализа 3 файлов, связанных с каждым элементом.

По какой-то причине после определенного количества итераций производительность снижается примерно до 1 итерации a секунда ...

def read_ColorHistogram(fname):
    """Scan Color Histogram from file
    Input file contains RGB histogram,
    Return a matrix of (3,256)"""
    RGB_Hist = np.zeros((3,256))
    with open(fname) as f:
        i_l = 0 # line index
        for line in f:
            pairs = line.split()
            hist_dict = {int(p.split(':')[0]):float(p.split(':')[1]) for p in pairs}
            for idx in hist_dict.keys():
                RGB_Hist[i_l,idx] = hist_dict[idx]
            i_l += 1
    return RGB_Hist

i = 0
# For each video in set
for video in labels["video"]:

  start = time.time()

  video_name = video.split('.')[0]

  frame_1_path = f'./Dev-set/ColorHistogram/{video_name}-0.txt'
  frame_2_path = f'./Dev-set/ColorHistogram/{video_name}-56.txt'
  frame_3_path = f'./Dev-set/ColorHistogram/{video_name}-112.txt'

  # Load colours for frame
  frame_1_colours = read_ColorHistogram(frame_1_path)
  frame_2_colours = read_ColorHistogram(frame_2_path)
  frame_3_colours = read_ColorHistogram(frame_3_path)

  stop = time.time()
  duration = stop-start
  print(f'{i} : {duration}')
  i += 1

Вот результат, который вы можете увидеть на итерации 331 - производительность падает и замедляется до 1+ секунды для каждого l oop.

My для l oop содержит 6000 элементов, поэтому эта производительность не приемлема ...

320 : 0.020931243896484375
321 : 0.023003816604614258
322 : 0.023036956787109375
323 : 0.01930379867553711
324 : 0.01989912986755371
325 : 0.019346237182617188
326 : 0.01939535140991211
327 : 0.019335508346557617
328 : 0.019719600677490234
329 : 0.020183801651000977
330 : 0.018976211547851562
331 : 1.3781886100769043
332 : 1.0635037422180176
333 : 1.0903840065002441
334 : 1.5412299633026123
335 : 1.2986907958984375
336 : 1.1264688968658447
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...