- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 C# 中实现人工神经网络,但我并不完全理解输入层的用途。它不做任何处理,因为它的神经元和输入之间的连接没有权重。
考虑以下代码:
//Network
public void Compute(float[] input) {
layers[0].Compute(input);
for (int i = 1; i < layers.Length; i++) {
layers[i].Compute(layers[i - 1].Output);
}
}
//Layer
public void Compute(float[] input) {
for (int i = 0; i < neurons.Length; i++) {
output[i] = neurons[i].Compute(input);
}
}
//Neuron
public float Compute(float[] Input) {
float output = 0.0f;
for (int i = 0; i < Input.Length; i++) {
output += Input[i] * weights[i];
}
return (output);
}
向网络添加层时,我不需要添加输入层,因为输入数组直接传递到隐藏/输出层。那是对的吗?如果是,那么 AForge.Net 库似乎做错了。 AForge 库将输入层添加到网络,但它也为连接添加了权重。
总结一下,看看这三张网络图:
三幅图中哪一幅是正确的?
我猜你可以说我正在实现一个虚拟输入层(不是将它添加到网络中,但输入数组基本上就是输入层)。如果是这样的话,hoppfield 网络将如何实现?它有一层既是输入层又是输出层。在那种情况下,我的实现会产生错误的结果,因为存在虚拟输入层。这意味着需要一个完全不同的输入层实现来允许神经元与输入只有一个连接。
这真的很困惑,我希望有人能为我澄清一些事情。
最佳答案
在传统术语中,“输入层”是一组输出输入的神经元,因此它们可以被实际进行计算的其他层使用。输入神经元不进行计算,因为它们没有任何输入来进行计算。
所以你的理解是正确的。在“传统”图中,输入层不是“计算层”。您只需实现实际的“计算层”。
从我在您的帖子中读到的内容来看,似乎 AForge 库可能只是使用了不同的术语,即它可能指的是第一个计算层,即读取输入的计算层,作为输入层。
关于c# - 实现人工神经网络时,是否应忽略输入层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385690/
这个问题已经有答案了: How does Google reCAPTCHA v2 work behind the scenes? (5 个回答) 已关闭 8 年前。 我知道评估是人类用户正在使用您的网
根据以下链接,Artifactory AQL 允许通过 REST API 仅返回感兴趣的字段来“显示特定字段”。 https://www.jfrog.com/confluence/display/RT
我想制作一个比应有的大得多的虚拟 Win32 EXE 文件。所以默认情况下,样板 Win32 EXE 文件为 80 KB。我想要一个 5 MB 的空间来测试其他一些实用程序。 第一个想法是添加资源,但
这个问题已经在这里有了答案: 已关闭10年。 Possible Duplicate: Relational database design question - Surrogate-key or Na
我正在尝试在构建作业中生成一个 JSON 构建信息文件以上传到 Artifactory 并在两个工具之间创建可跟踪性。然而,常规的 Jenkins JSON API 文件设计不正确,因此我需要在运行作
当您通过现有 Artifactory 将 Artifactory 部署到 Artifactory 时,它不会将其与现有 Artifactory 所具有的构建相关联。 例如:如果您使用 Jenkins
我是一名优秀的程序员,十分优秀!