将多个方法参数作为循环或字符串传递
Posted
技术标签:
【中文标题】将多个方法参数作为循环或字符串传递【英文标题】:Passing multiple method arguments as a loop or a string 【发布时间】:2021-08-02 00:49:57 【问题描述】:我有一个带有超过 50 个参数的输入法的 coreML 模型。一个一个地编写它们会非常乏味,但我不知道如何以编程方式完成,即通过字符串或循环。
let model = myModel()
let modelInput = myModelInput(//here all the arguments: arg1 : Int, arg2 : Int, arg3 : Int, arg4 : Int, etc.)
guard let myModelOutput = myModel.prediction(input: modelInput) else
我可以使用循环将所有参数写入字符串或字典中,但 myModelInput 不会接受它。有办法吗?
【问题讨论】:
正如@matt 所说,您可以使用 Dictionary 方法,但如果您有 50 个类型相同的参数,则将它们粘贴到向量中(即 MLMultiArray)可能更有意义将其传递给模型。 【参考方案1】:您是否可以控制模型输入类/结构?如果是这样,给它另一个初始化器,一个调用真实初始化器的便利初始化器。现在你可以传递一本字典或任何你决定的东西。并且字典可以通过编程方式构建。
因此,繁琐的部分仍然存在,但它已从调用站点移到类本身,只需要编写一次。
【讨论】:
好吧,它可以工作,虽然我曾设想过另一种方法,但我的基本问题 - 硬编码的许多参数 - 仍然存在。还有另一种传递标签的方法吗?我的意思是,就像在 for 循环中一样: for x in 0...50 arg[x]=myvalue 那是一本字典。我看不出这里还需要什么。以上是关于将多个方法参数作为循环或字符串传递的主要内容,如果未能解决你的问题,请参考以下文章