python - 烤宽面条函数参数的形状不正确

标签 python scikit-learn theano lasagne

我正在尝试使用 scikit-neuralnetwork 构建神经网络回归器图书馆。

据我了解,纽约神经网络似乎构建得很好,但我在 nn.predict() 调用中不断遇到以下错误:

rmichael@node:~/Sandbox$ sudo python NNScript.py 
Traceback (most recent call last):
  File "NNScript.py", line 15, in <module>
    print nn.predict(X_train[0])
  File "/users/rmichael/scikit-neuralnetwork/sknn/mlp.py", line 309, in predict
    return super(Regressor, self)._predict(X)
  File "/users/rmichael/scikit-neuralnetwork/sknn/mlp.py", line 256, in _predict
    return self._backend._predict_impl(X)
  File "/users/rmichael/scikit-neuralnetwork/sknn/backend/lasagne/mlp.py", line 242, in _predict_impl
    return self.f(X)
  File "/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.py", line 786, in __call__
    allow_downcast=s.allow_downcast)
  File "/usr/local/lib/python2.7/dist-packages/theano/tensor/type.py", line 177, in filter
    data.shape))
TypeError: ('Bad input argument to theano function with name "/users/rmichael/scikit-neuralnetwork/sknn/backend/lasagne/mlp.py:199"  at index 0(0-based)', 'Wrong number of dimensions: expected 2, got 1 with shape (59,).')
rmichael@node:~/Sandbox$ 

我的代码如下:

import numpy as np
from sknn.mlp import Regressor, Layer

X_train = np.genfromtxt("OnlineNewsPopularity.csv", dtype=float, delimiter=',', skip_header=1, usecols=range(1,60))
y_train = np.genfromtxt("OnlineNewsPopularity.csv", dtype=float, delimiter=',', names=True, usecols=(60))

nn = Regressor(
    layers=[
        Layer("Rectifier", units=1),
        Layer("Linear")],
    learning_rate=0.02,
    n_iter=1)
nn.fit(X_train, y_train)

print nn.predict(X_train[0])

这里有人可能知道这里出了什么问题吗?任何帮助将不胜感激。

最佳答案

问题在于模型期望其输入是矩阵,但您提供的是向量。

在行

print nn.predict(X_train[0])

为什么只通过X_train的第一行?

我希望你通过整个矩阵,即

print nn.predict(X_train)

或堆叠第一行,以便将其作为只有一行的矩阵传递:

print nn.predict(np.expand_dims(X_train[0], 0))

然后它可能会按预期工作。

关于python - 烤宽面条函数参数的形状不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33946090/

相关文章:

python - 去除最后一个逗号的字符串函数

python - 如何在 2 个生成器上使用 zip,每个生成器都会返回随时间改变其状态的相同项目

python - 有没有keras方法来拆分数据?

python - 向量数组与其自身元素的距离

python - 在 ubuntu 14.04 中运行 keras 进行深度学习时出错

python - Flask request.form 为空,而 request.get_data() 不是

python - 如何在 python 中逐行读取文件并同时逐个元素读取列表元素

machine-learning - 向 SGDClassifier 添加新类?

python - 如何针对不同的输入重用计算图?

theano - 与 CNN 的输入相比,Keras 的输出层形状不匹配