Tf.compat.v1.layers.AveragePooling2D - это то же самое, что tf.keras.layers.GlobalAveragePooling2D? - PullRequest
0 голосов
/ 28 мая 2020

Я только начал изучать Tensorflow и нашел в Tensorflow 1.x пример, который, на мой взгляд, очень сложно перейти на Tensorflow 2.x, поэтому я решил использовать его в исходной версии.

Вы можете найти код на этом github: Классификация набора символов Omniglot с использованием прототипной сети

Я хочу изменить слой Flatten со слоем объединения глобального среднего значения на этот код:

def get_embeddings(support_set, h_dim, z_dim, reuse=False):

    net = convolution_block(support_set, h_dim)
    net = convolution_block(net, h_dim)
    net = convolution_block(net, h_dim) 
    net = convolution_block(net, z_dim) 
    net = tf.compat.v1.layers.flatten(net)

    return net

В Tensorflow 2.x я знаю, что я хочу использовать функцию GlobalAveragePooling2D , но я не могу найти функцию с таким же именем в Tensorflow 1.x . Я нашел это AveragePooling2D .

Является ли AveragePooling2D тем же GlobalAveragePooling2D?

1 Ответ

0 голосов
/ 28 мая 2020

если вы не можете получить доступ к GlobalAveragePooling2D , помните, что вы можете сделать это, просто определив свой собственный слой лямбда для выполнения той же операции

x = np.random.uniform(0,1, (2,224,224,3)).astype('float32')

GlobalAveragePooling2D()(x)
# the same as
Lambda(lambda x: tf.reduce_mean(x, axis=[1,2]))(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...