【问题标题】:What is this feature column and how does it affect the training?这个特性列是什么,它对训练有何影响?
【发布时间】:2017-09-26 09:51:00
【问题描述】:

我对 Tensor Flow 比较陌生。这个特性列是什么,它对训练有何影响?

当我实现如下代码时,这个数字列被创建为特征列。我想了解它的用途。

feature_columns = [tf.feature_column.numeric_column("x", shape=[1])]

estimator = tf.estimator.LinearRegressor(feature_columns=feature_columns)

x_train = np.array([1., 2., 3., 4.])
y_train = np.array([0., -1., -2., -3.])
x_eval = np.array([2., 5., 8., 1.])
y_eval = np.array([-1.01, -4.1, -7, 0.])

input_fn = tf.estimator.inputs.numpy_input_fn(
    {"x": x_train}, y_train, batch_size=4, num_epochs=None, shuffle=True)
train_input_fn = tf.estimator.inputs.numpy_input_fn(
{"x": x_train}, y_train, batch_size=4, num_epochs=1000, shuffle=False)
eval_input_fn = tf.estimator.inputs.numpy_input_fn(
{"x": x_eval}, y_eval, batch_size=4, num_epochs=1000, shuffle=False)

estimator.train(input_fn=input_fn, steps=10000)
train_metrics = estimator.evaluate(input_fn=train_input_fn)
eval_metrics = estimator.evaluate(input_fn=eval_input_fn)
print("\n\ntrain metrics: %r"% train_metrics)
print("eval metrics: %r"% eval_metrics)

【问题讨论】:

    标签: python machine-learning tensorflow


    【解决方案1】:

    根据我从documentation on feature columns 中收集到的信息,它们似乎用于将某种输入数据特征转换为可供回归或神经网络模型使用的连续变量。

    例如,在回归中,如果我们有一个分类变量,通常首先将其转换为一组dummy variablestf.feature_column.indicator_column 可用于为我们进行此转换。然后我们可以只在我们的 feed dict 中输入分类数据,并且转换为虚拟变量将在内部发生。

    numeric_column的情况下,不需要这样的转换,所以这个类基本上就像tf.placeholder一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 2021-07-26
      相关资源
      最近更新 更多