为什么我的 2 个函数没有给出相同的结果?

黑狼

下面是我尝试制作具有 2 个输入和 3 个输出的神经网络的代码。虽然训练给出了很好的结果,但当我尝试输入数字时,结果却相差甚远。在我做了一些小的改变之后,我观察到,即使它们从函数返回的输出应该是相同的,但结果却是不同的。我能想到的唯一解释是有一个错误。我正在谈论的功能是“训练”和“结果”。

这是代码:

from numpy import dot, exp, max, sum, random, array

class Network:
def __init__(self):
    self.w = random.random((2,3))


def sigmoid(self, x, derivate = False):
    if(derivate == True):
        return x * (1 - x)
    return 1 /(1 + exp(-x))

def train(self):

    trainingInput = array([[0,0],[0,1],[1,0],[1,1]])
    trainingOutput = array([[0,0,0],[0,1,0],[0,0,1],[1,0,0]])
    n = 0

    while(n < 10000):
        exOutput = self.sigmoid(dot(trainingInput, self.w) - 0.1)
        error = trainingOutput - exOutput
        self.w += dot(trainingInput.T, error * 
    self.sigmoid(exOutput,True))
        n += 1


    return exOutput

def result(self):
    trainingInput = array([[0,0],[0,1],[1,0],[1,1]])
    exOutput = self.sigmoid(dot(trainingInput, self.w) - 0.1)
    return exOutput
network = Network()
c = 0
d = 1
o = network.result()
output = network.train()

print(o)

print(output)
苏拉夫熊猫

你应该先训练,然后检查结果。如果在训练前检查它,显然两个结果会有所不同。您可以在训练后再次计算结果,希望这将解决您的错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我有 2 段 xquery 代码,其中 1 给出了正确的结果,但 2 没有。为什么?

为什么我的函数递增加 2?

为什么我得到 2 行数据相同的结果?

我有2个相同值的String Buffer Class对象。字符串equals()方法显示错误结果为什么?

为什么这些代码块没有给出相同的结果?

为什么代码体没有给出相同的结果?

为什么这给我留下2个相同的DF?

为什么我的联接查询没有给出三个表的预期结果

为什么这会给我错误C2661:没有重载函数接受2个参数?

为什么我有2个SSH服务?

为什么我的面板上有2个Bluetooth图标?

为什么我的函数没有给出正确的输出?

为什么我没有得到相同的结果?

为什么我的函数声明包装为2行?

为什么即使我的方法是同步的,我也要通过2个线程得到不同的结果?

为什么我的(Leetcode#231)2的幂的实现给出了错误的结果?

为什么这两个函数没有给我相同的答案?

为什么我的代码不只生成2个类型

为什么我使用Webpack获得2个版本?

为什么我的 2 个按钮不在 Div 中居中?

react native 为什么我的导航显示了 2 个标题?

为什么我要__init __()接受1个位置参数,但给出2个?

为什么即使我遵循公式,我的 2 个向量函数的角度也会返回 NaN

为什么我的对象返回 2 次,而我的 for 循环没有被读取?

为什么我的 2 函数没有在第一个和第二个循环中被调用?

为什么我的if语句在React中总是给出相同的结果?

梯度下降和正态方程式没有给出相同的结果,为什么?

find测试和bash测试没有给出相同的结果,为什么?

为什么我的排列算法对所有排列都给出相同的结果?