Tensorflow中常用函式記載

2021-08-08 02:51:19 字數 2958 閱讀 6021

最近在學習tensorflow,函式眾多,因此將一些常用的用於構建神經網路的函式記載如下。

1、匯入tensorflow庫:

import tensorflow as tf;        ##匯入tensorflow庫
2、與計算圖相關:

* tf.get_default_graph;  ##獲取當前預設的計算圖

* tensor a; a.graph; ##獲取當前張量所屬的計算圖

* a = tf.graph(); ##生成新的計算圖

* tf.all_variables(); ##獲得當前計算圖中的所有的變數

* tf.trainable_variables(); ##獲得當前所有需要優化的引數

3、指定執行的裝置

g = tf.graph();

with d.device('/gpu:0'):

....

##使用 tf.graph.device函式指定執行的計算裝置

4、集合和資源

tf.add_to_collection函式;     ##將資源加入到乙個或者多個幾個集合中

tf.get_collection函式; ##獲取乙個集合裡的所有資源

5、張量、變數和常量

get_shape函式;  ##獲取張量的維度資訊

tf.constant(); ##建立常量,引數為變數的資料以及名字

tf.variable(); ##建立變數,用於儲存引數

-------------

##常用的常量生成函式

tf.zeros(); ##全0

tf.ones(); ##全1

tf.fill(); ##建立全部為給定陣列的陣列

-------------

##變數初始化

w.initializer; #按照變數定義的方式初始化變數

tf.initialize_all_variables; ##一次性初始化所有的變數

-------------

6、會話session

-------

sess = tf.session();

sess.run(...);

sess.close(); #會話使用完之後必須關閉,釋放資源

-------

with tf.session() as sess:

sess.run(...);

注意:張量本身不會儲存張量的具體的數值,只是儲存的運算,本質上運算結果的引用,要得到執行的結果必須通過圖sessiond的run函式或者是tf.tensor.eval()函式

##獲取張量的資料值

**使用tf.tensor.eval()函式的前提: 設定了缺省會話**

tensor a;

sess = tf.session(); ##指定sess會話為預設的會話,系統不會自動設定自動會話的

with sess.as_default();

print(a.eval()); ##計算張量a的具體資料值

##設定缺省會話的另一種辦法:

sess = tf.interactivesession(); ##建立會話,並設定其為缺省會話

7、矩陣的運算

tf.matmul(x,w);     ##兩個矩陣相乘

x*w; ##兩個矩陣數乘,注意數乘和矩陣相乘的區別

8、隨機數生成

tf.random_normal();    ##建立正太分布初始化的變數

tf.truncated_normal(); ##建立正太分布初始化的變數

tf.random_uniform(); ##建立平均分布初始化的變數

tf.random_gamma(); ##建立gamma分布初始化的變數

9、placeholder機制

該機制相當於定義了乙個位置,這個位置中的資料在程式執行中再指定。

tf.placeholder();
10、反向傳播相關函式

在反向傳播中主要用到了優化器,以及在定義損失函式會用到一些函式

常用的三種優化器:

tf.train

.gradientdescentoptimizer() ##梯度下降優化器

tf.train

.adamoptimizer();

tf.train

.momentumoptimizer();

11、啟用函式

tf.nn.relu; ##relu啟用函式

tf.sigmoid; ##sigmoid啟用函式

tf.tanh; ##tanh啟用函式

---------------------

##定義損失函式常用的函式

tf.clip_by_value(); ##將張量的數值限制在一定的範圍內

tf.log(); ##對張量的每一維資料求log

tf.reduce_mean(); ##求乙個張量的均值

tf.square(); ##求張量的平方

tf.nn.softmax_cross_entropy_with_logits(); ##定義交叉熵損失函式

tf.greater(); ##輸入兩個張量比較每一維元素的大小,返回比較結果

tf.select(); ##輸入三個引數,第乙個為判別條件,根據判別條件的真或假,選擇第二或者第三個引數返回;類似於c++中的三元運算子

---------------------

tensorflow中常用的函式

正文 一,tensorflow中有一類在tensor的某一維度上求值的函式。如 求最大值 tf.reduce max input tensor,reduction indices none,keep dims false,name none 求平均值tf.reduce mean input tens...

tensorflow中常用的計算操作

從tensor的維度上面計算元素之和 tf.reduce sum input tensor,輸入 axis none,表示在哪個維度進行sum操作。keepdims none,表示是否保留原始資料的維度,false相當於執行完後原始資料就會少乙個維度。name none,reduction indi...

tensorflow常用函式

1.variable 主要在於一些可訓練變數 trainable variables 比如模型的權重 weights 或者偏執值 bias 1 宣告時,必須提供初始值 2 在真實訓練時,其值是會改變的,自然事先需要指定初始值 weights tf.variable tf.random normal ...