Входные каналы пулинга в Tensorflow

Я хотел бы уменьшить размеры входных векторов с помощью аналогичной процедуры, как среднее объединение. Входными данными являются некоторые векторы длины K*L, и я хочу уменьшить их размеры, взяв среднее значение каждой записи L, чтобы сформировать векторы длины K. Я попытался использовать такие функции, как tf.layers.average_pooling1d и tf.nn.avg_pool, но ввод 4-D или 3-D тензора необходим для этих функций, предназначенных для работы с изображениями. Я не могу понять значение каналов в моем случае. Я попытался просто добавить измерение в качестве канала, но об ошибках сообщалось даже в предыдущих полностью связанных слоях. Мне было интересно, возможно ли сделать это с аналогичными функциями или использовать настраиваемую функцию. Если я не дал понять, пожалуйста, обратитесь к кодам ниже.

x = tf.placeholder(tf.float32, [None, N]) 
layer_out = tf.contrib.layers.fully_connected(x, K * L)
layer_out = tf.layers.average_pooling1d(layer_out, L, L)
output = tf.contrib.layers.softmax(layer_out)

Он в основном растягивает векторы длины N до K*L, а затем сжимает их до длины L.

0 ответов

Другие вопросы по тегам