tf 矩阵行和列交换_tf矩阵基础
一、Placeholder
Tensorflow的設計理念稱之為計算流圖,在編寫程序時,首先構筑整個系統(tǒng)的graph,代碼并不會直接生效,這一點和python的其他數(shù)值計算庫(如Numpy等)不同,graph為靜態(tài)的,類似于docker中的鏡像。然后,在實際的運行時,啟動一個session,程序才會真正的運行。這樣做的好處就是:避免反復地切換底層程序實際運行的上下文,tensorflow幫你優(yōu)化整個系統(tǒng)的代碼。我們知道,很多python程序的底層為C語言或者其他語言,執(zhí)行一行腳本,就要切換一次,是有成本的,tensorflow通過計算流圖的方式,幫你優(yōu)化整個session需要執(zhí)行的代碼,還是很有優(yōu)勢的。
所以placeholder()函數(shù)是在神經(jīng)網(wǎng)絡構建graph的時候在模型中的占位,此時并沒有把要輸入的數(shù)據(jù)傳入模型,它只會分配必要的內存。等建立session,在會話中,運行模型的時候通過feed_dict()函數(shù)向占位符喂入數(shù)據(jù)。 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={data1:6,data2:2})) #feed_dict賦值/參數(shù)輸出:8.0二、矩陣運算矩陣相乘分為兩種:1是正常的矩陣相乘,要求第一個矩陣的列和第二個矩陣的行相等。2是兩個矩陣對應位置的數(shù)相乘,類似于加法,只是將+變成了* 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對應位置的數(shù)相乘datamat=tf.matmul(data1,data2)#矩陣1*2print(sess.run([dataAdd,datamul,datamat]))輸出:
三、初始化矩陣 mat0=tf.zeros([2,3])#創(chuàng)建值全為0的兩行三列矩陣mat1 = tf.ones([2,3]) #創(chuàng)建值全為1的兩行三列矩陣 mat2 = tf.fill([2,3],8) #創(chuàng)建值全為8的兩行三列矩陣mat3 = tf.zeros_like(mat1) #將矩陣mat1的值全部變成0mat4 = tf.random_uniform([2,3],-2,1) #創(chuàng)建值是-2到1之間的隨機數(shù)的兩行三列矩陣
來源:博客園
作者:Bambo0
鏈接:https://www.cnblogs.com/cxxBoo/p/11443737.html
總結
以上是生活随笔為你收集整理的tf 矩阵行和列交换_tf矩阵基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux服务器重启导致数据丢失问题解决
- 下一篇: 民族学类毕业论文文献有哪些?