nnet中的错误:“' vmmin'中的初始值不是有限的“

时间:2017-07-20 14:27:52

标签: r neural-network nnet

我试图在r中使用nnet首次运行神经网络模型。当我提供一系列值给予"尺寸"参数,我得到以下错误:

Error in nnet.default(x, y, w, entropy = TRUE, ...) :
  initial value in 'vmmin' is not finite

然而,当我将单个值传递给" size"参数,该功能没有任何问题。为什么会出现此错误,如何解决此问题?

这是一个可重复的例子:

Var1 <- rnorm(100, 1, 2)
Var2 <- rnorm(100, 1, 2)
Var3 <- rnorm(100, 1, 2)
Var4 <- rnorm(100, 1, 2)
Var5 <- as.factor(runif(100)<=.50)
outcome <- as.factor(runif(100)<=.90)
data <- data.frame(outcome, Var1, Var2, Var3, Var4, Var5)
neural_net <- nnet(outcome ~ ., data = data, decay=5e-4, maxit=200, size = seq(from = 2, to = 30, by = 1))

这是我的R版本信息:

> version
           _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          4.0                         
year           2017                        
month          04                          
day            21                          
svn rev        72570                       
language       R                           
version.string R version 3.4.0 (2017-04-21)
nickname       You Stupid Darkness  

谢谢!

1 个答案:

答案 0 :(得分:0)

[batch_size, input_size]仅适用于单隐藏层神经网络,因此nnet(隐藏层中的神经元数量)只能是标量。

nnet包现在已经过时了。它可以追溯到20世纪90年代,在所有当前深度学习的进展之前。如果您想了解R中的神经网络,请考虑使用更现代的包,例如RStudio的tensorflow或Microsoft R&#39; MicrosoftML。后者实际上是机器学习算法的工具包,包括随机森林,增强树和其他NN。