gpt4 book ai didi

requireNamespace 未加载所需的功能

转载 作者:行者123 更新时间:2023-12-04 11:58:30 24 4
gpt4 key购买 nike

我正在使用 neuralnet 训练神经网络。包,更具体地说是 neuralnet 的绘图功能, 取决于 grid ,这是从去年开始的基础包。但是,除非我加载 grid手动,绘图失败:

AND <- c(rep(0,7),1)
OR <- c(0,rep(1,7))
binary.data <- data.frame(expand.grid(c(0,1), c(0,1), c(0,1)), AND, OR)
net <- neuralnet::neuralnet(AND + OR ~ Var1 + Var2 + Var3, binary.data,
hidden = 0, linear.output=FALSE)

if(requireNamespace("grid")) {
neuralnet::plot.nn(net)
}

> Error in plot.nn(net, rep = i, x.entry, x.out, radius, arrow.length, intercept, :
> could not find function "grid.newpage"

使用 library(grid)有帮助,但我想避免这种情况,因为我想稍后在我自己的包中使用它。 R Packages建议使用 requireNamespace ,但这也无济于事,正如我们在上面看到的那样。

添加 grid::在所有调用 grid 之前功能和从源代码构建包解决了这个问题,但我想知道:这是预期的行为吗?查看 neuralnet 的来源, 我发现没有提到 requireNamespace , library或类似的。但是为什么我的 requireNamespace照顾装载包裹?

最佳答案

问题是 神经网络 仅取决于 网格 包,当它应该(或至少也)导入它时。 (See here 讨论了两者之间的区别。)

结果,当 中的函数神经网络 来电grid.newpage() ,只有在 时才能找到该函数网格 附加到搜索路径。但是完全合格的电话 neuralnet::neuralnet()不附加 神经网络 ,这将触发 的附件网格 ;并且没有 网格 在搜索路径上,它不知道是什么 grid.newpage是。

导入 网格 进入 神经网络 , 将此行添加到源包的NAMESPACE文件

import(grid)

这条线到它的 DESCRIPTION文件
Imports: grid

然后重新编译它。

关于requireNamespace 未加载所需的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com