TensorFlow 2.0 Приведение строки к плавающей точке не поддерживается - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь следовать учебнику данных Tensorflow Load CSV https://www.tensorflow.org/tutorials/load_data/csv со своими собственными данными, но я продолжаю сталкиваться с препятствиями, когда дело доходит до упаковки числовых столбцов данных c, а затем итерации через них. Мой код и трассировка ниже. Интересно то, что это не из-за ошибки, когда я вызываю класс Pack и фактически приводил столбцы к float32. Ошибка выдается, когда я пытаюсь отобразить результат с помощью итерации.

Мысли?

Код:

from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow as tf
from tensorflow import keras
import pandas as pd
import functools

import numpy as np
import matplotlib.pyplot as plt

import os

fibro_path = "/Users/rdelemos/PycharmProjects/MachineLearning/NASH/raw.csv"

batch_size = 32
selected_columns = ['age', 'sex', 'weight_kg', 'height_cm', 'bmi_calc', 'dm', 'fibro_cap', 'fibro_kpa', 'fib4',
                    'fib4_calc',
                    'fib4_comb', 'nfs_score', 'status']

numeric_columns = ['age', 'weight_kg', 'height_cm', 'bmi_calc', 'fibro_cap', 'fibro_kpa', 'fib4', 'fib4_calc',
                   'fib4_comb', 'nfs_score']

dataset = tf.data.experimental.make_csv_dataset(
    fibro_path,
    batch_size,
    na_value="?",
    num_epochs=1,
    ignore_errors=True,
    select_columns=selected_columns,
    label_name='status'
)


def show_batch(dataset):
    for batch, label in dataset.take(1):
        for key, value in batch.items():
            print("{:20s}: {}".format(key, value.numpy()))


class PackNumericFeatures(object):
    def __init__(self, names):
        self.names = names

    def __call__(self, features, labels):
        numeric_features = [features.pop(name) for name in self.names]
        numeric_features = [tf.cast(feat, tf.float32) for feat in numeric_features]
        numeric_features = tf.stack(numeric_features, axis=-1)
        features['numeric'] = numeric_features

        return features, labels


packed_data = dataset.map(PackNumericFeatures(numeric_columns))

print("/////////////////////////////////////////////////////")

show_batch(packed_data)

Отслеживание:

2020-03-24 13:40:48.458261: W tensorflow/core/framework/op_kernel.cc:1599] OP_REQUIRES failed at cast_op.cc:123 : Unimplemented: Cast string to float is not supported
2020-03-24 13:40:48.458288: E tensorflow/core/common_runtime/executor.cc:642] Executor failed to create kernel. Unimplemented: Cast string to float is not supported
     [[{{node Cast_4}}]]
Traceback (most recent call last):
  File "/Users/rdelemos/PycharmProjects/MachineLearning/NASH/nash_ml.py", line 57, in <module>
    show_batch(packed_data)
  File "/Users/rdelemos/PycharmProjects/MachineLearning/NASH/nash_ml.py", line 35, in show_batch
    for batch, label in dataset.take(1):
  File "/Users/rdelemos/PycharmProjects/MachineLearning/venv/lib/python3.5/site-packages/tensorflow_core/python/data/ops/dataset_ops.py", line 332, in __iter__
    return iterator_ops.IteratorV2(self)
  File "/Users/rdelemos/PycharmProjects/MachineLearning/venv/lib/python3.5/site-packages/tensorflow_core/python/data/ops/iterator_ops.py", line 593, in __init__
    self._create_iterator(dataset)
  File "/Users/rdelemos/PycharmProjects/MachineLearning/venv/lib/python3.5/site-packages/tensorflow_core/python/data/ops/iterator_ops.py", line 611, in _create_iterator
    gen_dataset_ops.make_iterator(ds_variant, self._iterator_resource)
  File "/Users/rdelemos/PycharmProjects/MachineLearning/venv/lib/python3.5/site-packages/tensorflow_core/python/ops/gen_dataset_ops.py", line 2929, in make_iterator
    _six.raise_from(_core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.UnimplementedError: Cast string to float is not supported
     [[{{node Cast_4}}]] [Op:MakeIterator]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...