Lines Matching refs:op

17 #include "tensorflow/core/framework/op.h"
28 ShapeInferenceTestOp op("AddN");
29 auto set_n = [&op](int n) {
36 .Finalize(&op.node_def));
41 INFER_OK(op, "?;?", "in0|in1");
44 INFER_OK(op, "[1];[?]", "in0");
45 INFER_OK(op, "[1];?", "in0");
46 INFER_OK(op, "[?];[1]", "in1");
47 INFER_OK(op, "?;[1]", "in1");
50 INFER_OK(op, "[1,2];[?,2]", "in0");
51 INFER_OK(op, "[1,2];[1,2]", "in0|in1");
52 INFER_OK(op, "[?,2];[1,2]", "in1");
55 INFER_OK(op, "[1,?];[?,2];[1,2]", "in2");
56 INFER_OK(op, "[1,2];[?,2];[1,?]", "in0");
57 INFER_OK(op, "?;?;[1,2]", "in2");
60 INFER_OK(op, "?;[1,2]", "in1");
61 INFER_OK(op, "[1,?];[?,2]", "[d0_0,d1_1]");
62 INFER_OK(op, "[?,2,?];[?,?,3]", "[d0_0|d1_0,d0_1,d1_2]");
63 INFER_OK(op, "[?,2];[1,?]", "[d1_0,d0_1]");
66 INFER_ERROR("Dimension 1 in both shapes must be equal, but are 2 and 4", op,
68 INFER_ERROR("From merging shape 0 with other shapes.", op, "[1,2];?;[1,4]");
70 INFER_ERROR("Shapes must be equal rank, but are 2 and 3", op,
72 INFER_ERROR("From merging shape 1 with other shapes.", op,
77 ShapeInferenceTestOp op("Cast");
78 INFER_OK(op, "?", "in0");
79 INFER_OK(op, "[?]", "in0");
80 INFER_OK(op, "[1,?,3,4]", "in0");
87 ShapeInferenceTestOp op(op_name);
88 INFER_OK(op, "?;?", "?");
89 INFER_OK(op, "?;[100]", "?");
92 INFER_OK(op, "[?];?", "[?]");
93 INFER_OK(op, "[?];[100]", "[?]");
94 INFER_OK(op, "[1];?", "[?]");
95 INFER_OK(op, "[1];[100]", "[?]");
98 INFER_OK(op, "[?,?];?", "[?,d0_1]");
99 INFER_OK(op, "[?,2];[100]", "[?,d0_1]");
100 INFER_OK(op, "[?,2,?,4];[100]", "[?,d0_1,d0_2,d0_3]");
101 INFER_OK(op, "[1,?];?", "[?,d0_1]");
102 INFER_OK(op, "[1,2];[100]", "[?,d0_1]");
103 INFER_OK(op, "[1,2,?,4];[100]", "[?,d0_1,d0_2,d0_3]");
106 INFER_ERROR("Shape must be rank 1 but is rank 2", op, "?;[1,2]");
107 INFER_ERROR("Shape must be at least rank 1 but is rank 0", op, "[];[1]");
123 ShapeInferenceTestOp op(op_name);
124 INFER_OK(op, "?;?", "?");
125 INFER_OK(op, "[1,2];?", "?");
126 INFER_OK(op, "?;[1,2]", "?");
128 INFER_OK(op, "[?];[1]", "[d0_0]");
129 INFER_OK(op, "[1];[?]", "[d1_0]");
130 INFER_OK(op, "[?];[2]", "[d1_0]");
131 INFER_OK(op, "[2];[?]", "[d0_0]");
132 INFER_OK(op, "[?];[?]", "[?]");
133 INFER_OK(op, "[];[?]", "[d1_0]");
134 INFER_OK(op, "[?];[]", "[d0_0]");
136 INFER_OK(op, "[1];[1]", "[d0_0|d1_0]");
137 INFER_OK(op, "[];[1]", "[d1_0]");
138 INFER_OK(op, "[1];[]", "[d0_0]");
140 INFER_OK(op, "[2];[2]", "[d0_0|d1_0]");
141 INFER_OK(op, "[];[2]", "[d1_0]");
142 INFER_OK(op, "[1];[2]", "[d1_0]");
143 INFER_OK(op, "[2];[1]", "[d0_0]");
144 INFER_OK(op, "[2];[]", "[d0_0]");
146 INFER_OK(op, "[0];[0]", "[d0_0|d1_0]");
147 INFER_OK(op, "[];[0]", "[d1_0]");
148 INFER_OK(op, "[1];[0]", "[d1_0]");
149 INFER_OK(op, "[0];[1]", "[d0_0]");
150 INFER_OK(op, "[0];[]", "[d0_0]");
153 INFER_OK(op, "[?,1,2,3,4,5];[3,1,?]",
155 INFER_OK(op, "[3,1,?];[?,1,2,3,4,5]",
161 ShapeInferenceTestOp op("Select");
162 INFER_OK(op, "?;?;?", "in1|in2");
165 INFER_OK(op, "[];[1];?", "in1");
166 INFER_OK(op, "[];?;?", "in1|in2");
168 INFER_OK(op, "[1];?;?",
170 INFER_OK(op, "[1,2];?;?", "in1|in2?");
172 INFER_OK(op, "?;[];?", "in1");
173 INFER_OK(op, "?;?;[]", "in2");
174 INFER_OK(op, "?;[1];?", "in1");
175 INFER_OK(op, "?;?;[1]", "in2");
176 INFER_OK(op, "?;[1,2];?", "in1");
177 INFER_OK(op, "?;?;[1,2]", "in2");
179 INFER_ERROR("Shapes must be equal rank, but are 0 and 1", op, "[1];[];?");
180 INFER_ERROR("Shapes must be equal rank, but are 1 and 2", op, "[];[1];[1,2]");
181 INFER_ERROR("Shapes must be equal rank, but are 1 and 2", op, "[1,2];[1];?");
182 INFER_OK(op, "[2];[?];[?]", "in1|in2");
184 INFER_OK(op, "[?];[?,?,3];[1,2,?]", "[d2_0,d2_1,d1_2]");
185 INFER_OK(op, "[2];[?,?,3];[?,2,?]", "[d1_0|d2_0,d2_1,d1_2]");
186 INFER_ERROR("must be equal", op, "[1];[2,?,3];[?,2,?]");
187 INFER_ERROR("Shapes must be equal rank, but are 3 and 2", op,
189 INFER_OK(op, "[2,?,?];[?,?,3];[?,2,?]", "[d0_0,d2_1,d1_2]");
190 INFER_ERROR("Dimension 2 in both shapes must be equal, but are 3 and 5", op,
198 TF_ASSERT_OK(OpRegistry::Global()->LookUp(op.name, &op_reg_data));
206 TF_GRAPH_DEF_VERSION, &op.node_def, op_reg_data->op_def,
260 ShapeInferenceTestOp op("Range");
267 .Finalize(&op.node_def));
269 op.input_tensors.resize(3);
270 INFER_OK(op, "?;?;?", "[?]");
271 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "[1,2];?;?");
272 INFER_ERROR("for 'start'", op, "[1,2];?;?");
274 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "?;[1,2];?");
275 INFER_ERROR("for 'limit'", op, "?;[1,2];?");
277 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "?;?;[1,2]");
278 INFER_ERROR("for 'delta'", op, "?;?;[1,2]");
281 op.input_tensors[0] = &start_t;
282 INFER_OK(op, "?;?;?", "[?]");
284 op.input_tensors[1] = &limit_t;
285 INFER_OK(op, "?;?;?", "[?]");
288 op.input_tensors[2] = &delta_t;
289 INFER_OK(op, "?;?;?", "[0]");
292 INFER_ERROR("Requires delta != 0", op, "?;?;?");
296 INFER_ERROR("Requires start <= limit when delta > 0: 1/-1", op, "?;?;?");
299 INFER_OK(op, "?;?;?", "[2]");
302 INFER_ERROR("Requires start >= limit when delta < 0: 1/4", op, "?;?;?");
307 INFER_OK(op, "?;?;?", "[33]");
311 ShapeInferenceTestOp op("LinSpace");
312 op.input_tensors.resize(3);
313 INFER_OK(op, "?;?;?", "[?]");
314 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "[1,2];?;?");
315 INFER_ERROR("for 'start'", op, "[1,2];?;?");
316 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "?;[1,2];?");
317 INFER_ERROR("for 'stop'", op, "?;[1,2];?");
318 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "?;?;[1,2]");
319 INFER_ERROR("for 'num'", op, "?;?;[1,2]");
322 op.input_tensors[2] = &num_t;
323 INFER_OK(op, "?;?;?", "[1]");
325 INFER_OK(op, "?;?;?", "[2]");
327 INFER_ERROR("Requires num > 0: -1", op, "?;?;?");
331 ShapeInferenceTestOp op("UnsortedSegmentSum");
332 op.input_tensors.resize(3);
333 INFER_OK(op, "?;?;?", "?");
334 INFER_OK(op, "?;[?];?", "?");
335 INFER_ERROR("Shape must be rank 0 but is rank 2", op, "?;?;[1,2]");
336 INFER_ERROR("Dimensions must be equal, but are 2 and 3", op,
338 INFER_OK(op, "?;[3];?", "?");
339 INFER_ERROR("Shape must be at least rank 3 but is rank 2", op,
343 op.input_tensors[2] = &num_segments_t;
344 INFER_OK(op, "[?,2,3,?,5];[1,2,?];[]", "[100,d0_3,d0_4]");
349 op, "[3];[3];?");
353 ShapeInferenceTestOp op("SparseSegmentSum");
354 op.input_tensors.resize(3);
355 INFER_OK(op, "?;?;?", "?");
356 INFER_OK(op, "[2,4,3];[3];[3]", "[?,d0_1,d0_2]");
358 INFER_ERROR("Shape must be rank 1 but is rank 0", op, "[2,4,3];[];[3]");
359 INFER_ERROR("Shape must be rank 1 but is rank 2", op, "[2,4,3];[3];[3,4]");
361 INFER_ERROR("Dimension 0 in both shapes must be equal, but are 3 and 4", op,
366 ShapeInferenceTestOp op("SparseSegmentMeanGrad");
367 op.input_tensors.resize(4);
368 INFER_OK(op, "?;?;?;?", "?");
369 INFER_OK(op, "[2,4,3];[3];[3];[]", "[?,d0_1,d0_2]");
372 op.input_tensors[3] = &num_segments_t;
373 INFER_OK(op, "[2,4,3];[3];[3];[]", "[100,d0_1,d0_2]");
375 INFER_ERROR("Shape must be rank 0 but is rank 2", op,
380 op.input_tensors[3] = &num_segments_t;
381 INFER_ERROR("Cannot specify a negative value", op, "[2,4,3];[3];[3];[]");
385 ShapeInferenceTestOp op("BatchMatMul");
386 auto set_adj = [&op](bool adj_x, bool adj_y) {
392 .Finalize(&op.node_def));
398 INFER_ERROR("at least rank 2", op, "[1];?");
399 INFER_ERROR("at least rank 2", op, "?;[2]");
401 INFER_OK(op, "?;?", "?");
404 INFER_OK(op, "[?,?];[?,?]", "[d0_0,d1_1]");
407 INFER_OK(op, "[?,?,?,?];?", "[d0_0,d0_1,d0_2,?]");
411 INFER_OK(op, "[1,2,3,4];[1,2,?,?]", "[d0_0,d0_1,d0_2,d1_3]");
412 INFER_ERROR("are 2 and 3", op, "[?,1,2];[?,3,1]"); // inner dim mismatch
414 INFER_OK(op, "[1,2,3,4];[1,2,?,?]", "[d0_0,d0_1,d0_3,d1_3]");
415 INFER_ERROR("are 2 and 3", op, "[?,2,1];[?,3,1]"); // inner dim mismatch
419 INFER_OK(op, "[1,2,?,?];[1,2,3,4]", "[d0_0,d0_1,d0_2,d1_2]");
420 INFER_ERROR("are 2 and 3", op, "[?,1,2];[?,1,3]"); // inner dim mismatch
422 INFER_OK(op, "[1,2,?,?];[1,2,3,4]", "[d0_0,d0_1,d0_3,d1_2]");
423 INFER_ERROR("are 2 and 3", op, "[?,2,1];[?,1,3]"); // inner dim mismatch
427 ShapeInferenceTestOp op("ArgMax");
428 op.input_tensors.resize(2);
430 INFER_OK(op, "?;?", "?");
433 INFER_OK(op, "[2];?", "[]");
434 INFER_OK(op, "[];?", "[]");
437 INFER_ERROR("must be rank 0", op, "[2];[1]");
441 INFER_OK(op, "[2,3,4];?", "[?,?]");
442 INFER_OK(op, "[2,3,4,5,6];?", "[?,?,?,?]");
446 op.input_tensors[1] = &dimension;
447 INFER_OK(op, "[2,3,4];[]", "[d0_1,d0_2]");
450 op.input_tensors[1] = &dimension;
451 INFER_OK(op, "[2,3,4];[]", "[d0_0,d0_2]");
454 op.input_tensors[1] = &dimension;
455 INFER_OK(op, "[2,3,4];[]", "[d0_0,d0_1]");
459 op.input_tensors[1] = &dimension;
460 INFER_ERROR("must be in the range [-3, 3)", op, "[2,3,4];[]");
463 op.input_tensors[1] = &dimension;
464 INFER_ERROR("must be in the range [-3, 3)", op, "[2,3,4];[]");
467 op.input_tensors[1] = &dimension;
468 INFER_OK(op, "[2,3,4];[]", "[d0_0,d0_1]");
472 ShapeInferenceTestOp op("Betainc");
474 INFER_OK(op, "?;?;?", "?");
475 INFER_OK(op, "[?,?];?;?", "in0");
476 INFER_OK(op, "[?,2];?;[1,?]", "[d2_0,d0_1]");
477 INFER_OK(op, "[?,2,?];[1,?,?];[?,?,3]", "[d1_0,d0_1,d2_2]");
479 INFER_OK(op, "[?,2,?];[];[?,?,3]", "[d0_0|d2_0,d0_1,d2_2]");
480 INFER_OK(op, "[];[];[?,?,3]", "in2");
483 INFER_OK(op, "[];[];?", "in2");
484 INFER_OK(op, "[];[];[1,2,3,4]", "in2");
487 INFER_OK(op, "[];[];[]", "in0");
490 INFER_ERROR("must be equal", op, "[1,2];[];[1,4]");
491 INFER_ERROR("must be equal", op, "[1,2];[];[1,2,3]");
495 ShapeInferenceTestOp op("Requantize");
497 INFER_OK(op, "?;?;?;?;?", "in0;[];[]");
498 INFER_OK(op, "?;[];[];[];[]", "in0;[];[]");
501 INFER_ERROR("must be rank 0", op, "?;[1];?;?;?");
502 INFER_ERROR("must be rank 0", op, "?;?;[2];?;?");
503 INFER_ERROR("must be rank 0", op, "?;?;?;[3];?");
504 INFER_ERROR("must be rank 0", op, "?;?;?;?;[4]");
508 ShapeInferenceTestOp op("RequantizationRange");
510 INFER_OK(op, "?;?;?", "[];[]");
511 INFER_OK(op, "?;[];[]", "[];[]");
514 INFER_ERROR("must be rank 0", op, "?;[1];?");
515 INFER_ERROR("must be rank 0", op, "?;?;[2]");
519 ShapeInferenceTestOp op("Cross");
521 INFER_ERROR("Shape must be at least rank 1 but is rank 0", op, "[];[]");
522 INFER_ERROR("Dimension 0 in both shapes must be equal, but", op, "[3];[5]");
523 INFER_ERROR("Dimension must be 3 but", op, "[3,5];[3,5]");
525 INFER_OK(op, "?;?", "in0");
526 INFER_OK(op, "[?];[?]", "in0");
527 INFER_OK(op, "[1,?,3];[?,?,?]", "in0");