Модель прогнозирования в генераторе данных Keras - PullRequest
1 голос
/ 18 марта 2019


Я работаю над моделью Keras с изображениями, разделенными на участки.

У меня довольно своеобразный конвейер:

for i in range(n_iteration):
        print("Epoch:", i, "/", n_iteration)
        start = time.time()
        self.train_batch, self.validation_batch = self.get_batch()
        end = time.time()
        print("Time for loading: ",end - start)
        K.set_value(self.batch_source, self.train_batch[0][:self.batch_size])
        K.set_value(self.batch_target, self.train_batch[0][self.batch_size:])

        pred = self.model.predict(self.train_batch[0])

        K.set_value(self.gamma, self.compute_gamma(pred))

        hist = self.model.train_on_batch(self.train_batch[0], self.train_batch[1])

Мне нужно вычислить на основе прогноза моей модели за один раз t (для данногоbatch) определенное значение с именем gamma. Это значение затем учитывается в моей функции потерь, но его нельзя дифференцировать, поэтому я не могу интегрировать его вычисления в мою функцию потерь.

При измерении необходимого времени для загрузки и тренировки выясняется, что узкое место находится в фазе загрузки.
У меня вопрос: возможно ли загрузить несколько пакетов (функция self.get_batch () при вычислении прогноза, гаммы и обучения для другого пакета?

Я предполагаю, что идея заключается в создании некоторогосвоего рода очередь, в которой я храню свои партии, но я действительно не знаю, как это сделать.

PS: в моей функции get_batch я обращаюсь к файлу hdf5, может ли это вызвать какие-либо проблемы в многопроцессорной обработке?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...