Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在具有多个输入变量的R中使用RNN_R_Recurrent Neural Network - Fatal编程技术网

在具有多个输入变量的R中使用RNN

在具有多个输入变量的R中使用RNN,r,recurrent-neural-network,R,Recurrent Neural Network,根据前面的问题,有一个简单的例子: /* Example*/ library('rnn') # create training numbers set.seed(1) X1 = sample(0:127, 7000, replace=TRUE) X2 = sample(0:127, 7000, replace=TRUE) # create training response numbers Y <- X1 + X2 # convert to binary X1 <- int2

根据前面的问题,有一个简单的例子:

/* Example*/

library('rnn')

# create training numbers
set.seed(1)
X1 = sample(0:127, 7000, replace=TRUE)
X2 = sample(0:127, 7000, replace=TRUE)

# create training response numbers
Y <- X1 + X2

# convert to binary
X1 <- int2bin(X1, length=8)
X2 <- int2bin(X2, length=8)
Y  <- int2bin(Y,  length=8)

# create 3d array: dim 1: samples; dim 2: time; dim 3: variables
X <- array( c(X1,X2), dim=c(dim(X1),2) )

# train the model
model <- trainr(Y=Y,
             X=X,
            learningrate   =  0.1,
            hidden_dim     = 10,
            start_from_end = TRUE )

/* End of Example*/
为了了解软件包的细节,我尝试了以下案例:

library(rnn)
set.seed(1)

X1 = sample(0:127, 5000, replace=TRUE)
X2 = sample(0:127, 5000, replace=TRUE)
X3 = sample(0:127, 5000, replace=TRUE)
X4 = sample(0:127, 5000, replace=TRUE)
Y <- X1 + X2 + X3 + X4

X1 <- int2bin(X1)
X2 <- int2bin(X2)
X3 <- int2bin(X3)
X4 <- int2bin(X4)
Y  <- int2bin(Y)

X <- array( c(X1,X2,X3,X4), dim=c(dim(X1),4) )
Y <- array( Y, dim=c(dim(Y),1) ) 

model <- trainr(Y=Y,
            X=X,
            learningrate   =  0.1,
            hidden_dim     = 10,
            start_from_end = TRUE )

plot(colMeans(model$error),type='l',
 xlab='epoch',
 ylab='errors'                  )

A1 = int2bin( sample(0:127, 7000, replace=TRUE) )
A2 = int2bin( sample(0:127, 7000, replace=TRUE) )
A3 = int2bin( sample(0:127, 7000, replace=TRUE) )
A4 = int2bin( sample(0:127, 7000, replace=TRUE) )
A <- array( c(A1,A2,A3,A4), dim=c(dim(A1),4) )

B  <- predictr(model,
           A     )

A1 <- bin2int(A1)
A2 <- bin2int(A2)
A3 <- bin2int(A3)
A4 <- bin2int(A4)
B  <- bin2int(B)

hist( B-(A1+A2+A3+A4) )
库(rnn)
种子(1)
X1=样本(0:1275000,替换=真)
X2=样本(0:1275000,替换=真)
X3=样本(0:1275000,替换=真)
X4=样本(0:1275000,替换=真)

Y设置int2bin长度后,结果现在处于合理范围内。例如X1
library(rnn)
set.seed(1)

X1 = sample(0:127, 5000, replace=TRUE)
X2 = sample(0:127, 5000, replace=TRUE)
X3 = sample(0:127, 5000, replace=TRUE)
X4 = sample(0:127, 5000, replace=TRUE)
Y <- X1 + X2 + X3 + X4

X1 <- int2bin(X1)
X2 <- int2bin(X2)
X3 <- int2bin(X3)
X4 <- int2bin(X4)
Y  <- int2bin(Y)

X <- array( c(X1,X2,X3,X4), dim=c(dim(X1),4) )
Y <- array( Y, dim=c(dim(Y),1) ) 

model <- trainr(Y=Y,
            X=X,
            learningrate   =  0.1,
            hidden_dim     = 10,
            start_from_end = TRUE )

plot(colMeans(model$error),type='l',
 xlab='epoch',
 ylab='errors'                  )

A1 = int2bin( sample(0:127, 7000, replace=TRUE) )
A2 = int2bin( sample(0:127, 7000, replace=TRUE) )
A3 = int2bin( sample(0:127, 7000, replace=TRUE) )
A4 = int2bin( sample(0:127, 7000, replace=TRUE) )
A <- array( c(A1,A2,A3,A4), dim=c(dim(A1),4) )

B  <- predictr(model,
           A     )

A1 <- bin2int(A1)
A2 <- bin2int(A2)
A3 <- bin2int(A3)
A4 <- bin2int(A4)
B  <- bin2int(B)

hist( B-(A1+A2+A3+A4) )