我有两个问题,我想使用keras库在Statefull cuDNN LSTM模型中进行拟合。我已经安装了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内存的速度更快,要求更高。我在这里错过了什么?
答案 0 :(得分:0)
这可能有多种原因,例如:
2。您的网络非常小,因此无法从GPU加速中获得太多收益。您可以尝试增加网络规模,以测试GPU使用率是否增加。
我希望这会有所帮助。