Python 如何从无堆叠自动编码器获取预测向量
我正试图修改堆叠式自动编码器,用于第8章中的分类。我正在处理的自动编码器的代码是可用的 我的数据集由4个数组组成:测试集、测试集、有效集、有效集。这些名字是自我解释的 这是如何在验证集上检查经过培训的自动编码器:Python 如何从无堆叠自动编码器获取预测向量,python,theano,deep-learning,Python,Theano,Deep Learning,我正试图修改堆叠式自动编码器,用于第8章中的分类。我正在处理的自动编码器的代码是可用的 我的数据集由4个数组组成:测试集、测试集、有效集、有效集。这些名字是自我解释的 这是如何在验证集上检查经过培训的自动编码器: valid_score = the.function([], sda.errors, givens={ sda.x: valid_set_x, sda.y: valid_s
valid_score = the.function([], sda.errors,
givens={
sda.x: valid_set_x,
sda.y: valid_set_y},
name='valid_test')
print valid_score()
这段代码在我的数据集上打印出“0.87”,所以它确实有效
表达得更详细些
valid_score = the.function([], T.mean(T.neq(sda.logLayer.y_pred, sda.y)),
givens={
sda.x: valid_set_x,
sda.y: valid_set_y},
name='valid_test')
仍然给出了87%的正确答案
但每当我试图直接得到真实的类预测向量时,我得到了一些非常错误的结果:结果向量的所有元素都等于4(我的类上有一个)
我的尝试如下所示:
predict = the.function([], sda.logLayer.y_pred,
givens={sda.x: valid_set_x})
print predict()
这会打印出“[4,4,4,…,4,4]”。将此结果与有效的_集_y向量进行比较,得到大约12%的正确率,甚至不到87%
我不明白我做错了什么
如果您曾经与theano自动编码器和/或上述教程有过交易,请帮助我
谢谢。有效的\u分数输出是验证集上的错误率。验证分数
87%
意味着您仅成功地对约12%的验证示例进行了正确分类。这个结果似乎符合“全部4”预测规则。为什么您只使用逻辑层?输入应该首先通过sigmoid层-对吗?最后通过物流层。