Используя Tensorflow 2.0 alpha , я получил ошибку ValueError: Can't convert Python sequence with mixed types to Tensor
, когда пытался создать tf.data.Dataset
, используя следующие данные:
Проверьте полный набор данных на Kaggle
Очевидно, что существуют смешанные типы данных. Sex
- это строка, Age
- число с плавающей запятой / double, SibSp
и Parch
- целые числа и т. Д.
Мой (Python 3) код для преобразования этого Pandas Dataframe в tf.data.Dataset
основан на руководстве Tensorflow по Как классифицировать структурированные данные и выглядит следующим образом:
def df_to_dataset(dataframe, shuffle=True, batch_size=32):
dataframe = dataframe.copy()
# the 'Survived' column is the label (not shown in the image of the Dataframe but exists in the Dataframe)
label = dataframe.pop('Survived')
# create the dataset from the dataframe
ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), label))
# if shuffle == true, randomize the entries
if shuffle:
ds = ds.shuffle(buffer_size=len(dataframe))
ds = ds.batch(batch_size)
return ds
Как уже упоминалось выше, эта функция выдаст ошибку ValueError: Can't convert Python sequence with mixed types to Tensor
при ее выполнении, например:
train_ds = df_to_dataset(df_train, batch_size=32)
(пока df_train
- это кадр данных панд, который вы видите на изображении)
Теперь мне интересно, что я что-то упустил, потому что в учебнике Tensorflow (упомянутом выше) также используется фрейм данных со смешанными типами, но я не столкнулся с ошибками при попытке попробовать этот пример с точно такой же функцией df_to_dataset
.