受限制的boltzmann机器 - 阵列

时间:2017-06-06 18:55:28

标签: arrays python-3.x

我正在做一个关于RBM限制Boltzmann机器的大学任务。但是这个代码错误。我很困惑如何使这段代码工作。有人可以帮我解决这个错误吗?

def reconstruct(self, v):
    h = sigmoid(np.dot(v, self.W) + self.hbias)
    reconstructed_v = sigmoid(np.dot(h, self.W.T) + self.vbias)
    return reconstructed_v

def test_rbm(learning_rate=0.1, k=1, training_epochs=10):
data = datainput

rng = np.random.RandomState(123)

# construct RBM
rbm = RBM(input=data, n_visible=40, n_hidden=20, np_rng=rng)

# train
for epoch in range(training_epochs):
    rbm.contrastive_divergence(lr=learning_rate, k=k)
    cost = rbm.get_reconstruction_cross_entropy()
    print ('Training epoch %d, cost is ' % epoch, cost, file = sys.stderr)

# test
v = datatarget
print (rbm.reconstruct(v))


if __name__ == "__main__":
test_rbm()

ValueError: shapes (1979,1) and (40,20) not aligned: 1 (dim 1) != 40 (dim 0)

在运行时打印(rbm.reconstruct(v))错误行在h = sigmoid(np.dot(v,self.W)+ self.hbias)

0 个答案:

没有答案