Я вычислил свертку между изображением 3x3 и двумя фильтрами 2x2 в Excel вручную:
Я хочу воспроизвести тот же результат, используя тензор потокаtf.nn.conv2d:
x_raw = np.array([
[2,5,3],
[3,4,2],
[4,1,1]
])
f_raw = np.array(
[[
[2,1],
[3,4]
],[
[4,1],
[1,2]
]])
f = tf.constant(f_raw, dtype=tf.float32)
x = tf.constant(x_raw, dtype=tf.float32)
filter = tf.reshape(f, [2, 2, 1, 2])
image = tf.reshape(x, [1, 3, 3, 1])
tf.nn.conv2d(image, filter, [1, 1, 1, 1], "VALID").eval()
Но вывод, который у меня есть от tenorflow, отключен:
массив ([[[[35., 33.], [37., 25.]], [[35., 25.], [19., 15.]]]], Dtype = float32)
Что я делаю не так?