У меня есть пара вопросов о готовой модели cuDNN LSTM, которую я пытаюсь вписать в R, используя библиотеку keras.У меня установлен tenorflow-gpu, и, похоже, он успешно работает.Первое, что меня интересует, это скорость обучения моделей, которая, кажется, увеличивается только в 1,3 раза при использовании cuDNN lstm вместо обычного LSTM.Я читал другие случаи, когда люди получали модели, которые тренируются в 10 или даже 15 раз быстрее при использовании cudnn lstm по сравнению с обычным lstm.Я выложу код ниже.Кроме того, меня интересует процент использования памяти графическим процессором.Когда выполняется код, кажется, что он занимает всего около 8% памяти графического процессора, что кажется немного низким.Может ли это быть связано с отсутствием повышенной скорости.
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.Что я здесь пропустил?