解決keras加入lambda層時(shí)shape的問題
使用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' ”
使用第二種小寫即可。
以上這篇解決keras加入lambda層時(shí)shape的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python threading Local()函數(shù)用法案例詳解
這篇文章主要介紹了Python threading Local()函數(shù)用法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09python壓縮文件夾內(nèi)所有文件為zip文件的方法
這篇文章主要介紹了python壓縮文件夾內(nèi)所有文件為zip文件的方法,可實(shí)現(xiàn)簡單的zip文件壓縮功能,需要的朋友可以參考下2015-06-06python操作excel的方法(xlsxwriter包的使用)
這篇文章主要為大家詳細(xì)介紹了python操作excel的方法,xlsxwriter包的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06利用Python函數(shù)實(shí)現(xiàn)一個(gè)萬歷表完整示例
這篇文章主要給大家介紹了關(guān)于如何利用Python函數(shù)實(shí)現(xiàn)一個(gè)萬歷表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解
今天小編就為大家分享一篇caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07