[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/sdpython/mlprodict/master/bin/debug/debug.cpp [Back]  [Original]

// debug.cpp : Ce fichier contient la fonction 'main'. L'excution du programme commence et se termine  cet endroit.
//

#include "op_conv_matrices_.hpp"
#include "op_qlinear_conv_.hpp"
#include "op_qlinear_cpp_qgemm_tester_.hpp"
#include "op_qlinear_cpp_tester_.hpp"
#include "experimental_c.h"


void test_qlinear_conv1() {
    QLinearConv conv_mistyped;
    QLinearConv conv;

    const std::string auto_pad = "NOTSET";
    std::vector dilations;
    std::vector kernel_shape;
    std::vector pads;
    std::vector strides;

    conv.init(auto_pad, dilations, 1, kernel_shape, pads, strides);

    shaped_array_t x({
        255, 174, 162, 25, 203, 168, 58,
        15, 59, 237, 95, 129, 0, 64,
        56, 242, 153, 221, 168, 12, 166,
        232, 178, 186, 195, 237, 162, 237,
        188, 39, 124, 77, 80, 102, 43,
        127, 230, 21, 83, 41, 40, 134,
        255, 154, 92, 141, 42, 148, 247 },
        { 1, 1, 7, 7 });

    float x_scale = (float)0.00369204697;
    uint8_t x_zero_point = 132;

    shaped_array_t w({ 0 }, { 1, 1, 1, 1 });

    shaped_array_t w_scale({ (float)0.00172794575 }, {});
    uint8_t w_zero_point = 255;

    float y_scale = (float)0.00162681262;
    uint8_t y_zero_point = 123;

    shaped_array_t B;

    shaped_array_t output({
            0, 81, 93, 230, 52, 87, 197,
            240, 196, 18, 160, 126, 255, 191,
            199, 13, 102, 34, 87, 243, 89,
            23, 77, 69, 60, 18, 93, 18,
            67, 216, 131, 178, 175, 153, 212,
            128, 25, 234, 172, 214, 215, 121,
            0, 101, 163, 114, 213, 107, 8 },
        { 1, 1, 7, 7 });
    shaped_array_t res = conv.compute(
        x, x_scale, x_zero_point, w, w_scale, w_zero_point, y_scale, y_zero_point, B);
    if (!res.equal(output))
        throw std::runtime_error("failed");
}

void test_qlinear_qgemm() {
    TestQGemm0();
    TestQGemm1();
    test_qlinear_qgemm_ii();
    test_qlinear_qgemm_ui();
    test_qlinear_qgemm_if();
    test_qlinear_qgemm_uf();
}

void test_qlinear_conv2(bool random) {
    test_qlinear_conv_Conv1D_U8S8_Groups(random);
    test_qlinear_conv_Conv1D_U8S8(random);
    test_qlinear_conv_Conv1D_U8S8_Groups(random);

    test_qlinear_conv_Conv2D_U8S8(random);
    test_qlinear_conv_Conv3D_U8S8(random);
    test_qlinear_conv_Conv1D_U8S8_Pointwise(random);
    test_qlinear_conv_Conv2D_U8S8_Pointwise(random);
    test_qlinear_conv_Conv2D_U8U8_Pointwise(random);
    test_qlinear_conv_Conv3D_U8S8_Pointwise(random);
    test_qlinear_conv_Conv1D_U8S8_Dilations(random);
    test_qlinear_conv_Conv2D_U8S8_Dilations(random);
    test_qlinear_conv_Conv3D_U8S8_Dilations(random);
    test_qlinear_conv_Conv1D_U8S8_Strides(random);
    test_qlinear_conv_Conv2D_U8S8_Strides(random);
    test_qlinear_conv_Conv3D_U8S8_Strides(random);
    test_qlinear_conv_Conv1D_U8S8_Depthwise(random);
    test_qlinear_conv_Conv2D_U8S8_Depthwise(random);
    test_qlinear_conv_Conv2D_U8U8_Depthwise(random);
    test_qlinear_conv_Conv2D_U8S8_DepthwisePointwise(random);
    test_qlinear_conv_Conv3D_U8S8_Depthwise(random);
    test_qlinear_conv_Conv2D_U8S8_Requantize_NoBias(random);
    test_qlinear_conv_Conv2D_U8S8_Requantize_Bias(random);
    test_qlinear_conv_Conv2D_U8S8_Requantize_Bias_PerChannel(random);
    test_qlinear_conv_Conv2D_U8S8_Groups_Pointwise(random);
    test_qlinear_conv_Conv3D_U8S8_Groups_Pointwise(random);
    test_qlinear_conv_Conv2D_U8S8_Groups(random);
    test_qlinear_conv_Conv3D_U8S8_Groups(random);
    test_qlinear_conv_Conv1D_U8S8_Groups(random);
    test_qlinear_conv_Conv2D_U8S8_Groups_PerChannel(random);
}

int main() {
    experimental_ut_add();
    experimental_ut_einsum();
    experimental_ut_reduce();
    TestQGemm0();
    TestQGemm1();
    test_qlinear_conv2(false);
    test_qlinear_conv2(true);
    test_qlinear_conv1();
    test_qlinear_qgemm();
}

Web Proxy Viewer  |  New URL  |  Original Page