Могу ли я использовать новый унифицированный RNN API Tensoflow в версии 1.13? - PullRequest
0 голосов
/ 19 марта 2019

Традиционно TensorFlow поддерживает RNN на основе CuDNN до tf.keras.layers.CuDNNGRU и tf.keras.layers.CuDNNLSTM. Но эти API-интерфейсы неудобны в ситуации, когда вы тренируетесь на GPU и делаете вывод на CPU, потому что им требуется GPU. TensorFlow 2.0 исправит это с помощью унифицированного API RNN, который использует CuDNN, когда это возможно, и в противном случае возвращается к более медленной реализации. И в заметках о выпуске TensorFlow 1.13 есть эта заманчивая заметка:

Изменить функцию периодической активации по умолчанию для LSTM с 'hard_sigmoid' в 'sigmoid' в 2.0. Исторически повторяющаяся активация является 'hard_sigmoid', поскольку он быстрее, чем 'sigmoid'. С новым унифицированным бэкэнд между режимом CPU и GPU, так как ядро ​​CuDNN использует sigmoid, мы также изменим значение по умолчанию для режима CPU на sigmoid. С что LSTM по умолчанию будет совместим как с CPU, так и с GPU ядро. Это позволит пользователю с графическим процессором по умолчанию использовать ядро ​​CuDNN. и получить 10-кратное повышение производительности в тренировках. Обратите внимание, что это изменение контрольной точки. Если пользователь хочет использовать свои 1.x предварительно обученные контрольная точка, пожалуйста, построите слой с LSTM (recurrent_activation = 'hard_sigmoid') для возврата к 1.x поведение.

Это в примечаниях к выпуску 1.13, поэтому я подумал, что, возможно, я смогу использовать этот API в 1.13, хотя сама заметка по какой-то причине говорит о 2.0. Есть ли способ сделать это? Я действительно мог бы использовать увеличение скорости CuDNN, но я не хочу переносить свой код на 2.0, пока он не станет стабильным.

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