Unified · Split
| @@ -138,6 +138,10 @@ int dnn_execute_layer_math_unary(DnnOperand *operands, const int32_t *input_oper · 137 unmodified lines | |||
| 138 | for (int i = 0; i < dims_count; ++i) | 138 | for (int i = 0; i < dims_count; ++i) |
| 139 | dst[i] = floor(src[i]); | 139 | dst[i] = floor(src[i]); |
| 140 | return 0; | 140 | return 0; |
| 141 | case DMUO_ROUND: | ||
| 142 | for (int i = 0; i < dims_count; ++i) | ||
| 143 | dst[i] = round(src[i]); | ||
| 144 | return 0; | ||
| 141 | default: | 145 | default: |
| 142 | return -1; | 146 | return -1; |
| 143 | } | 147 | } |
| @@ -45,6 +45,7 @@ typedef enum { · 44 unmodified lines | |||
| 45 | DMUO_ATANH = 12, | 45 | DMUO_ATANH = 12, |
| 46 | DMUO_CEIL = 13, | 46 | DMUO_CEIL = 13, |
| 47 | DMUO_FLOOR = 14, | 47 | DMUO_FLOOR = 14, |
| 48 | DMUO_ROUND = 15, | ||
| 48 | DMUO_COUNT | 49 | DMUO_COUNT |
| 49 | } DNNMathUnaryOperation; | 50 | } DNNMathUnaryOperation; |
| 50 | 51 | ||
| @@ -60,6 +60,8 @@ static float get_expected(float f, DNNMathUnaryOperation op) · 59 unmodified lines | |||
| 60 | return ceil(f); | 60 | return ceil(f); |
| 61 | case DMUO_FLOOR: | 61 | case DMUO_FLOOR: |
| 62 | return floor(f); | 62 | return floor(f); |
| 63 | case DMUO_ROUND: | ||
| 64 | return round(f); | ||
| 63 | default: | 65 | default: |
| 64 | av_assert0(!"not supported yet"); | 66 | av_assert0(!"not supported yet"); |
| 65 | return 0.f; | 67 | return 0.f; |
| @@ -136,5 +138,7 @@ int main(int agrc, char **argv) · 70 unmodified lines | |||
| 136 | return 1; | 138 | return 1; |
| 137 | if (test(DMUO_FLOOR)) | 139 | if (test(DMUO_FLOOR)) |
| 138 | return 1; | 140 | return 1; |
| 141 | if (test(DMUO_ROUND)) | ||
| 142 | return 1; | ||
| 139 | return 0; | 143 | return 0; |
| 140 | } | 144 | } |
| @@ -76,7 +76,7 @@ class TFConverter: · 75 unmodified lines | |||
| 76 | self.mathbin2code = {'Sub':0, 'Add':1, 'Mul':2, 'RealDiv':3, 'Minimum':4} | 76 | self.mathbin2code = {'Sub':0, 'Add':1, 'Mul':2, 'RealDiv':3, 'Minimum':4} |
| 77 | self.mathun2code = {'Abs':0, 'Sin':1, 'Cos':2, 'Tan':3, 'Asin':4, | 77 | self.mathun2code = {'Abs':0, 'Sin':1, 'Cos':2, 'Tan':3, 'Asin':4, |
| 78 | 'Acos':5, 'Atan':6, 'Sinh':7, 'Cosh':8, 'Tanh':9, 'Asinh':10, | 78 | 'Acos':5, 'Atan':6, 'Sinh':7, 'Cosh':8, 'Tanh':9, 'Asinh':10, |
| 79 | 'Acosh':11, 'Atanh':12, 'Ceil':13, 'Floor':14} | 79 | 'Acosh':11, 'Atanh':12, 'Ceil':13, 'Floor':14, 'Round':15} |
| 80 | self.mirrorpad_mode = {'CONSTANT':0, 'REFLECT':1, 'SYMMETRIC':2} | 80 | self.mirrorpad_mode = {'CONSTANT':0, 'REFLECT':1, 'SYMMETRIC':2} |
| 81 | self.name_operand_dict = {} | 81 | self.name_operand_dict = {} |
| 82 | 82 | ||
| @@ -23,4 +23,4 @@ str = 'FFMPEGDNNNATIVE' · 22 unmodified lines | |||
| 23 | major = 1 | 23 | major = 1 |
| 24 | 24 | ||
| 25 | # increase minor when we don't have to re-convert the model file | 25 | # increase minor when we don't have to re-convert the model file |
| 26 | minor = 20 | 26 | minor = 21 |