2016-10-16 25 views
1

私は実装しようとしています:https://www.tensorflow.org/versions/r0.11/tutorials/wide/index.html 私のデータセット。Tensorflowロジスティック回帰

私は基本的に、いくつかの連続した分類的特徴に基づいてバイナリ分類(0または1)を試みています。

NaNを、新しい機能が作成され、削除されました:

square_feet = tf.contrib.layers.real_valued_column("square_feet") 
guests_included = tf.contrib.layers.real_valued_column("guests_included") 
security_deposit = tf.contrib.layers.real_valued_column("security_deposit") 
cleaning_fee = tf.contrib.layers.real_valued_column("cleaning_fee") 
extra_people = tf.contrib.layers.real_valued_column("extra_people") 

neighbourhood_group_cleansed = tf.contrib.layers.sparse_column_with_keys(column_name="neighbourhood_group_cleansed", keys=['Bronx', 'Queens', 'Staten Island', 'Brooklyn', 'Manhattan']) 

host_response_time = tf.contrib.layers.sparse_column_with_keys(column_name="host_response_time", keys=['within an hour', 'within a few hours', 'within a day', 'a few days or more']) 

- 私はより多くの機能を持って、私はこれは要点を伝えると思います。

私は、これらの機能をコピー:後、私はデバッグのビットを行う場合、関数はinput_fn()有効なのdictを返し

model_dir = tempfile.mkdtemp() 
m = tf.contrib.learn.LinearClassifier(feature_columns=FEATURE_COLUMNS, model_dir=model_dir) 
m.fit(input_fn=train_input_fn, steps=200) 

によって使用されます

def input_fn(df): 
    # Creates a dictionary mapping from each continuous feature column name (k) to 
    # the values of that column stored in a constant Tensor. 
    continuous_cols = {k: tf.constant(df[k].values) for k in CONTINUOUS_COLUMNS} 
    # Creates a dictionary mapping from each categorical feature column name (k) 
    # to the values of that column stored in a tf.SparseTensor. 
    categorical_cols = {k: tf.SparseTensor(indices=[[i, 0] for i in range(df[k].size)], values=df[k].values, shape=[df[k].size, 1]) for k in CATEGORICAL_COLUMNS} 
    # Merges the two dictionaries into one. 
    feature_cols = dict(continuous_cols.items() + categorical_cols.items()) 
    # Converts the label column into a constant Tensor. 
    label = tf.constant(df[LABEL_COLUMN].values) 
    # Returns the feature columns and the label. 
    return feature_cols, label 


def train_input_fn(): 
    return input_fn(df_train) 


def eval_input_fn(): 
    return input_fn(df_test) 

分類です。 feature_cols

/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.pyc in check_feature_columns(feature_columns) 
    510 seen_keys = set() 
    511 for f in feature_columns: 
--> 512  key = f.key 
    513  if key in seen_keys: 
    514  raise ValueError('Duplicate feature column key found for column: {}. ' 
AttributeError: 'str' object has no attribute 'key' 

のデバッグ出力(のみ抜粋):

'square_feet': <tf.Tensor 'Const_15:0' shape=(10000,) dtype=float64>, 
'guests_included': <tf.Tensor 'Const_16:0' shape=(10000,) dtype=float64>, 
'security_deposit': <tf.Tensor 'Const_17:0' shape=(10000,) dtype=float64>, 
'cleaning_fee': <tf.Tensor 'Const_18:0' shape=(10000,) dtype=float64>, 
.. 

とDF

<tf.Tensor 'Const_27:0' shape=(10000,) dtype=int64> 

ラベルためとため はしかし、私はこのエラーを取得します[LABEL_COLUMN]。値

array([1, 1, 1, ..., 1, 1, 1]) 

ヘルプ、ヒント、ヒントを高く評価しました。これらはTensorflowの私の最初のステップであり、進める方法やエラーのトラブルシューティングを行う方法はありません。

ありがとうございました!

私はちょうど連続列

classifier = learn.DNNClassifier(hidden_units=[10, 20, 10], n_classes=2, feature_columns=CONTINUOUS_COLUMNS) 

classifier.fit(df_train[CONTINUOUS_COLUMNS], df_train['classification'], steps=200, batch_size=32) 

に、DNN分類器に

import tensorflow.contrib.learn.python.learn as learn 

と今を使用し、同じエラーを取得しようとしました

---更新---

/lib/python2.7/site-packages/tensorflow/contrib/layers/python/layers/feature_column_ops.pyc in check_feature_columns(feature_columns) 
    510 seen_keys = set() 
    511 for f in feature_columns: 
--> 512  key = f.key 
    513  if key in seen_keys: 
    514  raise ValueError('Duplicate feature column key found for column: {}. ' 

AttributeError: 'str' object has no attribute 'key' 
+0

スタックトレースを表示できますか? – sygi

答えて

0

wwあなたはそれを渡しているモデルを訓練しますか?あなたが文字列のリストとして持っていると信じているリストFEATURE_COLUMNS。テンソルフローがこのリストをループすると、失敗した文字列のキープロパティにアクセスしようとしています。おそらく、テンソルフロー変数のリストを渡す必要があります。新しいリストを定義するwide_columns

wide_columns=[square_feet, guests_included,...] 
m = tf.contrib.learn.LinearClassifier(feature_columns=wide_columns, model_dir=model_dir) 
m.fit(...) 
関連する問題