Модель LSTM Tensorflow 2.1.0 tf.distribute.MirroredStrategy () медленно на AWS экземпляр g3.4large - PullRequest
1 голос
/ 17 марта 2020

Я использую модель LSTM на AWS экземпляре g3.8xlarge, который имеет 2 графических процессора, и использую tf.distribute.MirroredStrategy(), чтобы я мог использовать 2 графических процессора. Тем не менее, время тренировки на самом деле медленнее, чем без этого. Кто-нибудь знает как это решить?

Я использую:

  • Ubuntu 16.04
  • NVIDIA-SMI 440.33.01
  • CUDA Версия 10.1.105
  • Cudnn 7.6.5
  • tenenflow-gpu 2.1.0

Мой код:

from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import LSTM 
from tensorflow.compat.v1.keras.layers import CuDNNLSTM 
from tensorflow.keras.layers import Dense 
from tensorflow.keras.layers import Dropout 
from tensorflow.keras.layers import RepeatVector 
from tensorflow.keras.layers import TimeDistributed 
from tensorflow.keras.optimizers import SGD 
import tensorflow.keras.backend as K 
import tensorflow as tf

def lstm_model(timesteps, features, neurons_1, dropout, learning, momentum, decay, init ) :
   distribute = tf.distribute.MirroredStrategy()
   with distribute.scope():
       model = Sequential()
       model.add(CuDNNLSTM(neurons_1, return_sequences=False, input_shape = (timesteps, features), kernel_initializer = init))
       model.add(Dropout(dropout))
       model.add(Dense(1))
       SGD( lr = learning, momentum = momentum, decay = decay, nesterov = False)
       model.compile(loss = lambda y, f: tilted_loss(0.5, y,f), optimizer = 'adam')
   return model


...