1. 程式人生 > 程式設計 >keras 獲取某層的輸入/輸出 tensor 尺寸操作

keras 獲取某層的輸入/輸出 tensor 尺寸操作

獲取單輸入尺寸,該層只被使用了一次。

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 尺寸操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。