首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用cuDNN内核实现低成本管理

利用cuDNN内核实现低成本管理
EN

Stack Overflow用户
提问于 2020-05-27 13:54:37
回答 1查看 16.7K关注 0票数 23

我想用Cudnn训练我的RNN模型:

代码语言:javascript
复制
max_length <- 140 
embedding_dim <- 128

model <- keras_model_sequential()

# define model
model %>% 
  # layer input
  layer_embedding(
    name = "input",
    input_dim = num_words,
    input_length = max_length,
    output_dim = embedding_dim, 
    embeddings_initializer = initializer_random_uniform(minval = -0.05, maxval = 0.05, seed = 2)
  ) %>%
  # layer dropout
  layer_spatial_dropout_1d(
    name = "embedding_dropout",
    rate = 0.2
  ) %>%
  # layer lstm 1
  bidirectional(layer_lstm(
    name = "lstm",
    units = 64,
    unroll = FALSE,
    dropout = 0.2,
    use_bias = TRUE,
    recurrent_dropout = 0,
    return_sequences = TRUE
  )) %>% 
  layer_batch_normalization() %>%
  # layer output
  layer_dense(
    name = "output",
    units = 3,
    activation = "softmax"
  )

当我运行它的时候,我得到了这个变暖:

警告:tensorflow: lstm层不使用cuDNN内核,因为它不符合cuDNN内核标准。在GPU上运行时,它将使用通用GPU内核作为后盾。

我想我已经跟踪了所有的要求,不知道我错过了什么。

SessionInfo:

代码语言:javascript
复制
R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] keras_2.3.0.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.4.6     lattice_0.20-41  zeallot_0.1.0    rappdirs_0.3.1  
 [5] grid_4.0.0       R6_2.4.1         jsonlite_1.6.1   magrittr_1.5    
 [9] tfruns_1.4       whisker_0.4      Matrix_1.2-18    reticulate_1.15 
[13] generics_0.0.2   tools_4.0.0      xfun_0.14        compiler_4.0.0  
[17] base64enc_0.1-3  tensorflow_2.2.0 knitr_1.28   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-10 15:46:50

我遇到了同样的问题,并通过手动设置选项将与cuDNN兼容的实现作为指定的这里进行了修复。

基于可用的运行时硬件和约束,该层将选择不同的实现(基于CuDNN或纯TensorFlow)以最大限度地提高性能。如果一个GPU可用,并且该层的所有参数都满足cuDNN内核的要求(详见下文),该层将使用快速cuDNN实现。

使用cuDNN实现的要求如下:

  1. 激活== tanh
  2. recurrent_activation ==乙状结肠
  3. recurrent_dropout == 0
  4. 展开是错误的
  5. use_bias是真的
  6. 输入,如果使用掩蔽,是严格正确的垫.
  7. 在最外层的上下文中启用了急切的执行。

特别是,我必须指定recurrent_activation == sigmoid。安装的Keras/TF i版本默认为recurrent_activation == hard_sigmoid

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62044838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档