tensorflow的構(gòu)建流程
tf.Graph() 表示實(shí)例化了一個(gè)類(lèi),一個(gè)用于 tensorflow 計(jì)算和表示用的數(shù)據(jù)流圖,通俗來(lái)講就是:在代碼中添加的操作(畫(huà)中的結(jié)點(diǎn))和數(shù)據(jù)(畫(huà)中的線(xiàn)條)都是畫(huà)在紙上的“畫(huà)”,而圖就是呈現(xiàn)這些畫(huà)的紙,你可以利用很多線(xiàn)程生成很多張圖,但是默認(rèn)圖就只有一張。
例如有如下代碼:
import tensorflow as tf
g = tf.Graph()
## add nodes to the graph
with g.as_default():
a = tf.constant(1, name=‘a(chǎn)’)
b = tf.constant(2, name=‘b’)
c = tf.constant(3, name=‘c’)
z = 2 * (a - b) + c
## launch the graph
with tf.Session(graph=g) as sess:
writer = tf.summary.FileWriter(“E://PycharmProjects//Graph”, g)
print(‘2*(a-b)+c =》 ’, sess.run(z))
打開(kāi)cmd命令行,輸入tensorboard --logdir=E:\PycharmProjects\Graph
回車(chē)后,打開(kāi)google瀏覽器,輸入得的的網(wǎng)址即可看到 我們生成的流程圖了:
TensorFlow執(zhí)行流程
TensorFlow的基礎(chǔ)運(yùn)算
在搞神經(jīng)網(wǎng)絡(luò)之前,先讓我們把TensorFlow的基本運(yùn)算,也就是加減乘除搞清楚。
首先,TensorFlow有幾個(gè)概念需要進(jìn)行明確:
1 圖(Graph):用來(lái)表示計(jì)算任務(wù),也就我們要做的一些操作。
2 會(huì)話(huà)(Session):建立會(huì)話(huà),此時(shí)會(huì)生成一張空?qǐng)D;在會(huì)話(huà)中添加節(jié)點(diǎn)和邊,形成一張圖,一個(gè)會(huì)話(huà)可以有多個(gè)圖,通過(guò)執(zhí)行這些圖得到結(jié)果。如果把每個(gè)圖看做一個(gè)車(chē)床,那會(huì)話(huà)就是一個(gè)車(chē)間,里面有若干個(gè)車(chē)床,用來(lái)把數(shù)據(jù)生產(chǎn)成結(jié)果。
3 Tensor:用來(lái)表示數(shù)據(jù),是我們的原料。
4 變量(Variable):用來(lái)記錄一些數(shù)據(jù)和狀態(tài),是我們的容器。
5 feed和fetch:可以為任意的操作(arbitrary operation) 賦值或者從其中獲取數(shù)據(jù)。相當(dāng)于一些鏟子,可以操作數(shù)據(jù)。
形象的比喻是:把會(huì)話(huà)看做車(chē)間,圖看做車(chē)床,里面用Tensor做原料,變量做容器,feed和fetch做鏟子,把數(shù)據(jù)加工成我們的結(jié)果。
2.1 創(chuàng)建圖和運(yùn)行圖:
下面我們創(chuàng)建一個(gè)圖,并在Session中執(zhí)行它,不用擔(dān)心看不懂,每句代碼都會(huì)注釋?zhuān)挥杏?a href="http://m.xsypw.cn/v/tag/1315/" target="_blank">編程基礎(chǔ),都能OK:
上面就是用TensorFlow進(jìn)行了一個(gè)最簡(jiǎn)單的矩陣乘法。
2.2 創(chuàng)建一個(gè)變量,并用for循環(huán)對(duì)變量進(jìn)行賦值操作
可以看到,除了變量創(chuàng)建稍微麻煩一些和必須建立session來(lái)運(yùn)行,其他的操作基本和普通Python一樣。
2.3 通過(guò)feed設(shè)置placeholder的值
有的時(shí)候,我們會(huì)在聲明變量的時(shí)候不賦值,計(jì)算的時(shí)候才進(jìn)行賦值,這個(gè)時(shí)候feed就派上用場(chǎng)了。
責(zé)任編輯:YYX
-
tensorflow
+關(guān)注
關(guān)注
13文章
330瀏覽量
61181
發(fā)布評(píng)論請(qǐng)先 登錄
無(wú)法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?
FlexBuild構(gòu)建Debian 12,在“tflite_ethosu_delegate”上構(gòu)建失敗了怎么解決?
用樹(shù)莓派搞深度學(xué)習(xí)?TensorFlow啟動(dòng)!

將TensorFlow模型轉(zhuǎn)換為中間表示 (IR) 時(shí)遇到不一致的形狀錯(cuò)誤怎么解決?
使用OpenVINO? 2020.4.582將自定義TensorFlow 2模型轉(zhuǎn)換為中間表示 (IR)收到錯(cuò)誤怎么解決?
可以使用OpenVINO?工具包將中間表示 (IR) 模型轉(zhuǎn)換為TensorFlow格式嗎?
使用各種TensorFlow模型運(yùn)行模型優(yōu)化器時(shí)遇到錯(cuò)誤非法指令怎么解決?
將TensorFlow saved_model格式轉(zhuǎn)換為IR遇到錯(cuò)誤怎么解決?
OpenVINO?是否與TensorFlow集成支持Raspberry Pi?
為什么無(wú)法將自定義EfficientDet模型從TensorFlow 2轉(zhuǎn)換為中間表示(IR)?
構(gòu)建云原生機(jī)器學(xué)習(xí)平臺(tái)流程
如何使用Python構(gòu)建LSTM神經(jīng)網(wǎng)絡(luò)模型
基于系統(tǒng)設(shè)備樹(shù)的構(gòu)建流程
快速部署Tensorflow和TFLITE模型在Jacinto7 Soc

第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開(kāi)發(fā)環(huán)境并測(cè)試

評(píng)論