KeyError尽管存在列标题?

时间:2016-07-29 06:07:40

标签: tensorflow

我正在尝试使用Tensorflow训练线性回归量。

如果我通过自动确定实值列来实例化学习者,则拟合工作正常。

auto_feature_columns =
    tf.contrib.learn.infer_real_valued_columns_from_input(
        training_examples)
linear_regressor = tf.contrib.learn.LinearRegressor(
  feature_columns=auto_feature_columns,
  optimizer=tf.GradientDescentOptimizer(learning_rate=0.002),
  gradient_clip_norm=3.14
)

但是,当我尝试手动指定列时,我得到了KeyErrors(对于所有3列):

linear_regressor = tf.contrib.learn.LinearRegressor(
  feature_columns=[
      tf.contrib.layers.real_valued_column('tailLength'),
      tf.contrib.layers.real_valued_column('whiskerLength'),
      tf.contrib.layers.real_valued_column('playfulness')
  ],
  optimizer=tf.GradientDescentOptimizer(learning_rate=0.002),
  gradient_clip_norm=3.14
)

这很奇怪,因为我确信这3个是我的训练数据的特征。

1 个答案:

答案 0 :(得分:0)

当您尝试拟合估算器时,是否会发生KeyError?

如果是这样,也许您应该使用输入功能,允许功能操作,返回feature_columns和具有这些键的标签,如https://www.tensorflow.org/tutorials/input_fn/

使用estimator.fit(x,y)时出现了同样的错误......

干杯,

圣拉斐尔。