r语言 - cudNN lstm 和加速的 GPU 内存使用情况



我有几个关于状态完整的 cuDNN LSTM 模型的问题,我正在尝试使用 keras 库适应 R。我安装了 tensorflow-gpu,它似乎运行成功。 我想知道的第一件事是模型训练的速度,使用 cuDNN lstm 而不是普通的 LSTM 似乎只增加了 1.3 倍。我读过其他案例,人们在使用 cudnn lstm 时获得的模型比普通 lstm 快 10 倍甚至 15 倍。我将在下面发布一些代码。此外,我想知道 GPU 的内存使用百分比。当代码运行时,它似乎只占用大约 8% 的 GPU 内存,这似乎有点低。这是否与缺乏提高的速度有关。

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. 您在读取数据时造成了瓶颈。您应该检查 CPU、内存和磁盘使用情况。您也可以增加批处理大小以增加 GPU 使用率,但您的样本量相当小。莫洛 1 的批量大小并不常见;

2.您有一个非常小的网络,因此您不会从 GPU 加速中获利太多。您可以尝试增加网络大小,以测试 GPU 使用率是否增加。

我希望这有所帮助。

最新更新