我收到此错误
无法在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))
答案 0 :(得分:0)
估算工具fit()
,evaluate()
和predict()
方法的工作方式是他们尝试从model_dir
加载已保存的模型。这就是您在创建估算工具时提供model_dir
的原因。即使没有保存的模型,fit()
仍然有效,并且会按照预定的预定义时间间隔保存模型。 evaluate()
和predict()
期望保存的模型存在。因此,您需要确保该目录可用并包含经过训练的模型。
在您的情况下,您有steps=None
,所以我希望在尝试评估之前,模型实际上没有经过培训和保存。为什么要将步骤设置为无?