首页 文章

使用keras错误在Python中进行多分类

提问于
浏览
1

我是python的新手,并尝试在具有100个实例和9列的iris.csv数据集上进行多分类 . 我收到此错误并搜索此错误并应用解决方案但对我没有任何作用..请帮助

回溯(最近一次调用最后一次):文件“iris.py”,第48行,在model.fit中(X,dummy_y,epochs = 200,batch_size = 5)文件“C:\ Users \ HP \ Anaconda2 \ lib \ site -packages \ keras \ models.py“,第871行,在fit initial_epoch = initial_epoch中)文件”C:\ Users \ HP \ Anaconda2 \ lib \ site-packages \ keras \ engine \ training.py“,第1525行,in fit batch_size = batch_size)文件“C:\ Users \ HP \ Anaconda2 \ lib \ site-packages \ keras \ engine \ training.py”,第1383行,_standardize_user_data exception_prefix ='target')文件“C:\ Users \ HP \ Anaconda2 \ lib \ site-packages \ keras \ engine \ training.py“,第144行,_standardize_input_data str(array.shape))ValueError:检查目标时出错:期望dense_2有形状(None,1)但是得到了数组形状(100L,3L)

这是我的代码

import numpy
import pandas
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
from keras.utils import np_utils
from sklearn.cross_validation import cross_val_score, KFold
from sklearn.preprocessing import LabelEncoder
from sklearn.pipeline import Pipeline

# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)

# load dataset
dataframe = pandas.read_csv("iris.csv", header=None)
dataset = dataframe.values
X = dataset[:,0:8].astype(float)
Y = dataset[:,8]
print(X)
print(Y)

#encode class values as integers
encoder = LabelEncoder()
encoder.fit(Y)
encoded_Y = encoder.transform(Y)


# convert integers to dummy variables (hot encoded)
dummy_y = np_utils.to_categorical(encoded_Y)
print(dummy_y)


# create model
model = Sequential()
model.add(Dense(8, input_dim=8, activation='relu'))
model.add(Dense(3, activation='sigmoid'))


# Compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])


#model.fit
model.fit(X, dummy_y, epochs=200, batch_size=5)


#print("Accuracy: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100))

1 回答

  • 2

    Solution 1: 将损失函数更改为 categorical_crossentropy .

    Solution 2: 使用 encoded_Y 训练您的模型 . sparse_categorical_crossentropy 不需要热编码标签 .

相关问题