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

时间:2017-01-06 13:03:25

标签: numpy scipy conv-neural-network

我正在尝试训练CNN(Sklearn神经网络)。我有4张128 x 128像素的图像。形状 - > (4,128,128) 我正在阅读像 -

这样的图片
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行,in       nn.fit(X_train,y_train)     文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sknn/mlp.py”,第383行,适合       ys = [lb.fit_transform(y [:,i])for i,lb in enumerate(self.label_binarizers)]     在fit_transform中输入文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sklearn/base.py”,第494行       return self.fit(X,** fit_params).transform(X)     文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sklearn/preprocessing/label.py”,第335行,在变换中       sparse_output = self.sparse_output)     在label_binarize中输入文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sklearn/preprocessing/label.py”,第497行       y = column_or_1d(y)     在column_or_1d中输入文件“/home/zaverichintan/miniconda2/lib/python2.7/site-packages/sklearn/utils/validation.py”,第563行       提出ValueError(“输入形状错误{0}”。格式(形状))   ValueError:输入形状错误(4,128)

1 个答案:

答案 0 :(得分:-1)

您的in1, in2,....inN128x128的二维数组,您必须将它们全部转换为16384的一维数组。 in1.shape应打印(16384,)X_train.shape应打印(4,16384)。您可以使用numpy数组并应用[reshape] [1]函数。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html