2017-11-07 22 views
0

TULINC〜1 \のAppData \ローカル\一時\のtmpcpcforqvを\私は、このエラーにはCで訓練されたモデルを見つけることができませんでした:ユーザーは

を取得していますCで訓練モデルを見つけることができませんでした:\ユーザーは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

方法推定fit()evaluate()predict()メソッドの仕事は、彼らがmodel_dirから保存されたモデルをロードしようとしています。そのため、見積もりを作成するときにはmodel_dirを指定します。 fit()は、保存されたモデルがなくても機能し、モデルを定期的に定義済みの間隔で保存します。 evaluate()predict()は、保存されたモデルが存在すると予想します。したがって、ディレクトリが利用可能であり、訓練されたモデルが含まれていることを確認する必要があります。

あなたのケースでは、steps=Noneがあるので、評価を試みる前にモデルが実際に訓練されて保存されていないことが期待されます。なぜステップをNoneに設定していますか?

+0

実際には、step = Noneはfit()メソッドのデフォルト値です。私はNoneの代わりに500を置き、model_dir行を削除しましたが、何も変わっていません。私はstiilに同じエラーを出しています。また、ディレクトリが利用可能であることを確認しましたが、それは空です。 – TulinCakmak

+0

デフォルトではsteps = Noneになるのは、トレーニングの反復回数を制御する方法が複数あるため、steps、max_steps、またはその両方を設定できるからです。しかし、あなたのモデルが訓練するステップの数に少なくとも1つを設定する必要があります。 –

+0

Yess私はすでに5000を設定しました。しかし、何も変わっていません。 – TulinCakmak

関連する問題