2017-09-26 73 views
1

我對Tensor Flow比較陌生。此功能欄是什麼以及它如何影響培訓?Tensorflow-特徵列

當我實現下面的代碼時,這個數字列被創建爲一個特性列。我想了解使用情況。

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) 

回答

1

根據我從documentation on feature columns蒐集,似乎它們用於某種輸入數據功能轉換成可以通過迴歸或神經網絡模型中使用連續變量。

例如,在迴歸中,如果我們有一個分類變量,通常先將其轉換爲一組dummy variablestf.feature_column.indicator_column可以用來爲我們做這個轉換。然後我們可以在我們的feed字典中提供分類數據,並且轉換爲虛擬變量會在內部發生。

numeric_column的情況下,不需要這種轉換,所以該課程基本上就像tf.placeholder一樣。