r - cudNN lstm的GPU内存使用和加速
问题描述
我有几个关于有状态的 cuDNN LSTM 模型的问题,我正在尝试使用 keras 库来适应 R。我安装了 tensorflow-gpu,它似乎运行成功。我想知道的第一件事是模型训练的速度,使用 cuDNN lstm 而不是普通的 LSTM,它似乎只增加了 1.3 倍。我读过其他案例,与普通 lstm 相比,使用 cudnn lstm 时,人们得到的模型训练速度快 10 倍甚至 15 倍。我将在下面发布一些代码。此外,我想知道 GPU 的内存使用百分比。运行代码时,它似乎只占用了大约 8% 的 GPU 内存,这似乎有点低。这是否与缺乏增加的速度有关。
昏暗(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 内存的要求更高。我在这里错过了什么?
解决方案
这可能有多种原因,例如:
- 您在读取数据时造成了瓶颈。您应该检查 CPU、内存和磁盘使用情况。您也可以增加批量大小以增加 GPU 使用率,但您的样本量相当小。此外,批量大小为 1 并不常见;)
2.您的网络非常小,因此您无法从 GPU 加速中获利。您可以尝试增加网络的大小以测试 GPU 使用率是否增加。
我希望这有帮助。
推荐阅读
- python - Python中2D平面中点的透视变换
- excel - 将多个指定文件中的数据合并到 1 个主工作表中
- javascript - 部署Node App后如何在Heroku上安装依赖项?
- javascript - 如何保存应用程序的登录次数?(nodejs,JS,mongodb)
- r - R,ggplot2,限制多面条形图中的行
- html - 为所有页面应用背景颜色,包括 Shiny 中的导航栏
- java - 从运行时编译的类调用抽象类的重写方法时出现 AbstractMethodError
- rx-java - RxJava 嵌套 Observables 暴露值
- sql - 按地理距离过滤的简单 SQL 查询非常慢
- oracle - 需要报告 Oracle 12c 数据库中的临时表空间使用情况