如何在C#中使用类作为模板?

我不是很确定我是否问得正确,请耐心一些。我目前正在尝试编程一个神经网络。下面是一些示例代码。

using System;namespace Network{    class BaseNeuron        {            public static void Main (string[] args)            {                public int Weight;                public void sendPulse()                {                }                public void receivePulse()                {                }            }        }    }

所以,基本上,我希望能够创建BaseNeuron类的多个实例,每个“神经元”与其他“神经元”连接以构成一个神经网络。有什么方法可以做到这一点,而不必为每个神经元重复这段代码吗?


回答:

首先,你提供的代码中有一些错误:

class BaseNeuron{    public static void Main (string[] args)    {        public int Weight;        public void sendPulse()        {        }        public void receivePulse()        {        }    }}

它应该这样写:

class BaseNeuron{                //类字段    public int Weight;    //类方法    public void SendPulse(/*参数...*/)    {        //执行操作    }    //类方法    public void ReceivePulse(/*参数...*/)    {        //执行操作    }            }

请注意,Main方法已经删除。类通常没有Main方法,Main方法通常只是应用程序的入口点(程序运行时首先执行的函数)。

基本上,每个类都是对象的模板,这意味着你可以使用new关键字创建类的新实例,如下所示:

//创建两个独立的神经元neuron1 = new BaseNeuron();neuron2 = new BaseNeuron();//注意,每个SendPulse是在不同的对象上调用的!neuron1.SendPulse();neuron2.SendPulse();

我建议你阅读一些关于类的内容(可能这里),以更好地理解这是如何工作的。

好了,现在我们已经弄清楚了类。你说我们想要创建一个由几个神经元组成的网络,这些神经元是上面类的实例。所以,你可能想要做的是:

class Program{    public void Main(string[] args)    {        //网络的大小        int size = 5;        //创建神经元数组        BaseNeuron[] network = new BaseNeuron[size];        for(int i = 0; i < network.length; i++)        {            //实际创建一个新神经元(实例化它们)            network[i] = new BaseNeuron();            //将神经元连接起来,等等        }    }}

当然,具体实现取决于BaseNeuron类的内部实现。你可能还需要创建一个NeuralNetwork类来包含上述代码和相关功能。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注