59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
//
|
|
// Created by sjt on 3/1/23.
|
|
//
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include "Operators_imp.h"
|
|
|
|
void cast(){
|
|
|
|
int8_t* input0 = (int8_t*)malloc(100*sizeof(int8_t));
|
|
for(size_t i=0; i<100; i++) {
|
|
input0[i] = i;
|
|
}
|
|
int8_t * output = (int8_t*)malloc(100*sizeof(int8_t));
|
|
|
|
//set up tensors
|
|
C_Tensors inputs, weights, outputs;
|
|
{
|
|
inputs.counts = 1;
|
|
inputs.tensor[0].data = (float*)input0;
|
|
inputs.tensor[0].shape.axes = 4;
|
|
inputs.tensor[0].data_type = INT8_T;
|
|
inputs.tensor[0].shape.dim[0] = 1;
|
|
inputs.tensor[0].shape.dim[1] = 2;
|
|
inputs.tensor[0].shape.dim[2] = 3;
|
|
inputs.tensor[0].shape.dim[3] = 4;
|
|
}
|
|
{
|
|
outputs.counts = 1;
|
|
outputs.tensor[0].data = (float*)output;
|
|
outputs.tensor[0].shape.axes = 4;
|
|
outputs.tensor[0].shape.dim[0] = 1;
|
|
outputs.tensor[0].shape.dim[1] = 2;
|
|
outputs.tensor[0].shape.dim[2] = 3;
|
|
outputs.tensor[0].shape.dim[3] = 4;
|
|
}
|
|
|
|
ElementUnaryOpAttribute attr;
|
|
attr.fn_ = copy_fn;
|
|
attr.name_ = "Cast";
|
|
ElementUnaryOperator_Run(&inputs, &weights, &outputs, &attr);
|
|
|
|
size_t input_size = getSize(&inputs, 0);
|
|
for(size_t i=0; i<input_size; i++) {
|
|
if(input0[i] != output[i]) {
|
|
printf("cast not correct, please check\n");
|
|
}
|
|
}
|
|
free(input0);
|
|
free(output);
|
|
}
|
|
|
|
|
|
|
|
int main(int argc, char** argv){
|
|
cast();
|
|
|
|
return 0;
|
|
} |