1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | Object.defineProperty(exports, "__esModule", { value: true });
|
19 | var tfjs_1 = require("@tensorflow/tfjs");
|
20 | var nodejs_kernel_backend_1 = require("../nodejs_kernel_backend");
|
21 | exports.stridedSliceConfig = {
|
22 | kernelName: tfjs_1.StridedSlice,
|
23 | backendName: 'tensorflow',
|
24 | kernelFunc: function (args) {
|
25 | var x = args.inputs.x;
|
26 | var backend = args.backend;
|
27 | var _a = args.attrs, beginMask = _a.beginMask, endMask = _a.endMask, ellipsisMask = _a.ellipsisMask, newAxisMask = _a.newAxisMask, shrinkAxisMask = _a.shrinkAxisMask;
|
28 | var attrs = args.attrs;
|
29 |
|
30 | var begin = attrs.begin.slice();
|
31 | var end = attrs.end.slice();
|
32 | var strides = attrs.strides;
|
33 | return tfjs_1.tidy(function () {
|
34 | var beginTensor = tfjs_1.tensor1d(begin, 'int32');
|
35 | var endTensor = tfjs_1.tensor1d(end, 'int32');
|
36 | var stridesTensor = tfjs_1.tensor1d(strides, 'int32');
|
37 | var opAttrs = [
|
38 | nodejs_kernel_backend_1.createTensorsTypeOpAttr('T', x.dtype),
|
39 | nodejs_kernel_backend_1.createTensorsTypeOpAttr('Index', 'int32'), {
|
40 | name: 'begin_mask',
|
41 | type: backend.binding.TF_ATTR_INT,
|
42 | value: beginMask
|
43 | },
|
44 | { name: 'end_mask', type: backend.binding.TF_ATTR_INT, value: endMask }, {
|
45 | name: 'ellipsis_mask',
|
46 | type: backend.binding.TF_ATTR_INT,
|
47 | value: ellipsisMask
|
48 | },
|
49 | {
|
50 | name: 'new_axis_mask',
|
51 | type: backend.binding.TF_ATTR_INT,
|
52 | value: newAxisMask
|
53 | },
|
54 | {
|
55 | name: 'shrink_axis_mask',
|
56 | type: backend.binding.TF_ATTR_INT,
|
57 | value: shrinkAxisMask
|
58 | }
|
59 | ];
|
60 | return backend.executeSingleOutput(tfjs_1.StridedSlice, opAttrs, [x, beginTensor, endTensor, stridesTensor]);
|
61 | });
|
62 | }
|
63 | };
|