【发布时间】:2019-10-27 03:50:03
【问题描述】:
我有几个关于有状态的 cuDNN LSTM 模型的问题,我正在尝试使用 keras 库来适应 R。我安装了 tensorflow-gpu,它似乎运行成功。 我想知道的第一件事是模型训练的速度,使用 cuDNN lstm 而不是普通的 LSTM,它似乎只增加了 1.3 倍。我读过其他案例,与普通 lstm 相比,使用 cudnn lstm 时,人们得到的模型训练速度快 10 倍甚至 15 倍。我将在下面发布一些代码。 此外,我想知道 GPU 的内存使用百分比。运行代码时,它似乎只占用了大约 8% 的 GPU 内存,这似乎有点低。这是否与缺乏提高的速度有关。
dim(x.train) = (208, 1, 4) 昏暗(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 内存的要求更高。我在这里错过了什么?
【问题讨论】: