tensorflow中Dense函數(shù)的具體使用
1 作用
注意此處Tensorflow版本是2.0+。
由于本人是Pytorch用戶,對Tensorflow不是很熟悉,在讀到用tf寫的代碼時就很是麻煩。如圖所示,遇到了如下代碼:
h = Dense(units=adj_dim, activation=None)(dec_in)
Dense層就是全連接層,對于層方式的初始化的時候,layers.Dense(units,activation)函數(shù)一般只需要指定輸出節(jié)點(diǎn)數(shù)Units和激活函數(shù)類型即可。輸入節(jié)點(diǎn)數(shù)將根據(jù)第一次運(yùn)算時輸入的shape確定,同時輸入、輸出節(jié)點(diǎn)自動創(chuàng)建并初始化權(quán)值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, 激活函數(shù).但是默認(rèn) 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 是權(quán)重函數(shù), Dense() 會隨機(jī)給 W 一個初始值。所以這里跟Pytorch的nn.linear()一樣。
2 例子
# 使用第一種方法進(jìn)行初始化 # 作為 Sequential 模型的第一層,需要指定輸入維度??梢詾?input_shape=(16,) 或者 input_dim=16,這兩者是等價(jià)的。 model = Sequential() model.add(Dense(32, input_shape=(16,))) # 現(xiàn)在模型就會以尺寸為 (*, 16) 的數(shù)組作為輸入, # 其輸出數(shù)組的尺寸為 (*, 32) # 在第一層之后,就不再需要指定輸入的尺寸了: model.add(Dense(32))
3 與torch.nn.Linear的區(qū)別
# Pytorch實(shí)現(xiàn) trd = torch.nn.Linear(in_features = 3, out_features = 30) y = trd(torch.ones(5, 3)) print(y.size()) # torch.Size([5, 30]) # Tensorflow實(shí)現(xiàn) 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的實(shí)現(xiàn)方式相同,但是我存在疑惑
4 參考文獻(xiàn)
[1]dense層、激活函數(shù)、輸出層設(shè)計(jì)
[2]Dense(units, activation=None,)初步
[3]深入理解 keras 中 Dense 層參數(shù)
[4]tensorflow - Tensorflow 的 tf.keras.layers.Dense 和 PyTorch 的 torch.nn.Linear 的區(qū)別?
到此這篇關(guān)于tensorflow中Dense函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)tensorflow Dense函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一份python入門應(yīng)該看的學(xué)習(xí)資料
關(guān)于python入門你應(yīng)該看這些資料,幫助你快速入門python,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Django websocket原理及功能實(shí)現(xiàn)代碼
這篇文章主要介紹了Django websocket原理及功能實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python3內(nèi)置模塊之json編解碼方法小結(jié)【推薦】
這篇文章主要介紹了Python3內(nèi)置模塊之json編解碼方法小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05python3翻轉(zhuǎn)字符串里的單詞點(diǎn)的實(shí)現(xiàn)方法
這篇文章主要介紹了python3翻轉(zhuǎn)字符串里的單詞點(diǎn)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python實(shí)現(xiàn)清理重復(fù)文件功能的示例代碼
在電腦上或多或少的存在一些重復(fù)文件,體積小的倒沒什么,如果體積大的就很占內(nèi)存了。本文用python制作了一個刪除重復(fù)文件的小工具,核心代碼很簡單,希望對你有所幫助2022-07-07TensorFlow通過文件名/文件夾名獲取標(biāo)簽,并加入隊(duì)列的實(shí)現(xiàn)
今天小編就為大家分享一篇TensorFlow通過文件名/文件夾名獲取標(biāo)簽,并加入隊(duì)列的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02