The actual tensor you've entered for tensor_filter is 3:640:640:1 (uint8) and you've stated that the tensor_filter needs to get 3:640:640:1 (float32).
In other words, you are pushing uint8[640][640][3] into float32[640][640][3] array.
You need to transform uint8 stream to float32 stream with tensor_transform before you feed it to tensor_filter.
nnstreamer-pytorch 2.1.0 is tested with pytorch 1.1, 1.3, and 1.6; but this is not related with version compatibility.