def create_multiple_input_model(self, mlp_neurons, input_dim_a, input_dim_b, class_num):
    inputA = Input(shape=input_dim_a)
    inputB = Input(shape=input_dim_b)
    a = Dense(mlp_neurons, activation='relu')(inputA)
    a = Dense(class_num, activation='softmax')(a)
    a = Model(inputs=inputA, outputs=a)
    b = Conv1D(64, 3, activation='relu')(inputB)
    b = Conv1D(64, 3, activation='relu')(b)
    b = Dropout(0.5)(b)
    b = MaxPooling1D()(b)
    b = Flatten()(b)
    b = Dense(100, activation='relu')(b)
    b = Model(inputs=inputB, outputs=b)
    combined = Concatenate()([a.output, b.output])
    c = Dense(mlp_neurons, activation='relu')(combined)
    c = Dense(class_num, activation='softmax')(c)
    model = Model(inputs=[a.input, b.input], outputs=c)
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model
def create_multiple_input_model(self, mlp_neurons, input_dim_a, input_dim_b, class_num):
    inputA = Input(shape=input_dim_a)
    inputB = Input(shape=input_dim_b)
    a = Dense(mlp_neurons, activation='relu')(inputA)
    a = Dense(class_num, activation='softmax')(a)
    a = Model(inputs=inputA, outputs=a)
    b = Conv1D(64, 3, activation='relu')(inputB)
    b = Conv1D(64, 3, activation='relu')(b)
    b = Dropout(0.5)(b)
    b = MaxPooling1D()(b)
    b = Flatten()(b)
    b = Dense(100, activation='relu')(b)
    b = Model(inputs=inputB, outputs=b)
    combined = Concatenate()([a.output, b.output])
    c = Dense(mlp_neurons, activation='relu')(combined)
    c = Dense(class_num, activation='softmax')(c)
    model = Model(inputs=[a.input, b.input], outputs=c)
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model