為要與分類器一起使用的 tf.parse_example 生成解析規範。
用法
tf.compat.v1.estimator.classifier_parse_example_spec(
feature_columns, label_key, label_dtype=tf.dtypes.int64, label_default=None,
weight_column=None
)
參數
-
feature_columns
包含所有特征列的迭代。所有項目都應該是派生自FeatureColumn
的類的實例。 -
label_key
標識標簽的字符串。這意味著 tf.Example 使用此鍵存儲標簽。 -
label_dtype
tf.dtype
標識標簽的類型。默認情況下它是tf.int64
。如果用戶定義了label_vocabulary
,則應將其設置為tf.string
。tf.float32
標簽僅支持二進製分類。 -
label_default
如果 label_key 在給定的 tf.Example 中不存在,則用作標簽。示例用法:假設label_key
是 'clicked' 並且 tf.Example 僅包含以下格式的正示例的點擊數據key:clicked, value:1
。這意味著如果沒有鍵為 'clicked' 的數據,則應通過設置label_deafault=0
將其視為反例。此值的類型應與label_dtype
兼容。 -
weight_column
由tf.feature_column.numeric_column
創建的字符串或NumericColumn
定義表示權重的特征列。它用於在訓練期間減輕重量或增加示例。它將乘以示例的損失。如果它是一個字符串,它被用作從features
中獲取權重張量的鍵。如果是NumericColumn
,則通過鍵weight_column.key
獲取原始張量,然後對其應用 weight_column.normalizer_fn 以獲得權重張量。
返回
-
將每個函數鍵映射到
FixedLenFeature
或VarLenFeature
值的字典。
拋出
-
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 實例中解析出來的。該實用程序結合了這些規範。
- 很難將諸如
DNNClassifier
之類的分類器的預期標簽映射到相應的 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.classifier_parse_example_spec(
feature_columns, label_key='my-label', label_dtype=tf.string)
# For the above example, classifier_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.string)
}
分類器的示例用法:
feature_columns = # define features via tf.feature_column
estimator = DNNClassifier(
n_classes=1000,
feature_columns=feature_columns,
weight_column='example-weight',
label_vocabulary=['photos', 'keep', ...],
hidden_units=[256, 64, 16])
# This label configuration tells the classifier the following:
# * weights are retrieved with key 'example-weight'
# * label is string and can be one of the following ['photos', 'keep', ...]
# * integer id for label 'photos' is 0, 'keep' is 1, ...
# 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_dtype=tf.string,
weight_column='example-weight'),
reader=tf.RecordIOReader)
labels = features.pop('my-label')
return features, labels
estimator.train(input_fn=input_fn_train)
相關用法
- Python tf.compat.v1.estimator.DNNEstimator用法及代碼示例
- Python tf.compat.v1.estimator.experimental.KMeans用法及代碼示例
- Python tf.compat.v1.estimator.tpu.RunConfig用法及代碼示例
- Python tf.compat.v1.estimator.regressor_parse_example_spec用法及代碼示例
- Python tf.compat.v1.estimator.BaselineRegressor用法及代碼示例
- Python tf.compat.v1.estimator.inputs.numpy_input_fn用法及代碼示例
- Python tf.compat.v1.estimator.LinearRegressor用法及代碼示例
- Python tf.compat.v1.estimator.BaselineEstimator用法及代碼示例
- Python tf.compat.v1.estimator.BaselineClassifier用法及代碼示例
- Python tf.compat.v1.estimator.LinearClassifier用法及代碼示例
- Python tf.compat.v1.estimator.DNNLinearCombinedRegressor用法及代碼示例
- Python tf.compat.v1.estimator.tpu.TPUEstimator用法及代碼示例
- Python tf.compat.v1.estimator.DNNClassifier用法及代碼示例
- Python tf.compat.v1.estimator.DNNRegressor用法及代碼示例
- Python tf.compat.v1.estimator.tpu.experimental.EmbeddingConfigSpec用法及代碼示例
- Python tf.compat.v1.estimator.DNNLinearCombinedEstimator用法及代碼示例
- Python tf.compat.v1.estimator.Estimator用法及代碼示例
- Python tf.compat.v1.estimator.LinearEstimator用法及代碼示例
- Python tf.compat.v1.estimator.DNNLinearCombinedClassifier用法及代碼示例
- Python tf.compat.v1.enable_eager_execution用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.estimator.classifier_parse_example_spec。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。