代码之家  ›  专栏  ›  技术社区  ›  tanmayghosh2507

利用UCI数据集处理Tensorflow数据

  •  0
  • tanmayghosh2507  · 技术社区  · 6 年前

    我正在尝试使用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”标签作为最后一个属性?

    目前我正在考虑这样做:

    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 回复  |  直到 6 年前
        1
  •  1
  •   Lebannen    6 年前

    我也是新来的,也许这不是一个好方法。 我使用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]