我正在关注tutorial并提供公开code repo。我一直在试图弄清楚如何在训练后应用模型。由于本教程仅涵盖培训,测试和验证,因此我不确定如何在新的非机密数据上使用它。这是我尝试过的:
(1)在network3.py用于构建和训练网络的主要类“网络”下,我在line 182
上添加了以下方法:
def predict(self, input):
self.predict = theano.function([self.x, self.y], self.layers[-1].y_out, on_unused_input='warn')
print(self.predict(input))
(2)在Python交互式控制台(iPython notebook)中,我像往常一样导入数据并训练模型:
net = Network([
FullyConnectedLayer(n_in=59, n_out=100),
SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
net.SGD(training_data, 10, mini_batch_size, 0.03, validation_data, test_data)
(3)然后我发出命令:
net.predict((data[0,1:], data[0,0]))
导致以下错误
ValueError:('带有名称的theano函数的错误输入参数 “network3.py:181”在索引0(从0开始)','设置数组元素 用序列。')
看起来我的输入没有按照我的预期定义或解释。我用于训练,测试,验证和预测的数据都是相同的格式,即col 0是分类,cols 1-59是数字输入。在上面的代码中,我只是使用训练数据来进行预测。我非常感谢任何帮助或建议引导我朝着正确的方向前进。谢谢!