#keras
#python #тензорный поток #машинное обучение #keras #глубокое обучение
Вопрос:
Является ли уровень GlobalAveragePooling1D таким же, как вычисление среднего значения с помощью пользовательского уровня Lambda?
Данные являются временными, поэтому x имеет форму (пакет, время, функции)
x=keras.layers.Lambda(lambda x: keras.backend.mean(x, axis=1))(x)
по сравнению с
x=GlobalAveragePooling1D()(x)
Поскольку мои результаты сильно отличаются, кажется, чего-то не хватает.
Есть идеи?
Ответ №1:
вы можете протестировать это самостоятельно…
X = np.random.uniform(0,1, (32,24,10)).astype('float32')
x_lambda = Lambda(lambda x: tf.keras.backend.mean(x, axis=1))(X)
x_pool = GlobalAveragePooling1D()(X)
tf.reduce_all(x_lambda == x_pool)
# <tf.Tensor: shape=(), dtype=bool, numpy=True>
Они одинаковы