Как читать CSV в TensorFlow? - PullRequest
       2

Как читать CSV в TensorFlow?

0 голосов
/ 18 октября 2018

Я только начал использовать TensorFlow.Я пытаюсь прочитать CSV-файл в TensorFlow.Это пример, который я нашел в Интернете:

filename_queue = tf.train.string_input_producer(["d:/Feng/LP/tensorflowtrydata.csv"])
reader = tf.TextLineReader()
key, value = reader.read(filename_queue)
record_defaults = [[1.0], [1.0], [1.0], [1.0], ["Null"]] 
col1, col2, col3, col4, col5 = tf.decode_csv(value,record_defaults=record_defaults) 
features = tf.stack([col1, col2, col3, col4])
with tf.Session() as sess:
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(coord=coord)
    for i in range(200):
        example, label = sess.run([features, col5])
        print (example,col5)
    coord.request_stop()
    coord.join(threads)

Но у меня есть ошибка:

InvalidArgumentError (see above for traceback): Field 0 in record 0 is not a valid float: Sepal.Length
 [[Node: DecodeCSV_5 = DecodeCSV[OUT_TYPE=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_STRING], field_delim=",", na_value="", use_quote_delim=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](ReaderReadV2_3:1, DecodeCSV_5/record_defaults_0, DecodeCSV_5/record_defaults_0, DecodeCSV_5/record_defaults_0, DecodeCSV_5/record_defaults_0, DecodeCSV_5/record_defaults_4)]]

Данные представляют собой набор данных радужной оболочки.Это выглядит так:

iris.head()
   Sepal.Length  Sepal.Width  Petal.Length  Petal.Width Species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa
iris.dtypes
Sepal.Length    float64
Sepal.Width     float64
Petal.Length    float64
Petal.Width     float64
Species          object

Вы можете видеть, что в информации об ошибке указано, что это недопустимое число с плавающей точкой.Но все данные - float64.

Я даже не уверен, с чего начать.

1 Ответ

0 голосов
/ 18 октября 2018

Путаница заключается в том, что iris.head() предоставляет первые 5 строк заголовка df ПОСЛЕ .Принимая во внимание, что в тензорном потоке, как вы можете видеть в строке ошибки: Field 0 in record 0 is not a valid float: Sepal.Length, заголовок не обрабатывается автоматически и, таким образом, Sepal.Length , строка, вызывает проблему.

Вы можетелибо используйте pandas.read_csv, чтобы сначала импортировать файл, затем преобразовать его в любой тензор потока, либо используйте некоторые параметры, например:

reader = tf.TextLineReader(skip_header_line=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...