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數組在官方文檔。
- 把圖像分解為四個“角落”,然後它重新縫合到一起。
- 將圖像轉換成灰度。一種方法將隻需要一個顏色通道和顯示。另一種方法是把三個通道的平均值作為灰色的顏色。