Numpy 在sklearn神经网络中用图像训练CNN

Numpy 在sklearn神经网络中用图像训练CNN,numpy,scipy,conv-neural-network,Numpy,Scipy,Conv Neural Network,我正在尝试训练CNN(学习神经网络)。我有4个128 x 128像素的图像。形状->(4128128) 我在读像这样的图片- in1 = misc.imread('../data/Train_Data/train-1.jpg', mode='L', flatten=True)/255. in2 = misc.imread('../data/Train_Data/train-2.jpg', mode='L', flatten=True)/255. in3 = misc.imread('../dat

我正在尝试训练CNN(学习神经网络)。我有4个128 x 128像素的图像。形状->(4128128) 我在读像这样的图片-

in1 = misc.imread('../data/Train_Data/train-1.jpg', mode='L', flatten=True)/255. in2 = misc.imread('../data/Train_Data/train-2.jpg', mode='L', flatten=True)/255. in3 = misc.imread('../data/Train_Data/train-3.jpg', mode='L', flatten=True)/255. in4 = misc.imread('../data/Train_Data/train-4.jpg', mode='L', flatten=True)/255.
然后创建numpy数组,如下所示-

X_train = [in1,in2,in3,in4]
X_train = np.array(X_train)
与标签和测试集相同

然后我在训练我的CNN-

nn = Classifier(
    layers=[
        Convolution('Rectifier', channels=12, kernel_shape=(3, 3), border_mode='full'),
        Convolution('Rectifier', channels=8, kernel_shape=(3, 3), border_mode='valid'),
        Layer('Rectifier', units=64),
        Layer('Softmax')],
    learning_rate=0.002,
    valid_size=0.2,
    n_stable=10,
    verbose=True)


nn.fit(X_train, y_train)
它抛出的错误为-

回溯(最近一次呼叫最后一次): 文件“/home/zaverichintan/PycharmProjects/WBC_identification/neural/trial.py”,第91行,在 nn.fit(X_系列,y_系列) 文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sknn/mlp.py”,第383行,适合 ys=[lb.fit_transform(y[:,i]),用于枚举中的i,lb(self.label_二进制代码)] 文件“/home/zaverichintan/miniconda2/lib/python2.7/site packages/sklearn/base.py”,第494行,在fit_转换中 返回self.fit(X,**fit_参数).transform(X) 文件“/home/zaverichintan/miniconda2/lib/python2.7/site packages/sklearn/preprocessing/label.py”,第335行,在转换中 稀疏输出=自。稀疏输出) 文件“/home/zaverichintan/miniconda2/lib/python2.7/site packages/sklearn/preprocessing/label.py”,第497行,标签二值化 y=列_或_1d(y) 文件“/home/zaverichintan/miniconda2/lib/python2.7/site packages/sklearn/utils/validation.py”,第563行,在第_或_1d列中 raise VALUERROR(“错误的输入形状{0}”。格式(形状)) ValueError:错误的输入形状(4128)


您的
in1,in2,….inN
128x128
的二维数组,您必须将它们全部转换为
16384
的一维数组<代码>1.形状应打印
(16384,)
X\u列车。形状
应打印
(416384)
。您可以使用numpy数组并应用[
重塑
][1]功能。