使用Tensorflow处理UCI数据集

我正在尝试使用Tensorflow识别UCI数据集中的手写数字(https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits)。数据集中每行是一个8*8像素矩阵的扁平化表示,最后一个属性是类别代码0-9。然而,我之前学习的教程是关于MNIST数据的,这与之大不相同。MNIST数据是一个28*28的矩阵,值范围是0-255。所以,代码是这样的:

from tensorflow.examples.tutorials.mnist import input_datamnist = 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模型


回答:

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

import tensorflow as tfimport numpy as nptrainingDataSet_ = np.loadtxt('/data/optdigits.tra', delimiter=',');trainingDataSet = tf.convert_to_tensor(trainingDataSet_, np.int32)# 存储每个样本的标签y = trainingDataSet[:, 64]# 从特征中移除标签x = trainingDataSet[:, :64]

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注