Numpy 多层感知器神经网络的准确率为10%

Numpy 多层感知器神经网络的准确率为10%,numpy,machine-learning,scipy,scikit-learn,neural-network,Numpy,Machine Learning,Scipy,Scikit Learn,Neural Network,我正在使用CIFAR-10数据集来训练我的神经网络,我得到的分数约为0.10,这就好像我的神经网络只是在猜测(正确答案的概率为1/10),CIFAR-10有10种类型(汽车、飞机、猫、狗等)的32x32张图像。我怀疑我的代码有问题 顺便说一下,取消勾选文件不是问题 请帮帮我 from sklearn import datasets from sklearn.neural_network import MLPClassifier import numpy as np import time la

我正在使用CIFAR-10数据集来训练我的神经网络,我得到的分数约为
0.10
,这就好像我的神经网络只是在猜测(正确答案的概率为1/10),CIFAR-10有10种类型(汽车、飞机、猫、狗等)的32x32张图像。我怀疑我的代码有问题

顺便说一下,取消勾选文件不是问题

请帮帮我

from sklearn import datasets
from sklearn.neural_network import MLPClassifier
import numpy as np
import time

labels = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]

def unpickle(f):
    import cPickle
    fo = open(f, "rb")
    dict = cPickle.load(fo)
    fo.close()
    return dict

def setup_mlp(unpickled_data):
    new_mlp = MLPClassifier(hidden_layer_sizes=3072, solver='sgd', batch_size=1000, max_iter=500, random_state=1, learning_rate_init=0.01)
    return new_mlp
#hidden_layer_sizes is the number of neurons in a layer. In this case I have one hidden layer & 3072 neurons in that layer
if __name__ == "__main__":
    unpickled_batch = unpickle("./data_batch_1")
    print int(unpickled_batch["data"].shape[0])
    #time.sleep(1000)
    X_train = unpickled_batch["data"][:1000]
    Y_train = unpickled_batch["labels"][:1000]
    print "Decoded batch, now training\n"
    mlp = setup_mlp(unpickled_batch)
    mlp.fit(X_train, Y_train)
    print "Score=" + str(mlp.score(X_train, Y_train))

我昨天也有类似的问题,所以也许这可以帮助你

如果对数据集进行标准化,即。 加

从sklearn导入预处理
X_列=预处理。缩放(X_列)

加载数据之后

但这是不够的,因为您的测试集与训练集相同,您最终的分数为1.0,并且没有新图像预测的信息

要解决此问题,您可以从cifar-10文件中加载“测试批次”,或将未勾选的批次[“数据”]和未勾选的批次[“标签”]拆分为系列i测试数据集


之后,根据测试集的大小,你应该得到大约0.3分。

我昨天遇到了类似的问题,所以这可能会对你有所帮助

如果对数据集进行标准化,即。 加

从sklearn导入预处理
X_列=预处理。缩放(X_列)

加载数据之后

但这是不够的,因为您的测试集与训练集相同,您最终的分数为1.0,并且没有新图像预测的信息

要解决此问题,您可以从cifar-10文件中加载“测试批次”,或将未勾选的批次[“数据”]和未勾选的批次[“标签”]拆分为系列i测试数据集

之后,根据测试集的大小,你应该得到大约0.3分