Open linnaeushuang opened 4 years ago
If I understand it correctly, this makes the filter size 1 for the 1D conv. This issue might be related #68. It's unlikely but tensorflow might have chaned the convolution format over the years. Can you try fixing the convolution dimension and see if it improves the performance? Thanks!
I use tensorflow v1.12 and tflearn v0.3.2.
The convolution format has not changed in v1.1 and v1.12
(see,https://github.com/tensorflow/tensorflow/blob/r1.1/tensorflow/python/layers/convolutional.py#L197-L201)
After fixing the convolution format like this:
split_2_inputs = tf.transpose(inputs[:,2:3,:] ,[0,2,1])
split_2 = tflearn.conv_1d(split_2_inputs,128,4,activation='relu',padding='valid')
I get a results like this:
The final performance doesn't seem to improve
ps: In tflearn ,padding='same' is defualt. When I didn't fix the convolution dimension and just fixed it to 'valid',I got an error.
The blue curve seems to generally stays above the orange curve, which is an improvement I think. If you repeat the experiment multiple times with different random seed and this behavior still holds, I think it then shows fix has a positive effect.
hi,mao
your work inspired me a lot. now, i have a question about your code. In your network:
split_2 = tflearn.conv_1d(inputs[:, 2:3, :], 128, 4, activation='relu')
the input of this conv1d is [batch ,feture ,S_LEN].we can get this output with shape [batch ,1 ,128]. when I read the tensorflow's doc,I found that conv1d uses NHWC format. This means that conv1d's input is [batch , step length ,input_channels].I tried to fix your kernel_size to 8 or 16 or 40,but I still get the same output with shape [batch ,1 ,128]. Tensorflow seem to do some work to avoid (kernel_size > step length). I think this code doesn't do real convolution,otherwise the output's shape will change with kernel_size.Do I understand correctly? I can get good QOE performance from your code,but is the NN consistent with the description of paper?wait for your reply,thanks.