无法在C:\ Users \ TULINC~1 \ AppData \ Local \ Temp \ tmpcpcforqv找到训练有素的模型

时间:2017-11-07 16:12:34

标签: python tensorflow

我收到此错误

  

无法在C:\ Users \ TULINC~1 \ AppData \ Local \ Temp \ tmpcpcforqv找到训练有素的模型。

当我评估模型时。代码为results=estimator.evaluate(input_fn=input_fn_test)

我该怎么办?能否请你帮忙?因为没有理由找到我使用tempfile.mkdtemp()的模型。您对错误有任何想法吗?

import  tensorflow as tf
import pandas as pd
import tempfile


tf.logging.set_verbosity(tf.logging.INFO)
FEATURES = ["RowNumber","CustomerId","CreditScore","Age","Tenure","Balance",
"NumOfProducts", "HasCrCard","IsActiveMember", "EstimatedSalary"]
LABEL = 'Exited'

df_train = pd.read_csv("Churn_Modelling.csv", skipinitialspace=True, 
header=0)
df_test = pd.read_csv("Churn_Modelling.csv", skipinitialspace=True, 
header=0)

train_label=df_train[LABEL]
test_label = df_test[LABEL]

def input_fn_train():
    x=tf.constant(df_train),
    y=tf.constant(test_label)
    return x, y

def input_fn_test():
    x=tf.constant(df_test),
    y=tf.constant(test_label)
    return x, y

df=df_train.select_dtypes(exclude=['object'])
numeric_cols=df.columns


df2=df_train.select_dtypes(include=['object'])
categorical_cols=df2.columns

model_dir = tempfile.mkdtemp()
estimator= tf.contrib.learn.LinearEstimator(model_dir=model_dir,
feature_columns=[numeric_cols,categorical_cols],
head=tf.contrib.learn.poisson_regression_head())

#train model
estimator.fit(input_fn=input_fn_train,steps=None, monitors=[])

#evaluate the model
results=estimator.evaluate(input_fn=input_fn_test)

print("model directory = %s" % model_dir)
for key in sorted(results):
  print("%s: %s" % (key, results[key]))


pred=list(estimator.predict(input_fn=input_fn_test))

1 个答案:

答案 0 :(得分:0)

估算工具fit()evaluate()predict()方法的工作方式是他们尝试从model_dir加载已保存的模型。这就是您在创建估算工具时提供model_dir的原因。即使没有保存的模型,fit()仍然有效,并且会按照预定的预定义时间间隔保存模型。 evaluate()predict()期望保存的模型存在。因此,您需要确保该目录可用并包含经过训练的模型。

在您的情况下,您有steps=None,所以我希望在尝试评估之前,模型实际上没有经过培训和保存。为什么要将步骤设置为无?