我想创建我的网络实例的多个副本来预测多重独立波。不幸的是,简单的重新分配在这种情况下不起作用,所以我该怎么办?
我附上了一个可重复的演示,该演示显示两个副本的预测结果应该完全相同,但它们不是:
library(RSNNS)
points = sin(seq(1,20,0.1))
input = head(points,-1)
output = tail(points,-1)
net = elman(input, output, maxit=1000)
netCopy1 = net
netCopy2 = net
print(predict(netCopy1, as.matrix(input[1:10])))
print(predict(netCopy2, as.matrix(input[1:10])))
答案 0 :(得分:0)
RSNNS模型是C ++对象,这就是为什么只复制R指针不起作用的原因。为了深度复制这样的模型,RSNNS具有对象序列化机制。最简单的方法是将模型保存到磁盘并加载它,例如如下:
library(RSNNS)
set.seed(10)
points = sin(seq(1,20,0.1))
input = head(points,-1)
output = tail(points,-1)
net = elman(input, output, maxit=1000)
netCopy1 = net
saveRDS(net, file="./net.RData")
netCopy2 = readRDS("./net.RData")
print(predict(netCopy1, as.matrix(input[1:10])))
print(predict(netCopy2, as.matrix(input[1:10])))