自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

帶你初步了解 TensorFlow 的安裝

人工智能
我們可以使用 TensorFlow 來快速地構建神經(jīng)網(wǎng)絡,同時快捷地進行網(wǎng)絡的訓練、評估與保存。

1.基本簡介與理解

1.1 簡介

作為一個全面靈活的開源機器學習平臺,我們可以借助TensorFlow 創(chuàng)建適用于桌面、移動、Web 和云環(huán)境的機器學習模型,也可以簡單說TensorFlow 是一個開源的機器學習的框架,我們可以使用 TensorFlow 來快速地構建神經(jīng)網(wǎng)絡,同時快捷地進行網(wǎng)絡的訓練、評估與保存。

我們在安裝TensorFlow之后,每次使用可以直接進行導入方便快捷

import TensorFlow as tf

TensorFlow官方網(wǎng)站如下:

??關于TensorFlow | TensorFlow中文官網(wǎng) (google.cn)??

1.2 優(yōu)劣勢分析與架構解讀

1.2.1 優(yōu)勢

● 靈活性強:只要計算能表示為計算流圖,都可以使用TF。

● 真正的可移植性:支持臺式機、服務器(CPU、GPU均可)、嵌入式設備。

● 多語言支持:基于Python,也提供C++使用界面、Ipython交互界面。

● 可視化工具:TensorFlow提供一個強大的可視化工具,TensorBoard。

● 豐富的封裝庫支持:TFlearn、TF-Slim、Keras等。

1.2.2 劣勢

● 不支持Windows

除了TensorFlow所擁有的所有優(yōu)勢外,它對Windows用戶的功能非常有限。對于Linux用戶則是非常友好的.

● 支持GPU

TensorFlow只有NVIDIA對GPU的支持和Python編程語言對GPU編程的支持。

1.2.3 TensorFlow架構解讀

第一層:設備通信層,由設備層和網(wǎng)絡層組成,負責網(wǎng)絡通信和設備管理。設備管理可以實現(xiàn)TF設備異構的特性,設備層支持CPU、GPU、Mobile等不同設備的通信實現(xiàn)。網(wǎng)絡通信依賴??gRPC??通信協(xié)議實現(xiàn)不同設備間的數(shù)據(jù)傳輸和更新。

第二層:Kernel 實現(xiàn)層,以Tensor為處理對象,依賴網(wǎng)絡通信和設備內存分配,實現(xiàn)了各種Tensor操作或計算,主要是機器學習的內核實現(xiàn)。

第三層:圖計算層,由分布式主控和數(shù)據(jù)流執(zhí)行器組成,包含本地計算流圖和分布式計算流圖的實現(xiàn)。分布式主控根據(jù)負載能力將不同的工作量分配在不同的設備上,數(shù)據(jù)流執(zhí)行器基于最好的實驗方式來執(zhí)行數(shù)據(jù)流圖.

第四層: API接口層,C API是對TF功能模塊的接口封裝,它是用C語言實現(xiàn)的。選擇C語言是因為它是一種底層語言,簡單快速、可靠,并且可以在任何操作系統(tǒng)上運行。

第五層: Client 層,Python,C++等編程語言在應用層通過API接口層調用TF核心功能實現(xiàn)相關實驗和應用。

而TensorFlow的最后一層包含用python和C++實現(xiàn)的訓練和推理庫。

想全面了解TensorFlow入門實操的基礎理論和設計思路,可以到中國大學 MOOC 學習??《 TensorFlow 入門實操課程 》??,快速上手TensorFlow基本應用和實踐。

2.安裝和使用

2.1 安裝

此處以Ubuntu 16.04 或更高版本(64 位)為例進行講解

2.1.1 使用pip安裝

PIP 是一種包管理系統(tǒng),用于安裝和管理用 Python 寫的軟件包。

首先我們需要安裝python環(huán)境, 需要使用 Python 3.6-3.9 和 pip 19.0 及更高版本.如果不確定我們是否已經(jīng)安裝,可以通過版本檢查的方式進行查看,確保后續(xù)可以繼續(xù)進行.

python3 –version
pip3 --version

如果沒有安裝,請參考如下代碼:

sudo apt update
sudo apt install python3-dev python3-pip python3-venv

重點: 其實,此處針對python的安裝我更建議安裝anaconda,這樣可以省很多的事情, anaconda包含了conda、Python等190多個科學包及其依賴項. 能減少各種庫問題,版本問題.

其次我們需要建立環(huán)境,此處建議是安裝虛擬環(huán)境

最后我們激活虛擬環(huán)境,然后在虛擬環(huán)境下進行TensorFlow pip 軟件包的安裝

pip install --upgrade TensorFlow

安裝結束以后可以進行驗證,確保安裝成功

python -c "import TensorFlow

2.1.2 源碼編譯安裝

git clone --recurse-submodules
https://github.com/TensorFlow/TensorFlow

安裝

參考 ??http://bazel.io/docs/install.html??

配置./configure 根據(jù)你的實際情況如實回答一系列問題?;卮鹬?bazel 會對環(huán)境進行配置,此時需要機器可以訪問外網(wǎng),便于獲取一些編譯依賴包。一些包可能需要翻墻。

編譯

bazel build -c opt --config=cuda
//TensorFlow/tools/pip_package:build_pip_package

2.1.3 Docker 鏡像安裝

Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。

當你通過 Docker 安裝和運行 TensorFlow 時,它與你機器上之前已安裝的軟件包完全隔離。

官方鏡像

官方提供了 4 個 Docker 鏡像可供使用:

僅 CPU 版,無開發(fā)環(huán)境:gcr.io/TensorFlow/TensorFlow

僅 CPU 版,有開發(fā)環(huán)境:gcr.io/TensorFlow/TensorFlow:latest-devel

支持 GPU,無開發(fā)環(huán)境:gcr.io/TensorFlow/TensorFlow:latest-gpu

支持 GPU,有開發(fā)環(huán)境:gcr.io/TensorFlow/TensorFlow:latest-devel-gpu

創(chuàng)建 Docker 用戶組

允許普通用戶無需 sudo 即可啟動容器。

usermod -a -G docker 用戶名

啟動 Docker 容器

我使用的是支持GPU的版本所以選擇第四個進行安裝.大家看自己的電腦支持什么版本然后對應命令下載即可.

docker run -it 
gcr.io/TensorFlow/TensorFlow

2.2使用

2.2.1占位符

語法: tf.compat.v1.placeholder(dtype, shape=None, name=None)

例子1:

w =
tf.constant([1, 1, 2, 2, 3, 3], shape=[2, 3])
h =
tf.constant([7, 7, 9, 9, 11, 11], shape=[3, 2])
#下面語法表示的是兩個矩陣相乘
l
= tf.matmul(w, h)

with
tf.Session() as
print(sess.run([a,b,c]))

例子2:

首先import進行導入
import TensorFlow as tf
w = tf.placeholder(dtype=tf.float32)
h = tf.placeholder(dtype=tf.float32)
sum = tf.add(w,h)
## 填充數(shù)據(jù)時,使用run()方法的feed_dict參數(shù)指定張量對應的值即可,數(shù)據(jù)格式和字典類似。

with tf.Session() as sess:
# 填充占位符,填充形式類字典
res
= sess.run(sum, feed_dict={w: [5], h: [6]})
print(res)

具體的參數(shù)說明:

● dtype:張量中元素的數(shù)據(jù)類型,將被輸入。

● shape : 默認為None:將被輸入的張量的形狀,它是一個可選參數(shù)。如果沒有指定形狀,人們可以輸入任何形狀的張量。

● name: 默認為None:操作的名稱,可選參數(shù)。

2.2.2變量

Variable()構造函數(shù)希望變量有一個初始值,它可以是任何種類或形狀的Tensor。變量的類型和形式由其初始值定義。形狀和變量一旦被創(chuàng)建就會被固定下來。

在眾多的參數(shù)中,需要注意的是validate_shape : 默認為True。如果是False,允許變量以未知的形狀值初始化。如果是True,初始值的形狀必須是已知的,這是默認的。

2.2.2.1創(chuàng)建變量

最常見的創(chuàng)建變量方式是使用Variable()構造函數(shù)。

import TensorFlow as tf
v = tf.Variable([1,2,3,4,5,6]) #創(chuàng)建變量v,為一個array
print(v)
#查看v的shape,不是v的值。
## 結果是: <tf.Variable 'Variable:0' shape=(6,), numpy=array([1,2,3,4,5,6],dtype=int32)>
with tf.Session() as sess:

sess.run(v.initializer) ##運行變量的initializer。調用op之前,所有變量都應被顯式地初始化過。
sess.run(v) ##查看v的值,結果是:array([1,2,3,4,5,6])

注意: 我們在進行初始化的時候也可以按如下書寫

init = tf.global_variables_initializer()#全局變量初始化
with tf.Session() as sess:
sess.run(init)

2.2.2.2分配或修改變量中的元素

我們使用assign()方法來修改這個變量。

示例一:assign用來更新值

w = tf.Variable([3, 4,5,6])
w [1].assign(2)
w

輸出結果如下:

<tf.Variable ‘Variable:0 shape=(4,),
numpy=array([3, 2,5,6], dtype=int32)>
## 我們在此處使用assign將數(shù)組中的索引為1的值由4更新為2

示例二 : assign_add()用來添加變量值

# create variable
w = tf.Variable([3, 4,5,6])
# using assign_add() function
w.assign_add([1, 1,1,1])
w

輸出結果如下:

<tf.Variable ‘Variable:0 shape=(4,),
numpy=array([4, 5,6,7], dtype=int32)>
## 我們在此處使用assign_add()將數(shù)組中的每一個數(shù)值加1進行輸出

示例三: assign_sub()用來從變量中減去值

# create variable
w = tf.Variable([3, 4,5,6])
# using assign_add() function
w.assign_sub([1, 1,1,1])
w
<tf.Variable ‘Variable:0 shape=(4,),
numpy=array([2, 3,4,5], dtype=int32)>
## 我們在此處使用assign_sub()將數(shù)組中的每一個數(shù)值減1進行輸出

2.2.2.3改變變量的形狀

tf.reshape()方法用于改變變量的形狀。必須傳遞變量和形狀。

import TensorFlow as tf
w= tf.Variable([[3, 5, 6, 7]])
tf.reshape(w, shape=(2, 2))
w

輸出結果如下:

<tf.Tensor: shape=(2, 2), ,
numpy=array([[3, 5],[6, 7]], dtype=int32)>

2.2.3 Session會話

TensorFlow中只有讓Graph(計算圖)上的節(jié)點在Session(會話)中執(zhí)行,才會得到結果。Session的開啟涉及真實的運算,因此比較消耗資源。在使用結束后,務必關閉Session。?

方式一進行手動關閉:

import TensorFlow as tf
w= tf.constant(8, dtype=tf.int8)
h = tf.constant(6, dtype=tf.int8)
result= w + h
sess = tf.Session()
sess.run(result) #執(zhí)行運算
sess.close() #手動關閉session

方式二進行自動關閉(使用到with語句):

import TensorFlow as tf
w= tf.constant(8, dtype=tf.int8)
h = tf.constant(6, dtype=tf.int8)
result= w + h
with tf.Session() as sess: #運算結束后session自動關閉
sess.run(res)

安裝好TensorFlow后,初步入門機器學習的同學可以到中國大學MOOC上學習??《 TensorFlow 入門實操課程 》??,快速了解如何使用TensorFlow建立和訓練神經(jīng)網(wǎng)絡、用自然語言處理系統(tǒng)教會機器理解、分析和回應人類的言語 、構建和訓練模型等基本理論。我推薦對模型部署有需求的同學可以去了解??《 TensorFlow 入門課程 - 部署篇 》?,高效掌握在多種生產場景下靈活部署模型的技巧。大家也可以在??TensorFlow官網(wǎng)?(https://tensorflow.google.cn/)上探索更多學習資源,持續(xù)精進機器學習知識與技能!

作者介紹

張云波,活躍的IT網(wǎng)紅講師,擁有學員31w+,國內早期開始和發(fā)布蘋果Swift、安卓Kotlin、微信小程序、區(qū)塊鏈技術的講師之一。主攻前端開發(fā)、iOS開發(fā)、Android開發(fā)、Flutter開發(fā)、區(qū)塊鏈Dapp開發(fā),有豐富的大公司和海外工作經(jīng)驗。

責任編輯:張燕妮
相關推薦

2022-12-22 13:18:54

深度學習框架

2019-11-05 10:18:04

RPM包RPMLinux

2021-11-08 08:42:44

CentOS Supervisor運維

2021-09-02 15:29:42

鴻蒙HarmonyOS應用

2010-09-09 16:21:32

TCP IP網(wǎng)絡協(xié)議

2009-11-11 16:34:45

Visual Stud

2009-09-25 14:41:15

Hibernate對象

2016-08-03 15:32:50

GitLinux開源

2010-08-31 22:29:54

DHCP分配

2022-09-26 11:30:40

MQTT協(xié)議客戶端協(xié)議

2010-07-05 16:20:32

NetBEUI協(xié)議

2019-09-27 09:40:06

ElvishShellLinux

2016-11-14 17:36:57

Angular 2應用程序端對端

2012-08-30 14:17:42

IBMdw

2018-09-04 16:20:46

MySQ索引數(shù)據(jù)結構

2019-11-21 10:45:22

MyBatisSQL標簽

2021-02-03 16:22:43

新基建SAP

2020-12-31 12:16:49

SAP云計算SAP產品

2021-12-10 10:29:07

在線客服系統(tǒng)

2021-05-31 14:22:56

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全
點贊
收藏

51CTO技術棧公眾號