keras 獲取某層的輸入/輸出 tensor 尺寸操作
阿新 • • 發佈:2020-06-11
獲取單輸入尺寸,該層只被使用了一次。
import keras from keras.layers import Input,LSTM,Dense,Conv2D from keras.models import Model a = Input(shape=(32,32,3)) b = Input(shape=(64,64,3)) conv = Conv2D(16,(3,3),padding='same') conved_a = conv(a) # 到目前為止只有一個輸入,以下可行: assert conv.input_shape == (None,3)
如果該層被使用了兩次
import keras from keras.layers import Input,3) conved_b = conv(b) # 現在 `.input_shape` 屬性不可行,但是這樣可以: assert conv.get_input_shape_at(0) == (None,3) assert conv.get_input_shape_at(1) == (None,3)
如果是輸出,只需要改成output就好:
import keras from keras.layers import Input,3) conved_b = conv(b) # 就改了output,當然尺寸我也改了 assert conv.get_output_shape_at(0) == (None,16) assert conv.get_output_shape_at(1) == (None,16)
補充知識:keras中獲取shape的正確方法
在keras的網路中,如果用layer_name.shape的方式獲取shape資訊將會返還tensorflow.python.framework.tensor_shape.TensorShape其中包含的是tensorflow.python.framework.tensor_shape.Dimension
正確的方式是使用
import keras.backend as K
K.int_shape(laye_name)
以上這篇keras 獲取某層的輸入/輸出 tensor 尺寸操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。