今天小編給大家分享一下tensorflow中Dense函數如何使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
注意此處Tensorflow版本是2.0+。
由于本人是Pytorch用戶,對Tensorflow不是很熟悉,在讀到用tf寫的代碼時就很是麻煩。如圖所示,遇到了如下代碼:
h = Dense(units=adj_dim, activation=None)(dec_in)
Dense層就是全連接層,對于層方式的初始化的時候,layers.Dense(units,activation)函數一般只需要指定輸出節點數Units和激活函數類型即可。輸入節點數將根據第一次運算時輸入的shape確定,同時輸入、輸出節點自動創建并初始化權值w和偏置向量b。
下面是Dense的接口
Dense(units,
activation=None,
use_bias=True,
kernel_initializer='glorot_uniform',
bias_initializer='zeros',
kernel_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None, bias_constraint=None)
units, 代表該層的輸出維度
activation=None, 激活函數.但是默認 liner
use_bias=True, 是否使用b 直線 y=ax+b 中的 b
此處沒有寫 iuput 的情況, 通常會有兩種寫法:
1 : Dense(units,input_shape())
2 : Dense(units)(x) #這里的 x 是以張量.
Dense( n )( x ) : = ReLU ( W x + b )
W 是權重函數, Dense() 會隨機給 W 一個初始值。所以這里跟Pytorch的nn.linear()一樣。
# 使用第一種方法進行初始化 # 作為 Sequential 模型的第一層,需要指定輸入維度??梢詾?nbsp;input_shape=(16,) 或者 input_dim=16,這兩者是等價的。 model = Sequential() model.add(Dense(32, input_shape=(16,))) # 現在模型就會以尺寸為 (*, 16) 的數組作為輸入, # 其輸出數組的尺寸為 (*, 32) # 在第一層之后,就不再需要指定輸入的尺寸了: model.add(Dense(32))
# Pytorch實現 trd = torch.nn.Linear(in_features = 3, out_features = 30) y = trd(torch.ones(5, 3)) print(y.size()) # torch.Size([5, 30]) # Tensorflow實現 model = tf.keras.models.Sequential() model.add(tf.keras.layers.Dense(30, input_shape=(5,), activation=None)) ———————————————————————————————————— tfd = tf.keras.layers.Dense(30, input_shape=(3,), activation=None) x = tfd(tf.ones(shape=(5, 3))) print(x.shape) # (5, 30)
以上就是“tensorflow中Dense函數如何使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。