【问题标题】:Pybrain exporting a networkPybrain 导出网络
【发布时间】:2015-12-01 08:01:52
【问题描述】:

看到this answer 后,我在导出我的网络时遇到了一些问题。这是网络生成代码:

net = buildNetwork(2, 1, 1, bias=False)
sol = net.activate([2,3])
print("solution", sol)

for mod in net.modules:
    for conn in net.connections[mod]:
        print("connection:",conn)
        for cc in range(len(conn.params)):
            print(conn.whichBuffers(cc), conn.params[cc])

输出:

solution [ 0.12654066]
connection: <FullConnection 'FullConnection-3': 'hidden0' -> 'out'>
(0, 0) 1.02869832075
connection: <FullConnection 'FullConnection-4': 'in' -> 'hidden0'>
(0, 0) 0.410307885215
(1, 0) -0.928280457049

它踢出的解决方案不应该等于

(0.410307885215*2-0.928280457049*3)*1.02869832075

这是 -2.0206,而不是 0.12654066

【问题讨论】:

    标签: python neural-network pybrain


    【解决方案1】:

    好的,所以我忘记了激活函数。默认激活函数是 sigmoid 函数,在 python 中你可以很容易地使用

    from scipy.special import expit
    expit((0.410307885215*2-0.928280457049*3))*1.02869832075 = 0.1265406616438563
    

    我的下一个问题是如何添加偏差。在运行 sigmoid 函数之前添加偏差。因此,如果您正在这样做:

    net = buildNetwork(2, 1, 1, bias=True)
    

    然后它基本上构建:

    expit(weight_in1*input1+weight_in2*input2+hidden_bias)*hidden_weight+bias_out
    

    希望这对和我有同样问题的人有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 2016-02-13
      相关资源
      最近更新 更多