为什么把定义输入和输出放在开始讲,是因为在开始编程前,脑海中要明确我们构造的这张网络的输入和输出是什么。 至于中间采用什么网络,采用什么学习算法,都是为了输入和输出服务的。
对tensorflow而言,输入和输出都为一个张量,可以简单理解为一个多维数组。
以minist数字识别为例,一张图片的像素为28*28,即输入为768个节点,输出结果为0-9的10个数字,即输出有10个节点。单条条输入数据的张量为[768],输出数据的张量为[10]
在实际应用中,学习数据和结果数据往往是大量的而且没有具体个数限制的,为此tensorflow提供placeholder机制来提供输入数据,具体写法如下:
定义输入张量:
x = tf.placeholder(tf.float32,shape=(None,784))
定义输出张量:
y_ = tf.placeholder(tf.float32,shape=(None,10))
其中tf.placeholder为关键字,第一个参数为张量里的数据类型,shape为指定张量的维度,第一个维度固定用None来指定输入和输出数据的条数,None后面的维度和单条输入和输出数据的维度一致。