演算法工程師修仙之路 TensorFlow(二)

2021-09-07 10:03:22 字數 995 閱讀 4340

張量在 tensorflow 中的實現並不是直接採用陣列的形式,它只是對tensorflow 中運算結果的引用。在張量中並沒有真正儲存數字,它儲存的是如何得到這些數字的計算過程。

tensorflow中的張量和 numpy 中的陣列不同,tensorflow 計算的結果不是乙個具體的數字,而且乙個張量的結構。乙個張量中主要儲存了三個屬性 : 名字(name)、維度(shape)和型別(type)。

# 以向量加法為例,當執行如下**時,並不會得到加法的結果,而會得到對結果的乙個引用。

import tensorflow as tf

# tf.constant是乙個計算,這個計算的結果為乙個張量,儲存在變數a中。

a = tf.constant([1.0, 2.0], name="a")

b = tf.constant([2.0, 3.0], name="b")

result = tf.add(a, b, name="add")

print(result)

# 輸出:tensor("add:0", shape=(2,), dtype=float32)

張量的第乙個屬性名字不僅是乙個張量的唯一識別符號,它同樣也給出了這個張量是如何計算出來的。

tensorflow 的計算都可以通過計算圖 的模型來建立,而計算圖上的每乙個節點代表了 乙個計算,計算的結果就儲存在張量之中,所以張量和計算圖上節點所代表的計算結果是對應的。

張量的命名可以通過 「node:src_output」的形式來給出。

張量的第二個屬性是張量的維度(shape)。

張量的第三個屬性是型別(type)。

使用張量的第二類情況是當計算圖構造完成之後,張量可以用來獲得計算結果,也就是得到真實的數字。

演算法工程師修仙之路 TensorFlow(五)

乙個最簡單的神經元結構的輸出就是所有輸入的加權和,而不同輸入的權重就是神經元的引數。神經網路的優化過程就是優化神經元中引數取值的過程。全連線神經網路是相鄰兩層之間任意兩個節點之間都有連線的神經網路結構。乙個簡單的判斷零件是否合格的三層全連線神經網路。第二個部分為神經網路的連線結構。最後乙個部分是每個...

演算法工程師修仙之路 TensorFlow(六)

tensorflow 中變數的初始值可以設定成隨機數 常數或者是通過其他變數的初始值計算得到。通過滿足正態分佈的隨機數來初始化神經網路中的引數是乙個非常常用的方法,除了正態分佈的隨機數,tensorflow 還提供了一些其他的隨機數生成器 tensorflow 也支援通過常數來初始化乙個變數 在神經...

演算法工程師修仙之路 Keras(三)

由於這一領域是靠實驗結果而不是理論指導的,所以只有當合適的資料和硬體可用於嘗試新想法時 或者將舊想法的規模擴大,事實往往也是如此 才可能出現演算法上的改進。機器學習不是數學或物理學,靠一支筆和一張紙就能實現重大進展。它是一門工程科學。硬體 資料如果有乙個資料集是深度學習興起的催化劑的話,那麼一定是 ...