我正在尝试使用神经网络解决使用Keras的二进制分类问题。我是整个神经网络领域的新手。我想做的是拥有一个网络,该网络的某些功能具有嵌入层,而其他功能具有常规输入层。例如,假设我想将用户ID用作去往嵌入层的输入,而其他所有内容都去往常规输入层。我知道我的问题是技术性的,而不是技术性的,所以我问这是否可以在Keras或任何其他实现神经网络的框架或工具中进行。
答案 0 :(得分:1)
是的,您必须使用功能API
以下是示例,随时适应您的需求:
from keras.models import Model, Sequential
from keras.layers import Dense, Flatten, Concatenate, Reshape, Input, Dropout, Dense, BatchNormalization, Activation, concatenate
from keras.layers.embeddings import Embedding
extraInput = Input((116,))
embed_input = Input((1,))
em_model = Embedding(10,
5,
input_length=1,
embeddings_initializer='uniform')(embed_input)
em_model = Reshape((5,))(em_model)
outputs = Concatenate(axis=1)([em_model,extraInput])
outputs = BatchNormalization(epsilon=1e-05, momentum=0.1) (outputs)
outputs = Dense(10, kernel_initializer='uniform', activation='relu')(outputs)
outputs = Dense(3, kernel_initializer='uniform', activation='relu')(outputs)
outputs = Dense(1)(outputs)
outputs = Activation('sigmoid')(outputs)
model = Model([embed_input, extraInput], outputs)
model.summary()
这将为您提供下图:您有两个不同的输入,一个用于嵌入,第二个用于continue变量
答案 1 :(得分:0)
是的,有可能。在任何框架中。
基本上,在这样的体系结构中,您将具有两个神经组件: