一、placeholder
tensorflow的設計理念稱之為計算流圖,在編寫程式時,首先構築整個系統的graph,**並不會直接生效,這一點和python的其他數值計算庫(如numpy等)不同,graph為靜態的,類似於docker中的映象。然後,在實際的執行時,啟動乙個session,程式才會真正的執行。這樣做的好處就是:避免反覆地切換底層程式實際執行的上下文,tensorflow幫你優化整個系統的**。我們知道,很多python程式的底層為c語言或者其他語言,執行一行指令碼,就要切換一次,是有成本的,tensorflow通過計算流圖的方式,幫你優化整個session需要執行的**,還是很有優勢的。
所以placeholder()函式是在神經網路構建graph的時候在模型中的佔位,此時並沒有把要輸入的資料傳入模型,它只會分配必要的記憶體。等建立session,在會話中,執行模型的時候通過feed_dict()函式向佔位符餵入資料。 importtensorflowastfdata1=tf.placeholder(tf.float32)#placeholder佔位符data2 = tf.placeholder(tf.float32)dataadd = tf.add(data1,data2)with tf.session() as sess: print(sess.run(dataadd,feed_dict=)) #feed_dict賦值/引數輸出:8.0二、矩陣運算矩陣相乘分為兩種:1是正常的矩陣相乘,要求第乙個矩陣的列和第二個矩陣的行相等。2是兩個矩陣對應位置的數相乘,類似於加法,只是將+變成了* importtensorflowastfdata1=tf.constant([[1,2]])data2=tf.constant([[2],[2]])withtf.session()assess:dataadd=tf.add(data1,data2)datamul=tf.multiply(data1,data2)#矩陣1/2對應位置的數相乘datamat=tf.matmul(data1,data2)#矩陣1*2print(sess.run([dataadd,datamul,datamat]))輸出:
三、初始化矩陣 mat0=tf.zeros([2,3])#建立值全為0的兩行三列矩陣mat1 = tf.ones([2,3]) #建立值全為1的兩行三列矩陣 mat2 = tf.fill([2,3],8) #建立值全為8的兩行三列矩陣mat3 = tf.zeros_like(mat1) #將矩陣mat1的值全部變成0mat4 = tf.random_uniform([2,3],-2,1) #建立值是-2到1之間的隨機數的兩行三列矩陣
tf中的矩陣運算
import tensorflow as tf from numpy import newaxis from tensorflow.python.ops import math ops tf中的矩陣運算 點乘 a tf.constant 1,2 3,4 b tf.constant 1,1 2,2 s...
np和tf中建立隨機矩陣
建立乙個2層3行4列的矩陣 np.random.randn 2,3,4 正態 np.random.randint 1,100,10 隨機10個數,範圍從1到100,構成向量 np.random.randint 1,13,2,3 隨機2行3列的矩陣,值從1到13隨機 np.random.randint...
矩陣基礎 1 行優先和列優先的問題
原 2016年08月18日 18 37 00 林微 摘要本文主要 的是 行優先 原則和 列優先 原則的問題。1.背景 首先了解 行優先 和 列優先 的知識,這兩種方式在數學上的直觀描述如下,給定如下矩陣 根據行優先的原則,其排序方式為 根據列優先的原則,其排序方式為 2.計算機領域的應用 行列優先原...