我正在创建一个模型来对葡萄酒数据进行分类。 我对编码也很陌生。 我有6个不同的类的输出变量,但我得到一个索引错误。你知道吗
我该怎么解决这个问题? 此外,当我执行模型时,学习速度非常慢,如何解决这个问题?下面是代码+错误
from sklearn.model_selection import train_test_split
import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
import numpy as np
np.random.seed(3)
# number of wine classes
classifications = 6
# load dataset
dataset = np.loadtxt('winered.csv', delimiter=",")
# split dataset into sets for testing and training
X = dataset[:,1:12]
Y = dataset[:,0:1]
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=5)
# convert output values to one-hot
y_train = keras.utils.to_categorical(y_train-1, classifications)
y_test = keras.utils.to_categorical(y_test-1, classifications)
# creating model
model = Sequential()
model.add(Dense(10, input_dim=11, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(6, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(6, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='relu'))
model.add(Dense(classifications, activation='softmax'))
# compile and fit model
model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=15, epochs=5000, validation_data=(x_test, y_test))
Expected that model would run but instead got the following error:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-15-86f94430e936> in <module>()
20
21 # convert output values to one-hot
---> 22 y_train = keras.utils.to_categorical(y_train-1, classifications)
23 y_test = keras.utils.to_categorical(y_test-1, classifications)
24
/anaconda3/lib/python2.7/site-packages/keras/utils/np_utils.pyc in to_categorical(y, num_classes, dtype)
32 n = y.shape[0]
33 categorical = np.zeros((n, num_classes), dtype=dtype)
---> 34 categorical[np.arange(n), y] = 1
35 output_shape = input_shape + (num_classes,)
36 categorical = np.reshape(categorical, output_shape)
IndexError: index 6 is out of bounds for axis 1 with size 6
keras.utils.to_categorical
当给定的标签包含的类多于指定的num_classes
(在本例中是传递的classifications
)时,会引发此异常。你知道吗你可以跟我核实一下
你是否真的只有6个独特的类标签,如果有任何“差距”。这可能是因为在继续之前,您需要清除从txt中读取的标签。你知道吗
关于你的第二个问题:
您需要更具体地说明慢对您意味着什么,例如,比另一个模型慢?比另一个系统慢?你知道吗
相关问题 更多 >
编程相关推荐