Я новичок в тензорном потоке. В настоящее время я работаю над системой с 2 графическими процессорами, каждый из которых составляет 12 ГБ. Я хочу реализовать параллелизм модели на двух графических процессорах для подготовки больших моделей. Я просматривал всю информацию в Интернете, SO, документацию о тензорном потоке и т. Д., Я смог найти объяснения параллелизма модели и ее результатов, но нигде я не нашел небольшой учебник или небольшие фрагменты кода о том, как его реализовать, используя tenorflow. Я имею в виду, что мы должны обмениваться активациями сразу после каждого слоя? Итак, как мы это делаем? Существуют ли конкретные или более чистые способы реализации параллелизма модели в тензорном потоке? Было бы очень полезно, если бы вы предложили мне место, где я могу научиться его реализовывать, или простой код, например, обучение mnist на нескольких графических процессорах, используя «MODEL PARALLELISM».Реализация параллелизма модели в тензорном потоке
Примечание: Я выполнил параллелизм данных, как в CIFAR10 - многопроцессорный учебник gpu, но я не нашел реализации параллелизма модели.
@Buatov - Спасибо за выше реализацию, но то, что я искал в том, что при реализации модели параллелизма для нейронной сети, мы должны разделить активации после вперед пройти через каждый слой, так что мое главное сомнение было как передать весовые матрицы с одного устройства на другое (т. е. между графическими процессорами). – krish567
Все это делается автоматически для вас. IE, просто замените часть 'tf.square' в приведенном выше коде с помощью' a = create_left_part_of_network' и 'b = create_right_part_of_network', и вы получите сеть, разделенную между gpu0 и gpu1. –
Работает так, как я ожидал, но он медленнее, чем время, которое требуется, если я запускаю все в одном gpu. Вы знаете, почему это происходит. здесь есть ссылка на коды: [multi_gpu] (https://github.com/krish567/deep_learning/blob/master/model3.py) [one gpu] (https://github.com/krish567/deep_learning /blob/master/model2.py) – krish567