2017-02-01 5 views
1

私は、Keras fit_generator関数によって消費されるPythonジェネレータを構築しています。私は値を調整するために私のジェネレータで現在のエポックカウントを使用したい。この番号を参照する方法はありますか?ケラスジェネレータ内でエポック番号を参照するにはどうすればよいですか?

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

エポックとサンプルの数が多いとオーバーフローに問題が発生する可能性があります –

関連する問題