#python #pandas #numpy #tensorflow #keras
#python #pandas #numpy #tensorflow #keras
Вопрос:
Я получаю сообщение об ошибке «Не удалось преобразовать массив NumPy в тензор (неподдерживаемый тип объекта с плавающей точкой)». при вводе моей метки в tf.data.Dataset.from_tensor_slices( ) функция. Однако, когда я нажимаю> label из training_df и ввожу dict(training_df) в функцию, ошибка устраняется.
Пожалуйста, помогите.
import pandas as pd
import tensorflow as tf
from tensorflow import feature_column
from tensorflow.keras import layers
from sklearn.model_selection import train_test_split
#tf.enable_eager_execution()
training_df = pd.read_csv('C:\Users\Lenovo\Desktop\ML\train.csv')
train , test = train_test_split(training_df,test_size=0.2)
train , val = train_test_split(train,test_size=0.25)
print(type(train))
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
label = train.pop('Survived') #survived is my label
train_ds = (
tf.data.Dataset.from_tensor_slices(
(
dict(train),
label
)
)
)
Комментарии:
1. Можете ли вы связать файл CSV, чтобы ошибка могла быть воспроизведена? Кроме того, вы можете удалить весь бесполезный код? Похоже, что вся часть feature_column не связана
2. Проверьте массив, который вы пытаетесь преобразовать. Похоже, это
object
dtype . Что этоshape
? Если это 1d, скорее всего, вы создали массив из массивов или изображений, которые различаются по форме. Это не многомерный массив, который можно превратить в тензор.3. @NicolasGervais я очистил код. я загрузил наборы данных из kaggle kaggle.com/c/titanic/data
4. @hpaulj я импортирую файл csv в фрейм данных, который
training_df
. Теперь я разделил этот фрейм данных на три фрейма данных, которыеtrain, test and val
. Мой вопрос был в том, почему tf.data. Dataset.from_tensor_slices работает только тогда, когда я передаюtraining_df
как dict, а неtrain
dataframe.5. Проблема была решена, как только я сопоставил формы всех фреймов данных. Спасибо за помощь @hpaulj