tf.keras.layers.Conv2D получить значения ядра - PullRequest
0 голосов
/ 10 апреля 2020

Как получить значения ядра из tf.keras.layers.Conv2D?

Вот мой код:

#input image is 5 X 5 and 1 channel 
input_shape = (1, 1, 5, 5)

x = tf.random.normal(input_shape) 

y = tf.keras.layers.Conv2D( 
   2, 2, activation= tf.nn.relu, input_shape=input_shape, 
   data_format='channels_first')(x) 

Я использую TF версии 2.2

Я попробовал y.get_weights(), но это не сработало, я получил:

AttributeError: 'tensorflow.python.framework.ops.EagerTensor' 
object has no attribute 'get_weights'

1 Ответ

2 голосов
/ 10 апреля 2020

Вам необходимо сохранить слой в переменной. В вашем коде y является результатом свертки. Например,

input_shape = (1, 1, 5, 5)

x = tf.random.normal(input_shape) 

conv_layer = tf.keras.layers.Conv2D( 
   2, 2, activation= tf.nn.relu, input_shape=input_shape, 
   data_format='channels_first')
y = conv_layer(x)

Теперь вы можете использовать conv_layer.get_weights().

...