2017-02-25 9 views
6

注:ここに私の最初の質問。詳細や情報が不足しているためにご容赦ください。必要に応じて明確にすることができます。TensorFlow:SKCompat減価償却警告

私は、Mac上でTensorFlow 1.0.0を実行していると

WARNING:tensorflow:From :25: calling fit (from tensorflow.contrib.learn.python.learn.estimators.estimator) with y is deprecated and will be removed after 2016-12-01. Instructions for updating: Estimator is decoupled from Scikit Learn interface by moving into separate class SKCompat. Arguments x, y and batch_size are only available in the SKCompat class, Estimator will only accept input_fn. Example conversion: est = Estimator(...) -> est = SKCompat(Estimator(...))

が、私はこのクラスのアップを見てみましたlearn.Estimatorクラスを使用したとき、私はこの警告を得続けるとゼロ情報がに関してでありそれ。完全なコードはここ

https://github.com/austinmwhaley/DeepFarm/blob/master/prototype_1.ipynb

掲載され、誰もがあなたがtensorflow.contrib.learn.pythonからSKCompatをインポートすることができ

+3

[cnn_mnistチュートリアル](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/layers/cnn_mnist.py)に従うと同様の問題が発生します。エラー情報に基づいて、私は 'tensorflow.contrib.learn.SKCompat import SKCompat'から' SKCompat() 'とEstimatorをラップしました。しかし、それは動作しません...エラー: "SKCompatというモジュールはありません"。あまりにも助けが必要です! – user3768495

答えて

5

を必要としていることを他の情報がある場合は私に知らせてください:

from tensorflow.contrib.learn.python import SKCompat 

そして、あなたの見積もりをSKCompat()でラップします。このように:

classifier = SKCompat(tf.contrib.learn.LinearClassifier(args)) 
3

それとも、単にモデルの定義のためのupdated Estimator API of TensorFlow r1.1

APIを使用するには、パラメータ、戻り値の型や関数名のみで、いくつかの小さな変化と非常に似ています。ここで私が使用している例です。

def model_fn(): 
    def _build_model(features, labels, mode, params): 
     # 1. Configure the model via TensorFlow operations 
     # Connect the first hidden layer to input layer (features) with relu activation 
     y = tf.contrib.layers.fully_connected(features, num_outputs=64, activation_fn=tf.nn.relu, 
               weights_initializer=tf.contrib.layers.xavier_initializer()) 
     y = tf.contrib.layers.fully_connected(y, num_outputs=64, activation_fn=tf.nn.relu, 
               weights_initializer=tf.contrib.layers.xavier_initializer()) 
     y = tf.contrib.layers.fully_connected(y, num_outputs=1, activation_fn=tf.nn.sigmoid, 
               weights_initializer=tf.contrib.layers.xavier_initializer()) 

     predictions = y 

     # 2. Define the loss function for training/evaluation 
     if mode == tf.estimator.ModeKeys.TRAIN or mode == tf.estimator.ModeKeys.EVAL: 
      loss = tf.reduce_mean((predictions - labels) ** 2) 
     else: 
      loss = None 

     if mode != tf.estimator.ModeKeys.PREDICT: 
      eval_metric_ops = { 
       "rmse": tf.metrics.root_mean_squared_error(tf.cast(labels, tf.float32), predictions), 
       "accuracy": tf.metrics.accuracy(tf.cast(labels, tf.float32), predictions), 
       "precision": tf.metrics.precision(tf.cast(labels, tf.float32), predictions) 
      } 
     else: 
      eval_metric_ops = None 

     # 3. Define the training operation/optimizer 
     if mode == tf.estimator.ModeKeys.TRAIN: 
      train_op = tf.contrib.layers.optimize_loss(
       loss=loss, 
       global_step=tf.contrib.framework.get_global_step(), 
       learning_rate=0.001, 
       optimizer="Adam") 
     else: 
      train_op = None 

     if mode == tf.estimator.ModeKeys.PREDICT: 
      predictions_dict = {"pred": predictions} 
     else: 
      predictions_dict = None 

     # 5. Return predictions/loss/train_op/eval_metric_ops in ModelFnOps object 
     return tf.estimator.EstimatorSpec(mode=mode, 
              predictions=predictions_dict, 
              loss=loss, 
              train_op=train_op, 
              eval_metric_ops=eval_metric_ops) 
    return _build_model 

そして、あなたはこのように、このモデルを使用することができます。

e = tf.estimator.Estimator(model_fn=model_fn(), params=None) 
e.train(input_fn=input_fn(), steps=1000) 

TensorFlowのR1.1のための入力機能の例は、私の中に見つけることができます答えhere

関連する問題