tensorflow 有哪些模組

2021-09-13 23:10:17 字數 2082 閱讀 7193

原文:

作為深度學習的最熱門工具之一,tensorflow可以為我們的模型搭建以及資料運算帶來極大的便利。作為一門工具,必不可少地是要對它有乙個全域性的了解。私以為,如果對它的整體的模組架構有乙個了解的話,再結合自己的興趣與需要,能夠節約更多的時間去思考自己的網路結構設計,完善更多細節。

登陸到tensorflow官網www.tensorflow.org,沒有梯子的同學可以使用如下**:devdocs.io,這個**目前支援大部分的api介面的離線閱讀,你只需要enable你需要的語言,然後install即可,絕對的查閱**神器。從官網可以查閱到tensorflow的相關api。

從上圖可以看到tensorflow中封裝了許多的函式,其中主要介紹我們比較常用的一些模組:

tf ——tf模組下的函式用於完成一些常用的運算操作,比如說tf.abs(計算絕對值),tf.add(逐元素的相加),tf.concat(tensor的拼接)等等。裡面的操作大部分的nu'mpy也能夠實現,只是這裡的操作相比於numpy都是針對tensor的。以及一些資料結構的定義,如tf.float32,tf.int64等等。該模組下一共有480左右的函式,感興趣的可以看看。

tf.data——實現對資料集的操作,可以用來製作供tensorflow讀取的資料集,其資料型別為tensor,並可以輸出相應的tfrecord檔案。

tf.distributions——實現統計學中的各種分布。該模組下的各函式用於實現統計學的各個分布,如伯努利、均勻分布、高斯分布等等。

tf.estimator——實現對模型的訓練和評估。該模組下包含有tensorflow封裝的多種分類器。

tf.gfile——對檔案的操作。該模組下的函式可以實現檔案i/o的操作以及拷貝、重新命名等等。

tf.image——實現對影象的操作。該模組下的相關函式包含影象處理的功能,類似於opencv,有著影象亮度、飽和度、反相、裁剪、resize、影象格式轉換(rgb to hsv,yuv,yiq,gray)旋轉、sobel邊緣檢測等一系列功能,相當於乙個小型的opencv影象處理包了。

tf.initializers——實現對權值等變數的初始化。該模組下有許多個初始化的類,用於對網路中的權值引數等進行初始化。

tf.keras——為tensorflow呼叫keras工具的乙個python api,是乙個比較大的模組,裡面包含了網路的各種操作。

tf.layer——實現層與層之間的操作。該模組下是網路結構中的層與層之間的計算操作的實現,包含池化、卷積、反卷積、全連線、dropout、batch normalization等等功能。其中包含的功能與後面要介紹的tf.nn下的函式類似,不過貌似後者用得更多一點。

tf.losses——包含一些常用loss的使用。如sigmoid_cross_entropy,softmax_cross_entropy,hinge_loss,也可以通過add_loss來新增自己定義的loss函式。

tf.nn——完成層與層之間的運算操作。包含tf.layer中的大部分功能,如池化、卷積、bn、dropout、全連線,此外有多種啟用函式的實現,如relu、leaky relu、 sigmoid等等。相比tf.layer,tf.nn下的函式貌似更常用一點。

tf.summary——用於記錄訓練過程中的引數。當我們訓練乙個模型的時候,往往需要了解它的引數訓練過程,以及相應的loss走向,精度等等。而tf.summary這個模組可以將申明了tensor變數的值進行記錄彙總。通過儲存模型的方法,在訓練完成後可以通過tensorboard檢視模型的相應引數。是乙個在做研究時比較常用的模組。

tf.train——用於對網路的訓練。該模組下包含多個優化演算法,如sgd,adagrad等等,用於整個模型的訓練部分的優化過程。也是比較常用的乙個模組。

tf.contrib——這是tensorflow的擴充套件模組,該模組下有許多tensorflow官方或者是民間大牛在維護的相應函式api,是乙個比較龐大的資源庫,裡面有非常使用的函式,比如tensorflow的簡化版slim,用slim寫網路結構就非常方便。還有其他的一些,感興趣的可以自行查閱。

以上就是我們在使用tensorflow時比較常用的一些模組了。其實看了這麼多,對於需要用哪些大家心裡也比較清楚了。不過tensorflow只是乙個工具,關鍵還是在於演算法的架構,理論才是重中之重。希望大家在平時也不要忘了對文獻的閱讀。

linux有哪些模組

linux有5大模組 1 程序排程模組,主要是對程序用的處理機進行管理和控制 2 程序間通訊模組,主要用於控制不同程序間在使用者空間的同步 資料共享和交換 3 記憶體管理模組,採用先進的虛擬儲存機制,實現對多程序的儲存管理 4 檔案系統模組等。本教程操作環境 linux5.9.8系統 dell g3...

spring有哪些主要模組?

spring框架的七大模組 1.spring core 框架的最基礎部分,提供 ioc 容器,對 bean 進行管理。2.spring context 基於 bean,提供上下文資訊,擴充套件出jndi ejb 電子郵件 國際化 校驗和排程等功能。3 spring dao 提供了jdbc的抽象層,它...

光模組引數有哪些?

在現代資訊網路彙總,光纖通訊佔據著主導地位,隨著網路的覆蓋越來越廣泛和通訊容量的不斷增加,通訊鏈路的提公升也是必然的發展,光模組在光通訊網路中實現著光電訊號的轉換,是光纖通訊的主要器件之一。但是,我們平時都說光模組,那麼,光模組的引數有哪些?你知道嗎?在本文中,飛速 fs 將給大家做詳細的介紹。光模...