首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >神经网络-测试训练网络

神经网络-测试训练网络
EN

Stack Overflow用户
提问于 2018-05-21 00:11:41
回答 2查看 312关注 0票数 0

我已经编程(Java)我自己的前馈网络学习通过反向传播。我的网络接受了学习异或问题的训练。我有一个输入矩阵4x2和目标4x1。

投入:

代码语言:javascript
运行
复制
{{0,0},
{0,1},
{1,0},
{1,1}}

产出:

代码语言:javascript
运行
复制
{0.95048}
{-0.06721}
{-0.06826}
{0.95122}

我有一个经过训练的网络,现在我想在新的输入上测试它,比如:

代码语言:javascript
运行
复制
{.1,.9} //should result in 1

但是,我不知道如何实现float predict(double[] input)方法。据我所见,我的问题是我的训练数据与我的输入数据有不同的大小。

请建议一下。

编辑:这个词,听起来像是我想要一个回归值。然而,我希望输出是一个概率向量(分类),然后我可以分析。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-21 01:05:51

在您的情况下,您的神经网络应该有一个维数为2和输出为1的输入。因此,在培训期间,您将提供每个示例输入{x0、x1}和输出{y0}供其学习。最后,在预测时,您可以提供一个向量{.9,.1}并得到所需的输出。

票数 0
EN

Stack Overflow用户

发布于 2018-05-21 01:03:10

基本上,当你训练一个神经网络时,你会得到一堆可以用来预测结果的参数。您可以通过在每个层中添加特性和权重的乘积来获得结果,然后将激活函数应用到其中。例如,假设您的网络有3层(特性除外),而每个隐藏层有3个神经元,输出层有一个神经元。W1表示第一层的权重,因此它的形状为3,2。使用相同的参数,W2,第二层的权重为3,3。最后,输出层的权重W3为1,3。现在,如果我们使用一个称为g(z)的函数作为激活函数,您可以计算出这样的结果:

代码语言:javascript
运行
复制
Z1 = W1.X
A1 = g(Z1)
Z2 = W2.A1
A2 = g(Z2)
Z3 = W3.A2
A3 = g(Z3)

A3是你的结果,预测两个数字的异或。请注意,我没有考虑过这个例子的偏见术语。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50440497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档