caret::train:为 mlpWeightDecay(RSNNS 包)指定更多非调整参数

2024-05-01

我在使用插入符号包和 RSNNS 包中的“mlpWeightDecay”方法指定学习率时遇到问题。 “mlpWeightDecay”的调整参数是大小和衰减。

将大小保持为 4 并在 c(0,0.0001, 0.001, 0.002) 上调整衰减的示例:

data(iris)
TrainData <- iris[,1:4]
TrainClasses <- iris[,5]

fit1 <- train(TrainData, TrainClasses,
            method = "mlpWeightDecay",
            preProcess = c("center", "scale"),
            tuneGrid=expand.grid(.size = 4, .decay = c(0,0.0001, 0.001, 0.002)),
            trControl = trainControl(method = "cv")
)

但我还想操纵模型的学习率,而不仅仅是采用默认的学习率 0.2。

我知道我可以通过“...”参数使用来自 RSNNS 的 mlpWeightDecay 方法的更多参数。 “learnFuncParams”将是我需要插入的 RSNNS 参数。它需要 4 个参数(学习率、权重衰减、dmin、dmax)。

继续这个例子,它看起来像这样:

fit1 <- train(TrainData, TrainClasses,
    method = "mlpWeightDecay",
    preProcess = c("center", "scale"),
    tuneGrid=expand.grid(.size = 4, .decay = c(0,0.0001, 0.001, 0.002)),
    trControl = trainControl(method = "cv"),
    learnFuncParams=c(0.4,0,0,0)
)

但是插入符序列函数的文档告诉我“...”参数:
传递给分类或回归例程(例如 randomForest)的参数。如果在此处传递调整参数的值,将会发生错误。

问题在于 4 个“learningFuncParams”参数之一(权重衰减)是一个调整参数。

因此我收到错误和警告:

train.default(TrainData, TrainClasses, method = "mlpWeightDecay", 中的错误: 最终调整参数无法确定 另外:有 50 个或更多警告(使用 warnings() 查看前 50 个)

警告消息:

1:在方法 $fit(x = if (!is.data.frame(x)) as.data.frame(x) else x, ... 中: 覆盖您传入的“learnFuncParams”参数中的权重衰减值。保留其他值

2:在 eval(expr, envir, enclos) 中: Fold01 的模型拟合失败:尺寸 = 4,衰减 = 0e+00 mlp.default 中的错误(x = 结构(列表(Sepal.Length = c(-0.891390168709482,: 形式参数“learnFuncParams”与多个实际参数匹配

如果在同一参数“learningFuncParams”中设置学习率,如何设置学习率而不与调整参数“decay”发生冲突?

Thanks!


看起来你可以在“...”中指定你自己的learnFuncParams。插入符号检查您是否提供了自己的参数集,并且只会覆盖 learnFuncParams[3] (即衰减)。它将采用您提供的 learnFuncParams[1,2,4] 。

要了解插入符号的作用,一个非常方便的方法是输入 getModelInfo("mlpWeightDecay"),然后向上滚动到 $mlpWeightDecay$fit 部分。它显示了插入符将如何调用真正的训练函数:

$mlpWeightDecay$fit
    if (any(names(theDots) == "learnFuncParams")) {
        prms <- theDots$learnFuncParams
        prms[3] <- param$decay
        warning("Over-riding weight decay value in the 'learnFuncParams' argument you passed in. Other values are retained")
    }

它检查您是否提供了自己的 learnFuncParams。如果你这样做了,它会使用它,但会插入自己的衰变。您可以忽略该警告。

我认为您遇到的错误(“无法确定最终调整参数”)还有另一个原因。你尝试过较低的学习率吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

caret::train:为 mlpWeightDecay(RSNNS 包)指定更多非调整参数 的相关文章

随机推荐

  • 枚举本质上不是 IEnumerable 的集合?

    当您想要递归枚举一个分层对象 根据某些条件选择一些元素时 有许多技术示例 例如 扁平化 然后使用 Linq 进行过滤 就像在这里找到的那 些 链接文本 https stackoverflow com questions 141467 rec
  • Razor:为什么我的变量不在范围内

    inherits umbraco MacroEngines DynamicNodeContext using System Collections List
  • 如何测试视图是否用“login_required”装饰(Django)

    我正在对用 login required 装饰的视图进行一些 独立的 单元测试 例子 login required def my view request return HttpResponse test 是否可以测试 my view 函数
  • 使用 Python 和 Boto3 列出 S3 存储桶的目录内容?

    我正在尝试使用 Python 和 Boto3 列出 S3 存储桶中的所有目录 我正在使用以下代码 s3 session resource s3 I already have a boto3 Session object bucket nam
  • 重用 Jest 单元测试

    我正在尝试使用 Jest 测试几个数据库实现 为了帮助测试这些实现 我首先针对两个实现都预期实现的 API 提出了一组单元测试 我目前正在努力将这两个实现传递给测试套件 下面是最简单形式的 虚拟 MongoDB 实现 class Mongo
  • 使用 Ant 运行 JUnit 测试

    我正在尝试运行我的 JUnit 测试用例 但我不断收到错误 Test com capscan accentsWorld FAILED 报告已创建 但测试未运行 这是我的蚂蚁代码
  • backbone.js - 如何在视图之间进行通信?

    我有一个带有多个backbone js 视图的单页Web 应用程序 观点有时必须相互沟通 两个例子 当有两种方式视图同时以不同方式呈现集合时 并且对一个视图中的项目的点击必须转发到另一个视图 当用户转换到流程的下一个阶段时 第一个视图将数据
  • Java发送邮件出错

    我的代码是 File Name SendEmail java import java util import javax mail import javax mail internet import javax activation pub
  • 使用虚拟列表视图调用 BeginUpdate/EndUpdate 是否有用

    我有一个虚拟列表视图 其中有数百个项目 我必须定期更新文件列表视图 方法是清除它 然后向其中添加新的 更新的项目 执行此操作时调用 BeingUpdate 和 EndUpdate 有用吗 我没有注意到任何视觉差异 Thanks 使用可能有一
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • 使用快速同步 h264_qsv 编码器时 ffmpeg avcodec_encode_video2 挂起

    当我使用 mpeg4 或 h264 编码器时 我能够使用 ffmpeg 3 1 0 的 API 成功编码图像以生成有效的 AVI 文件 但是 当我使用快速同步编码器 h264 qsv 时 avcodec encode video2 有时会挂
  • 改进/修复 C 样式块注释的正则表达式

    我正在 用 C 编写一个简单的解析器来处理看起来很像经典 C 的脚本语言 在我拥有的一个脚本文件中 我用来识别 块注释 的正则表达式会进入某种无限循环 长时间占用 100 的 CPU 我使用的正则表达式是这样的 r n r n 关于为什么这
  • 从 C++ 代码调用 Objective C 函数

    我用谷歌搜索了一下 找到了关于这个主题的一百万个结果 但这些页面都没有帮助我 我认为我有一个非常普遍的问题 我正在研究音频编程 特别是使用音频队列 我的程序的目的对于解释问题并不重要 但简而言之 当我尝试从 C 代码调用 Objective
  • 如何在同一服务器上将数据库备份和恢复为副本?

    我有一个 SQL2005 Express 数据库 我想在同一实例上创建它的副本 您如何使用脚本来做到这一点 我已经有一个用于生成备份的脚本 但恢复失败 错误 消息 3234 16 级 状态 2 第 2 行 逻辑文件 MyDB data 不是
  • 用于编辑代码的 Automator 到 Applescript

    只是想知道我是否可以将 Automator 中的 看我做 事件转换为 applescript 然后编辑生成的代码 我有一个在 Google 中输入查询 即 Apple1 的记录 但我希望查询为记录的每个循环增加 因此结果是 Apple1 然
  • Android Test Orchestrator 无法与 Android X 配合使用

    我最近将我的项目迁移到使用 AndroidX 并使用以下文档为 gradle 上的 espresso 测试配置了测试编排器 https developer android com training testing junit runner
  • 为什么 Xcode 在构建到设备时会复制未更改的资源?

    我正在处理一个相当大的 资源较多的 iOS 项目 我不禁注意到 Xcode 复制了数百个资源 纹理 精灵表 声音文件等 这些资源自上次以来根本没有改变我构建该设备的时间 当每个构建需要 2 4 分钟才能在设备上弹出时 这使得编码变得非常非常
  • 当对象一个在另一个之上时,从单个 2D 图像或来自 RGBD 相机的点云对已知 3D CAD 对象进行实时 6D 姿态估计?

    我正在开展一个研究项目 需要在拾取和放置任务中实时估计物体的 6DOF 姿态 姿态必须是实时估计的 并且物体可以是一个在另一个之上并且是相同的 所以我必须获得顶部物体的位置和方向 问题是物体是相同的 PPVC 块 在建筑领域 但好处是它们的
  • 从物理路径获取相对虚拟路径

    如何从asp net中的物理路径获取相对虚拟路径 相反的方法如下 Server MapPath Virtual Path Here 但是上面的方法的逆过程是什么呢 Maybe 这个问题 https stackoverflow com que
  • caret::train:为 mlpWeightDecay(RSNNS 包)指定更多非调整参数

    我在使用插入符号包和 RSNNS 包中的 mlpWeightDecay 方法指定学习率时遇到问题 mlpWeightDecay 的调整参数是大小和衰减 将大小保持为 4 并在 c 0 0 0001 0 001 0 002 上调整衰减的示例