跳转到主要内容

TensorFlow™在砖

占位符

到目前为止,我们已经使用变量管理我们的数据,但有一个更基本的结构占位符。一个占位符仅仅是一个变量,我们将数据分配给在稍后的日期。它允许我们创建我们的操作和构建计算图,不需要数据。在TensorFlow术语,然后我们饲料通过这些占位符数据图。

进口tensorflow作为特遣部队x = tf.placeholder (“浮动”,没有一个)y = x *2tf.Session ()作为会话:结果= session.run (y, feed_dict = {x:(1,2,3]})打印(结果)

这个例子有点不同于之前的工作,让我们休息一下。

首先,我们进口tensorflow是正常的。然后我们创建一个占位符被称为x,即我们将地方在内存中存储值。

然后,我们创建一个张量,乘以的操作x由2。请注意,我们还没有定义任何初始值x然而。

我们现在有一个操作(y)定义,现在可以运行在一个会话。我们创建一个会话对象,然后运行的y变量。注意,这意味着,如果我们定义了一个更大的图的操作,我们可以只运行一个小的图。这个子图评价实际上是有点TensorFlow卖点,和一个不存在的许多其他库,做类似的事情。

运行y需要知识的价值x。我们定义这些内部feed_dict参数运行。我们国家的价值观x(1、2、3)。我们运行y,给我们的结果(2、4、6)

占位符不需要静态大小。让我们更新程序允许x承担任何长度。变化的定义x是:

x = tf.placeholder (“浮动”,没有一个)

现在,当我们定义的值xfeed_dict我们可以有任意数量的值。代码应该仍然工作,给出同样的答案,但现在也将使用任意数量的值feed_dict

占位符也可以有多个维度,允许存储阵列。在以下的示例中,我们创建一个3×2矩阵,并存储一些数字。然后我们使用相同的操作和以前做element-wise翻倍的数字。

进口tensorflow作为特遣部队x = tf.placeholder (“浮动”,(没有一个,3])y = x *2tf.Session ()作为会话:x_data = [[1,2,3),(4,5,6),)结果= session.run (y, feed_dict = {x: x_data})打印(结果)

第一个维度的占位符没有一个,这意味着我们可以有任意数量的行。第二个维度是固定在3,这意味着需要有每一行三列的数据。

我们可以扩展到任意数量的没有一个维度。在这个例子中,我们从上节课加载图片,然后创建一个占位符,它存储一片的形象。片是一个二维的图像,但每个“像素”有三个组件(红、绿、蓝)。因此,我们需要没有一个第一两个维度,但需要3(或没有一个将为最后一维工作)。然后我们使用TensorFlow的方法以亚节图像的操作。

进口tensorflow作为特遣部队进口matplotlib.image作为mpimg进口matplotlib.pyplot作为plt进口操作系统#第一,再次加载图像dir_path = os.path.dirname (os.path.realpath (__file__))文件名= dir_path +“/ MarshOrchid.jpg”raw_image_data = mpimg.imread(文件名)形象= tf.placeholder (“uint8”,(没有一个,没有一个,3])=特遣部队。(图片,1000年,0,0]、[3000年,1,1])tf.Session ()作为会话:结果= session.run (feed_dict ={形象:raw_image_data})打印(result.shape)
                   plt.imshow(结果)plt.show ()

  1. 看一下其他功能TensorFlow数组在官方文档
  2. 把图像分解为四个“角落”,然后它重新缝合到一起。
  3. 将图像转换成灰度。一种方法将只需要一个颜色通道和显示。另一种方法是把三个通道的平均值作为灰色的颜色。