2017-07-28 11 views
1

私はTensorFlowを初めて使い、scikit-learnモデルをTensorFlow表記に変換しようとしていますが、それはあまりにも複雑です。TensorFlow:DNNRegressor、予測モデルを保存する方法

scikit-learnでモデルを保存してjoblib.load("ModelName.pkl")に再度電話すると、model.dump("ModelName.pkl")に電話するだけです。私がやりたいすべてが、get_training_data()でモデルを訓練して保存し、その後、私はpredictを呼び出すことができますので、それをロードしている

Traceback (most recent call last): 
    File "/Users/user0/Desktop/IPML_Model/tensorflow_model_train.py", line 39, in <module> 
    saver = tf.train.Saver() 
    File "/Library/Python/2.7/site-packages/tensorflow/python/training/saver.py", line 1139, in __init__ 
    self.build() 
    File "/Library/Python/2.7/site-packages/tensorflow/python/training/saver.py", line 1161, in build 
    raise ValueError("No variables to save") 
ValueError: No variables to save 

:私はTensorFlowと同様のことを行うにしようとしていますが、私は次のエラーを取得しています。

def get_training_data(): 
    X, y = preprocess_data() 

    X_train, _, y_train, _ = train_test_split(X, y, test_size=0.2, random_state=123) 

    feature_set = {f: tf.constant(X_train[f]) for f in features} 
    label_set = tf.constant(y_train) 

    return feature_set, label_set 

# Start a session 
sess = tf.Session() 

# Initialize a DNNRegressor model 
feature_cols = [real_valued_column(k) for k in features] 
dnn_regressor = DNNRegressor(feature_columns=feature_cols, hidden_units=[50, 50], label_dimension=7, model_dir=os.getcwd()) 

# Train the model 
dnn_regressor.fit(input_fn=lambda: get_training_data(), steps=5000) 

# Save the model 
saver = tf.train.Saver() 
saver.save(sess, "dnnregressor.ckpt") 

私はフィッティング後dnnregressorpredictを呼び出すことができ、それは何の「変数」を必要としませんが、私が最初に予測呼び出しをモデルを保存したい:ここで私が持っているものです。これを行うための最も簡単で最も簡単な方法は何ですか?モデルはあなたが呼んでいたときmodel_dirに保存されている

答えて

1

dnn_regressor = DNNRegressor(feature_columns=feature_cols, hidden_units=[50, 50], label_dimension=7, model_dir=os.getcwd()) 

inference中に再度上記を呼び出し、それがmodel_dirからモデルをロードし、その後dnn_regressor.predict()関数を呼び出します。

関連する問題