在 tensorflow 中,推薦使用keras( tf.keras)構建模型。keras 是乙個廣為流行的高階神經網路 api,簡單、快速而不失靈活性,現已得到tensorflow的官方內建和全面支援。
keras有兩個重要的概念:模型(model)和層(layer)。層將各種計算流程和變數進行了封裝(例如基本的全連線層,cnn的卷積層、池化層等),而模型則將各種層進行組織和連線,並封裝成 乙個整體,描述了如何將輸入資料通過各種層以及運算而得到輸出。在需要模型呼叫的時候,使用y_pred = model(x) 的形式即可。
下面開始用乙個簡單的線性模型y_pred=a*x+b來講解吧。
結果如下所示:import tensorflow as tfx=tf.constant([[1.0,2.0,3.0],[4.0,5.0,6.0]])
y=tf.constant([[10.0,20.0]])
class linear(tf.keras.model):
def __init__(self):
super().__init__()
self.dense=tf.keras.layers.dense(
units=1,
activation=none,
kernel_initializer=tf.zeros_initializer(),
bias_initializer=tf.zeros_initializer()
)def call(self,input):
output=self.dense(input)
return output
if __name__=="__main__":
model=linear()
optimizer=tf.keras.optimizers.sgd(learning_rate=0.01)
for i in range(100):
with tf.gradienttape() as tape:
y_pred=model(x)
loss=tf.reduce_mean(tf.square(y_pred-y))
grads=tape.gradient(loss,model.variables)
print(model.variables)
[, ]tf.keras.layers.dense(units, activation=none, use_bias=true, kernel_initializer='glorot_uniform', bias_initializer='zeros')
units,第乙個引數,輸出的單元個數activation,第二個引數是啟用函式
kernel_initializer :卷積核初始化,
bias_initializer :偏差值初始化,
tensorflow學習之softmax使用詳解
softmax 在機器學習和深度學習中有著非常廣泛的應用。尤其在處理多分類 c 2 問題,分類器最後的輸出單元需要softmax 函式進行數值處理。關於softmax 函式的定義如下所示 其中,vi 是分類器類別的輸出。i 表示類別索引,總的類別個數為 c。si 表示的是當前元素的指數與所有元素指數...
tensorflow之模型壓縮
本文 tensorflow的模型在移動端執行時往往需要進行模型壓縮。這主要有於兩方面的原因 tensorflow的模型在訓練的過程中可能為了訓練會新增一些操作和節點,而tensorflow的移動端只專注於推理,這樣在執行時就會產生一些核心不存在的錯誤。所以此時需要通過壓縮來減少一些和輸入及輸出不相關...
Tensorflow之RNN實踐(二)
參考以下這篇文章學習,從上層模組結構到底層 都分析得很清晰 直接從模型構建過程開始,rnn的核心單元是乙個可沿時間序列展開的cell,一般先定義模型中要使用到的cell結構 lstm cell tf.nn rnn cell.basiclstmcell size,forget bias 0.0,sta...