对于带有基数为10的int(),ValueError无效的文字:'2.62962963'

时间:2016-10-19 07:21:47

标签: python tensorflow

基本上,我试图从CSV中获取数据来训练模型。这两个CSV都有超过1000行数据。

我的main.py

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
import numpy as np

# Data sets
PRES_TRAINING = "file0.csv"
PRES_TEST = "file1.csv"

# Load datasets.
training_set = tf.contrib.learn.datasets.base.load_csv_with_header(filename=PRES_TRAINING,target_dtype=np.int,features_dtype=np.float32)
test_set = tf.contrib.learn.datasets.base.load_csv_with_header(filename=PRES_TEST,target_dtype=np.int,features_dtype=np.float32)

# Specify that all features have real-value data
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=14)]

# Build 3 layer DNN with 10, 20, 10 units respectively.
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
                                        hidden_units=[10, 20, 10],
                                        n_classes=2,
                                        model_dir="/tmp/tr_model")

# Fit model.
classifier.fit(x=training_set.data,
           y=training_set.target,
           steps=2000)

# Evaluate accuracy.
accuracy_score = classifier.evaluate(x=test_set.data,y=test_set.target)["accuracy"]
print('Accuracy: {0:f}'.format(accuracy_score))

错误:

Traceback (most recent call last):
File "main.py", line 18, in <module>
  features_dtype=np.float32)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/datasets/base.py", line 51, in load_csv_with_header
  target[i] = np.asarray(row.pop(target_column), dtype=target_dtype)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 482, in asarray
  return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for long() with base 10: '2.62962963'

我知道这主要是由Tensorflow的features_dtype中的一个参数load_csv_with_header()引起的。更多内容可以阅读here

在正常情况下,我会做int(float('2.62962963'))或其他事情。但我正在读取一个大型CSV文件,这只是单个数据之一。 features_dtype仅采用数据类型,即np.int。我可以用其他什么方法来解决这个问题?

0 个答案:

没有答案