溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

keras加入lambda層時(shí)shape出現(xiàn)問題怎么辦

發(fā)布時(shí)間:2020-07-17 10:25:09 來源:億速云 閱讀:214 作者:小豬 欄目:開發(fā)技術(shù)

小編這次要給大家分享的是keras加入lambda層時(shí)shape出現(xiàn)問題怎么辦,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

使用keras時(shí),加入keras的lambda層以實(shí)現(xiàn)自己定義的操作。但是,發(fā)現(xiàn)操作結(jié)果的shape信息有問題。

我的后端是theano,使用了sum操作。

比如輸入時(shí),shape為(32,28,28),其中32為batch大小。

此時(shí)對(duì)應(yīng)的ndim應(yīng)該等于3。

但是,lambda處理后結(jié)果顯示_keras_shape為(32,28,28),而ndim卻是2。

這導(dǎo)致后邊各項(xiàng)操作都會(huì)出現(xiàn)問題。

此處sum函數(shù)加入?yún)?shù)keepdims=True即可。

此注意keras中的各種層幾乎都不用去理會(huì)batch的大小,系統(tǒng)會(huì)自動(dòng)在shape中加入None占位,所以很多參數(shù)也不用加入batch的大小。但是進(jìn)行sum等操作時(shí),選擇按照哪個(gè)axis進(jìn)行操作,要考慮batch的存在。

補(bǔ)充知識(shí):keras Merge or merge

在使用keras merge層時(shí),發(fā)現(xiàn)有Merge 、merge兩種:

from keras.layers import Merge

from keras.layers import merge

使用第一種是報(bào)錯(cuò)

“TensorVariable object has no attribute 'get_output_shape_at' ”

使用第二種小寫即可。

看完這篇關(guān)于keras加入lambda層時(shí)shape出現(xiàn)問題怎么辦的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI