tensorflow中的數值運算注意事項

2021-10-07 05:38:13 字數 993 閱讀 9681

tensorflow中張量,變數,常量進行數值運算都可用符號「+ - * /」,為方便起見,tensorflow中提供了方法。

如:

加法

add = tf.add(a, b)

減法

sub = tf.subtract(a, b)

乘法

mul = tf.multiply(a, b)

除法

div = tf.divide(a, b)

包括矩陣、向量的運算

以上是嚴格按照數學的計算形式,進行計算。

在tensorflow中定義的一維向量(如tf.get_variable(「b」,shape=[3],initializer=tf.constant_initializer(0.1)),結果為:[0.1 0.1 0.1])是行向量形狀shape(n,),這裡的n代表了行向量中有n個資料,並不是說有n行。

同樣是行向量,在數學概念中是一維的,但是在tensorflow中形狀shape(1,n),代表二維資料。

如在tensorflow中應該這樣定義tf.get_variable(「b」,shape=[1,3],initializer=tf.constant_initializer([0.1,0.1,0.1])),結果為:[[0.1 0.1 0.1]],形狀shape(1,3)

以上兩種定義形式的不同,導致在數**算中的截然不同,同樣也會導致在tensorflow執行時出錯,原本輸入引數是要一維的,但是我們定義了乙個二維的行向量,導致程式出錯。

tensorflow檢視權重引數值

每個框架都有檢視權重引數的機制,在tenstensorflow中 檢視的例子如下 import tensorflow as tf import numpy as np reader tf.train.newcheckpointreader model 100 all variables reader...

Tensorflow中的Lazy load問題

用tensorflow訓練或者inference模型的時候,有時候會遇到執行越來越慢,最終記憶體被佔滿,導致電腦宕機的問題,我們稱之為記憶體溢位。出現這種問題很可能是因為在乙個session中,graph迴圈建立重複的節點所導致的lazy load問題。舉個例子,用tensorflow迴圈做多次加法...

tensorflow中的函式

執行當前tensor的run 操作 a tf.variable tf.ones 10 with tf.session as sess tf.global variables initializer run b sess.run a 1 b a eval 2 print b 中的 1 2 行的功能一樣...