3

我正在尝试创建神经网络图的硬拷贝图像,但它一直失败。如果我尝试创建 PNG,则不会生成任何内容,如果我尝试生成 PDF,我会得到一个拒绝打开的小文件输出,并出现“文件可能已损坏”错误。如果我只是让它显示在图形窗口中,图像就会很好。

我在 Macports 构建的 OS X (10.7.4) 上使用 2.15.1。我目前正在使用的代码:

library(ALL)
library(neuralnet)
data(ALL)

ALL.pdat <- pData(ALL)
bt <- factor(substring(ALL.pdat$BT,1,1))
all.sds <- apply(exprs(ALL),1,sd)
top.10.sds <- rank(all.sds)>length(all.sds)-10
exprs.top.10 <- as.data.frame(t(exprs(ALL)[top.10.sds,]))
nn.data <- cbind(exprs.top.10, as.numeric(bt))
##  Gene names start with a number, and that causes problems when trying to set up the
##  formula for neuralnet.
col.names <- paste("g", colnames(nn.data), sep = '')
col.names[11] <- "bt"
colnames(nn.data) <- col.names
my.nn <- neuralnet(bt ~ g36108_at + g36638_at + g37006_at + g38096_f_at + g38319_at + g38355_at + g38514_at + g38585_at + g39318_at + g41214_at, nn.data,  hidden = 10, threshold = 0.01)
summary(my.nn)
pdf("./nn-all.pdf")
plot.nn(my.nn)
dev.off()
png("./nn-all.png")
plot.nn(my.nn)
dev.off()

我什至重新启动了机器以确保清除所有内存,但这没有任何帮助。

4

1 回答 1

1

简单的可重现示例:

pdf("test.pdf")
 set.seed(42)
 plot(runif(20),rnorm(20))
 png("test.png")
  set.seed(42)
  plot(runif(20),rnorm(20))
 dev.off()

如果我尝试在德语 Windows 7 上使用 Adob​​e Reader 打开 PDF,我会收到一条信息丰富的错误消息,告诉我无法打开该文件,因为该文件正在被另一个应用程序使用。这可以很容易地解决:

pdf("test.pdf")
 set.seed(42)
 plot(runif(20),rnorm(20))
dev.off() #make sure to close the graphics device
png("test.png")
 set.seed(42)
 plot(runif(20),rnorm(20))
dev.off()

编辑:

问题是plot.nn。在软件包得到修补之前,您需要plot.nn手动重新定义,如this answer所示。

于 2012-10-22T13:40:04.657 回答