2017-11-10 6 views
0

가 지정한입니다 오류가 무엇입니까 (?) "에 ValueError를 : 텐서에 부분적으로 알려진 TensorShape을 변환 할 수 없습니다 : (?)" 난 그냥 원하는 예상 결과를 얻으려면 부적합한 메소드를 실행할 수 없습니다. (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 인수가 문자열이 될 필요가 있다는 것입니다. 예제 ids를 나타내는 지형지 물의 이름입니다. 귀하의 코드에서 그것은 정수 Tensor입니다. https://www.tensorflow.org/api_docs/python/tf/contrib/learn/SVM

을 참조하십시오.