在theano中

时间:2016-10-12 15:58:56

标签: python machine-learning theano

符号变量

x = T.dmatrix('x')
y = T.dmatrix('y')

这些是神经网络的权重

W1_vals = np.asarray(rng.randn(input, hidden), dtype=theano.config.floatX)
W1 = shared(value=W1_vals, name='W1')
W2_vals = np.asarray(rng.randn(hidden, output), dtype=theano.config.floatX)
W2 = shared(value=W2_vals, name='W2')


cost = T.mean(T.nnet.categorical_crossentropy(prob_y_given_x, y))
params = [W1, W2]

grads = T.grad(cost, params)

更新规则是:

lr = 0.01
updates = [(param, param-lr*grad) for param, grad in zip(params, grads)]

训练模型的功能

train = function(inputs=[x, y], outputs=cost, updates=updates)

在我调用列车函数的每次迭代后,使用W1W2打印W1.get_value()W2.get_value()的值时,我发现只有W2值正在变化,而W1值在整个过程中是相同的,并且没有变化。

我的代码中缺少什么?

0 个答案:

没有答案