首页 > 解决方案 > 在 Rstudio 中使用 keras 的错误消息,py_call_impl 中的错误(callable,dots$args,dots$keywords):ValueError:在用户代码中:

问题描述

我希望有人可以在这里帮助我。我在 Rstudio 中使用 keras 包时遇到了很大的困难。

我一直在关注 ISLR2 书,第 10 章,我正在尝试解决问题 7,这与默认数据集有关。

当我运行它时,我收到以下消息:

py_call_impl(callable, dots$args, dots$keywords) 中的错误:ValueError:在用户代码中:

C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:853 train_function  *
    return step_function(self, iterator)
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:842 step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1286 run
    return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:\MINICO~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:\MINICO~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:3632 _call_for_each_replica
    return fn(*args, **kwargs)
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:835 run_step  **
    outputs = model.train_step(data)

委婉地说,我完全不知道这意味着什么。

这是我正在使用的代码:

### getting our testid
default=Default
n=nrow(default)
testid.7=sample(1:n, ntest)

x=default[ ,c(2, 3, 4)]
y=default$default


xtrain=as.data.frame(x[-testid.7, ])
ytrain=y[-testid.7]

## converting out  y, which is the default response, to categorical

y_train_cat=rep(NA, length(y_train))

for (i in 1:length(y_train)) {
  if (y_train[i]=="Yes") {
    y_train_cat[i]=1
  } else {y_train_cat[i]=0}
}

y_train_cat



### Converting the student variable into a categorical variable
trainstudent=xtrain$student
student_cat=rep(NA, length(trainstudent))

for (i in 1:length(trainstudent)) {
  if (trainstudent[i]=="Yes") {
    student_cat[i]=1  } else {student_cat[i]=0}
}

xtrain_mod=as.data.frame(cbind(student_cat, xtrain$balance, xtrain$income))

## Fitting our neural network
modnn.7=keras_model_sequential() %>%
  layer_dense(units=10, activation="relu", input_shape=c(3)) %>%
  layer_dropout(rate=0.4) %>%
  layer_dense(units=1, activation='softmax')


modnn.7%>%compile(loss = 'categorical_crossentropy',
                optimizer = optimizer_rmsprop(),
                metrics =  'accuracy'
)


history <- modnn.7 %>% fit (
  xtrain_mod, 
  y_train_cat, 
  epochs = 200, 
  batch_size = 50
  )

如果有人有任何见解,那就太好了。我是一名已经使用 R 几年的 MS 学生,但这是我对 keras 包的唯一体验,所以显然我对它很陌生。

谢谢!

编辑:

这是我从错误中得到的全部信息

py_call_impl(callable, dots$args, dots$keywords) 中的错误:ValueError:在用户代码中:

C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:853 train_function  *
    return step_function(self, iterator)
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:842 step_function  **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1286 run
    return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:\MINICO~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:\MINICO~1\envs\R-RETI~1\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:3632 _call_for_each_replica
    return fn(*args, **kwargs)
C:\MINICO~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py:835 run_step  **
    outputs = model.train_step(data)

标签: rkerasneural-network

解决方案


推荐阅读