TensorFlow 學習筆記

Undefined443發表於2024-10-11

Tensorflow 是谷歌開發的一款機器學習軟體包。2019 年,谷歌將 Keras 整合到 Tensorflow 中,併發布了 Tensorflow 2.0。Keras 是 François Chollet 獨立開發的一個框架,為 Tensorflow 建立了一個簡單的、以層為中心的介面。

張量(Tensor)是陣列的另一個名稱。

注意 TensorFlow 對資料的處理方式和 NumPy 有所不同。你可以使用 NumPy 載入資料,當你把 NumPy 物件作為引數傳給 TensorFlow 時,TensorFlow 會自動將其轉換為內部的 Tensor 格式。計算完成後,你可以使用 tensor.numpy() 獲取其 NumPy 版本。

TensorFlow.org

import tensorflow as tf
from tensorflow.keras.layers import Dense, Input
from tensorflow.keras import Sequential
from tensorflow.keras.losses import MeanSquaredError, BinaryCrossentropy
from tensorflow.keras.activations import sigmoid

建立一個只有一個神經元的 layer,且無啟用函式(linear, \(a^{[l]} = \vec w \cdot a^{[l-1]} + b\)

linear_layer = Dense(units=1, activation = 'linear')  # Dense 是神經網路中的 layer 的另一種名字,unit 是神經元的另一種名字

獲取權重:

w, b = linear_layer.get_weights()

設定權重:

linear_layer.set_weights([set_w, set_b])

使用 layer 進行計算:

activation = linear_layer(X_train[0].reshape(1,1))

Tensorflow 最常用於建立多層模型。Sequential model 是構建這些模型的便捷方法:

model = Sequential(
    [
        Dense(1, input_dim=1,  activation = 'sigmoid', name='L1')
    ]
)

檢視模型的層數和引數個數:

model.summary()

獲取模型中的一層:

logistic_layer = model.get_layer('L1')

訓練模型:

model.compile()
model.fit(X, y)

使用模型進行預測:

prediction = model.predict(X_train[0].reshape(1,1))

相關文章