Skip to main content
 首页 » 编程设计

python之使用 iris 示例加载 csv 时 tensorflow 的值错误

2024年12月31日27yxwkf

当尝试在 Jupyter 上运行一个简单的获取数据序列时,为了让系统识别鸢尾花类型,错误是 teough fisher 的表,错误:

  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 不起作用,如错误所示? 提前致谢。

请您参考如下方法:

答案就在那里,您无法将小数转换为整数。尝试改用 numpy 数据类型 float32。

target_dtype=np.float32 

更新

tensorflow.base 有几个 load_csv..,你可以试试 base.load_csv_without_header 或者 base.load_csv >.

具体的iris tensorflow示例应用到自己的数据集上,here第一列标题存储导致以下错误的示例数:

 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 用于存储第一列的样本数。