偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

帶你初步了解 TensorFlow 的安裝

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

1.基本簡介與理解

1.1 簡介

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

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

import TensorFlow as tf

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

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

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

1.2.1 優(yōu)勢

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

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

● 多語言支持:基于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架構(gòu)解讀

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

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

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

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

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

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

想全面了解TensorFlow入門實操的基礎(chǔ)理論和設(shè)計思路,可以到中國大學(xué) MOOC 學(xué)習(xí)??《 TensorFlow 入門實操課程 》??,快速上手TensorFlow基本應(yīng)用和實踐。

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多個科學(xué)包及其依賴項. 能減少各種庫問題,版本問題.

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

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

pip install --upgrade TensorFlow

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

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

當(dāng)你通過 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的版本所以選擇第四個進行安裝.大家看自己的電腦支持什么版本然后對應(yīng)命令下載即可.

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進行導(dǎo)入
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ù)指定張量對應(yīng)的值即可,數(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()構(gòu)造函數(shù)希望變量有一個初始值,它可以是任何種類或形狀的Tensor。變量的類型和形式由其初始值定義。形狀和變量一旦被創(chuàng)建就會被固定下來。

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

2.2.2.1創(chuàng)建變量

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

import TensorFlow as tf
v = tf.Variable([1,2,3,4,5,6]) #創(chuàng)建變量v,為一個array
print(v)
#查看v的shape,不是v的值。
## 結(jié)果是: <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。調(diào)用op之前,所有變量都應(yīng)被顯式地初始化過。
sess.run(v) ##查看v的值,結(jié)果是: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

輸出結(jié)果如下:

<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

輸出結(jié)果如下:

<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

輸出結(jié)果如下:

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

2.2.3 Session會話

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

方式一進行手動關(guān)閉:

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() #手動關(guān)閉session

方式二進行自動關(guān)閉(使用到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: #運算結(jié)束后session自動關(guān)閉
sess.run(res)

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

作者介紹

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

責(zé)任編輯:張燕妮
相關(guān)推薦

2022-12-22 13:18:54

深度學(xué)習(xí)框架

2019-11-05 10:18:04

RPM包RPMLinux

2021-11-08 08:42:44

CentOS Supervisor運維

2010-08-31 22:29:54

DHCP分配

2019-09-27 09:40:06

ElvishShellLinux

2010-07-05 16:20:32

NetBEUI協(xié)議

2016-08-03 15:32:50

GitLinux開源

2009-11-11 16:34:45

Visual Stud

2009-09-25 14:41:15

Hibernate對象

2021-09-02 15:29:42

鴻蒙HarmonyOS應(yīng)用

2010-09-09 16:21:32

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

2022-09-26 11:30:40

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

2018-09-04 16:20:46

MySQ索引數(shù)據(jù)結(jié)構(gòu)

2016-11-14 17:36:57

Angular 2應(yīng)用程序端對端

2021-05-31 14:22:56

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全

2021-12-10 10:29:07

在線客服系統(tǒng)

2010-09-02 16:59:35

資源預(yù)留協(xié)議

2012-08-30 14:17:42

IBMdw

2019-11-21 10:45:22

MyBatisSQL標簽

2021-02-03 16:22:43

新基建SAP
點贊
收藏

51CTO技術(shù)棧公眾號