[PYTHON] Calculez sur plusieurs GPU à l'aide de la stratégie en miroir de Tensorflow 2

Aperçu

Très facile. Construisez simplement un réseau dans le cadre de tf.distribute.MirroredStrategy tf.distribute.MirroredStrategy. Il vous suffit de modifier quelques lignes.

Exemple d'implémentation utilisant l'API Keras

Ici, à titre d'exemple simple, nous construisons un réseau simple avec une seule couche cachée.

import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras.optimizers import Adam


with tf.distribute.MirroredStrategy().scope():

    #Construisez un réseau avec ce bloc
    x = Input(32, dtype=tf.int32, name='x')
    hidden = Dense(20, activation='relu', name='hidden')(x)
    y = Dense(5, activation='sigmoid', name='y')(hidden)
    model = Model(inputs=x, outputs=y)
    model.compile(
        optimizer=Adam(lr=0.001),
        loss='binary_crossentropy',
    )

model.fit(
    x_train, y_train,
    epochs=10,
    batch_size=16,
)

Relation

La documentation officielle est la suivante.

Si vous souhaitez utiliser l'API Keras telle quelle, comme présenté dans cet article, mais si vous implémentez une boucle d'entraînement personnalisée, vous devez prendre en compte certains points supplémentaires. Dans ce cas, veuillez vous référer au document ci-dessus.

multi_gpu_model () devrait être aboli après avril 2020.

Recommended Posts

Calculez sur plusieurs GPU à l'aide de la stratégie en miroir de Tensorflow 2
Essayez d'utiliser Bash sur Windows 10 2 (installation de TensorFlow)
Avertissement lors de l'utilisation de TensorFlow sur Mac
Une histoire addictive lors de l'utilisation de tensorflow sur Android
Remarques sur l'utilisation de TensorFlow sur Bash sur Ubuntu sous Windows