python — эффективное распределение разделяемой памяти TensorFlow для рекурсивной конкатенации

DenseNets обычно занимают много памяти в TensorFlow, потому что каждая операция concat хранится в отдельном выделении. Недавняя статья, Реализация DenseNets с эффективным использованием памяти, демонстрирует, что использование памяти может быть значительно сокращено за счет совместного использования ресурсов. Это изображение из реализации paper + pytorch иллюстрирует подход с общей памятью:

общая память densenet

Как это можно реализовать с помощью TensorFlow? Если это не может быть сделано через python, как это может быть правильно реализовано в операторе с поддержкой CPU и GPU?

Я создал TensorFlow Feature Request для необходимой функциональности распределения.

9

Решение

Реализация с эффективным использованием памяти теперь доступна по адресу:

https://github.com/joeyearsley/efficient_densenet_tensorflow

Соответствующая функция из вышеуказанной ссылки:

# Gradient checkpoint the layer
_x = tf.contrib.layers.recompute_grad(_x)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]