burn-jit 0.16.1

Generic backend that can be compiled just-in-time to any shader language target
Documentation
#[burn_tensor_testgen::testgen(conv_transpose3d)]
mod tests {
    use super::*;
    use burn_tensor::{backend::Backend, module, Distribution, Tensor};

    #[test]
    fn conv_transpose3d_should_match_reference_backend() {
        TestBackend::seed(0);

        let depth = 8;
        let height = 8;
        let width = 8;
        let in_channels = 8;
        let out_channels = 8;
        let batch_size = 32;
        let kernel_size_0 = 3;
        let kernel_size_1 = 3;
        let kernel_size_2 = 3;
        let options = burn_tensor::ops::ConvTransposeOptions::new(
            [1, 1, 1],
            [1, 1, 1],
            [0, 0, 0],
            [1, 1, 1],
            1,
        );

        let test_device = Default::default();
        let input = Tensor::<TestBackend, 5>::random(
            [batch_size, in_channels, depth, height, width],
            Distribution::Default,
            &test_device,
        );
        let weight = Tensor::<TestBackend, 5>::random(
            [
                in_channels,
                out_channels / options.groups,
                kernel_size_0,
                kernel_size_1,
                kernel_size_2,
            ],
            Distribution::Default,
            &test_device,
        );
        let bias =
            Tensor::<TestBackend, 1>::random([out_channels], Distribution::Default, &test_device);
        let ref_device = Default::default();
        let input_ref = Tensor::<ReferenceBackend, 5>::from_data(input.to_data(), &ref_device);
        let weight_ref = Tensor::<ReferenceBackend, 5>::from_data(weight.to_data(), &ref_device);
        let bias_ref = Tensor::<ReferenceBackend, 1>::from_data(bias.to_data(), &ref_device);

        let output = module::conv_transpose3d(input, weight, Some(bias), options.clone());
        let output_ref = module::conv_transpose3d(input_ref, weight_ref, Some(bias_ref), options);

        output
            .into_data()
            .assert_approx_eq(&output_ref.into_data(), 3);
    }
}