Tensorflow Convolution Количество входных каналов не соответствует соответствующему размеру фильтра - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь свернуть тензор с ядром Гаусса.

Я создал ядро ​​Гаусса, следующее за этой ссылкой , и создал ядро ​​Гаусса формы [11, 11, 3]

Изображение, которое я получаю, читая из каталога следующее:

file = tf.train.match_filenames_once("/imgs/*.png")
file_string = tf.train.string_input_producer(file)
image_reader = tf.WholeFileReader()
_, image_file = image_reader.read(file_string)
image = tf.subtract(tf.div(tf.image.resize_images(tf.image.decode_png(image_file, 3), [256, 256], 127.5), 1)

Возвращает тензор формы [256, 256, 3], который будет заполнен RGB-изображением

Затем я попробовал это:

image_smoothed = tf.nn.convolution(image, gauss_kernel, padding='SAME')

и я получаю следующую ошибку:

number of input channels does not match coresponding dimention of filter, 3 != 11

Я попытался переупорядочить размеры как изображения, так и ядра, а также добавил дополнительное измерение для них обоих, чтобы учесть размерность пакета, и я получаю ту же ошибку с этими значениями:

Ядро [11, 11, 3], Изображение [1, 256, 256, 3] -> Ошибка: 256! = 11

Ядро [1, 11, 11, 3], Изображение [1, 256, 256, 3] -> Ошибка: 3! = 11

Ядро [1, 3, 11, 11], Изображение [1, 256, 256, 3] -> Ошибка: 3! = 11

Ядро [3, 11, 11], Изображение [1, 256, 256, 3] -> Ошибка: 256! = 11

Ядро [3, 11, 11], Изображение [256, 256, 3] -> Ошибка: 3! = 11

Ядро [11, 11, 3], Изображение [3, 256, 256, 1] -> Ошибка: 256! = 11

Ядро [11, 11, 3], Изображение [3, 256, 256] -> Ошибка: 256! = 11

Кто-нибудь знает, почему нет правильной комбинации измерений, которая заставляет свертку работать?

Спасибо

...