Входные каналы пулинга в Tensorflow - PullRequest
0 голосов
/ 16 декабря 2018

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

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.

...