Ошибка значения с tenorflow при загрузке csv с примером ириса - PullRequest
0 голосов
/ 24 октября 2018

При попытке запустить простую последовательность получения данных на Jupyter, чтобы система распознала цветок радужной оболочки в таблице Фишера, отображается ошибка:

  ValueError                                Traceback (most recent call last)
 <ipython-input-12-269564554b65> in <module>
 10 training_set = base.load_csv_with_header(filename=IRIS_TRAINING,
 11                                      features_dtype=np.float32,
 ---> 12                                      target_dtype=np.float32)
 13 test_set = base.load_csv_with_header(filename=IRIS_TEST,
 14                                  features_dtype=np.float32,

 /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py in load_csv_with_header(filename, target_dtype, features_dtype, target_column)
 46     data_file = csv.reader(csv_file)
 47     header = next(data_file)
 ---> 48     n_samples = int(header[0])
 49     n_features = int(header[1])
 50     data = np.zeros((n_samples, n_features), dtype=features_dtype)

ValueError: invalid literal for int() with base 10: '5.1'

.Ошибка указывает на то, что она не может использовать функцию int (), несмотря на то, что в коде вообще нет int.Вот код:

import tensorflow as tf
import numpy as np
from tensorflow.contrib.learn.python.learn.datasets import base

# Data files
IRIS_TRAINING = "iris_training.csv"
IRIS_TEST = "iris_test.csv"

# Load datasets.
training_set = base.load_csv_with_header(filename=IRIS_TRAINING,
                                     features_dtype=np.float32,
                                     target_dtype=np.float32)
test_set = base.load_csv_with_header(filename=IRIS_TEST,
                                 features_dtype=np.float32,
                                 target_dtype=np.float32)

print(training_set.data)

print(training_set.target)

Почему target_dytype=np.int не работает, как показывает ошибка?Заранее спасибо.

1 Ответ

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

Ответ тут же, вы не можете преобразовать десятичное число в целое число.Попробуйте вместо этого использовать тип данных numpy float32.

target_dtype=np.float32

Обновление

tensorflow.base имеет несколько load_csv.., вы можете попробовать либо base.load_csv_without_header, либоbase.load_csv.

Конкретный пример iris тензорного потока применяется к их собственному набору данных, здесь , где в заголовке первого столбца хранится количество примеров, что привело к ошибке ниже:

 46     data_file = csv.reader(csv_file)
 47     header = next(data_file)
 ---> 48     n_samples = int(header[0])
 49     n_features = int(header[1])

header возвращает первую строку файла csv, а n_samples используется для хранения количества выборок из первого столбца.

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