如何向Keras Estimator添加要素列名称

时间:2018-05-17 15:39:05

标签: tensorflow keras

我想将功能列名称添加到我已转换为Estimator的Keras模型的输入中。这将允许我向服务模型发送JSON消息,我可以在其中指定功能名称。我的模型如下,它有3个输入节点:

model = keras.models.Sequential()
model.add(keras.layers.Dense(300, input_dim=3))
model.add(keras.layers.PReLU())
model.add(keras.layers.Dropout(0.5))
model.add(keras.layers.Dense(2, activation='softmax'))
model.compile(optimizer='Adam',loss='categorical_crossentropy',metrics=['accuracy'])
然后我创建了一个估算器:

estimator_model = keras.estimator.model_to_estimator(keras_model=model)

我的自定义输入功能是:

# Define input fn
def input_function(features, labels=None, shuffle=False):
  input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"dept_tenure": dept_tenure,
       "prior_tenure": prior_tenure,
       "employ_tenure": employ_tenure},
    y=labels,
    shuffle=shuffle
  )
  return input_fn

但是,当我尝试评估模型时,出现以下错误:

ValueError: Cannot find input with name "employ_tenure" in Keras Model. It needs to match one of the following: dense_4_input

model.input_n返回[dense_4_input],其中dense_4是第一层的名称。

那么如何配置我的模型,使输入函数中的特征名称与我的模型的输入名称相匹配?

我看过documentation,但没有帮助。

0 个答案:

没有答案