Python 2.7 keras错误:检查目标时出错:预期密集_2具有形状(2),但获得具有形状(1)的数组
我试图用keras编写一些示例,但在检查目标时出现了一些错误:预期稠密_2具有形状(2),但得到了具有形状(1)的数组 我试图更改输入的形状,但不起作用Python 2.7 keras错误:检查目标时出错:预期密集_2具有形状(2),但获得具有形状(1)的数组,python-2.7,keras,Python 2.7,Keras,我试图用keras编写一些示例,但在检查目标时出现了一些错误:预期稠密_2具有形状(2),但得到了具有形状(1)的数组 我试图更改输入的形状,但不起作用 import keras from keras.models import Sequential from keras.layers import Dense from keras.optimizers import SGD from sklearn.preprocessing import LabelBinarizer from sklear
import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
from sklearn.preprocessing import LabelBinarizer
from sklearn.model_selection import train_test_split
import numpy
print "hello"
input=[[1],[2],[3],[4],[5],[6],[7],[8]]
input=numpy.array(input, dtype="float")
# input=input.reshape(8,1)
output=[[1],[0],[1],[0],[1],[0],[1],[0]]
output=numpy.array(output, dtype="float")
(trainx,testx,trainy,testy)=train_test_split(input, output, test_size=0.25, random_state=42)
lb = LabelBinarizer()
trainy=lb.fit_transform(trainy)
testy=lb.transform(testy)
model=Sequential()
model.add(Dense(4,input_shape=(1,),activation="sigmoid"))
# model.add(Dense(4,activation="sigmoid"))
# print len(lb.classes_)
model.add(Dense(len(lb.classes_),activation="softmax",input_shape=(4,)))
INIT_LR = 0.01
EPOCHS = 20
print("[INFO] training network...")
opt = SGD(lr=INIT_LR)
model.compile(loss="categorical_crossentropy", optimizer=opt,metrics=["accuracy"])
H = model.fit(trainx, trainy, validation_data=(testx, testy),epochs=EPOCHS, batch_size=2)
您应该使用“from tensorflow.python.keras.xx”而不是“from keras.xx”。它防止它接收错误,如:“AttributeError:模块'tensorflow'没有属性'get_default_graph'”由于您有两个类,您可以在最后的密集层中有一个神经元,并使用乙状结肠激活。或者,如果你想使用softmax,你需要像这样创建一个y的单色编码
(trainx,testx,trainy,testy)=train_test_split(input, output, test_size=0.25, random_state=42)
trainy = keras.utils.to_categorical(trainy, 2)
testy = keras.utils.to_categorical(testy, 2)
它不起作用。但是我试着用np_utils.to_category来做一个单热编码。它起作用。但是在另一个项目中,我用LabelBinarizer来编码。所以我感到非常困惑。从Labelbinarizer的文档中,“对于二进制问题,形状将是[n_samples,1]。因此,您看到了形状错误。在另一个项目中,可能不止两个类。keras.utils.to_category==keras.utils.np_utils.to_category。