跳轉到主要內容

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. 將圖像轉換成灰度。一種方法將隻需要一個顏色通道和顯示。另一種方法是把三個通道的平均值作為灰色的顏色。
Baidu
map