2 글 보임 - 1 에서 2 까지 (총 2 중에서)
-
글쓴이글
-
2022년 9월 23일 12:58 #47474
정수진참가자CSV 파일 다루는 강의에서 predict를 해보려는 과정에서 오류가 났는데 어떻게 해결 하면 좋을까요? 처음에 딕셔너리 형태의 데이터를 준비하고, feature_column으로 전처리를 진행한뒤 바로 predict를 진행하면 될것같은데, pre_feature_columns을 predict에 바로 넣었더니 numpyarray로 바꿔야 한다고 해서 np.array()를 추가했는데도 잘 해결되지 않아서 질문드립니다..
------------- 코드 # 예측하기 predict_person=({'PassengerId': [600], 'Pclass': [3], 'Name': ["person"], 'Sex': ["male"], 'Age': [23], 'SibSp': [1], 'Parch': [2], 'Ticket': ["373450"], 'Fare': [32.2], 'Embarked': ["S"]})
# 데이터 전처리 pre_feature_columns = []
pre_feature_columns.append( tf.feature_column.numeric_column('Fare') ) # 노말라이저 함수 추가 기능(모든 데이터에 함수를 적용해줌) pre_feature_columns.append( tf.feature_column.numeric_column('Parch') ) pre_feature_columns.append( tf.feature_column.numeric_column('SibSp') )
Age = tf.feature_column.numeric_column('Age') age_bucket = tf.feature_column.bucketized_column(Age, boundaries=[10, 20, 30, 40, 50, 60])
pre_feature_columns.append(age_bucket)
# 카테고리 데이터 vocab = data['Sex'].unique() cat = tf.feature_column.categorical_column_with_vocabulary_list('Sex', vocab) one_hot = tf.feature_column.indicator_column(cat) # 카테고리 데이터를 원핫 인코딩함 pre_feature_columns.append(one_hot)
# Embarked 전처리 vocab = data['Embarked'].unique() cat = tf.feature_column.categorical_column_with_vocabulary_list('Embarked', vocab) one_hot = tf.feature_column.indicator_column(cat) # 카테고리 데이터를 원핫 인코딩함 pre_feature_columns.append(one_hot)
# Pclass 전처리 vocab = data['Pclass'].unique() cat = tf.feature_column.categorical_column_with_vocabulary_list('Pclass', vocab) one_hot = tf.feature_column.indicator_column(cat) # 카테고리 데이터를 원핫 인코딩함 pre_feature_columns.append(one_hot)
# Embedding vocab = data['Ticket'].unique() cat = tf.feature_column.categorical_column_with_vocabulary_list('Ticket', vocab) one_hot = tf.feature_column.embedding_column(cat, dimension=9) # 카테고리 데이터를 원핫 인코딩함 pre_feature_columns.append(one_hot)
import numpy as np
# 예측하기 array_predict = np.array(predict_person) print(array_predict)
predict = model.predict(array_predict) print(predict)
--------------- 오류 내용
{'PassengerId': [600], 'Pclass': [3], 'Name': ['person'], 'Sex': ['male'], 'Age': [23], 'SibSp': [1], 'Parch': [2], 'Ticket': ['373450'], 'Fare': [32.2], 'Embarked': ['S']}
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-87-1e21f907f4c7> in <module> 47 print(array_predict) 48 ---> 49 predict = model.predict(array_predict) 50 print(predict)
1 frames /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py in convert_to_eager_tensor(value, ctx, dtype) 100 dtype = dtypes.as_dtype(dtype).as_datatype_enum 101 ctx.ensure_initialized() --> 102 return ops.EagerTensor(value, ctx.device_name, dtype) 103 104
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type dict).
---------------------- 혹시 predict를 하려면 어떻게 해야할까요? 감사합니다.
-
글쓴이글
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
- 답변은 로그인 후 가능합니다.