3

我正在努力在 Keras 中构建模型。我想将我的所有功能作为input=10, 和output=3. 但是,一旦我运行下面的代码

def build_model(input_dim, output_classes):
    print 'Creating model ...', time.time() - start, mprof.memory_usage()
    model = Sequential()
    model.add(Dense(input_dim=input_dim, output_dim=8, activation=relu))
    model.add(Dropout(0.5))
    model.add(Dense(input_dim=8, output_dim=6, activation=relu))
    model.add(Dropout(0.5))
    model.add(Dense(output_dim=output_classes, activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adadelta')

我收到一个错误:

ValueError: ('shapes (35,9) and (10,8) not aligned: 9 (dim 1) != 10 (dim 0)', (35L, 9L), (10L, 8L))
Apply node that caused the error: Dot22(<TensorType(float32, matrix)>, <TensorType(float32, matrix)>)
Inputs types: [TensorType(float32, matrix), TensorType(float32, matrix)]
Inputs shapes: [(35L, 9L), (10L, 8L)]
Inputs strides: [(36L, 4L), (32L, 4L)]
Inputs values: ['not shown', 'not shown']

在我的情况下,模型初始化的正确参数是什么?

4

1 回答 1

0

我复制了你的代码并没有错误地执行它。(只是在我使用 Python 3 时评论了打印)

我设置 input_dim = 10 和 output_classes = 3,没有问题。

可能是您为 output_classes 传递了一个非整数值,如果是这种情况,可能会出现一系列错误,具体取决于传递的对象类型。

于 2017-02-16T18:03:47.820 回答