2017-11-10 2 views
0

私は「:テンソルに部分的に知られているTensorShapeを変換できません(?)とValueError」を指定したエラーを取得しています(estimator.fit(input_fn=get_input_fn_train(), steps=10000)このコードを実行しようとするとエラーが発生します。私は10000行と8 int列を持っています。私は現在、文字列を削除しました。 (x_train.shape)→(8000,8)。 y_train.shape - >(8000、)。どのような形がありますか?私は有用なものを見つけることができませんブーググーグルです。私は何をするのですか?私は何が欠けていますか?以下のすべてのコード。ありがとう。とValueError:テンソルに部分的に知られているTensorShapeを変換できません:(?) 私はちょうどたい

import pandas as pd 
import tensorflow as tf 
import numpy as np 
import tempfile 
from sklearn.model_selection import train_test_split 

def split_data(data, rate, label): 
    data = data.dropna() 

    train_data, test_data = train_test_split(data, test_size=rate) 

    train_label = train_data[label] 
    train_data = train_data.drop(label, 1) 

    test_label = test_data[label] 
    test_data = test_data.drop(label, 1) 
    return train_data, train_label, test_data, test_label 


LABEL="Exited" 


data = pd.read_csv("Churn_Modelling.csv", skipinitialspace=True, header=0) 

data.drop("Surname", axis=1, inplace=True) 
data.drop("RowNumber", axis=1, inplace=True) 
data.drop("CustomerId", axis=1, inplace=True) 
data.drop("Geography", axis=1, inplace=True) 
data.drop("Gender", axis=1, inplace=True) 

x_train, y_train, x_test, y_test = split_data(data, 0.20, LABEL) 



def get_input_fn_train(): 
     input_fn = tf.estimator.inputs.pandas_input_fn(
      x=x_train.astype('float64'), 
      y=y_train.astype('float32'), 
      shuffle=False 
     ) 
     return input_fn 

def get_input_fn_test(): 
     input_fn = tf.estimator.inputs.pandas_input_fn(
      x=x_test.astype('float64'), 
      y=y_test.astype('float32'), 
      shuffle=False 
     ) 
     return input_fn 


feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input_fn(
                 get_input_fn_train()) 


model_dir = tempfile.mkdtemp() 
estimator = tf.contrib.learn.SVM(
example_id_column=tf.constant(np.arange(len(y_train))), 
feature_columns=feature_columns, l2_regularization=10.0,model_dir=model_dir)              

estimator.fit(input_fn=get_input_fn_train(), steps=10000) 
#(I am getting error this line) 


results=estimator.evaluate(input_fn=get_input_fn_test(), steps=1) 


for key in sorted(results): 
    print("%s: %s" % (key, results[key])) 


pred=list(estimator.predict(input_fn=get_input_fn_test())) 

答えて

0

他の問題があるかどうかはわからないが、あなたが持っている一つの問題は、SVMからexample_id_column引数が文字列である必要があります。これは、例IDを表すフィーチャー列の名前です。あなたのコードでは整数のTensorです。 https://www.tensorflow.org/api_docs/python/tf/contrib/learn/SVM

関連する問題