2017-02-01 1 views
1

Я строю генератор Python для использования функцией Keras fit_generator. Я хочу использовать текущую цифру эпохи в моем генераторе, чтобы настроить значение. Есть ли способ ссылаться на этот номер?Как ссылаться на номер эпохи в генераторе Keras?

def generate_arrays_from_file(path): 
    while 1: 
    f = open(path) 
    for line in f: 
     x, y = process_line(line) 
     epoch_number = ? 
     x = x + epoch_number 
     yield (x, y) 
    f.close() 

model.fit_generator(generate_arrays_from_file('/my_file.txt'), 
     samples_per_epoch=10000, nb_epoch=10) 
+0

http://stackoverflow.com/questions/4548684/how-to-get-the-seconds-since-epoch-from-the-time-date- output-of-gmtime-in-py –

ответ

1

Как насчет:

def generate_arrays_from_file(path, samples_per_epoch): 
    samples_produced_in_current_epoch = 0 
    epoch_number = 1 
    while 1: 
    f = open(path) 
    for line in f: 
     x, y = process_line(line) 
     x = x + epoch_number 
     samples_produced += x.shape[0] 
     if samples_produced_in_current_epoch > samples_per_epoch: 
      epoch_number += 1 
      samples_produced_in_current_epoch = 0  
     yield (x, y) 

    f.close() 
+0

Да, это работает! Было бы неплохо, если бы был способ ссылаться на него напрямую, но это поможет мне достичь того, что я собираюсь сделать. Вы даже можете сделать это чуть более кратким: 'epoch_number = samples_produced_in_current_epoch/samples_per_epoch + 1' – ckirksey3

+0

У вас могут быть проблемы с переполнением, если число эпох и образцов велико –

Смежные вопросы