【问题标题】:Error converting tensorflow estimator to SavedModel将 tensorflow 估计器转换为 SavedModel 时出错
【发布时间】:2019-12-16 14:52:18
【问题描述】:

我成功训练了一个 TensowFlow 增强树估计器。现在我想将它保存为 SavedModel。问题是我收到以下错误。 ValueError: All feature_columns must be _FeatureColumn instances. Given: [NumericColumn(key='fcoeffvariation_Result', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None), NumericColumn(key='fcountabove2sigma_Result', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None)]

下面是我的代码。任何人都看到问题是什么? measurementData variabele 是一个熊猫数据框。特征fcoeffvariation_Result, fcountabove2sigma_Result 是浮点特征,标签特征是布尔值(0 或 1)。

measurementData = measurementData[['fcoeffvariation_Result', 'fcountabove2sigma_Result', 'label']]

df = measurementData.copy()

df_features = measurementData.copy()

#Delete target feature from dataframe
del df_features['label']

# Spiting the data to train and test
X_feature = df_features.copy()
Y_label = df['label'].copy()
X_feature_train, X_feature_test, Y_feature_train, Y_feature_test = train_test_split(X_feature, Y_label, test_size=0.3)

############################Create input functions
# Create a input function to train the model
input_func_train = tf.estimator.inputs.pandas_input_fn(x=X_feature_train,y=Y_feature_train, batch_size=50,shuffle=True)
# Create a input function to evaluate the model after train
input_func_test = tf.estimator.inputs.pandas_input_fn(x=X_feature_test,  y=Y_feature_test, batch_size=50,shuffle=False)
# Create a input function for prediction
input_func_prediction = tf.estimator.inputs.pandas_input_fn(x=X_feature_test,y=Y_feature_test, batch_size=50,shuffle=False)

###########################Feature Columns
my_feature_columns = [tf.feature_column.numeric_column(key=key)
                   for key in X_feature_train.keys()]

###########################Train model
linear_est = tf.estimator.LinearClassifier(my_feature_columns)
linear_est.train(input_fn=input_func_train, max_steps=100)

###################################Convert to savedmodel
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
  tf.feature_column.make_parse_example_spec([my_feature_columns]))
export_path = linear_est.export_saved_model(
  "path", serving_input_fn)




【问题讨论】:

    标签: python tensorflow tensorflow-estimator


    【解决方案1】:

    您需要将特征转换为 Tensorflow 可以接受的格式。在拟合模型之前尝试将您的列转换为特征列。更多信息在这里:https://www.tensorflow.org/tutorials/structured_data/feature_columns

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2019-06-04
      • 2023-04-02
      • 2018-05-06
      • 2019-12-05
      相关资源
      最近更新 更多