TensorFlow™在砖
占位符
到目前为止,我们已经使用变量
管理我们的数据,但有一个更基本的结构占位符
。一个占位符
仅仅是一个变量,我们将数据分配给在稍后的日期。它允许我们创建我们的操作和构建计算图,不需要数据。在TensorFlow
术语,然后我们饲料通过这些占位符数据图。
进口tensorflow作为特遣部队x = tf.placeholder (“浮动”,没有一个)y = x *2与tf.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 (“浮动”,没有一个)
现在,当我们定义的值x
在feed_dict
我们可以有任意数量的值。代码应该仍然工作,给出同样的答案,但现在也将使用任意数量的值feed_dict
。
占位符也可以有多个维度,允许存储阵列。在以下的示例中,我们创建一个3×2矩阵,并存储一些数字。然后我们使用相同的操作和以前做element-wise翻倍的数字。
进口tensorflow作为特遣部队x = tf.placeholder (“浮动”,(没有一个,3])y = x *2与tf.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 ()
- 看一下其他功能TensorFlow数组在官方文档。
- 把图像分解为四个“角落”,然后它重新缝合到一起。
- 将图像转换成灰度。一种方法将只需要一个颜色通道和显示。另一种方法是把三个通道的平均值作为灰色的颜色。