Модель остаточной нейронной сети работает очень медленно на оборудовании Google Colab TPU? - PullRequest
0 голосов
/ 14 июня 2019

Я сделал модель остаточной нейронной сети в Google Colab в керасе для набора данных cifar10, но она работает очень медленно на оборудовании TPU.

У меня есть другая обычная сверточная нейронная сеть, которая отлично работает на Google Colab,Эта модель использует последовательный API-интерфейс keras, а остаточная нейронная сеть использует функциональный API-интерфейс, но не уверен, что это проблема.Я уже пытался изменить размер пакета, и это не помогло.Ссылка на мою программу приведена ниже.

https://colab.research.google.com/github/valentinocc/Keras_cifar10/blob/master/keras_rnn_cifar10.ipynb#scrollTo=7Jc51Dbac2MC

Ожидайте, что каждая эпоха завершится по крайней мере менее чем за одну минуту (обычно около 10 секунд максимум), но кажется, что каждая мини-партия занимает целую минуту самостоятельнозавершить (а в эпоху много мини-партий).

1 Ответ

0 голосов
/ 17 июня 2019

Кажется, проблема связана с использованием разных оптимизаторов. Использование тензорного потока.keras.optimizers.Adam позволил процессору работать правильно, в то время как использование тензорного потока.рэд.АдамОптимизатор работал очень медленно.

Однако проблему становится все труднее исправить при использовании функции fit_generator и объекта ImageDataGenerator для дополнения данных (в отличие от только функции «подгонки»). Кажется, что ImageDataGenerator, функциональный API-интерфейс keras и аппаратное обеспечение TPU не очень хорошо работают вместе. Tf.keras.optimizers.Adam будет иметь ошибки времени выполнения, а tf.train.AdamOptimizer работает так же быстро, как и процессор. Я думаю, что решение здесь состоит в том, чтобы использовать другой фреймворк с графическим процессором или попробовать тензорный поток без кера.

...