有没有办法创建许多输入参数?

时间:2020-12-31 20:15:11

标签: c# arrays input parameters neural-network

        [Parameter("n11", DefaultValue = 0, MinValue = -1, MaxValue = 1, Step = step)]
        public double n11 { get; set; }
        [Parameter("n12", DefaultValue = 0, MinValue = -1, MaxValue = 1, Step = step)]
        public double n12 { get; set; }
        [Parameter("n13", DefaultValue = 0, MinValue = -1, MaxValue = 1, Step = step)]
        public double n13 { get; set; }
        [Parameter("n14", DefaultValue = 0, MinValue = -1, MaxValue = 1, Step = step)]
        public double n14 { get; set; }

我使用 cAlgo 来处理 ctrader,需要许多输入参数,例如上面列出的作为神经网络权重的参数。有没有办法根据需要生成尽可能多的输入参数?

例如,当我需要 3 个隐藏层之间的权重时,其中每个隐藏层有 8 个神经元(需要 8x8x2 权重),我可以告诉程序类似“double[2,8,8]”它创建了那些参数?当我把神经网络做得更大并且必须手动编写几千个输入参数时,这会很烦人。

如果权重可以直接存储在3维数组中(在哪些隐藏层之间,从哪个左节点,到哪个右节点)中,那就更好了

(用c#写的)

任何帮助或提示将不胜感激!

1 个答案:

答案 0 :(得分:0)

用它做一个结构体。

    public void MyAwesomeMethod(MyParamaterSruct s)
    {
        ...
    }

    public struct MyParameterStruct
    { 
        public double n11;
        public double n12;
        public double n13;
        public double n14;
    }

您还可以通过在每次调用方法时不复制结构体(或每个值)来提高性能:

    public void MyAwesomeMethod(in MyParamaterSruct s)
    {
        ...
    }