Python 3.x 用矩阵作为卷积神经网络的输入

Python 3.x 用矩阵作为卷积神经网络的输入,python-3.x,tensorflow,machine-learning,Python 3.x,Tensorflow,Machine Learning,我正在尝试使用卷积神经网络来识别二进制矩阵中的模式,并将它们分为两类。目前,我有一堆15x15的csv格式矩阵 为了弄清楚卷积网是如何工作的,我一直在关注。在本文中,他使用conv网络对MNIST数据集进行分类。他用于指定输入的代码如下所示: from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot = True) x =

我正在尝试使用卷积神经网络来识别二进制矩阵中的模式,并将它们分为两类。目前,我有一堆15x15的csv格式矩阵

为了弄清楚卷积网是如何工作的,我一直在关注。在本文中,他使用conv网络对MNIST数据集进行分类。他用于指定输入的代码如下所示:

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')
我的问题是如何设置一个类似“input_data”的文件,conv net可以从中读取矩阵和标签?我可以将所有培训数据包含在一个文件中,还是需要将其拆分为培训/测试文件

我已经用下面的格式设置了一个excel文件,但不确定它是否会像MNIST那样工作

输入数据示例文件:

我最喜欢的教程来自aymericdamien,下面是jupyter中卷积教程的链接(在github中查找所有教程的几个目录)

您会注意到他们的输入与您发布的内容相同:

X = tf.placeholder(tf.float32, [None, num_input])
Y = tf.placeholder(tf.float32, [None, num_classes])
conv_net()
函数中,他们要做的第一件事就是将其重塑为图像:

x = tf.reshape(x, shape=[-1, 28, 28, 1])
形状参数的理解如下:

  • -1
    :可变批量大小
  • 28
    :图像高度(mnist为28x28灰度图像)
  • 28
    :图像的宽度
  • 1
    :彩色通道,灰度图像有1个彩色通道,RGB图像通常有3个
尝试使用numpy重塑图像并自己显示,以检查图像是否正确:

import scipy.misc as misc
import numpy as np
img = np.reshape(flat_image, (28,28,1))
misc.imshow(img)
就训练和测试过程而言,tensorflow并不关心您的结构。我通常会分离这些文件,以确保您不会意外地通过培训过程中的测试集。您最终需要调用
sess。在培训和测试数据集上分别运行
。我认为我链接到的教程提供了一个很好的例子来说明这个过程,所以如果你有更具体的问题,我会把它们留给以后的文章