Ошибка загрузки данных из CSV в модель тензорного потока с использованием tf.data.experimental.make_csv_dataset () - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь ввести данные из CSV в объект TensorFlow с помощью функции tf.data.experimental.make_csv_dataset. Я получаю следующую ошибку:

raise ValueError("No files match %s." % file_pattern)
ValueError: No files match    Subject    BDV  Classification
0     6040 -18.26               0
1     6160 -20.95               0
2    6140D -17.46               0
3     5973 -16.92               1
4     5986 -16.52               1
5     6040 -16.43               1
6    5970C -13.79               2
7     6041 -12.25               2
8     5969 -12.81               2
9     6030 -13.85               2
10   6041B -15.07               2
11    6082 -12.49               2
12   6082C -13.89               2
13    6088 -13.49               2
14    6110 -14.17               2
15    6041 -12.12               2
16    6067 -13.61               2
17    6077 -15.21               2
18    6089 -13.46               2
19   61052 -13.87               2
20   6092A -15.64               2
21    6089 -14.07               2
22    6061 -13.74               2
23    6073 -13.66               2
24    6089 -14.60               2
25    6050 -13.28               2
26    6059 -14.10               2
27   6073A -13.47               2
28    6081 -13.77               2
29   6118E -12.24               2
30   6121A -13.74               2
31   5977B -14.50               2
32   5935A -13.81               2
33    6010 -13.30               2
34   6009B -13.32               2
35   6009A -13.02               2
36   5992A -13.58               2
37   5948B -14.68               2.

Я следую структуре, аналогичной примеру классификатора радужной оболочки тензорного потока, который они приводят на веб-сайте, за исключением того, что CSV хранится локально на моем компьютере.

Вот мой код:

import matplotlib.pyplot as plt
import tensorflow as tf
import pandas as pd
import requests

#Print version of tensorflow on current machine || should be 2.0
print("TensorFlow version: {}".format(tf.__version__))
print("Eager execution: {}".format(tf.executing_eagerly()))

train_dataset_fp = pd.read_csv('bdv.csv')

print("Local copy of the dataset file: {}".format(train_dataset_fp))

column_names = ['Subject', 'BDV', 'Classification']

feature_names = column_names[:-1]
label_name = column_names[-1]
# prints the features of the dataset. Label 0: Iris setosa; Label 1: versicolor; Label 2: virginica
print("Features: {}".format(feature_names))
print("Label: {}".format(label_name))

class_names = ['Class1', 'Class2', 'Class3']

batch_size = 32

train_dataset = tf.data.experimental.make_csv_dataset(train_dataset_fp,
                                                      batch_size,
                                                      column_names=column_names,
                                                      label_name=label_name,
                                                      num_epochs=1)


features, labels = next(iter(train_dataset))
print(features)

Любая помощь будет принята с благодарностью, спасибо.

1 Ответ

0 голосов
/ 18 июня 2020

Вам нужно имя файла 'bdv.csv' в качестве первого аргумента в make_csv_dataset()

train_dataset = tf.data.experimental.make_csv_dataset( 'bdv.csv', ... )

или список имен файлов

train_dataset = tf.data.experimental.make_csv_dataset( ['bdv.csv'], ... )

или шаблон для glob - одиночный '*.csv' или list ['folder1/*.csv', 'folder2/*.csv', '2020*.csv']


Do c: make_csv_dataset


BTW: Ошибка показывает, что вы используете CSV с несколькими пробелы как разделитель. В read_csv() вы можете использовать регулярное выражение sep='\s+', чтобы прочитать его правильно, но make_csv_dataset может использовать только один символ field_delim=' ', и это может затруднить его чтение. Возможно, вам придется использовать read_csv() и to_csv(), чтобы исправить этот файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...