Hello everyone,
I am currenlty working on SNPE2.12 and QNN2.12 and both of the have exact same problem.
I am trying to run conv3d unet architecture on htp however, decoder part does not work on snpe due to conv3dTranspose.
Thus, I have tried to mimic conv3dtranspose by using operation similar to pixelshuffle (by increasing channel and reshape to increase width, height, depth).
However, this also gives error about the rank. It seems like reshape of 5d tensor not supported on snpe.
Here the model that I have tested.
input = tf.keras.layers.Input((64,64,48,1))
x = tf.keras.layers.Conv3D(filters=8, kernel_size=3, strides=(2,2,2), padding="same") (input)
x = tf.keras.layers.Conv3D(filters=16, kernel_size=3, strides=(2,2,2), padding="same") (x)
x = tf.keras.layers.Conv3D(filters=32, kernel_size=3, strides=(2,2,2), padding="same") (x)
x = tf.keras.layers.Conv3D(filters=256, kernel_size=1, padding="same") (x)
x = tf.reshape(x, (-1, 16,16,12,32))
x = tf.keras.layers.Conv3D(filters=16, kernel_size=3, padding="same") (x)
x = tf.keras.layers.Conv3D(filters=128, kernel_size=1, padding="same") (x)
x = tf.reshape(x, (-1, 32,32,24,16))
x = tf.keras.layers.Conv3D(filters=8, kernel_size=3, padding="same") (x)
x = tf.keras.layers.Conv3D(filters=64, kernel_size=1, padding="same") (x)
x = tf.reshape(x, (-1, 64,64,48,8))
x = tf.keras.layers.Conv3D(filters=1, kernel_size=3, padding="same") (x)
output = tf.identity(x)
model = tf.keras.Model(input, output)
tf.keras.models.save_model(model, "3dconv")
Is there way to use conv3d transpose or reshape 5d tensor?
thank you
Dear developer,
You can use more newer version of snpe to support 5D reshape nodes
BR.
Yunxiang