简体   繁体   English

神经网络最后一层的错误

[英]Error in last layer of neural network

#10-Fold split
seed = 7
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
np.random.seed(seed)
cvscores = []

    act = 'relu'
    for train, test in kfold.split(X, Y):

        model = Sequential()

        model.add(Dense(43, input_shape=(8,)))
        model.add(Activation(act))

        model.add(Dense(500))
        model.add(Activation(act))
    #model.add(Dropout(0.4))

        model.add(Dense(1000))
        model.add(Activation(act))
    #model.add(Dropout(0.4))

        model.add(Dense(1500))
        model.add(Activation(act))
    #model.add(Dropout(0.4))


        model.add(Dense(2))
        model.add(Activation('softmax'))

        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
        hist = model.fit(X[train], Y[train],
                    epochs=500,
                    shuffle=True,
                    batch_size=100,
                    validation_data=(X[test], Y[test]), verbose=2)
    #model.summary()

When I call model.fit it reports the following error : 当我调用model.fit时,它报告以下错误:

ValueError: Error when checking target: expected activation_5 to have shape (None, 2) but got array with shape (3869, 1) ValueError:检查目标时出错:预期activation_5具有形状(无,2),但形状为数组(3869,1)

I am using keras with TensorFlow backend. 我在TensorFlow后端上使用keras Please ask for any further clarification if needed. 如果需要,请要求进一步的澄清。

try this: 尝试这个:

#10-Fold split
seed = 7
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
np.random.seed(seed)
cvscores = []

    act = 'relu'
    for train, test in kfold.split(X, Y):

        model = Sequential()

        model.add(Dense(43, input_shape=(8,)))
        model.add(Activation(act))

        model.add(Dense(500))
        model.add(Activation(act))
    #model.add(Dropout(0.4))

        model.add(Dense(1000))
        model.add(Activation(act))
    #model.add(Dropout(0.4))

        model.add(Dense(1500))
        model.add(Activation(act))
    #model.add(Dropout(0.4))


        model.add(Dense(1))
        model.add(Activation('softmax'))

        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
        hist = model.fit(X[train], Y[train],
                    epochs=500,
                    shuffle=True,
                    batch_size=100,
                    validation_data=(X[test], Y[test]), verbose=2)
    #model.summary()

使用此语句时,问题已解决

y = to_categorical(Y[:])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM