在 R 中为 keras 调用 fit() 时出现奇怪的错误

Posted

技术标签:

【中文标题】在 R 中为 keras 调用 fit() 时出现奇怪的错误【英文标题】:Strange error when calling fit() in R for keras 【发布时间】:2021-10-23 16:39:21 【问题描述】:

我正在尝试使用 Keras 在 R 中实现 Bi LSTM。问题在于检测不同推文严重性的文本分类。我正在使用我在网上找到的一些代码,这是我的模型:

model <- keras_model_sequential() %>%
 layer_embedding(input_dim = max_features, output_dim = 32, input_length = max.length) %>% 
  layer_lstm(units = 32, return_sequences = TRUE) %>% 
  layer_lstm(units = 32, return_sequences = TRUE) %>%
  bidirectional(layer_lstm(units = 32)) %>% 
  layer_dense(units = 1, activation = 'softmax')


summary(model)

然后我尝试训练模型:

model %>%
  compile(loss = 'categorical_crossentropy',
          optimizer = 'adam',
          metrics = c('accuracy'))

history2 <- model %>%
  fit(x.train,
      train.Labels,
      epochs = 20,
      batch_size = 32,
      validation_split = 0.2,
      verbose = 2,
      class_weight = list("0" = 1, "1" = 22.9, "2" = 38.4, "3" = 33.4, "4" = 83.3, "5" = 382.2, "6" = 4280.4))

plot(history)

每次我尝试运行 fit() 时,都会遇到这个错误:

py_call_impl(callable, dots$args, dots$keywords) 中的错误:ValueError:在用户代码中:C:\Users\farah\AppData\Local\R-MINI~1\envs\R-RETI~1\lib \site-packages\keras\engine\training.py:853 train_function * return step_function(self, iterator) C:\Users\farah\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\站点包\keras\engine\training.py:842 step_function ** 输出 = model.distribute_strategy.run(run_step, args=(data,)) C:\Users\farah\AppData\Local\R-MINI~1\ envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1286 运行返回 self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs) C:\Users\farah\ AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2849 call_for_each_replica return self._call_for_each_replica(fn, args, kwargs) C:\ Users\farah\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:3632 _call_for_each_replica 返回 fn(*args, **kwargs)

我不完全确定这意味着什么,如果有任何帮助,我将不胜感激!

如果您确实需要任何其他信息,请告诉我!

【问题讨论】:

【参考方案1】:

错误消息指示“ValueError”异常,但不清楚值错误是什么,因为仅显示堆栈跟踪。 有时运行它会提供额外的信息:

for(x in reticulate::py_last_error()) cat(x, "\n")

【讨论】:

以上是关于在 R 中为 keras 调用 fit() 时出现奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Keras fit_generator 和 datagen.flow 时出现内存错误

ARM Cortex-M7 长分支在编译时出现错误“relocation truncated to fit: R_ARM_PREL31”

用于多输入模型的 R Keras predict_prob 不起作用。我可以成功地训练模型,但是在评分时出现错误

尝试使用 Spark IDF.fit() 时出现 NULL 指针异常

在键盘事件中使用 CancellationToken 调用 Task.Delay 时出现 TaskCanceledException

on_epoch_end() 未在 keras fit_generator() 中调用