Использование памяти графическим процессором cudNN lstm и ускорение - PullRequest
0 голосов
/ 12 июня 2019

У меня есть пара вопросов о готовой модели cuDNN LSTM, которую я пытаюсь вписать в R, используя библиотеку keras.У меня установлен tenorflow-gpu, и, похоже, он успешно работает.Первое, что меня интересует, это скорость обучения моделей, которая, кажется, увеличивается только в 1,3 раза при использовании cuDNN lstm вместо обычного LSTM.Я читал другие случаи, когда люди получали модели, которые тренируются в 10 или даже 15 раз быстрее при использовании cudnn lstm по сравнению с обычным lstm.Я выложу код ниже.Кроме того, меня интересует процент использования памяти графическим процессором.Когда выполняется код, кажется, что он занимает всего около 8% памяти графического процессора, что кажется немного низким.Может ли это быть связано с отсутствием повышенной скорости.

dim (x.train) = (208, 1, 4) dim (y.train) = (208, 1)

Длявалидация устанавливает то же самое, за исключением того, что tat 208 заменяется на 42.

     batch_size = 1

     model <- keras_model_sequential() 

     model %>% layer_cudnn_lstm(units = 1, batch_input_shape = c(1,1,4), 
                           stateful = TRUE, return_sequences = FALSE) %>% 
          layer_dropout(rate = dropout) %>% 
          layer_dense(units = 0.01)


    model %>% compile(
     loss = 'mean_squared_error',
      optimizer = optimizer_adam(lr= 0.01, decay = 1e-8),  
      metrics = c('mean_squared_error')
    )


    Epochs <- 500 

     hist_temp <-  model %>% fit(x.train, y.train, epochs=1,      batch_size=batch_size, verbose=1, shuffle=FALSE,
                             validation_data = list(x.train_val, y.test))

    model %>% reset_states()

Я ожидаю, что это будет намного быстрее и более требовательно к памяти GPU.Что я здесь пропустил?

1 Ответ

1 голос
/ 13 июня 2019

это может иметь несколько причин, например:

  1. Вы создали узкое место при чтении данных. Вы должны проверить процессор, память и использование диска. Также вы можете увеличить размер пакета, чтобы увеличить использование графического процессора, но у вас довольно маленький размер выборки. Более того, размер партии 1 не очень распространен;)

2. У вас очень маленькая сеть, так что вы не получаете столько прибыли от ускорения GPU. Вы можете попытаться увеличить размер сети, чтобы проверить, увеличивается ли использование графического процессора.

Надеюсь, это поможет.

...