使用UCI数据集进行Tensorflow数据处理

时间:2018-03-04 07:52:04

标签: python tensorflow machine-learning neural-network mnist

我正在尝试使用Tensorflow识别UCI数据集(https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits)的手写数字。其中每一行是图像像素的扁平8 * 8矩阵,最后一个属性是类代码0-9。 然而,我所遵循的教程是关于MNIST数据的,这是完全不同的。它有一个28 * 28矩阵,值为0-255。所以,它是这样的:

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data", one_hot=True)
x = tf.placeholder('float', [None, 784])
y = tf.placeholder('float')

由于我对Tensorflow很新,我无法为UCI数据准备神经网络模型。我只想知道如何进行的方向。我有两个主要问题。

  1. 这是导入数据的正确方法吗?
  2. 如何获得' y'标签作为最后一个属性?
  3. 目前我正在考虑做这样的事情:

    filename_queue = tf.train.string_input_producer(["optdigits.tra"])
    reader = tf.TextLineReader()
    _, serialized_example = reader.read(filename_queue)
    image,label = decode(serialized_example)
    x = tf.placeholder('float', [None, 64])
    y = tf.placeholder('float')
    

    基本上,我想准备一个包含64个节点和'y'标签的输入图层,其输出用于训练NN model

1 个答案:

答案 0 :(得分:1)

我也是新人,可能这不是一个好方法。 我使用numpy导入数据,然后将其转换为tensorflow格式。

import tensorflow as tf
import numpy as np

trainingDataSet_ = np.loadtxt('/data/optdigits.tra', delimiter=',');
trainingDataSet = tf.convert_to_tensor(trainingDataSet_, np.int32)

# store labels of each sample
y = trainingDataSet[:, 64]

# remove lables from features
x = trainingDataSet[:, :64]