當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.compat.v1.estimator.regressor_parse_example_spec用法及代碼示例


為 tf.parse_example 生成解析規範以與回歸器一起使用。

用法

tf.compat.v1.estimator.regressor_parse_example_spec(
    feature_columns, label_key, label_dtype=tf.dtypes.float32, label_default=None,
    label_dimension=1, weight_column=None
)

參數

  • feature_columns 包含所有特征列的迭代。所有項目都應該是派生自 _FeatureColumn 的類的實例。
  • label_key 標識標簽的字符串。這意味著 tf.Example 使用此鍵存儲標簽。
  • label_dtype tf.dtype 標識標簽的類型。默認情況下它是 tf.float32
  • label_default 如果 label_key 在給定的 tf.Example 中不存在,則用作標簽。默認情況下 default_value 為 none,這意味著如果缺少任何標簽,tf.parse_example 將出錯。
  • label_dimension 每個示例的回歸目標數。這是標簽和 logits Tensor 對象的最後一個維度的大小(通常,這些對象的形狀為 [batch_size, label_dimension] )。
  • weight_column tf.feature_column.numeric_column 創建的字符串或 NumericColumn 定義表示權重的特征列。它用於在訓練期間減輕重量或增加示例。它將乘以示例的損失。如果它是一個字符串,它被用作從 features 中獲取權重張量的鍵。如果是 NumericColumn ,則通過鍵 weight_column.key 獲取原始張量,然後對其應用 weight_column.normalizer_fn 以獲得權​​重張量。

返回

  • 將每個函數鍵映射到 FixedLenFeatureVarLenFeature 值的字典。

拋出

  • ValueError 如果在 feature_columns 中使用標簽。
  • ValueError 如果在 feature_columns 中使用 weight_column 。
  • ValueError 如果任何給定的 feature_columns 不是 _FeatureColumn 實例。
  • ValueError 如果 weight_column 不是 NumericColumn 實例。
  • ValueError 如果label_key 為無。

如果用戶以 tf.Example 格式保存數據,他們需要使用適當的函數規範調用 tf.parse_example。此實用程序有兩個主要幫助:

  • 用戶需要將特征的解析規範與標簽和權重(如果有的話)結合起來,因為它們都是從同一個 tf.Example 實例中解析出來的。該實用程序結合了這些規範。
  • 很難將諸如DNNRegressor 之類的回歸器的預期標簽映射到相應的 tf.parse_example 規範。該實用程序通過從用戶獲取相關信息(key、dtype)對其進行編碼。

解析規範的示例輸出:

# Define features and transformations
feature_b = tf.feature_column.numeric_column(...)
feature_c_bucketized = tf.feature_column.bucketized_column(
  tf.feature_column.numeric_column("feature_c"), ...)
feature_a_x_feature_c = tf.feature_column.crossed_column(
    columns=["feature_a", feature_c_bucketized], ...)

feature_columns = [feature_b, feature_c_bucketized, feature_a_x_feature_c]
parsing_spec = tf.estimator.regressor_parse_example_spec(
    feature_columns, label_key='my-label')

# For the above example, regressor_parse_example_spec would return the dict:
assert parsing_spec == {
  "feature_a":parsing_ops.VarLenFeature(tf.string),
  "feature_b":parsing_ops.FixedLenFeature([1], dtype=tf.float32),
  "feature_c":parsing_ops.FixedLenFeature([1], dtype=tf.float32)
  "my-label":parsing_ops.FixedLenFeature([1], dtype=tf.float32)
}

使用回歸器的示例用法:

feature_columns = # define features via tf.feature_column
estimator = DNNRegressor(
    hidden_units=[256, 64, 16],
    feature_columns=feature_columns,
    weight_column='example-weight',
    label_dimension=3)
# This label configuration tells the regressor the following:
# * weights are retrieved with key 'example-weight'
# * label is a 3 dimension tensor with float32 dtype.


# Input builders
def input_fn_train(): # Returns a tuple of features and labels.
  features = tf.contrib.learn.read_keyed_batch_features(
      file_pattern=train_files,
      batch_size=batch_size,
      # creates parsing configuration for tf.parse_example
      features=tf.estimator.classifier_parse_example_spec(
          feature_columns,
          label_key='my-label',
          label_dimension=3,
          weight_column='example-weight'),
      reader=tf.RecordIOReader)
   labels = features.pop('my-label')
   return features, labels

estimator.train(input_fn=input_fn_train)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.estimator.regressor_parse_example_spec。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。