2016-01-24 49 views
15

我试图在这款笔记本上解决这个问题。问题是通过使用sklearn.linear_model的LogisticRegression模型,使用50,100,1000和5000个训练样本对这些数据进行简单模型训练。 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/udacity/1_notmnist.ipynbsklearn逻辑回归“ValueError:找到与昏暗的数组3.估计值预期<= 2”。

lr = LogisticRegression() 
lr.fit(train_dataset,train_labels) 

这是我要做的,它给我的错误代码。 ValueError:找到与暗淡的数组3.估计预计< = 2.

任何想法?

回答

39

scikit-learn需要用于fit函数的训练数据集的2d个数组。你传入的数据集是一个3d数组,你需要将数组重塑为2d。

nsamples, nx, ny = train_dataset.shape 
d2_train_dataset = train_dataset.reshape((nsamples,nx*ny)) 
+0

您是否介意解释ndarray.reshape如何将3D数据奇迹般地转换为2D而不会丢失原始矢量表示的信息? – scipilot

+0

保持第一维度,并且其他两个维度变平(所以28x28变成784)。拟合算法接下来将考虑样本1的第一个784特征部分和样本2的下一个784特征部分,依此类推。 –

+0

我将我的X数据与y标签分开。我如何使用这个答案来压扁X训练数据集? Y标签是一个5k阵列。 X_train是5k x 1024 x 1024 – BluePython

相关问题