Very very simple example of TensorFlow conv1d.
import tensorflow as tf
import numpy as np
X = np.zeros((10,10)) + 1
filter = np.zeros((5,),dtype=np.float32) + 1
x = tf.placeholder(tf.float32, shape=[None, 10, 1])
f = tf.placeholder(tf.float32, shape = [5, 1, 1])
conv = tf.nn.conv1d(x, f, 1,'SAME')
session = tf.Session()
result = session.run(conv, feed_dict={x:X.reshape((10,10,1)), f:filter.reshape((5,1,1))})
result.reshape((10,10))
result
array([[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.],
[ 3., 4., 5., 5., 5., 5., 5., 5., 4., 3.]], dtype=float32)
You need to change 10x10 input to 10x10x1 array. (last 1 is for channel, and I only have one channel.)Also 5 linear filter to 5x1x1 array. (middle 1 for input channel and last 1 for output channel.)
Comments