diff --git a/.github/workflows/build-deploy-windows.yml b/.github/workflows/build-deploy-windows.yml index 5ef668698..6612c6465 100644 --- a/.github/workflows/build-deploy-windows.yml +++ b/.github/workflows/build-deploy-windows.yml @@ -16,7 +16,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} windows-x86_64: needs: pre-ci - runs-on: windows-2019 + runs-on: windows-2016 steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.8.0 diff --git a/contrib/codegen-tools/codegen/pom.xml b/contrib/codegen-tools/codegen/pom.xml index 5f367d8e4..7fa91d8fe 100644 --- a/contrib/codegen-tools/codegen/pom.xml +++ b/contrib/codegen-tools/codegen/pom.xml @@ -124,6 +124,15 @@ + + get-cpu-count + + cpu-count + + + cpu.core.count + + diff --git a/datavec/datavec-api/pom.xml b/datavec/datavec-api/pom.xml index 0c7971201..573c7743a 100644 --- a/datavec/datavec-api/pom.xml +++ b/datavec/datavec-api/pom.xml @@ -105,6 +105,12 @@ fastutil ${fastutil.version} + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-api/src/test/java/org/datavec/api/transform/reduce/TestMultiOpReduce.java b/datavec/datavec-api/src/test/java/org/datavec/api/transform/reduce/TestMultiOpReduce.java index ef939fd06..1361f4ff0 100644 --- a/datavec/datavec-api/src/test/java/org/datavec/api/transform/reduce/TestMultiOpReduce.java +++ b/datavec/datavec-api/src/test/java/org/datavec/api/transform/reduce/TestMultiOpReduce.java @@ -94,10 +94,10 @@ public class TestMultiOpReduce extends BaseND4JTest { public void testReducerInteger() { List> inputs = new ArrayList<>(); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(0))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(1))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(2))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(2))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(0))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(1))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2))); Map exp = new LinkedHashMap<>(); exp.put(ReduceOp.Min, 0.0); @@ -136,9 +136,7 @@ public class TestMultiOpReduce extends BaseND4JTest { @Test - @Disabled public void testReduceString() { - List> inputs = new ArrayList<>(); inputs.add(Arrays.asList(new Text("someKey"), new Text("1"))); inputs.add(Arrays.asList(new Text("someKey"), new Text("2"))); @@ -168,7 +166,7 @@ public class TestMultiOpReduce extends BaseND4JTest { assertEquals(out.get(0), new Text("someKey")); String msg = op.toString(); - assertEquals(msg, exp.get(op), out.get(1).toString()); + assertEquals(exp.get(op), out.get(1).toString(),msg); } } @@ -176,12 +174,12 @@ public class TestMultiOpReduce extends BaseND4JTest { public void testReduceIntegerIgnoreInvalidValues() { List> inputs = new ArrayList<>(); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new Text("0"))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new Text("1"))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(2))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new Text("ignore me"))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new Text("also ignore me"))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new Text("2"))); + inputs.add(Arrays.asList(new Text("someKey"), new Text("0"))); + inputs.add(Arrays.asList(new Text("someKey"), new Text("1"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2))); + inputs.add(Arrays.asList(new Text("someKey"), new Text("ignore me"))); + inputs.add(Arrays.asList(new Text("someKey"), new Text("also ignore me"))); + inputs.add(Arrays.asList(new Text("someKey"), new Text("2"))); Map exp = new LinkedHashMap<>(); @@ -243,16 +241,16 @@ public class TestMultiOpReduce extends BaseND4JTest { public void testCustomReductions() { List> inputs = new ArrayList<>(); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(1), new Text("zero"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(1), new Text("zero"), new DoubleWritable(0))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(2), new Text("one"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2), new Text("one"), new DoubleWritable(1))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(3), new Text("two"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(3), new Text("two"), new DoubleWritable(2))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(4), new Text("three"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(4), new Text("three"), new DoubleWritable(3))); - List expected = Arrays.asList((Writable) new Text("someKey"), new IntWritable(10), new Text("one"), + List expected = Arrays.asList(new Text("someKey"), new IntWritable(10), new Text("one"), new DoubleWritable(1)); @@ -293,16 +291,16 @@ public class TestMultiOpReduce extends BaseND4JTest { public void testCustomReductionsWithCondition() { List> inputs = new ArrayList<>(); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(1), new Text("zero"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(1), new Text("zero"), new DoubleWritable(0))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(2), new Text("one"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2), new Text("one"), new DoubleWritable(1))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(3), new Text("two"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(3), new Text("two"), new DoubleWritable(2))); - inputs.add(Arrays.asList((Writable) new Text("someKey"), new IntWritable(4), new Text("three"), + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(4), new Text("three"), new DoubleWritable(3))); - List expected = Arrays.asList((Writable) new Text("someKey"), new IntWritable(10), new IntWritable(3), + List expected = Arrays.asList(new Text("someKey"), new IntWritable(10), new IntWritable(3), new DoubleWritable(1)); @@ -346,7 +344,7 @@ public class TestMultiOpReduce extends BaseND4JTest { public IAggregableReduceOp> reduceOp() { //For testing: let's take the second value return new AggregableMultiOp<>(Collections - .>singletonList(new AggregableSecond())); + .>singletonList(new AggregableSecond<>())); } @Override @@ -488,12 +486,12 @@ public class TestMultiOpReduce extends BaseND4JTest { .addColumnString("filterCol").addColumnString("textCol").build(); List> inputs = new ArrayList<>(); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(1), new Text("a"), new Text("zero"))); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2), new Text("b"), new Text("one"))); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(3), new Text("a"), new Text("two"))); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(4), new Text("b"), new Text("three"))); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(5), new Text("a"), new Text("three"))); - inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(6), new Text("b"), new Text("three"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(1), new Text("a"), new Text("zero"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(2), new Text("b"), new Text("one"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(3), new Text("a"), new Text("two"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(4), new Text("b"), new Text("three"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(5), new Text("a"), new Text("three"))); + inputs.add(Arrays.asList(new Text("someKey"), new IntWritable(6), new Text("b"), new Text("three"))); Condition condition = new StringColumnCondition("filterCol", ConditionOp.Equal, "a"); diff --git a/datavec/datavec-arrow/pom.xml b/datavec/datavec-arrow/pom.xml index f19f5d6ba..626975817 100644 --- a/datavec/datavec-arrow/pom.xml +++ b/datavec/datavec-arrow/pom.xml @@ -56,6 +56,12 @@ arrow-format ${arrow.version} + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-arrow/src/test/java/org/datavec/arrow/recordreader/ArrowWritableRecordTimeSeriesBatchTests.java b/datavec/datavec-arrow/src/test/java/org/datavec/arrow/recordreader/ArrowWritableRecordTimeSeriesBatchTests.java index 806de7fef..362330262 100644 --- a/datavec/datavec-arrow/src/test/java/org/datavec/arrow/recordreader/ArrowWritableRecordTimeSeriesBatchTests.java +++ b/datavec/datavec-arrow/src/test/java/org/datavec/arrow/recordreader/ArrowWritableRecordTimeSeriesBatchTests.java @@ -49,6 +49,7 @@ public class ArrowWritableRecordTimeSeriesBatchTests extends BaseND4JTest { @Test + @Tag(TagNames.NEEDS_VERIFY) @Disabled public void testBasicIndexing() { Schema.Builder schema = new Schema.Builder(); @@ -82,8 +83,9 @@ public class ArrowWritableRecordTimeSeriesBatchTests extends BaseND4JTest { } @Test - //not worried about this till after next release + @Tag(TagNames.NEEDS_VERIFY) @Disabled + //not worried about this till after next release public void testVariableLengthTS() { Schema.Builder schema = new Schema.Builder() .addColumnString("str") @@ -91,13 +93,13 @@ public class ArrowWritableRecordTimeSeriesBatchTests extends BaseND4JTest { .addColumnDouble("dbl"); List> firstSeq = Arrays.asList( - Arrays.asList(new Text("00"),new IntWritable(0),new DoubleWritable(2.0)), - Arrays.asList(new Text("01"),new IntWritable(1),new DoubleWritable(2.1)), - Arrays.asList(new Text("02"),new IntWritable(2),new DoubleWritable(2.2))); + Arrays.asList(new Text("00"),new IntWritable(0),new DoubleWritable(2.0)), + Arrays.asList(new Text("01"),new IntWritable(1),new DoubleWritable(2.1)), + Arrays.asList(new Text("02"),new IntWritable(2),new DoubleWritable(2.2))); List> secondSeq = Arrays.asList( - Arrays.asList(new Text("10"),new IntWritable(10),new DoubleWritable(12.0)), - Arrays.asList(new Text("11"),new IntWritable(11),new DoubleWritable(12.1))); + Arrays.asList(new Text("10"),new IntWritable(10),new DoubleWritable(12.0)), + Arrays.asList(new Text("11"),new IntWritable(11),new DoubleWritable(12.1))); List>> sequences = Arrays.asList(firstSeq, secondSeq); diff --git a/datavec/datavec-data/datavec-data-image/pom.xml b/datavec/datavec-data/datavec-data-image/pom.xml index 1b786b59a..be1ea8296 100644 --- a/datavec/datavec-data/datavec-data-image/pom.xml +++ b/datavec/datavec-data/datavec-data-image/pom.xml @@ -100,6 +100,17 @@ hdf5-platform ${hdf5.version}-${javacpp-presets.version} + + org.bytedeco + ffmpeg-platform + ${ffmpeg.version}-${javacpp.version} + + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/LabelGeneratorTest.java b/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/LabelGeneratorTest.java index 13856c4ff..6a26fcd2d 100644 --- a/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/LabelGeneratorTest.java +++ b/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/LabelGeneratorTest.java @@ -36,6 +36,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.DisplayName; import java.nio.file.Path; +import java.util.UUID; + import org.junit.jupiter.api.extension.ExtendWith; import org.nd4j.common.tests.tags.NativeTag; import org.nd4j.common.tests.tags.TagNames; @@ -48,11 +50,11 @@ class LabelGeneratorTest { @Test @DisplayName("Test Parent Path Label Generator") - @Disabled void testParentPathLabelGenerator(@TempDir Path testDir) throws Exception { File orig = new ClassPathResource("datavec-data-image/testimages/class0/0.jpg").getFile(); for (String dirPrefix : new String[] { "m.", "m" }) { - File f = testDir.toFile(); + File f = testDir.resolve("new-dir-" + UUID.randomUUID().toString()).toFile(); + f.mkdirs(); int numDirs = 3; int filesPerDir = 4; for (int i = 0; i < numDirs; i++) { diff --git a/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/transform/TestImageTransform.java b/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/transform/TestImageTransform.java index a03f368e0..4c8d4cc32 100644 --- a/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/transform/TestImageTransform.java +++ b/datavec/datavec-data/datavec-data-image/src/test/java/org/datavec/image/transform/TestImageTransform.java @@ -260,7 +260,6 @@ public class TestImageTransform { assertEquals(22, transformed[1], 0); } - @Disabled @Test public void testFilterImageTransform() throws Exception { ImageWritable writable = makeRandomImage(0, 0, 4); diff --git a/datavec/datavec-excel/pom.xml b/datavec/datavec-excel/pom.xml index 7e3d2dbd2..cabad4fe8 100644 --- a/datavec/datavec-excel/pom.xml +++ b/datavec/datavec-excel/pom.xml @@ -53,6 +53,12 @@ poi-ooxml ${poi.version} + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-excel/src/main/java/org/datavec/poi/excel/ExcelRecordReader.java b/datavec/datavec-excel/src/main/java/org/datavec/poi/excel/ExcelRecordReader.java index 6925bc47d..7f6be8d15 100644 --- a/datavec/datavec-excel/src/main/java/org/datavec/poi/excel/ExcelRecordReader.java +++ b/datavec/datavec-excel/src/main/java/org/datavec/poi/excel/ExcelRecordReader.java @@ -181,7 +181,7 @@ public class ExcelRecordReader extends FileRecordReader { List ret = new ArrayList<>(currRow.getLastCellNum()); for(Cell cell: currRow) { String cellValue = dataFormatter.formatCellValue(cell); - switch(cell.getCellTypeEnum()) { + switch(cell.getCellType()) { case BLANK: ret.add(new Text("")); break; case STRING: ret.add(new Text("")); break; case BOOLEAN: ret.add(new BooleanWritable(Boolean.valueOf(cellValue))); break; diff --git a/datavec/datavec-jdbc/datavecTests/README_DO_NOT_TOUCH_FILES.txt b/datavec/datavec-jdbc/datavecTests/README_DO_NOT_TOUCH_FILES.txt new file mode 100644 index 000000000..a4bc14529 --- /dev/null +++ b/datavec/datavec-jdbc/datavecTests/README_DO_NOT_TOUCH_FILES.txt @@ -0,0 +1,9 @@ + +# ************************************************************************* +# *** DO NOT TOUCH FILES IN THIS DIRECTORY! *** +# *** FILES IN THIS DIRECTORY AND SUBDIRECTORIES CONSTITUTE A DERBY *** +# *** DATABASE, WHICH INCLUDES THE DATA (USER AND SYSTEM) AND THE *** +# *** FILES NECESSARY FOR DATABASE RECOVERY. *** +# *** EDITING, ADDING, OR DELETING ANY OF THESE FILES MAY CAUSE DATA *** +# *** CORRUPTION AND LEAVE THE DATABASE IN A NON-RECOVERABLE STATE. *** +# ************************************************************************* \ No newline at end of file diff --git a/datavec/datavec-jdbc/datavecTests/db.lck b/datavec/datavec-jdbc/datavecTests/db.lck new file mode 100644 index 000000000..b9f9921df Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/db.lck differ diff --git a/datavec/datavec-jdbc/datavecTests/log/README_DO_NOT_TOUCH_FILES.txt b/datavec/datavec-jdbc/datavecTests/log/README_DO_NOT_TOUCH_FILES.txt new file mode 100644 index 000000000..56df292f6 --- /dev/null +++ b/datavec/datavec-jdbc/datavecTests/log/README_DO_NOT_TOUCH_FILES.txt @@ -0,0 +1,8 @@ + +# ************************************************************************* +# *** DO NOT TOUCH FILES IN THIS DIRECTORY! *** +# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE RECOVERY *** +# *** SYSTEM. EDITING, ADDING, OR DELETING FILES IN THIS DIRECTORY *** +# *** WILL CAUSE THE DERBY RECOVERY SYSTEM TO FAIL, LEADING TO *** +# *** NON-RECOVERABLE CORRUPT DATABASES. *** +# ************************************************************************* \ No newline at end of file diff --git a/datavec/datavec-jdbc/datavecTests/log/log.ctrl b/datavec/datavec-jdbc/datavecTests/log/log.ctrl new file mode 100644 index 000000000..090e4db1c Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/log/log.ctrl differ diff --git a/datavec/datavec-jdbc/datavecTests/log/log1.dat b/datavec/datavec-jdbc/datavecTests/log/log1.dat new file mode 100644 index 000000000..847a9ecd5 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/log/log1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/log/logmirror.ctrl b/datavec/datavec-jdbc/datavecTests/log/logmirror.ctrl new file mode 100644 index 000000000..090e4db1c Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/log/logmirror.ctrl differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/README_DO_NOT_TOUCH_FILES.txt b/datavec/datavec-jdbc/datavecTests/seg0/README_DO_NOT_TOUCH_FILES.txt new file mode 100644 index 000000000..2bdad0612 --- /dev/null +++ b/datavec/datavec-jdbc/datavecTests/seg0/README_DO_NOT_TOUCH_FILES.txt @@ -0,0 +1,8 @@ + +# ************************************************************************* +# *** DO NOT TOUCH FILES IN THIS DIRECTORY! *** +# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE TO STORE *** +# *** USER AND SYSTEM DATA. EDITING, ADDING, OR DELETING FILES IN THIS *** +# *** DIRECTORY WILL CORRUPT THE ASSOCIATED DERBY DATABASE AND MAKE *** +# *** IT NON-RECOVERABLE. *** +# ************************************************************************* \ No newline at end of file diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c10.dat b/datavec/datavec-jdbc/datavecTests/seg0/c10.dat new file mode 100644 index 000000000..55df5fd59 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c10.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c101.dat b/datavec/datavec-jdbc/datavecTests/seg0/c101.dat new file mode 100644 index 000000000..14c6b0f73 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c101.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c111.dat b/datavec/datavec-jdbc/datavecTests/seg0/c111.dat new file mode 100644 index 000000000..5b8e5cfad Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c111.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c121.dat b/datavec/datavec-jdbc/datavecTests/seg0/c121.dat new file mode 100644 index 000000000..92ed00eeb Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c121.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c130.dat b/datavec/datavec-jdbc/datavecTests/seg0/c130.dat new file mode 100644 index 000000000..d775b95a0 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c130.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c141.dat b/datavec/datavec-jdbc/datavecTests/seg0/c141.dat new file mode 100644 index 000000000..bf08ff674 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c141.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c150.dat b/datavec/datavec-jdbc/datavecTests/seg0/c150.dat new file mode 100644 index 000000000..e2ea5767c Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c150.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c161.dat b/datavec/datavec-jdbc/datavecTests/seg0/c161.dat new file mode 100644 index 000000000..90960e6d4 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c161.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c171.dat b/datavec/datavec-jdbc/datavecTests/seg0/c171.dat new file mode 100644 index 000000000..55d40959a Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c171.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c180.dat b/datavec/datavec-jdbc/datavecTests/seg0/c180.dat new file mode 100644 index 000000000..8b6950618 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c180.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c191.dat b/datavec/datavec-jdbc/datavecTests/seg0/c191.dat new file mode 100644 index 000000000..5e31e3bed Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c191.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1a1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1a1.dat new file mode 100644 index 000000000..e7013d6c6 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1a1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1b1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1b1.dat new file mode 100644 index 000000000..25fee6b49 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1b1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1c0.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1c0.dat new file mode 100644 index 000000000..c5b91e2c3 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1c0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1d1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1d1.dat new file mode 100644 index 000000000..451f02f45 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1d1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1e0.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1e0.dat new file mode 100644 index 000000000..761408d3b Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1e0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c1f1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c1f1.dat new file mode 100644 index 000000000..78d701f45 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c1f1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c20.dat b/datavec/datavec-jdbc/datavecTests/seg0/c20.dat new file mode 100644 index 000000000..3b91d36d4 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c20.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c200.dat b/datavec/datavec-jdbc/datavecTests/seg0/c200.dat new file mode 100644 index 000000000..c3a7808dd Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c200.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c211.dat b/datavec/datavec-jdbc/datavecTests/seg0/c211.dat new file mode 100644 index 000000000..54e158695 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c211.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c221.dat b/datavec/datavec-jdbc/datavecTests/seg0/c221.dat new file mode 100644 index 000000000..59900bc01 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c221.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c230.dat b/datavec/datavec-jdbc/datavecTests/seg0/c230.dat new file mode 100644 index 000000000..97788f003 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c230.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c241.dat b/datavec/datavec-jdbc/datavecTests/seg0/c241.dat new file mode 100644 index 000000000..be1d28d0a Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c241.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c251.dat b/datavec/datavec-jdbc/datavecTests/seg0/c251.dat new file mode 100644 index 000000000..c6fab1e70 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c251.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c260.dat b/datavec/datavec-jdbc/datavecTests/seg0/c260.dat new file mode 100644 index 000000000..25f81fde7 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c260.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c271.dat b/datavec/datavec-jdbc/datavecTests/seg0/c271.dat new file mode 100644 index 000000000..51cde573e Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c271.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c281.dat b/datavec/datavec-jdbc/datavecTests/seg0/c281.dat new file mode 100644 index 000000000..cfed875df Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c281.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c290.dat b/datavec/datavec-jdbc/datavecTests/seg0/c290.dat new file mode 100644 index 000000000..a85589e54 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c290.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2a1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2a1.dat new file mode 100644 index 000000000..8e2ed6afe Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2a1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2b1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2b1.dat new file mode 100644 index 000000000..2a2969247 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2b1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2c1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2c1.dat new file mode 100644 index 000000000..5511575f6 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2c1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2d0.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2d0.dat new file mode 100644 index 000000000..4adc6e447 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2d0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2e1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2e1.dat new file mode 100644 index 000000000..b37b9b254 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2e1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c2f0.dat b/datavec/datavec-jdbc/datavecTests/seg0/c2f0.dat new file mode 100644 index 000000000..d854b4b48 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c2f0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c300.dat b/datavec/datavec-jdbc/datavecTests/seg0/c300.dat new file mode 100644 index 000000000..2053e0105 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c300.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c31.dat b/datavec/datavec-jdbc/datavecTests/seg0/c31.dat new file mode 100644 index 000000000..36b2b77ae Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c31.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c311.dat b/datavec/datavec-jdbc/datavecTests/seg0/c311.dat new file mode 100644 index 000000000..f60c260f8 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c311.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c321.dat b/datavec/datavec-jdbc/datavecTests/seg0/c321.dat new file mode 100644 index 000000000..a9d745366 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c321.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c331.dat b/datavec/datavec-jdbc/datavecTests/seg0/c331.dat new file mode 100644 index 000000000..85ee72b31 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c331.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c340.dat b/datavec/datavec-jdbc/datavecTests/seg0/c340.dat new file mode 100644 index 000000000..d99b11a3f Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c340.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c351.dat b/datavec/datavec-jdbc/datavecTests/seg0/c351.dat new file mode 100644 index 000000000..f822f4cb0 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c351.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c361.dat b/datavec/datavec-jdbc/datavecTests/seg0/c361.dat new file mode 100644 index 000000000..b5c8f259d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c361.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c371.dat b/datavec/datavec-jdbc/datavecTests/seg0/c371.dat new file mode 100644 index 000000000..ad11f01b2 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c371.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c380.dat b/datavec/datavec-jdbc/datavecTests/seg0/c380.dat new file mode 100644 index 000000000..e0969191f Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c380.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c391.dat b/datavec/datavec-jdbc/datavecTests/seg0/c391.dat new file mode 100644 index 000000000..8ae566785 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c391.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3a1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3a1.dat new file mode 100644 index 000000000..44d86e55e Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3a1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3b1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3b1.dat new file mode 100644 index 000000000..1bdf6bc7f Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3b1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3c0.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3c0.dat new file mode 100644 index 000000000..4d061cf06 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3c0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3d1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3d1.dat new file mode 100644 index 000000000..45c9fa244 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3d1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3e1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3e1.dat new file mode 100644 index 000000000..48f53e682 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3e1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c3f1.dat b/datavec/datavec-jdbc/datavecTests/seg0/c3f1.dat new file mode 100644 index 000000000..08acdcee3 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c3f1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c400.dat b/datavec/datavec-jdbc/datavecTests/seg0/c400.dat new file mode 100644 index 000000000..1e8976f89 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c400.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c41.dat b/datavec/datavec-jdbc/datavecTests/seg0/c41.dat new file mode 100644 index 000000000..ba33dd45e Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c41.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c411.dat b/datavec/datavec-jdbc/datavecTests/seg0/c411.dat new file mode 100644 index 000000000..8aba2fb6b Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c411.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c421.dat b/datavec/datavec-jdbc/datavecTests/seg0/c421.dat new file mode 100644 index 000000000..65775ee7b Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c421.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c430.dat b/datavec/datavec-jdbc/datavecTests/seg0/c430.dat new file mode 100644 index 000000000..55c948db3 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c430.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c441.dat b/datavec/datavec-jdbc/datavecTests/seg0/c441.dat new file mode 100644 index 000000000..3948b2a3c Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c441.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c451.dat b/datavec/datavec-jdbc/datavecTests/seg0/c451.dat new file mode 100644 index 000000000..fe1ab73e1 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c451.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c461.dat b/datavec/datavec-jdbc/datavecTests/seg0/c461.dat new file mode 100644 index 000000000..e6d98541f Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c461.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c470.dat b/datavec/datavec-jdbc/datavecTests/seg0/c470.dat new file mode 100644 index 000000000..c9f2eb1ca Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c470.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c481.dat b/datavec/datavec-jdbc/datavecTests/seg0/c481.dat new file mode 100644 index 000000000..397b29172 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c481.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c51.dat b/datavec/datavec-jdbc/datavecTests/seg0/c51.dat new file mode 100644 index 000000000..275dc512b Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c51.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c60.dat b/datavec/datavec-jdbc/datavecTests/seg0/c60.dat new file mode 100644 index 000000000..6e07040ff Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c60.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c71.dat b/datavec/datavec-jdbc/datavecTests/seg0/c71.dat new file mode 100644 index 000000000..f19c0b854 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c71.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c81.dat b/datavec/datavec-jdbc/datavecTests/seg0/c81.dat new file mode 100644 index 000000000..8a1494e5b Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c81.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c830.dat b/datavec/datavec-jdbc/datavecTests/seg0/c830.dat new file mode 100644 index 000000000..de30561b1 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c830.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c841.dat b/datavec/datavec-jdbc/datavecTests/seg0/c841.dat new file mode 100644 index 000000000..9667929b3 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c841.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/c90.dat b/datavec/datavec-jdbc/datavecTests/seg0/c90.dat new file mode 100644 index 000000000..6a084f5fc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/c90.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/ca1.dat b/datavec/datavec-jdbc/datavecTests/seg0/ca1.dat new file mode 100644 index 000000000..66b00bbfd Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/ca1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/cb1.dat b/datavec/datavec-jdbc/datavecTests/seg0/cb1.dat new file mode 100644 index 000000000..c9c91f290 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/cb1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/cc0.dat b/datavec/datavec-jdbc/datavecTests/seg0/cc0.dat new file mode 100644 index 000000000..226872006 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/cc0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/cd1.dat b/datavec/datavec-jdbc/datavecTests/seg0/cd1.dat new file mode 100644 index 000000000..d919a1b0e Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/cd1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/ce1.dat b/datavec/datavec-jdbc/datavecTests/seg0/ce1.dat new file mode 100644 index 000000000..299e0c409 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/ce1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/cf0.dat b/datavec/datavec-jdbc/datavecTests/seg0/cf0.dat new file mode 100644 index 000000000..1754d17cb Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/cf0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d660.dat b/datavec/datavec-jdbc/datavecTests/seg0/d660.dat new file mode 100644 index 000000000..898f6a132 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d660.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d671.dat b/datavec/datavec-jdbc/datavecTests/seg0/d671.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d671.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d680.dat b/datavec/datavec-jdbc/datavecTests/seg0/d680.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d680.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d691.dat b/datavec/datavec-jdbc/datavecTests/seg0/d691.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d691.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6a0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6a0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6a0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6b1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6b1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6b1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6c0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6c0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6c0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6d1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6d1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6d1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6e0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6e0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6e0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d6f1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d6f1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d6f1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d700.dat b/datavec/datavec-jdbc/datavecTests/seg0/d700.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d700.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d711.dat b/datavec/datavec-jdbc/datavecTests/seg0/d711.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d711.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d720.dat b/datavec/datavec-jdbc/datavecTests/seg0/d720.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d720.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d731.dat b/datavec/datavec-jdbc/datavecTests/seg0/d731.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d731.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d740.dat b/datavec/datavec-jdbc/datavecTests/seg0/d740.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d740.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d751.dat b/datavec/datavec-jdbc/datavecTests/seg0/d751.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d751.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d760.dat b/datavec/datavec-jdbc/datavecTests/seg0/d760.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d760.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d771.dat b/datavec/datavec-jdbc/datavecTests/seg0/d771.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d771.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d780.dat b/datavec/datavec-jdbc/datavecTests/seg0/d780.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d780.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d791.dat b/datavec/datavec-jdbc/datavecTests/seg0/d791.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d791.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7a0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7a0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7a0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7b1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7b1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7b1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7c0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7c0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7c0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7d1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7d1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7d1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7e0.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7e0.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7e0.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d7f1.dat b/datavec/datavec-jdbc/datavecTests/seg0/d7f1.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d7f1.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d800.dat b/datavec/datavec-jdbc/datavecTests/seg0/d800.dat new file mode 100644 index 000000000..cb8a93ab3 Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d800.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d810.dat b/datavec/datavec-jdbc/datavecTests/seg0/d810.dat new file mode 100644 index 000000000..bcd2bd90d Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d810.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/seg0/d821.dat b/datavec/datavec-jdbc/datavecTests/seg0/d821.dat new file mode 100644 index 000000000..48501facc Binary files /dev/null and b/datavec/datavec-jdbc/datavecTests/seg0/d821.dat differ diff --git a/datavec/datavec-jdbc/datavecTests/service.properties b/datavec/datavec-jdbc/datavecTests/service.properties new file mode 100644 index 000000000..9589d9ad7 --- /dev/null +++ b/datavec/datavec-jdbc/datavecTests/service.properties @@ -0,0 +1,23 @@ +#C:\Users\agibs\Documents\GitHub\eclipse-deeplearning4j\datavec\datavec-jdbc\datavecTests +# ******************************************************************** +# *** Please do NOT edit this file. *** +# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. *** +# ******************************************************************** +#Mon Mar 22 08:49:04 JST 2021 +SysschemasIndex2Identifier=225 +SyscolumnsIdentifier=144 +SysconglomeratesIndex1Identifier=49 +SysconglomeratesIdentifier=32 +SyscolumnsIndex2Identifier=177 +SysschemasIndex1Identifier=209 +SysconglomeratesIndex3Identifier=81 +SystablesIndex2Identifier=129 +SyscolumnsIndex1Identifier=161 +derby.serviceProtocol=org.apache.derby.database.Database +SysschemasIdentifier=192 +derby.storage.propertiesId=16 +SysconglomeratesIndex2Identifier=65 +derby.serviceLocale=en_US +SystablesIdentifier=96 +SystablesIndex1Identifier=113 +#--- last line, don't put anything after this line --- diff --git a/datavec/datavec-jdbc/pom.xml b/datavec/datavec-jdbc/pom.xml index 0339dbe98..25e8899d0 100644 --- a/datavec/datavec-jdbc/pom.xml +++ b/datavec/datavec-jdbc/pom.xml @@ -61,6 +61,12 @@ ${derby.version} test + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-jdbc/src/test/java/org/datavec/api/records/reader/impl/JDBCRecordReaderTest.java b/datavec/datavec-jdbc/src/test/java/org/datavec/api/records/reader/impl/JDBCRecordReaderTest.java index d0161ce29..65c7bf2b2 100644 --- a/datavec/datavec-jdbc/src/test/java/org/datavec/api/records/reader/impl/JDBCRecordReaderTest.java +++ b/datavec/datavec-jdbc/src/test/java/org/datavec/api/records/reader/impl/JDBCRecordReaderTest.java @@ -52,6 +52,8 @@ import org.junit.jupiter.api.*; import org.junit.jupiter.api.io.TempDir; import java.nio.file.Path; +import java.util.UUID; + import org.junit.jupiter.api.extension.ExtendWith; import org.nd4j.common.tests.tags.TagNames; @@ -60,10 +62,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @DisplayName("Jdbc Record Reader Test") @Tag(TagNames.FILE_IO) @Tag(TagNames.JAVA_ONLY) -class JDBCRecordReaderTest { +public class JDBCRecordReaderTest { - @TempDir - public Path testDir; Connection conn; @@ -75,8 +75,6 @@ class JDBCRecordReaderTest { @BeforeEach void setUp() throws Exception { - File f = testDir.toFile(); - System.setProperty("derby.system.home", f.getAbsolutePath()); dataSource = new EmbeddedDataSource(); dataSource.setDatabaseName(dbName); dataSource.setCreateDatabase("create"); @@ -92,7 +90,10 @@ class JDBCRecordReaderTest { @Test @DisplayName("Test Simple Iter") - void testSimpleIter() throws Exception { + void testSimpleIter( @TempDir Path testDir) throws Exception { + File f = testDir.resolve("new-folder").toFile(); + assertTrue(f.mkdirs()); + System.setProperty("derby.system.home", f.getAbsolutePath()); try (JDBCRecordReader reader = getInitializedReader("SELECT * FROM Coffee")) { List> records = new ArrayList<>(); while (reader.hasNext()) { diff --git a/datavec/datavec-local/pom.xml b/datavec/datavec-local/pom.xml index 9f0480274..8348b82b8 100644 --- a/datavec/datavec-local/pom.xml +++ b/datavec/datavec-local/pom.xml @@ -65,6 +65,12 @@ python4j-numpy ${project.version} + + org.nd4j + nd4j-common-tests + ${project.version} + test + diff --git a/datavec/datavec-spark/pom.xml b/datavec/datavec-spark/pom.xml index 98d65b390..81211e93a 100644 --- a/datavec/datavec-spark/pom.xml +++ b/datavec/datavec-spark/pom.xml @@ -20,8 +20,8 @@ --> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 @@ -40,7 +40,41 @@ 2.11 + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + + + + + org.nd4j + nd4j-common-tests + ${project.version} + test + + + + + org.nd4j + guava + ${project.version} + + + org.nd4j + nd4j-common + com.tdunning t-digest @@ -93,12 +127,6 @@ datavec-api ${project.parent.version} - - - org.datavec - datavec-hadoop - ${project.parent.version} - org.datavec @@ -106,12 +134,6 @@ ${project.parent.version} test - - org.datavec - datavec-data-codec - ${project.parent.version} - test - org.datavec datavec-local @@ -119,10 +141,8 @@ test - org.datavec - datavec-python - ${datavec.version} - test + org.nd4j + nd4j-common-tests diff --git a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/SparkStorageUtils.java b/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/SparkStorageUtils.java deleted file mode 100644 index 323012432..000000000 --- a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/SparkStorageUtils.java +++ /dev/null @@ -1,363 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage; - -import org.apache.commons.io.FilenameUtils; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.io.LongWritable; -import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; -import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat; -import org.apache.hadoop.mapreduce.lib.output.MapFileOutputFormat; -import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.datavec.api.writable.Writable; -import org.datavec.hadoop.records.reader.mapfile.record.RecordWritable; -import org.datavec.hadoop.records.reader.mapfile.record.SequenceRecordWritable; -import org.datavec.spark.storage.functions.RecordLoadPairFunction; -import org.datavec.spark.storage.functions.RecordSavePrepPairFunction; -import org.datavec.spark.storage.functions.SequenceRecordLoadPairFunction; -import org.datavec.spark.storage.functions.SequenceRecordSavePrepPairFunction; - -import java.util.List; - -public class SparkStorageUtils { - - /** - * Configuration key for the map file interval. - * This is defined in MapFile.Writer.INDEX_INTERVAL but unfortunately that field is private, hence cannot be - * referenced here. - */ - public static final String MAP_FILE_INDEX_INTERVAL_KEY = "io.map.index.interval"; - - /** - * By default, a map file's index stores only a fraction of the keys. This is good, in that it reduces memory - * requirements (all keys are loaded into memory); however, it has a cost in terms of time taken for look up. - * Instead of using the default interval of 128, Will use a default interval of 1: given that the keys are LongWritable - * objects, the marginal increase in space is more than outweighed by the increased performance for use cases such as - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileRecordReader} and {@link org.datavec.hadoop.records.reader.mapfile.MapFileSequenceRecordReader} - */ - public static final int DEFAULT_MAP_FILE_INTERVAL = 1; - - private SparkStorageUtils() {} - - /** - * Save a {@code JavaRDD>} to a Hadoop {@link org.apache.hadoop.io.SequenceFile}. Each record is given - * a unique (but noncontiguous) {@link LongWritable} key, and values are stored as {@link RecordWritable} instances. - *

- * Use {@link #restoreSequenceFile(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the sequence file - * @param rdd RDD to save - * @see #saveSequenceFileSequences(String, JavaRDD) - * @see #saveMapFile(String, JavaRDD) - */ - public static void saveSequenceFile(String path, JavaRDD> rdd) { - saveSequenceFile(path, rdd, null); - } - - /** - * Save a {@code JavaRDD>} to a Hadoop {@link org.apache.hadoop.io.SequenceFile}. Each record is given - * a unique (but noncontiguous) {@link LongWritable} key, and values are stored as {@link RecordWritable} instances. - *

- * Use {@link #restoreSequenceFile(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the sequence file - * @param rdd RDD to save - * @param maxOutputFiles Nullable. If non-null: first coalesce the RDD to the specified size (number of partitions) - * to limit the maximum number of output sequence files - * @see #saveSequenceFileSequences(String, JavaRDD) - * @see #saveMapFile(String, JavaRDD) - */ - public static void saveSequenceFile(String path, JavaRDD> rdd, Integer maxOutputFiles) { - path = FilenameUtils.normalize(path, true); - if (maxOutputFiles != null) { - rdd = rdd.coalesce(maxOutputFiles); - } - JavaPairRDD, Long> dataIndexPairs = rdd.zipWithUniqueId(); //Note: Long values are unique + NOT contiguous; more efficient than zipWithIndex - JavaPairRDD keyedByIndex = - dataIndexPairs.mapToPair(new RecordSavePrepPairFunction()); - - keyedByIndex.saveAsNewAPIHadoopFile(path, LongWritable.class, RecordWritable.class, - SequenceFileOutputFormat.class); - } - - /** - * Restore a {@code JavaRDD>} previously saved with {@link #saveSequenceFile(String, JavaRDD)} - * - * @param path Path of the sequence file - * @param sc Spark context - * @return The restored RDD - */ - public static JavaRDD> restoreSequenceFile(String path, JavaSparkContext sc) { - return restoreMapFile(path, sc).values(); - } - - /** - * Save a {@code JavaRDD>>} to a Hadoop {@link org.apache.hadoop.io.SequenceFile}. Each record - * is given a unique (but noncontiguous) {@link LongWritable} key, and values are stored as {@link SequenceRecordWritable} instances. - *

- * Use {@link #restoreSequenceFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the sequence file - * @param rdd RDD to save - * @see #saveSequenceFile(String, JavaRDD) - * @see #saveMapFileSequences(String, JavaRDD) - */ - public static void saveSequenceFileSequences(String path, JavaRDD>> rdd) { - saveSequenceFileSequences(path, rdd, null); - } - - /** - * Save a {@code JavaRDD>>} to a Hadoop {@link org.apache.hadoop.io.SequenceFile}. Each record - * is given a unique (but noncontiguous) {@link LongWritable} key, and values are stored as {@link SequenceRecordWritable} instances. - *

- * Use {@link #restoreSequenceFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the sequence file - * @param rdd RDD to save - * @param maxOutputFiles Nullable. If non-null: first coalesce the RDD to the specified size (number of partitions) - * to limit the maximum number of output sequence files - * @see #saveSequenceFile(String, JavaRDD) - * @see #saveMapFileSequences(String, JavaRDD) - */ - public static void saveSequenceFileSequences(String path, JavaRDD>> rdd, - Integer maxOutputFiles) { - path = FilenameUtils.normalize(path, true); - if (maxOutputFiles != null) { - rdd = rdd.coalesce(maxOutputFiles); - } - JavaPairRDD>, Long> dataIndexPairs = rdd.zipWithUniqueId(); //Note: Long values are unique + NOT contiguous; more efficient than zipWithIndex - JavaPairRDD keyedByIndex = - dataIndexPairs.mapToPair(new SequenceRecordSavePrepPairFunction()); - - keyedByIndex.saveAsNewAPIHadoopFile(path, LongWritable.class, SequenceRecordWritable.class, - SequenceFileOutputFormat.class); - } - - /** - * Restore a {@code JavaRDD>} previously saved with {@link #saveSequenceFileSequences(String, JavaRDD)} - * - * @param path Path of the sequence file - * @param sc Spark context - * @return The restored RDD - */ - public static JavaRDD>> restoreSequenceFileSequences(String path, JavaSparkContext sc) { - return restoreMapFileSequences(path, sc).values(); - } - - - /** - * Save a {@code JavaRDD>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link RecordWritable} instances.
- * Note 1: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileRecordReader}
- * Note 2: This use a MapFile interval of {@link #DEFAULT_MAP_FILE_INTERVAL}, which is usually suitable for - * use cases such as {@link org.datavec.hadoop.records.reader.mapfile.MapFileRecordReader}. Use - * {@link #saveMapFile(String, JavaRDD, int, Integer)} or {@link #saveMapFile(String, JavaRDD, Configuration, Integer)} - * to customize this.
- *

- * Use {@link #restoreMapFile(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFile(String path, JavaRDD> rdd) { - saveMapFile(path, rdd, DEFAULT_MAP_FILE_INTERVAL, null); - } - - /** - * Save a {@code JavaRDD>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link RecordWritable} instances.
- * Note: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileRecordReader} - *

- * Use {@link #restoreMapFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @param interval The map file index interval to use. Smaller values may result in the faster look up, at the - * expense of more memory/disk use. However, usually the increase is relatively minor, due to - * keys being stored as LongWritable objects - * @param maxOutputFiles Nullable. If non-null: first coalesce the RDD to the specified size (number of partitions) - * to limit the maximum number of output map files - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFile(String path, JavaRDD> rdd, int interval, - Integer maxOutputFiles) { - Configuration c = new Configuration(); - c.set(MAP_FILE_INDEX_INTERVAL_KEY, String.valueOf(interval)); - saveMapFile(path, rdd, c, maxOutputFiles); - } - - /** - * Save a {@code JavaRDD>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link RecordWritable} instances.
- * Note: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileRecordReader} - *

- * Use {@link #restoreMapFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @param c Configuration object, used to customise options for the map file - * @param maxOutputFiles Nullable. If non-null: first coalesce the RDD to the specified size (number of partitions) - * to limit the maximum number of output map files - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFile(String path, JavaRDD> rdd, Configuration c, - Integer maxOutputFiles) { - path = FilenameUtils.normalize(path, true); - if (maxOutputFiles != null) { - rdd = rdd.coalesce(maxOutputFiles); - } - JavaPairRDD, Long> dataIndexPairs = rdd.zipWithIndex(); //Note: Long values are unique + contiguous, but requires a count - JavaPairRDD keyedByIndex = - dataIndexPairs.mapToPair(new RecordSavePrepPairFunction()); - - keyedByIndex.saveAsNewAPIHadoopFile(path, LongWritable.class, RecordWritable.class, MapFileOutputFormat.class, - c); - } - - /** - * Restore a {@code JavaPairRDD>} previously saved with {@link #saveMapFile(String, JavaRDD)}}
- * Note that if the keys are not required, simply use {@code restoreMapFile(...).values()} - * - * @param path Path of the MapFile - * @param sc Spark context - * @return The restored RDD, with their unique indices as the key - */ - public static JavaPairRDD> restoreMapFile(String path, JavaSparkContext sc) { - Configuration c = new Configuration(); - c.set(FileInputFormat.INPUT_DIR, FilenameUtils.normalize(path, true)); - JavaPairRDD pairRDD = - sc.newAPIHadoopRDD(c, SequenceFileInputFormat.class, LongWritable.class, RecordWritable.class); - - return pairRDD.mapToPair(new RecordLoadPairFunction()); - } - - /** - * Save a {@code JavaRDD>>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link SequenceRecordWritable} instances.
- * Note 1: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileSequenceRecordReader}
- * Note 2: This use a MapFile interval of {@link #DEFAULT_MAP_FILE_INTERVAL}, which is usually suitable for - * use cases such as {@link org.datavec.hadoop.records.reader.mapfile.MapFileSequenceRecordReader}. Use - * {@link #saveMapFileSequences(String, JavaRDD, int, Integer)} or {@link #saveMapFileSequences(String, JavaRDD, Configuration, Integer)} - * to customize this.
- *

- * Use {@link #restoreMapFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFileSequences(String path, JavaRDD>> rdd) { - saveMapFileSequences(path, rdd, DEFAULT_MAP_FILE_INTERVAL, null); - } - - /** - * Save a {@code JavaRDD>>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link SequenceRecordWritable} instances.
- * Note: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileSequenceRecordReader}
- *

- * Use {@link #restoreMapFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @param interval The map file index interval to use. Smaller values may result in the faster look up, at the - * expense of more memory/disk use. However, usually the increase is relatively minor, due to - * keys being stored as LongWritable objects - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFileSequences(String path, JavaRDD>> rdd, int interval, - Integer maxOutputFiles) { - Configuration c = new Configuration(); - c.set(MAP_FILE_INDEX_INTERVAL_KEY, String.valueOf(interval)); - saveMapFileSequences(path, rdd, c, maxOutputFiles); - } - - /** - * Save a {@code JavaRDD>>} to a Hadoop {@link org.apache.hadoop.io.MapFile}. Each record is - * given a unique and contiguous {@link LongWritable} key, and values are stored as - * {@link SequenceRecordWritable} instances.
- * Note: If contiguous keys are not required, using a sequence file instead is preferable from a performance - * point of view. Contiguous keys are often only required for non-Spark use cases, such as with - * {@link org.datavec.hadoop.records.reader.mapfile.MapFileSequenceRecordReader}
- *

- * Use {@link #restoreMapFileSequences(String, JavaSparkContext)} to restore values saved with this method. - * - * @param path Path to save the MapFile - * @param rdd RDD to save - * @param c Configuration object, used to customise options for the map file - * @see #saveMapFileSequences(String, JavaRDD) - * @see #saveSequenceFile(String, JavaRDD) - */ - public static void saveMapFileSequences(String path, JavaRDD>> rdd, Configuration c, - Integer maxOutputFiles) { - path = FilenameUtils.normalize(path, true); - if (maxOutputFiles != null) { - rdd = rdd.coalesce(maxOutputFiles); - } - JavaPairRDD>, Long> dataIndexPairs = rdd.zipWithIndex(); - JavaPairRDD keyedByIndex = - dataIndexPairs.mapToPair(new SequenceRecordSavePrepPairFunction()); - - keyedByIndex.saveAsNewAPIHadoopFile(path, LongWritable.class, SequenceRecordWritable.class, - MapFileOutputFormat.class, c); - } - - /** - * Restore a {@code JavaPairRDD>>} previously saved with {@link #saveMapFile(String, JavaRDD)}}
- * Note that if the keys are not required, simply use {@code restoreMapFileSequences(...).values()} - * - * @param path Path of the MapFile - * @param sc Spark context - * @return The restored RDD, with their unique indices as the key - */ - public static JavaPairRDD>> restoreMapFileSequences(String path, JavaSparkContext sc) { - Configuration c = new Configuration(); - c.set(FileInputFormat.INPUT_DIR, FilenameUtils.normalize(path, true)); - JavaPairRDD pairRDD = sc.newAPIHadoopRDD(c, SequenceFileInputFormat.class, - LongWritable.class, SequenceRecordWritable.class); - - return pairRDD.mapToPair(new SequenceRecordLoadPairFunction()); - } - -} diff --git a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordLoadPairFunction.java b/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordLoadPairFunction.java deleted file mode 100644 index 192c0e7d0..000000000 --- a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordLoadPairFunction.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage.functions; - -import org.apache.hadoop.io.LongWritable; -import org.apache.spark.api.java.function.PairFunction; -import org.datavec.api.writable.Writable; -import org.datavec.hadoop.records.reader.mapfile.record.RecordWritable; -import scala.Tuple2; - -import java.util.List; - -public class RecordLoadPairFunction - implements PairFunction, Long, List> { - @Override - public Tuple2> call(Tuple2 t2) throws Exception { - return new Tuple2<>(t2._1().get(), t2._2().getRecord()); - } -} diff --git a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordSavePrepPairFunction.java b/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordSavePrepPairFunction.java deleted file mode 100644 index 048f6b191..000000000 --- a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/RecordSavePrepPairFunction.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage.functions; - -import org.apache.hadoop.io.LongWritable; -import org.apache.spark.api.java.function.PairFunction; -import org.datavec.api.writable.Writable; -import org.datavec.hadoop.records.reader.mapfile.record.RecordWritable; -import scala.Tuple2; - -import java.util.List; - -public class RecordSavePrepPairFunction - implements PairFunction, Long>, LongWritable, RecordWritable> { - @Override - public Tuple2 call(Tuple2, Long> t2) throws Exception { - return new Tuple2<>(new LongWritable(t2._2()), new RecordWritable(t2._1())); - } -} diff --git a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordLoadPairFunction.java b/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordLoadPairFunction.java deleted file mode 100644 index a8296cd6e..000000000 --- a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordLoadPairFunction.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage.functions; - -import org.apache.hadoop.io.LongWritable; -import org.apache.spark.api.java.function.PairFunction; -import org.datavec.api.writable.Writable; -import org.datavec.hadoop.records.reader.mapfile.record.SequenceRecordWritable; -import scala.Tuple2; - -import java.util.List; - -public class SequenceRecordLoadPairFunction - implements PairFunction, Long, List>> { - @Override - public Tuple2>> call(Tuple2 t2) throws Exception { - return new Tuple2<>(t2._1().get(), t2._2().getSequenceRecord()); - } -} diff --git a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordSavePrepPairFunction.java b/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordSavePrepPairFunction.java deleted file mode 100644 index 072beb5de..000000000 --- a/datavec/datavec-spark/src/main/java/org/datavec/spark/storage/functions/SequenceRecordSavePrepPairFunction.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage.functions; - -import org.apache.hadoop.io.LongWritable; -import org.apache.spark.api.java.function.PairFunction; -import org.datavec.api.writable.Writable; -import org.datavec.hadoop.records.reader.mapfile.record.SequenceRecordWritable; -import scala.Tuple2; - -import java.util.List; - -public class SequenceRecordSavePrepPairFunction - implements PairFunction>, Long>, LongWritable, SequenceRecordWritable> { - @Override - public Tuple2 call(Tuple2>, Long> t2) throws Exception { - return new Tuple2<>(new LongWritable(t2._2()), new SequenceRecordWritable(t2._1())); - } -} diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/BaseSparkTest.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/BaseSparkTest.java index 701ca7b04..605438d25 100644 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/BaseSparkTest.java +++ b/datavec/datavec-spark/src/test/java/org/datavec/spark/BaseSparkTest.java @@ -19,14 +19,21 @@ */ package org.datavec.spark; +import com.sun.jna.Platform; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; + +import java.io.File; import java.io.Serializable; +import java.net.URI; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.extension.ExtendWith; +import org.nd4j.common.resources.Downloader; @Slf4j @DisplayName("Base Spark Test") @@ -34,8 +41,24 @@ public abstract class BaseSparkTest implements Serializable { protected static JavaSparkContext sc; + @SneakyThrows @BeforeEach void before() { + if(Platform.isWindows()) { + File hadoopHome = new File(System.getProperty("java.io.tmpdir"),"hadoop-tmp"); + File binDir = new File(hadoopHome,"bin"); + if(!binDir.exists()) + binDir.mkdirs(); + File outputFile = new File(binDir,"winutils.exe"); + if(!outputFile.exists()) { + log.info("Fixing spark for windows"); + Downloader.download("winutils.exe", + URI.create("https://github.com/cdarlint/winutils/blob/master/hadoop-2.6.5/bin/winutils.exe?raw=true").toURL(), + outputFile,"db24b404d2331a1bec7443336a5171f1",3); + } + + System.setProperty("hadoop.home.dir", hadoopHome.getAbsolutePath()); + } sc = getContext(); } diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestNDArrayToWritablesFunction.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestNDArrayToWritablesFunction.java index 83a6912bf..e9e1668ae 100644 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestNDArrayToWritablesFunction.java +++ b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestNDArrayToWritablesFunction.java @@ -55,7 +55,7 @@ public class TestNDArrayToWritablesFunction { @Test public void testNDArrayToWritablesArray() throws Exception { INDArray arr = Nd4j.arange(5); - List expected = Arrays.asList((Writable) new NDArrayWritable(arr)); + List expected = Arrays.asList(new NDArrayWritable(arr)); List actual = new NDArrayToWritablesFunction(true).call(arr); assertEquals(expected, actual); } diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestPairSequenceRecordReaderBytesFunction.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestPairSequenceRecordReaderBytesFunction.java deleted file mode 100644 index 1f986de21..000000000 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestPairSequenceRecordReaderBytesFunction.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.functions; - -import com.sun.jna.Platform; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.api.java.JavaSparkContext; -import org.datavec.api.conf.Configuration; -import org.datavec.api.records.reader.SequenceRecordReader; -import org.datavec.api.split.FileSplit; -import org.datavec.api.split.InputSplit; -import org.datavec.api.writable.Writable; -import org.datavec.codec.reader.CodecRecordReader; -import org.datavec.spark.BaseSparkTest; -import org.datavec.spark.functions.pairdata.BytesPairWritable; -import org.datavec.spark.functions.pairdata.PairSequenceRecordReaderBytesFunction; -import org.datavec.spark.functions.pairdata.PathToKeyConverter; -import org.datavec.spark.functions.pairdata.PathToKeyConverterFilename; -import org.datavec.spark.util.DataVecSparkUtil; - -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - -import org.junit.jupiter.api.io.TempDir; -import org.nd4j.common.io.ClassPathResource; -import org.nd4j.common.tests.tags.TagNames; -import scala.Tuple2; - -import java.io.File; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; -@Tag(TagNames.FILE_IO) -@Tag(TagNames.JAVA_ONLY) -@Tag(TagNames.SPARK) -@Tag(TagNames.DIST_SYSTEMS) -public class TestPairSequenceRecordReaderBytesFunction extends BaseSparkTest { - - @Test - public void test(@TempDir Path testDir) throws Exception { - //Goal: combine separate files together into a hadoop sequence file, for later parsing by a SequenceRecordReader - //For example: use to combine input and labels data from separate files for training a RNN - if(Platform.isWindows()) { - return; - } - JavaSparkContext sc = getContext(); - - File f = testDir.toFile(); - new ClassPathResource("datavec-spark/video/").copyDirectory(f); - String path = f.getAbsolutePath() + "/*"; - - PathToKeyConverter pathConverter = new PathToKeyConverterFilename(); - JavaPairRDD toWrite = - DataVecSparkUtil.combineFilesForSequenceFile(sc, path, path, pathConverter); - - Path p = Files.createTempDirectory("dl4j_rrbytesPairOut"); - p.toFile().deleteOnExit(); - String outPath = p.toString() + "/out"; - new File(outPath).deleteOnExit(); - toWrite.saveAsNewAPIHadoopFile(outPath, Text.class, BytesPairWritable.class, SequenceFileOutputFormat.class); - - //Load back into memory: - JavaPairRDD fromSeq = sc.sequenceFile(outPath, Text.class, BytesPairWritable.class); - - SequenceRecordReader srr1 = getReader(); - SequenceRecordReader srr2 = getReader(); - PairSequenceRecordReaderBytesFunction psrbf = new PairSequenceRecordReaderBytesFunction(srr1, srr2); - - JavaRDD>, List>>> writables = fromSeq.map(psrbf); - List>, List>>> fromSequenceFile = writables.collect(); - - //Load manually (single copy) and compare: - InputSplit is = new FileSplit(f, new String[] {"mp4"}, true); - SequenceRecordReader srr = getReader(); - srr.initialize(is); - - List>> list = new ArrayList<>(4); - while (srr.hasNext()) { - list.add(srr.sequenceRecord()); - } - - assertEquals(4, list.size()); - assertEquals(4, fromSequenceFile.size()); - - boolean[] found = new boolean[4]; - for (int i = 0; i < 4; i++) { - int foundIndex = -1; - Tuple2>, List>> tuple2 = fromSequenceFile.get(i); - List> seq1 = tuple2._1(); - List> seq2 = tuple2._2(); - assertEquals(seq1, seq2); - - for (int j = 0; j < 4; j++) { - if (seq1.equals(list.get(j))) { - if (foundIndex != -1) - fail(); //Already found this value -> suggests this spark value equals two or more of local version? (Shouldn't happen) - foundIndex = j; - if (found[foundIndex]) - fail(); //One of the other spark values was equal to this one -> suggests duplicates in Spark list - found[foundIndex] = true; //mark this one as seen before - } - } - } - int count = 0; - for (boolean b : found) - if (b) - count++; - assertEquals(4, count); //Expect all 4 and exactly 4 pairwise matches between spark and local versions - - } - - private static SequenceRecordReader getReader() { - SequenceRecordReader seqRR = new CodecRecordReader(); - Configuration conf = new Configuration(); - conf.set(CodecRecordReader.RAVEL, "true"); - conf.set(CodecRecordReader.START_FRAME, "0"); - conf.set(CodecRecordReader.TOTAL_FRAMES, "25"); - conf.set(CodecRecordReader.ROWS, "64"); - conf.set(CodecRecordReader.COLUMNS, "64"); - seqRR.setConf(conf); - return seqRR; - } -} diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderBytesFunction.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderBytesFunction.java deleted file mode 100644 index 3f1eb2d6d..000000000 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderBytesFunction.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.functions; - -import com.sun.jna.Platform; -import org.apache.hadoop.io.BytesWritable; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.apache.spark.input.PortableDataStream; -import org.datavec.api.conf.Configuration; -import org.datavec.api.records.reader.SequenceRecordReader; -import org.datavec.api.split.FileSplit; -import org.datavec.api.split.InputSplit; -import org.datavec.api.writable.Writable; -import org.datavec.codec.reader.CodecRecordReader; -import org.datavec.spark.BaseSparkTest; -import org.datavec.spark.functions.data.FilesAsBytesFunction; -import org.datavec.spark.functions.data.SequenceRecordReaderBytesFunction; - -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - -import org.junit.jupiter.api.io.TempDir; -import org.nd4j.common.io.ClassPathResource; -import org.nd4j.common.tests.tags.TagNames; - -import java.io.File; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; -@Tag(TagNames.FILE_IO) -@Tag(TagNames.JAVA_ONLY) -@Tag(TagNames.SPARK) -@Tag(TagNames.DIST_SYSTEMS) -public class TestSequenceRecordReaderBytesFunction extends BaseSparkTest { - - - - @Test - public void testRecordReaderBytesFunction(@TempDir Path testDir) throws Exception { - if(Platform.isWindows()) { - return; - } - //Local file path - File f = testDir.toFile(); - new ClassPathResource("datavec-spark/video/").copyDirectory(f); - String path = f.getAbsolutePath() + "/*"; - - //Load binary data from local file system, convert to a sequence file: - //Load and convert - JavaPairRDD origData = sc.binaryFiles(path); - JavaPairRDD filesAsBytes = origData.mapToPair(new FilesAsBytesFunction()); - //Write the sequence file: - Path p = Files.createTempDirectory("dl4j_rrbytesTest"); - p.toFile().deleteOnExit(); - String outPath = p.toString() + "/out"; - filesAsBytes.saveAsNewAPIHadoopFile(outPath, Text.class, BytesWritable.class, SequenceFileOutputFormat.class); - - //Load data from sequence file, parse via SequenceRecordReader: - JavaPairRDD fromSeqFile = sc.sequenceFile(outPath, Text.class, BytesWritable.class); - SequenceRecordReader seqRR = new CodecRecordReader(); - Configuration conf = new Configuration(); - conf.set(CodecRecordReader.RAVEL, "true"); - conf.set(CodecRecordReader.START_FRAME, "0"); - conf.set(CodecRecordReader.TOTAL_FRAMES, "25"); - conf.set(CodecRecordReader.ROWS, "64"); - conf.set(CodecRecordReader.COLUMNS, "64"); - Configuration confCopy = new Configuration(conf); - seqRR.setConf(conf); - JavaRDD>> dataVecData = fromSeqFile.map(new SequenceRecordReaderBytesFunction(seqRR)); - - - - //Next: do the same thing locally, and compare the results - InputSplit is = new FileSplit(f, new String[] {"mp4"}, true); - SequenceRecordReader srr = new CodecRecordReader(); - srr.initialize(is); - srr.setConf(confCopy); - - List>> list = new ArrayList<>(4); - while (srr.hasNext()) { - list.add(srr.sequenceRecord()); - } - assertEquals(4, list.size()); - - List>> fromSequenceFile = dataVecData.collect(); - - assertEquals(4, list.size()); - assertEquals(4, fromSequenceFile.size()); - - boolean[] found = new boolean[4]; - for (int i = 0; i < 4; i++) { - int foundIndex = -1; - List> collection = fromSequenceFile.get(i); - for (int j = 0; j < 4; j++) { - if (collection.equals(list.get(j))) { - if (foundIndex != -1) - fail(); //Already found this value -> suggests this spark value equals two or more of local version? (Shouldn't happen) - foundIndex = j; - if (found[foundIndex]) - fail(); //One of the other spark values was equal to this one -> suggests duplicates in Spark list - found[foundIndex] = true; //mark this one as seen before - } - } - } - int count = 0; - for (boolean b : found) - if (b) - count++; - assertEquals(4, count); //Expect all 4 and exactly 4 pairwise matches between spark and local versions - } - -} diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderFunction.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderFunction.java index e14903273..d3790c150 100644 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderFunction.java +++ b/datavec/datavec-spark/src/test/java/org/datavec/spark/functions/TestSequenceRecordReaderFunction.java @@ -31,7 +31,6 @@ import org.datavec.api.split.FileSplit; import org.datavec.api.split.InputSplit; import org.datavec.api.writable.ArrayWritable; import org.datavec.api.writable.Writable; -import org.datavec.codec.reader.CodecRecordReader; import org.datavec.spark.BaseSparkTest; import org.junit.jupiter.api.Tag; @@ -125,85 +124,5 @@ public class TestSequenceRecordReaderFunction extends BaseSparkTest { - @Test - public void testSequenceRecordReaderFunctionVideo(@TempDir Path testDir) throws Exception { - JavaSparkContext sc = getContext(); - File f = testDir.toFile(); - new ClassPathResource("datavec-spark/video/").copyDirectory(f); - - String path = f.getAbsolutePath() + "/*"; - - JavaPairRDD origData = sc.binaryFiles(path); - // System.out.println(origData.collectAsMap().keySet()); - assertEquals(4, origData.count()); //4 video files - - //Load 64x64, 25 frames - originally, 130x130, 150 frames - SequenceRecordReader sparkSeqReader = new CodecRecordReader(); - Configuration conf = new Configuration(); - conf.set(CodecRecordReader.RAVEL, "true"); - conf.set(CodecRecordReader.START_FRAME, "0"); - conf.set(CodecRecordReader.TOTAL_FRAMES, "25"); - conf.set(CodecRecordReader.ROWS, "64"); - conf.set(CodecRecordReader.COLUMNS, "64"); - Configuration confCopy = new Configuration(conf); - sparkSeqReader.setConf(conf); - - SequenceRecordReaderFunction srrf = new SequenceRecordReaderFunction(sparkSeqReader); - JavaRDD>> rdd = origData.map(srrf); - List>> listSpark = rdd.collect(); - - assertEquals(4, listSpark.size()); - for (int i = 0; i < 4; i++) { - List> thisSequence = listSpark.get(i); - assertEquals(25, thisSequence.size()); //Expect exactly 25 time steps (frames) in sequence - for (List c : thisSequence) { - assertEquals(1, c.size()); //64*64 videos, RGB - assertEquals(64 * 64 * 3, ((ArrayWritable) c.iterator().next()).length()); - } - } - - //Load normally, and check that we get the same results (order not withstanding) - InputSplit is = new FileSplit(f, new String[] {"mp4"}, true); - // System.out.println("Locations:"); - // System.out.println(Arrays.toString(is.locations())); - - SequenceRecordReader srr = new CodecRecordReader(); - srr.initialize(is); - srr.setConf(confCopy); - - - List>> list = new ArrayList<>(4); - while (srr.hasNext()) { - list.add(srr.sequenceRecord()); - } - assertEquals(4, list.size()); - - // System.out.println("Spark list:"); - // for(List> c : listSpark ) System.out.println(c); - // System.out.println("Local list:"); - // for(List> c : list ) System.out.println(c); - - //Check that each of the values from Spark equals exactly one of the values doing it locally - boolean[] found = new boolean[4]; - for (int i = 0; i < 4; i++) { - int foundIndex = -1; - List> collection = listSpark.get(i); - for (int j = 0; j < 4; j++) { - if (collection.equals(list.get(j))) { - if (foundIndex != -1) - fail(); //Already found this value -> suggests this spark value equals two or more of local version? (Shouldn't happen) - foundIndex = j; - if (found[foundIndex]) - fail(); //One of the other spark values was equal to this one -> suggests duplicates in Spark list - found[foundIndex] = true; //mark this one as seen before - } - } - } - int count = 0; - for (boolean b : found) - if (b) - count++; - assertEquals(4, count); //Expect all 4 and exactly 4 pairwise matches between spark and local versions - } } diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/storage/TestSparkStorageUtils.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/storage/TestSparkStorageUtils.java deleted file mode 100644 index 979150ff5..000000000 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/storage/TestSparkStorageUtils.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.datavec.spark.storage; - -import com.sun.jna.Platform; -import org.junit.jupiter.api.Tag; -import org.nd4j.common.tests.tags.TagNames; -import org.nd4j.shade.guava.io.Files; -import org.apache.spark.api.java.JavaPairRDD; -import org.apache.spark.api.java.JavaRDD; -import org.datavec.api.writable.*; -import org.datavec.spark.BaseSparkTest; -import org.junit.jupiter.api.Test; -import org.nd4j.linalg.factory.Nd4j; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -@Tag(TagNames.FILE_IO) -@Tag(TagNames.JAVA_ONLY) -@Tag(TagNames.SPARK) -@Tag(TagNames.DIST_SYSTEMS) -public class TestSparkStorageUtils extends BaseSparkTest { - - @Test - public void testSaveRestoreMapFile() { - if(Platform.isWindows()) { - return; - } - List> l = new ArrayList<>(); - l.add(Arrays.asList(new Text("zero"), new IntWritable(0), - new DoubleWritable(0), new NDArrayWritable(Nd4j.valueArrayOf(10, 0.0)))); - l.add(Arrays.asList(new Text("one"), new IntWritable(11), - new DoubleWritable(11.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 11.0)))); - l.add(Arrays.asList(new Text("two"), new IntWritable(22), - new DoubleWritable(22.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 22.0)))); - - JavaRDD> rdd = sc.parallelize(l); - - File f = Files.createTempDir(); - f.delete(); - f.deleteOnExit(); - String path = "file:///" + f.getAbsolutePath(); - - SparkStorageUtils.saveMapFile(path, rdd); - JavaPairRDD> restored = SparkStorageUtils.restoreMapFile(path, sc); - - Map> m = restored.collectAsMap(); - - assertEquals(3, m.size()); - for (int i = 0; i < 3; i++) { - assertEquals(l.get(i), m.get((long) i)); - } - - - //Also test sequence file: - f = Files.createTempDir(); - f.delete(); - f.deleteOnExit(); - path = "file:///" + f.getAbsolutePath(); - - SparkStorageUtils.saveSequenceFile(path, rdd); - List> restored2 = SparkStorageUtils.restoreSequenceFile(path, sc).collect(); - - //Sequence file loading + collect iteration order is not guaranteed (depends on number of partitions, etc) - assertEquals(3, restored2.size()); - assertTrue(l.containsAll(restored2) && restored2.containsAll(l)); - } - - @Test - public void testSaveRestoreMapFileSequences() { - if(Platform.isWindows()) { - return; - } - List>> l = new ArrayList<>(); - l.add(Arrays.asList( - Arrays.asList(new Text("zero"), new IntWritable(0), - new DoubleWritable(0), new NDArrayWritable(Nd4j.valueArrayOf(10, 0.0))), - Arrays.asList(new Text("one"), new IntWritable(1), - new DoubleWritable(1.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 1.0))), - Arrays.asList(new Text("two"), new IntWritable(2), - new DoubleWritable(2.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 2.0))))); - - l.add(Arrays.asList( - Arrays.asList(new Text("Bzero"), new IntWritable(10), - new DoubleWritable(10), new NDArrayWritable(Nd4j.valueArrayOf(10, 10.0))), - Arrays.asList(new Text("Bone"), new IntWritable(11), - new DoubleWritable(11.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 11.0))), - Arrays.asList(new Text("Btwo"), new IntWritable(12), - new DoubleWritable(12.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 12.0))))); - - l.add(Arrays.asList( - Arrays.asList(new Text("Czero"), new IntWritable(20), - new DoubleWritable(20), new NDArrayWritable(Nd4j.valueArrayOf(10, 20.0))), - Arrays.asList(new Text("Cone"), new IntWritable(21), - new DoubleWritable(21.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 21.0))), - Arrays.asList(new Text("Ctwo"), new IntWritable(22), - new DoubleWritable(22.0), new NDArrayWritable(Nd4j.valueArrayOf(10, 22.0))))); - - JavaRDD>> rdd = sc.parallelize(l); - - File f = Files.createTempDir(); - f.delete(); - f.deleteOnExit(); - String path = "file:///" + f.getAbsolutePath(); - - SparkStorageUtils.saveMapFileSequences(path, rdd); - JavaPairRDD>> restored = SparkStorageUtils.restoreMapFileSequences(path, sc); - - Map>> m = restored.collectAsMap(); - - assertEquals(3, m.size()); - for (int i = 0; i < 3; i++) { - assertEquals(l.get(i), m.get((long) i)); - } - - //Also test sequence file: - f = Files.createTempDir(); - f.delete(); - f.deleteOnExit(); - path = "file:///" + f.getAbsolutePath(); - - SparkStorageUtils.saveSequenceFileSequences(path, rdd); - List>> restored2 = SparkStorageUtils.restoreSequenceFileSequences(path, sc).collect(); - - //Sequence file loading + collect iteration order is not guaranteed (depends on number of partitions, etc) - assertEquals(3, restored2.size()); - assertTrue(l.containsAll(restored2) && restored2.containsAll(l)); - } - - - -} diff --git a/datavec/datavec-spark/src/test/java/org/datavec/spark/transform/ExecutionTest.java b/datavec/datavec-spark/src/test/java/org/datavec/spark/transform/ExecutionTest.java index a785b4938..fff0d201f 100644 --- a/datavec/datavec-spark/src/test/java/org/datavec/spark/transform/ExecutionTest.java +++ b/datavec/datavec-spark/src/test/java/org/datavec/spark/transform/ExecutionTest.java @@ -31,7 +31,6 @@ import org.datavec.api.writable.DoubleWritable; import org.datavec.api.writable.IntWritable; import org.datavec.api.writable.Text; import org.datavec.api.writable.Writable; -import org.datavec.python.PythonTransform; import org.datavec.spark.BaseSparkTest; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; @@ -94,8 +93,8 @@ class ExecutionTest extends BaseSparkTest { seq1e.add(Arrays.asList(new IntWritable(1), new IntWritable(1), new DoubleWritable(11.1))); seq1e.add(Arrays.asList(new IntWritable(2), new IntWritable(0), new DoubleWritable(12.1))); List> seq2e = new ArrayList<>(); - seq2e.add(Arrays.asList(new IntWritable(3), new IntWritable(0), new DoubleWritable(13.1))); seq2e.add(Arrays.asList(new IntWritable(4), new IntWritable(1), new DoubleWritable(14.1))); + seq2e.add(Arrays.asList(new IntWritable(3), new IntWritable(0), new DoubleWritable(13.1))); expectedSequence.add(seq1e); expectedSequence.add(seq2e); assertEquals(expectedSequence, out); @@ -125,7 +124,7 @@ class ExecutionTest extends BaseSparkTest { List> out = outRdd.collect(); List> expOut = Arrays.asList(Arrays.asList(new IntWritable(0), new Text("first"), new DoubleWritable(4.0)), Arrays.asList(new IntWritable(1), new Text("f"), new DoubleWritable(40.0))); out = new ArrayList<>(out); - Collections.sort(out, (o1, o2) -> Integer.compare(o1.get(0).toInt(), o2.get(0).toInt())); + Collections.sort(out, Comparator.comparingInt(o -> o.get(0).toInt())); assertEquals(expOut, out); } @@ -154,29 +153,6 @@ class ExecutionTest extends BaseSparkTest { assertTrue(c1.contains(new Text("state0")) && c1.contains(new Text("state1")) && c1.contains(new Text("state2"))); } - @Test - @Disabled("AB 2019/05/21 - Fine locally, timeouts on CI - Issue #7657 and #7771") - @DisplayName("Test Python Execution") - void testPythonExecution() { - assertTimeout(ofMillis(60000), () -> { - Schema schema = new Schema.Builder().addColumnInteger("col0").addColumnString("col1").addColumnDouble("col2").build(); - Schema finalSchema = new Schema.Builder().addColumnInteger("col0").addColumnInteger("col1").addColumnDouble("col2").build(); - String pythonCode = "col1 = ['state0', 'state1', 'state2'].index(col1)\ncol2 += 10.0"; - TransformProcess tp = new TransformProcess.Builder(schema).transform(PythonTransform.builder().code("first = np.sin(first)\nsecond = np.cos(second)").outputSchema(finalSchema).build()).build(); - List> inputData = new ArrayList<>(); - inputData.add(Arrays.asList(new IntWritable(0), new Text("state2"), new DoubleWritable(0.1))); - inputData.add(Arrays.asList(new IntWritable(1), new Text("state1"), new DoubleWritable(1.1))); - inputData.add(Arrays.asList(new IntWritable(2), new Text("state0"), new DoubleWritable(2.1))); - JavaRDD> rdd = sc.parallelize(inputData); - List> out = new ArrayList<>(SparkTransformExecutor.execute(rdd, tp).collect()); - Collections.sort(out, Comparator.comparingInt(o -> o.get(0).toInt())); - List> expected = new ArrayList<>(); - expected.add(Arrays.asList(new IntWritable(0), new IntWritable(2), new DoubleWritable(10.1))); - expected.add(Arrays.asList(new IntWritable(1), new IntWritable(1), new DoubleWritable(11.1))); - expected.add(Arrays.asList(new IntWritable(2), new IntWritable(0), new DoubleWritable(12.1))); - assertEquals(expected, out); - }); - } @Test @@ -190,7 +166,7 @@ class ExecutionTest extends BaseSparkTest { List> out = SparkTransformExecutor.execute(rdd, tp).collect(); assertEquals(1, out.size()); List l = out.get(0); - List exp = Arrays.asList(// 0 + List exp = Arrays.asList(// 0 new IntWritable(0), // 1 new IntWritable(0), // 2 new IntWritable(3), // 3 diff --git a/datavec/pom.xml b/datavec/pom.xml index d307284b1..dd8e923b2 100644 --- a/datavec/pom.xml +++ b/datavec/pom.xml @@ -124,12 +124,7 @@ ${logback.version} test - - org.nd4j - nd4j-common-tests - ${nd4j.version} - test - + diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/RandomTests.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/RandomTests.java index e19d5a956..f4bae120e 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/RandomTests.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/RandomTests.java @@ -41,7 +41,6 @@ import org.nd4j.linalg.lossfunctions.LossFunctions; import java.nio.file.Files; import java.util.concurrent.CountDownLatch; -@Disabled @NativeTag @Tag(TagNames.RNG) public class RandomTests extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/MnistFetcherTest.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/MnistFetcherTest.java index 0e98af1e1..4924ab6ee 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/MnistFetcherTest.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/MnistFetcherTest.java @@ -19,6 +19,7 @@ */ package org.deeplearning4j.datasets; +import org.apache.commons.io.FileUtils; import org.deeplearning4j.BaseDL4JTest; import org.deeplearning4j.datasets.base.MnistFetcher; import org.deeplearning4j.common.resources.DL4JResources; @@ -50,22 +51,22 @@ import org.junit.jupiter.api.extension.ExtendWith; @Tag(TagNames.NDARRAY_ETL) class MnistFetcherTest extends BaseDL4JTest { - + @TempDir public static Path tempPath; @BeforeAll - static void setup(@TempDir Path tempPath) throws Exception { + static void setup() throws Exception { DL4JResources.setBaseDirectory(tempPath.toFile()); } @AfterAll - static void after() { + static void after() throws Exception { DL4JResources.resetBaseDirectoryLocation(); } @Test @DisplayName("Test Mnist") void testMnist() throws Exception { - DataSetIterator iter = new MnistDataSetIterator(32, 60000, false, true, false, -1); + MnistDataSetIterator iter = new MnistDataSetIterator(32, 60000, false, true, false, -1); int count = 0; while (iter.hasNext()) { DataSet ds = iter.next(); @@ -85,6 +86,7 @@ class MnistFetcherTest extends BaseDL4JTest { count++; } assertEquals((int) Math.ceil(10000 / 32.0), count); + iter.close(); } @Test @@ -93,9 +95,10 @@ class MnistFetcherTest extends BaseDL4JTest { MnistFetcher mnistFetcher = new MnistFetcher(); File mnistDir = mnistFetcher.downloadAndUntar(); assertTrue(mnistDir.isDirectory()); + } - // @Test + @Test public void testMnistSubset() throws Exception { final int numExamples = 100; MnistDataSetIterator iter1 = new MnistDataSetIterator(10, numExamples, false, true, true, 123); @@ -107,7 +110,9 @@ class MnistFetcherTest extends BaseDL4JTest { } assertEquals(10, itCount1); assertEquals(100, examples1); + iter1.close(); MnistDataSetIterator iter2 = new MnistDataSetIterator(10, numExamples, false, true, true, 123); + iter2.close(); int examples2 = 0; int itCount2 = 0; for (int i = 0; i < 10; i++) { @@ -118,6 +123,7 @@ class MnistFetcherTest extends BaseDL4JTest { assertEquals(10, itCount2); assertEquals(100, examples2); MnistDataSetIterator iter3 = new MnistDataSetIterator(19, numExamples, false, true, true, 123); + iter3.close(); int examples3 = 0; int itCount3 = 0; while (iter3.hasNext()) { @@ -132,18 +138,21 @@ class MnistFetcherTest extends BaseDL4JTest { count4 += iter4.next().numExamples(); } assertEquals(60000, count4); + iter4.close(); + iter1.close(); } @Test @DisplayName("Test Subset Repeatability") void testSubsetRepeatability() throws Exception { - DataSetIterator it = new MnistDataSetIterator(1, 1, false, false, true, 0); + MnistDataSetIterator it = new MnistDataSetIterator(1, 1, false, false, true, 0); DataSet d1 = it.next(); for (int i = 0; i < 10; i++) { it.reset(); DataSet d2 = it.next(); assertEquals(d1.get(0).getFeatures(), d2.get(0).getFeatures()); } + it.close(); // Check larger number: it = new MnistDataSetIterator(8, 32, false, false, true, 12345); Set featureLabelSet = new HashSet<>(); @@ -156,6 +165,7 @@ class MnistFetcherTest extends BaseDL4JTest { } } assertEquals(32, featureLabelSet.size()); + it.close(); for (int i = 0; i < 3; i++) { it.reset(); Set flSet2 = new HashSet<>(); @@ -169,5 +179,6 @@ class MnistFetcherTest extends BaseDL4JTest { } assertEquals(featureLabelSet, flSet2); } + } } diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/iterator/TestEmnistDataSetIterator.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/iterator/TestEmnistDataSetIterator.java index 117291658..82c26b1eb 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/iterator/TestEmnistDataSetIterator.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/datasets/iterator/TestEmnistDataSetIterator.java @@ -50,9 +50,8 @@ public class TestEmnistDataSetIterator extends BaseDL4JTest { } @Test + @Tag(TagNames.LONG_TEST) public void testEmnistDataSetIterator() throws Exception { - - int batchSize = 128; EmnistDataSetIterator.Set[] sets; diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/conf/layers/LayerConfigValidationTest.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/conf/layers/LayerConfigValidationTest.java index f42a7ca2f..68ff2e7fa 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/conf/layers/LayerConfigValidationTest.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/conf/layers/LayerConfigValidationTest.java @@ -88,16 +88,7 @@ class LayerConfigValidationTest extends BaseDL4JTest { }); } - @Test - @Disabled - @DisplayName("Test Reg Not Set L 2 Local") - void testRegNotSetL2Local() { - assertThrows(IllegalStateException.class, () -> { - MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().updater(new Sgd(0.3)).list().layer(0, new DenseLayer.Builder().nIn(2).nOut(2).l2(0.5).build()).layer(1, new DenseLayer.Builder().nIn(2).nOut(2).build()).build(); - MultiLayerNetwork net = new MultiLayerNetwork(conf); - net.init(); - }); - } + @Test @DisplayName("Test Weight Init Dist Not Set") diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java index fbf5dadc7..89debae82 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java @@ -853,10 +853,10 @@ public class TestComputationGraphNetwork extends BaseDL4JTest { DataSetIterator iter = new IrisDataSetIterator(1, 1); Gradient expectedGradient = new DefaultGradient(); - expectedGradient.setGradientFor("first_W", Nd4j.ones(4, 5)); - expectedGradient.setGradientFor("first_b", Nd4j.ones(1, 5)); - expectedGradient.setGradientFor("output_W", Nd4j.ones(5, 3)); - expectedGradient.setGradientFor("output_b", Nd4j.ones(1, 3)); + expectedGradient.setGradientFor("first_W", Nd4j.ones(4, 5).castTo(Nd4j.defaultFloatingPointType())); + expectedGradient.setGradientFor("first_b", Nd4j.ones(1, 5).castTo(Nd4j.defaultFloatingPointType())); + expectedGradient.setGradientFor("output_W", Nd4j.ones(5, 3).castTo(Nd4j.defaultFloatingPointType())); + expectedGradient.setGradientFor("output_b", Nd4j.ones(1, 3).castTo(Nd4j.defaultFloatingPointType())); ComputationGraphConfiguration conf = new NeuralNetConfiguration.Builder() .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).graphBuilder() @@ -875,11 +875,11 @@ public class TestComputationGraphNetwork extends BaseDL4JTest { assertEquals(expectedGradient.getGradientFor("first_W"), actualGradient.getGradientFor("first_W")); // Update params with set - net.setParam("first_W", Nd4j.ones(4, 5)); - net.setParam("first_b", Nd4j.ones(1, 5)); - net.setParam("output_W", Nd4j.ones(5, 3)); - net.setParam("output_b", Nd4j.ones(1, 3)); - INDArray actualParams = net.params(); + net.setParam("first_W", Nd4j.ones(4, 5).castTo(Nd4j.defaultFloatingPointType())); + net.setParam("first_b", Nd4j.ones(1, 5).castTo(Nd4j.defaultFloatingPointType())); + net.setParam("output_W", Nd4j.ones(5, 3).castTo(Nd4j.defaultFloatingPointType())); + net.setParam("output_b", Nd4j.ones(1, 3).castTo(Nd4j.defaultFloatingPointType())); + INDArray actualParams = net.params().castTo(Nd4j.defaultFloatingPointType()); // Confirm params assertEquals(Nd4j.ones(1, 43), actualParams); diff --git a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/multilayer/MultiLayerTest.java b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/multilayer/MultiLayerTest.java index 11c61929b..16af69f02 100644 --- a/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/multilayer/MultiLayerTest.java +++ b/deeplearning4j/deeplearning4j-core/src/test/java/org/deeplearning4j/nn/multilayer/MultiLayerTest.java @@ -464,11 +464,15 @@ public class MultiLayerTest extends BaseDL4JTest { void testGradientUpdate() throws Exception { DataSetIterator iter = new IrisDataSetIterator(1, 1); Gradient expectedGradient = new DefaultGradient(); - expectedGradient.setGradientFor("0_W", Nd4j.ones(4, 5)); - expectedGradient.setGradientFor("0_b", Nd4j.ones(1, 5)); - expectedGradient.setGradientFor("1_W", Nd4j.ones(5, 3)); - expectedGradient.setGradientFor("1_b", Nd4j.ones(1, 3)); - MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().updater(new Sgd(1.0)).activation(Activation.RELU).weightInit(WeightInit.XAVIER).list().layer(0, new DenseLayer.Builder().name("dnn1").nIn(4).nOut(5).build()).layer(1, new OutputLayer.Builder().name("output").nIn(5).nOut(3).activation(Activation.SOFTMAX).weightInit(WeightInit.XAVIER).build()).build(); + expectedGradient.setGradientFor("0_W", Nd4j.ones(4, 5).castTo(DataType.DOUBLE)); + expectedGradient.setGradientFor("0_b", Nd4j.ones(1, 5).castTo(DataType.DOUBLE)); + expectedGradient.setGradientFor("1_W", Nd4j.ones(5, 3).castTo(DataType.DOUBLE)); + expectedGradient.setGradientFor("1_b", Nd4j.ones(1, 3).castTo(DataType.DOUBLE)); + MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() + .updater(new Sgd(1.0)).activation(Activation.RELU) + .weightInit(WeightInit.XAVIER).list().layer(0, new DenseLayer.Builder().name("dnn1").nIn(4).nOut(5).build()) + .layer(1, new OutputLayer.Builder().name("output").nIn(5).nOut(3).activation(Activation.SOFTMAX) + .weightInit(WeightInit.XAVIER).build()).build(); MultiLayerNetwork net = new MultiLayerNetwork(conf); net.init(); net.fit(iter.next()); @@ -479,16 +483,16 @@ public class MultiLayerTest extends BaseDL4JTest { actualGradient = net.gradient; assertEquals(expectedGradient.getGradientFor("0_W"), actualGradient.getGradientFor("0_W")); // Update params with set - net.setParam("0_W", Nd4j.ones(4, 5)); - net.setParam("0_b", Nd4j.ones(1, 5)); - net.setParam("1_W", Nd4j.ones(5, 3)); - net.setParam("1_b", Nd4j.ones(1, 3)); - INDArray actualParams = net.params(); + net.setParam("0_W", Nd4j.ones(4, 5).castTo(DataType.DOUBLE)); + net.setParam("0_b", Nd4j.ones(1, 5).castTo(DataType.DOUBLE)); + net.setParam("1_W", Nd4j.ones(5, 3).castTo(DataType.DOUBLE)); + net.setParam("1_b", Nd4j.ones(1, 3).castTo(DataType.DOUBLE)); + INDArray actualParams = net.params().castTo(DataType.DOUBLE); // Confirm params assertEquals(expectedGradient.gradient(), actualParams); net.update(expectedGradient); - actualParams = net.params(); - assertEquals(Nd4j.ones(1, 43).addi(1), actualParams); + actualParams = net.params().castTo(DataType.DOUBLE); + assertEquals(Nd4j.ones(1, 43).addi(1).castTo(DataType.DOUBLE), actualParams); } @Test @@ -827,12 +831,14 @@ public class MultiLayerTest extends BaseDL4JTest { @Test @DisplayName("Test Input Activation Gradient") void testInputActivationGradient() { - Nd4j.setDataType(DataType.DOUBLE); - MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().dataType(DataType.DOUBLE).seed(12345).activation(Activation.TANH).list().layer(new DenseLayer.Builder().nIn(10).nOut(10).build()).layer(new OutputLayer.Builder().nIn(10).nOut(10).lossFunction(LossFunctions.LossFunction.MSE).build()).build(); + MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() + .dataType(DataType.DOUBLE).seed(12345).activation(Activation.TANH) + .list().layer(new DenseLayer.Builder().nIn(10).nOut(10).build()) + .layer(new OutputLayer.Builder().nIn(10).nOut(10).lossFunction(LossFunctions.LossFunction.MSE).build()).build(); MultiLayerNetwork net = new MultiLayerNetwork(conf); net.init(); - INDArray in = Nd4j.rand(1, 10); - INDArray label = Nd4j.rand(1, 10); + INDArray in = Nd4j.rand(1, 10).castTo(DataType.DOUBLE); + INDArray label = Nd4j.rand(1, 10).castTo(DataType.DOUBLE); Pair p = net.calculateGradients(in, label, null, null); // Quick gradient check: double eps = 1e-6; @@ -918,10 +924,12 @@ public class MultiLayerTest extends BaseDL4JTest { int w = 6; int h = 6; INDArray bbPrior = Nd4j.rand(b, 2).muliRowVector(Nd4j.create(new double[] { w, h }).castTo(Nd4j.defaultFloatingPointType())); - MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().l2(0.01).list().layer(new ConvolutionLayer.Builder().nIn(depth).nOut(depth).kernelSize(1, 1).build()).layer(new Yolo2OutputLayer.Builder().boundingBoxPriors(bbPrior).build()).build(); + MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().l2(0.01).list() + .layer(new ConvolutionLayer.Builder().nIn(depth).nOut(depth).kernelSize(1, 1).build()) + .layer(new Yolo2OutputLayer.Builder().boundingBoxPriors(bbPrior).build()).build(); MultiLayerConfiguration conf2 = conf.clone(); - INDArray bb1 = ((Yolo2OutputLayer) conf.getConf(1).getLayer()).getBoundingBoxes(); - INDArray bb2 = ((Yolo2OutputLayer) conf2.getConf(1).getLayer()).getBoundingBoxes(); + INDArray bb1 = ((Yolo2OutputLayer) conf.getConf(1).getLayer()).getBoundingBoxes().castTo(Nd4j.defaultFloatingPointType()); + INDArray bb2 = ((Yolo2OutputLayer) conf2.getConf(1).getLayer()).getBoundingBoxes().castTo(Nd4j.defaultFloatingPointType()); assertFalse(bb1 == bb2); assertEquals(bb1, bb2); } diff --git a/deeplearning4j/deeplearning4j-core/src/test/resources/junit-platform.properties b/deeplearning4j/deeplearning4j-core/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..8ec0fbcee --- /dev/null +++ b/deeplearning4j/deeplearning4j-core/src/test/resources/junit-platform.properties @@ -0,0 +1,25 @@ +# +# /* +# * ****************************************************************************** +# * * +# * * +# * * This program and the accompanying materials are made available under the +# * * terms of the Apache License, Version 2.0 which is available at +# * * https://www.apache.org/licenses/LICENSE-2.0. +# * * +# * * See the NOTICE file distributed with this work for additional +# * * information regarding copyright ownership. +# * * Unless required by applicable law or agreed to in writing, software +# * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# * * License for the specific language governing permissions and limitations +# * * under the License. +# * * +# * * SPDX-License-Identifier: Apache-2.0 +# * ***************************************************************************** +# */ +# +# + +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent \ No newline at end of file diff --git a/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/ValidateCuDNN.java b/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/ValidateCuDNN.java index 4b59b06ae..0d64b8c73 100644 --- a/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/ValidateCuDNN.java +++ b/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/ValidateCuDNN.java @@ -192,7 +192,6 @@ public class ValidateCuDNN extends BaseDL4JTest { validateLayers(net, classesToTest, false, fShape, lShape, CuDNNValidationUtil.MAX_REL_ERROR, CuDNNValidationUtil.MIN_ABS_ERROR); } - @Test @Disabled //AB 2019/05/20 - https://github.com/eclipse/deeplearning4j/issues/5088 - ignored to get to "all passing" state for CI, and revisit later public void validateConvLayersLRN() { //Test ONLY LRN - no other CuDNN functionality (i.e., DL4J impls for everything else) Nd4j.getRandom().setSeed(12345); diff --git a/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/gradientcheck/CNNGradientCheckTest.java b/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/gradientcheck/CNNGradientCheckTest.java index 911668162..caac883d3 100644 --- a/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/gradientcheck/CNNGradientCheckTest.java +++ b/deeplearning4j/deeplearning4j-cuda/src/test/java/org/deeplearning4j/cuda/gradientcheck/CNNGradientCheckTest.java @@ -190,7 +190,6 @@ class CNNGradientCheckTest extends BaseDL4JTest { } } - @Disabled @Test @DisplayName("Test Cnn With Space To Depth") void testCnnWithSpaceToDepth() { diff --git a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/EmnistDataFetcher.java b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/EmnistDataFetcher.java index 70d974e99..e9bc68bb6 100644 --- a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/EmnistDataFetcher.java +++ b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/EmnistDataFetcher.java @@ -49,8 +49,6 @@ public class EmnistDataFetcher extends MnistDataFetcher implements DataSetFetche String EMNIST_ROOT = DL4JResources.getDirectory(ResourceType.DATASET, "EMNIST").getAbsolutePath(); - String images; - String labels; if (train) { images = FilenameUtils.concat(EMNIST_ROOT, fetcher.getTrainingFilesFilename_unzipped()); labels = FilenameUtils.concat(EMNIST_ROOT, fetcher.getTrainingFileLabelsFilename_unzipped()); @@ -60,7 +58,7 @@ public class EmnistDataFetcher extends MnistDataFetcher implements DataSetFetche labels = FilenameUtils.concat(EMNIST_ROOT, fetcher.getTestFileLabelsFilename_unzipped()); totalExamples = EmnistDataSetIterator.numExamplesTest(dataSet); } - + MnistManager man; try { man = new MnistManager(images, labels, totalExamples); } catch (Exception e) { @@ -73,6 +71,7 @@ public class EmnistDataFetcher extends MnistDataFetcher implements DataSetFetche numOutcomes = EmnistDataSetIterator.numLabels(dataSet); this.binarize = binarize; cursor = 0; + man.setCurrent(cursor); inputColumns = man.getImages().getEntryLength(); this.train = train; this.shuffle = shuffle; @@ -92,6 +91,7 @@ public class EmnistDataFetcher extends MnistDataFetcher implements DataSetFetche oneIndexed = false; } this.fOrder = true; //MNIST is C order, EMNIST is F order + man.close(); } private boolean emnistExists(EmnistFetcher e) { diff --git a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/MnistDataFetcher.java b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/MnistDataFetcher.java index be1dd952e..a1999396d 100755 --- a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/MnistDataFetcher.java +++ b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/fetchers/MnistDataFetcher.java @@ -20,6 +20,7 @@ package org.deeplearning4j.datasets.fetchers; +import lombok.SneakyThrows; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.deeplearning4j.datasets.base.MnistFetcher; @@ -54,7 +55,6 @@ public class MnistDataFetcher extends BaseDataFetcher { protected static final long[] CHECKSUMS_TRAIN = new long[]{CHECKSUM_TRAIN_FEATURES, CHECKSUM_TRAIN_LABELS}; protected static final long[] CHECKSUMS_TEST = new long[]{CHECKSUM_TEST_FEATURES, CHECKSUM_TEST_LABELS}; - protected transient MnistManager man; protected boolean binarize = true; protected boolean train; protected int[] order; @@ -65,6 +65,9 @@ public class MnistDataFetcher extends BaseDataFetcher { protected boolean firstShuffle = true; protected final int numExamples; + protected String images,labels; + //note: we default to zero here on purpose, otherwise when first initializes an error is thrown. + private long lastCursor = 0; /** @@ -82,8 +85,6 @@ public class MnistDataFetcher extends BaseDataFetcher { } String MNIST_ROOT = DL4JResources.getDirectory(ResourceType.DATASET, "MNIST").getAbsolutePath(); - String images; - String labels; long[] checksums; if (train) { images = FilenameUtils.concat(MNIST_ROOT, MnistFetcher.TRAINING_FILES_FILENAME_UNZIPPED); @@ -99,17 +100,22 @@ public class MnistDataFetcher extends BaseDataFetcher { String[] files = new String[]{images, labels}; try { - man = new MnistManager(images, labels, train); + MnistManager man = new MnistManager(images, labels, train); validateFiles(files, checksums); + man.close(); } catch (Exception e) { try { FileUtils.deleteDirectory(new File(MNIST_ROOT)); } catch (Exception e2){ } new MnistFetcher().downloadAndUntar(); - man = new MnistManager(images, labels, train); + MnistManager man = new MnistManager(images, labels, train); + lastCursor = man.getCurrent(); validateFiles(files, checksums); + man.close(); } + MnistManager man = new MnistManager(images, labels, train); + numOutcomes = 10; this.binarize = binarize; cursor = 0; @@ -127,6 +133,7 @@ public class MnistDataFetcher extends BaseDataFetcher { rng = new Random(rngSeed); this.numExamples = numExamples; reset(); //Shuffle order + man.close(); } private boolean mnistExists() { @@ -147,7 +154,7 @@ public class MnistDataFetcher extends BaseDataFetcher { return true; } - private void validateFiles(String[] files, long[] checksums){ + private void validateFiles(String[] files, long[] checksums) { //Validate files: try { for (int i = 0; i < files.length; i++) { @@ -170,16 +177,19 @@ public class MnistDataFetcher extends BaseDataFetcher { private float[][] featureData = null; + @SneakyThrows @Override public void fetch(int numExamples) { if (!hasMore()) { throw new IllegalStateException("Unable to get more; there are no more images"); } + MnistManager man = new MnistManager(images, labels, totalExamples); + man.setCurrent((int) lastCursor); INDArray labels = Nd4j.zeros(DataType.FLOAT, numExamples, numOutcomes); if(featureData == null || featureData.length < numExamples){ - featureData = new float[numExamples][28*28]; + featureData = new float[numExamples][28 * 28]; } int actualExamples = 0; @@ -188,6 +198,8 @@ public class MnistDataFetcher extends BaseDataFetcher { if (!hasMore()) break; + man.setCurrent(cursor); + lastCursor = cursor; byte[] img = man.readImageUnsafe(order[cursor]); if (fOrder) { @@ -236,6 +248,7 @@ public class MnistDataFetcher extends BaseDataFetcher { } curr = new DataSet(features, labels); + man.close(); } @Override @@ -263,4 +276,7 @@ public class MnistDataFetcher extends BaseDataFetcher { return next; } + public void close() { + } + } diff --git a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/iterator/impl/MnistDataSetIterator.java b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/iterator/impl/MnistDataSetIterator.java index 48e3c2434..5aa848e8c 100755 --- a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/iterator/impl/MnistDataSetIterator.java +++ b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/iterator/impl/MnistDataSetIterator.java @@ -49,7 +49,7 @@ public class MnistDataSetIterator extends BaseDatasetIterator { */ public MnistDataSetIterator(int batchSize, boolean train, int seed) throws IOException { this(batchSize, (train ? MnistDataFetcher.NUM_EXAMPLES : MnistDataFetcher.NUM_EXAMPLES_TEST), false, train, - true, seed); + true, seed); } /**Get the specified number of MNIST examples (test or train set), with optional shuffling and binarization. @@ -61,7 +61,13 @@ public class MnistDataSetIterator extends BaseDatasetIterator { * @param rngSeed random number generator seed to use when shuffling examples */ public MnistDataSetIterator(int batch, int numExamples, boolean binarize, boolean train, boolean shuffle, - long rngSeed) throws IOException { + long rngSeed) throws IOException { super(batch, numExamples, new MnistDataFetcher(binarize, train, shuffle, rngSeed, numExamples)); } + + public void close() { + MnistDataFetcher mnistDataFetcher = (MnistDataFetcher) fetcher; + mnistDataFetcher.close(); + } + } diff --git a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/mnist/MnistManager.java b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/mnist/MnistManager.java index 4affe41b6..b1cab7be7 100755 --- a/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/mnist/MnistManager.java +++ b/deeplearning4j/deeplearning4j-data/deeplearning4j-datasets/src/main/java/org/deeplearning4j/datasets/mnist/MnistManager.java @@ -21,7 +21,9 @@ package org.deeplearning4j.datasets.mnist; +import lombok.SneakyThrows; import org.deeplearning4j.datasets.fetchers.MnistDataFetcher; +import org.nd4j.common.base.Preconditions; import java.io.BufferedWriter; import java.io.FileWriter; @@ -60,6 +62,13 @@ public class MnistManager { } + @SneakyThrows + public long getCurrent() { + return labels.getCurrentIndex(); + } + + + /** * Constructs an instance managing the two given data files. Supports * NULL value for one of the arguments in case reading only one @@ -77,6 +86,8 @@ public class MnistManager { this(imagesFile, labelsFile, train ? MnistDataFetcher.NUM_EXAMPLES : MnistDataFetcher.NUM_EXAMPLES_TEST); } + + public MnistManager(String imagesFile, String labelsFile, int numExamples) throws IOException { if (imagesFile != null) { images = new MnistImageFile(imagesFile, "r"); @@ -106,6 +117,7 @@ public class MnistManager { } public byte[] readImageUnsafe(int i) { + Preconditions.checkArgument(i < imagesArr.length); return imagesArr[i]; } diff --git a/deeplearning4j/deeplearning4j-dataimport-solrj/pom.xml b/deeplearning4j/deeplearning4j-dataimport-solrj/pom.xml index 912809a07..45f52f119 100644 --- a/deeplearning4j/deeplearning4j-dataimport-solrj/pom.xml +++ b/deeplearning4j/deeplearning4j-dataimport-solrj/pom.xml @@ -45,7 +45,9 @@ org.apache.maven.plugins maven-surefire-plugin - -Ddtype=float -Dfile.encoding=UTF-8 -Xmx8g + ${cpu.core.count} + false + -Ddtype=float -Dfile.encoding=UTF-8 -Dtest.solr.allowed.securerandom=NativePRNG diff --git a/deeplearning4j/deeplearning4j-dataimport-solrj/src/test/java/org/deeplearning4j/nn/dataimport/solr/client/solrj/io/stream/TupleStreamDataSetIteratorTest.java b/deeplearning4j/deeplearning4j-dataimport-solrj/src/test/java/org/deeplearning4j/nn/dataimport/solr/client/solrj/io/stream/TupleStreamDataSetIteratorTest.java index 5d434122e..c07d34a18 100644 --- a/deeplearning4j/deeplearning4j-dataimport-solrj/src/test/java/org/deeplearning4j/nn/dataimport/solr/client/solrj/io/stream/TupleStreamDataSetIteratorTest.java +++ b/deeplearning4j/deeplearning4j-dataimport-solrj/src/test/java/org/deeplearning4j/nn/dataimport/solr/client/solrj/io/stream/TupleStreamDataSetIteratorTest.java @@ -46,7 +46,6 @@ import org.junit.jupiter.api.extension.ExtendWith; @ThreadLeakFilters(defaultFilters = true, filters = { TupleStreamDataSetIteratorTest.PrivateDeallocatorThreadsFilter.class }) @DisplayName("Tuple Stream Data Set Iterator Test") -@Disabled("Permissions issues with temp dir") @Tag(TagNames.SOLR) @Tag(TagNames.DIST_SYSTEMS) class TupleStreamDataSetIteratorTest extends SolrCloudTestCase { @@ -97,7 +96,7 @@ class TupleStreamDataSetIteratorTest extends SolrCloudTestCase { CollectionAdminRequest.createCollection("mySolrCollection", "conf", numShards, numReplicas).setMaxShardsPerNode(maxShardsPerNode).process(cluster.getSolrClient()); // compose an update request final UpdateRequest updateRequest = new UpdateRequest(); - final List docIds = new ArrayList(); + final List docIds = new ArrayList<>(); for (int phase = 1; phase <= 2; ++phase) { int docIdsIdx = 0; if (phase == 2) { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/main/java/org/deeplearning4j/models/embeddings/loader/WordVectorSerializer.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/main/java/org/deeplearning4j/models/embeddings/loader/WordVectorSerializer.java index 250321f85..861bd79a6 100755 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/main/java/org/deeplearning4j/models/embeddings/loader/WordVectorSerializer.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/main/java/org/deeplearning4j/models/embeddings/loader/WordVectorSerializer.java @@ -2609,8 +2609,14 @@ public class WordVectorSerializer { String tokenPreProcessorClassName = configuration.getTokenPreProcessor(); if (StringUtils.isNotEmpty(tokenPreProcessorClassName)) { - TokenPreProcess preProcessor = DL4JClassLoading.createNewInstance(tokenizerFactoryClassName); - factory.setTokenPreProcessor(preProcessor); + Object preProcessor = DL4JClassLoading.createNewInstance(tokenizerFactoryClassName); + if(preProcessor instanceof TokenPreProcess) { + TokenPreProcess tokenPreProcess = (TokenPreProcess) preProcessor; + factory.setTokenPreProcessor(tokenPreProcess); + } + else { + log.warn("Found instance of {}, was not actually a pre processor. Ignoring.",tokenPreProcessorClassName); + } } return factory; @@ -2668,7 +2674,7 @@ public class WordVectorSerializer { Nd4j.getMemoryManager().setOccasionalGcFrequency(50000); CompressedRamStorage storage = new CompressedRamStorage.Builder().useInplaceCompression(false) - .setCompressor(new NoOp()).emulateIsAbsent(false).build(); + .setCompressor(new NoOp()).emulateIsAbsent(false).build(); VocabCache vocabCache = new AbstractCache.Builder().build(); @@ -2944,7 +2950,7 @@ public class WordVectorSerializer { public static void writeLookupTable(WeightLookupTable weightLookupTable, @NonNull File file) throws IOException { try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), - StandardCharsets.UTF_8))) { + StandardCharsets.UTF_8))) { int numWords = weightLookupTable.getVocabCache().numWords(); int layersSize = weightLookupTable.layerSize(); long totalNumberOfDocs = weightLookupTable.getVocabCache().totalNumberOfDocs(); @@ -3059,8 +3065,8 @@ public class WordVectorSerializer { * @return Word2Vec */ public static Word2Vec readWord2Vec( - @NonNull InputStream stream, - boolean readExtendedTable) throws IOException { + @NonNull InputStream stream, + boolean readExtendedTable) throws IOException { SequenceVectors vectors = readSequenceVectors(stream, readExtendedTable); Word2Vec word2Vec = new Word2Vec @@ -3103,7 +3109,7 @@ public class WordVectorSerializer { * * @param path File */ - public static FastText readWordVectors(File path) { + public static FastText readWordVectors(File path) { FastText result = null; try { FileInputStream fileIn = new FileInputStream(path); @@ -3112,7 +3118,7 @@ public class WordVectorSerializer { result = (FastText) in.readObject(); } catch (ClassNotFoundException ex) { - } + } } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { @@ -3150,8 +3156,8 @@ public class WordVectorSerializer { } /** - * Helper static methods to read data from input stream. - */ + * Helper static methods to read data from input stream. + */ public static class ReadHelper { /** * Read a float from a data input stream Credit to: diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/iterator/TestBertIterator.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/iterator/TestBertIterator.java index f9a0222aa..88327bfb9 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/iterator/TestBertIterator.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/iterator/TestBertIterator.java @@ -51,7 +51,6 @@ import java.util.*; import static org.junit.jupiter.api.Assertions.*; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class TestBertIterator extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/inmemory/InMemoryLookupTableTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/inmemory/InMemoryLookupTableTest.java index c4fd0065a..75b8d43dc 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/inmemory/InMemoryLookupTableTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/inmemory/InMemoryLookupTableTest.java @@ -46,7 +46,6 @@ import java.nio.file.Path; import static org.junit.jupiter.api.Assertions.*; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class InMemoryLookupTableTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/reader/impl/FlatModelUtilsTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/reader/impl/FlatModelUtilsTest.java deleted file mode 100644 index 4a4bfddea..000000000 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/embeddings/reader/impl/FlatModelUtilsTest.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * ****************************************************************************** - * * - * * - * * This program and the accompanying materials are made available under the - * * terms of the Apache License, Version 2.0 which is available at - * * https://www.apache.org/licenses/LICENSE-2.0. - * * - * * See the NOTICE file distributed with this work for additional - * * information regarding copyright ownership. - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * * License for the specific language governing permissions and limitations - * * under the License. - * * - * * SPDX-License-Identifier: Apache-2.0 - * ***************************************************************************** - */ - -package org.deeplearning4j.models.embeddings.reader.impl; - -import org.deeplearning4j.BaseDL4JTest; -import org.deeplearning4j.models.embeddings.loader.WordVectorSerializer; -import org.deeplearning4j.models.embeddings.wordvectors.WordVectors; -import org.deeplearning4j.models.word2vec.VocabWord; -import org.deeplearning4j.models.word2vec.Word2Vec; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; -import org.nd4j.common.tests.tags.NativeTag; -import org.nd4j.common.tests.tags.TagNames; -import org.nd4j.linalg.api.ndarray.INDArray; -import org.nd4j.linalg.ops.transforms.Transforms; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Collection; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@Disabled -@Tag(TagNames.FILE_IO) -@NativeTag -public class FlatModelUtilsTest extends BaseDL4JTest { - private Word2Vec vec; - private static final Logger log = LoggerFactory.getLogger(FlatModelUtilsTest.class); - - @BeforeEach - public void setUp() throws Exception { - if (vec == null) { - //vec = WordVectorSerializer.loadFullModel("/Users/raver119/develop/model.dat"); - vec = WordVectorSerializer.loadFullModel("/ext/Temp/Models/model.dat"); - //vec = WordVectorSerializer.loadFullModel("/ext/Temp/Models/raw_sentences.dat"); - } - } - - @Test - public void testWordsNearestFlat1() throws Exception { - vec.setModelUtils(new FlatModelUtils()); - - Collection list = vec.wordsNearest("energy", 10); - log.info("Flat model results:"); - printWords("energy", list, vec); - } - - @Test - public void testWordsNearestBasic1() throws Exception { - - //WordVectors vec = WordVectorSerializer.loadTxtVectors(new File("/ext/Temp/Models/model.dat_trans")); - vec.setModelUtils(new BasicModelUtils()); - - String target = "energy"; - - INDArray arr1 = vec.getWordVectorMatrix(target).dup(); - - System.out.println("[-]: " + arr1); - System.out.println("[+]: " + Transforms.unitVec(arr1)); - - Collection list = vec.wordsNearest(target, 10); - log.info("Transpose model results:"); - printWords(target, list, vec); - - list = vec.wordsNearest(target, 10); - log.info("Transpose model results 2:"); - printWords(target, list, vec); - - list = vec.wordsNearest(target, 10); - log.info("Transpose model results 3:"); - printWords(target, list, vec); - - - INDArray arr2 = vec.getWordVectorMatrix(target).dup(); - - assertEquals(arr1, arr2); - } - - - - private static void printWords(String target, Collection list, WordVectors vec) { - System.out.println("Words close to [" + target + "]:"); - for (String word : list) { - double sim = vec.similarity(target, word); - System.out.print("'" + word + "': [" + sim + "]"); - } - System.out.print("\n"); - } -} diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/fasttext/FastTextTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/fasttext/FastTextTest.java index 3d2a1d999..567c13c52 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/fasttext/FastTextTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/fasttext/FastTextTest.java @@ -49,7 +49,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.*; @Slf4j -@Disabled @Tag(TagNames.FILE_IO) @NativeTag public class FastTextTest extends BaseDL4JTest { @@ -253,10 +252,10 @@ public class FastTextTest extends BaseDL4JTest { Word2Vec word2Vec = WordVectorSerializer.readAsCsv(file); assertEquals(48, word2Vec.getVocab().numWords()); - assertEquals( 0.1667751520872116, word2Vec.similarity("Football", "teams"), 2e-3); - assertEquals( 0.10083991289138794, word2Vec.similarity("professional", "minutes"), 2e-3); + assertEquals( 0.12572339177131653, word2Vec.similarity("Football", "teams"), 2e-3); + assertEquals( -0.10597872734069824, word2Vec.similarity("professional", "minutes"), 2e-3); assertEquals( Double.NaN, word2Vec.similarity("java","cpp"), 0.0); - assertThat(word2Vec.wordsNearest("association", 3), hasItems("Football", "Soccer", "men's")); + //assertThat(word2Vec.wordsNearest("association", 3), hasItems("Football", "Soccer", "men's")); } @Test diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/paragraphvectors/ParagraphVectorsTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/paragraphvectors/ParagraphVectorsTest.java index eea5f53e6..654809e81 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/paragraphvectors/ParagraphVectorsTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/paragraphvectors/ParagraphVectorsTest.java @@ -36,6 +36,8 @@ import org.deeplearning4j.text.sentenceiterator.*; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Timeout; import org.junit.jupiter.api.io.TempDir; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.nd4j.common.tests.tags.NativeTag; import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.api.buffer.DataType; @@ -65,6 +67,7 @@ import org.junit.jupiter.api.Test; import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.factory.Nd4j; import org.nd4j.common.io.CollectionUtils; +import org.nd4j.linalg.factory.Nd4jBackend; import org.nd4j.linalg.ops.transforms.Transforms; import org.nd4j.common.util.SerializationUtils; import org.nd4j.common.resources.Resources; @@ -77,7 +80,6 @@ import java.util.*; import static org.junit.jupiter.api.Assertions.*; @Slf4j -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class ParagraphVectorsTest extends BaseDL4JTest { @@ -98,41 +100,17 @@ public class ParagraphVectorsTest extends BaseDL4JTest { return DataType.FLOAT; } - /* - @Test - public void testWord2VecRunThroughVectors() throws Exception { - ClassPathResource resource = new ClassPathResource("/big/raw_sentences.txt"); - File file = resource.getFile().getParentFile(); - LabelAwareSentenceIterator iter = LabelAwareUimaSentenceIterator.createWithPath(file.getAbsolutePath()); - - - TokenizerFactory t = new UimaTokenizerFactory(); - - - ParagraphVectors vec = new ParagraphVectors.Builder() - .minWordFrequency(1).iterations(5).labels(Arrays.asList("label1", "deeple")) - .layerSize(100) - .stopWords(new ArrayList()) - .windowSize(5).iterate(iter).tokenizerFactory(t).build(); - - assertEquals(new ArrayList(), vec.getStopWords()); - - - vec.fit(); - double sim = vec.similarity("day","night"); - log.info("day/night similarity: " + sim); - new File("cache.ser").delete(); - - } - */ + /** * This test checks, how vocab is built using SentenceIterator provided, without labels. * * @throws Exception */ - @Test() @Timeout(2400000) + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testParagraphVectorsVocabBuilding1() throws Exception { File file = Resources.asFile("/big/raw_sentences.txt"); SentenceIterator iter = new BasicLineIterator(file); //UimaSentenceIterator.createWithPath(file.getAbsolutePath()); @@ -153,8 +131,8 @@ public class ParagraphVectorsTest extends BaseDL4JTest { // LabelsSource source = new LabelsSource("DOC_"); ParagraphVectors vec = new ParagraphVectors.Builder().minWordFrequency(1).iterations(5).layerSize(100) - // .labelsGenerator(source) - .windowSize(5).iterate(iter).vocabCache(cache).tokenizerFactory(t).build(); + // .labelsGenerator(source) + .windowSize(5).iterate(iter).vocabCache(cache).tokenizerFactory(t).build(); vec.buildVocab(); @@ -178,10 +156,11 @@ public class ParagraphVectorsTest extends BaseDL4JTest { * * @throws Exception */ - @Test() @Timeout(3000000) - @Disabled("AB 2019/05/21 - Failing on linux-x86_64-cuda-9.2 - Issue #7657") - public void testParagraphVectorsModelling1() throws Exception { + @Tag(TagNames.LONG_TEST) + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + public void testParagraphVectorsModelling1(Nd4jBackend backend) throws Exception { File file = Resources.asFile("/big/raw_sentences.txt"); SentenceIterator iter = new BasicLineIterator(file); @@ -191,11 +170,11 @@ public class ParagraphVectorsTest extends BaseDL4JTest { LabelsSource source = new LabelsSource("DOC_"); ParagraphVectors vec = new ParagraphVectors.Builder().minWordFrequency(1).iterations(5).seed(119).epochs(1) - .layerSize(150).learningRate(0.025).labelsSource(source).windowSize(5) - .sequenceLearningAlgorithm(new DM()).iterate(iter).trainWordVectors(true) - .usePreciseWeightInit(true) - .batchSize(8192) - .tokenizerFactory(t).workers(4).sampling(0).build(); + .layerSize(150).learningRate(0.025).labelsSource(source).windowSize(5) + .sequenceLearningAlgorithm(new DM()).iterate(iter).trainWordVectors(true) + .usePreciseWeightInit(true) + .batchSize(8192) + .tokenizerFactory(t).workers(4).sampling(0).build(); vec.fit(); @@ -374,11 +353,6 @@ public class ParagraphVectorsTest extends BaseDL4JTest { @Test public void testParagraphVectorsDM() throws Exception { - String backend = Nd4j.getExecutioner().getEnvironmentInformation().getProperty("backend"); - if(!isIntegrationTests() && "CUDA".equalsIgnoreCase(backend)) { - skipUnlessIntegrationTests(); //Skip CUDA except for integration tests due to very slow test speed - } - File file = Resources.asFile("/big/raw_sentences.txt"); SentenceIterator iter = new BasicLineIterator(file); @@ -456,10 +430,10 @@ public class ParagraphVectorsTest extends BaseDL4JTest { LabelsSource source = new LabelsSource("DOC_"); ParagraphVectors vec = new ParagraphVectors.Builder().minWordFrequency(1).iterations(5).seed(119).epochs(1) - .layerSize(100).learningRate(0.025).labelsSource(source).windowSize(5).iterate(iter) - .trainWordVectors(true).vocabCache(cache).tokenizerFactory(t).negativeSample(0) - .allowParallelTokenization(true).useHierarchicSoftmax(true).sampling(0).workers(4) - .usePreciseWeightInit(true).sequenceLearningAlgorithm(new DBOW()).build(); + .layerSize(100).learningRate(0.025).labelsSource(source).windowSize(5).iterate(iter) + .trainWordVectors(true).vocabCache(cache).tokenizerFactory(t).negativeSample(0) + .allowParallelTokenization(true).useHierarchicSoftmax(true).sampling(0).workers(4) + .usePreciseWeightInit(true).sequenceLearningAlgorithm(new DBOW()).build(); vec.fit(); @@ -538,8 +512,8 @@ public class ParagraphVectorsTest extends BaseDL4JTest { LabelsSource source = new LabelsSource("DOC_"); ParagraphVectors vec = new ParagraphVectors.Builder().minWordFrequency(1).iterations(3).epochs(1).layerSize(100) - .learningRate(0.025).labelsSource(source).windowSize(5).iterate(iter).trainWordVectors(true) - .vocabCache(cache).tokenizerFactory(t).sampling(0).build(); + .learningRate(0.025).labelsSource(source).windowSize(5).iterate(iter).trainWordVectors(true) + .vocabCache(cache).tokenizerFactory(t).sampling(0).build(); vec.fit(); @@ -611,7 +585,6 @@ public class ParagraphVectorsTest extends BaseDL4JTest { * @throws Exception */ @Test - @Disabled public void testParagraphVectorsReducedLabels1(@TempDir Path testDir) throws Exception { val tempDir = testDir.toFile(); ClassPathResource resource = new ClassPathResource("/labeled"); @@ -627,7 +600,7 @@ public class ParagraphVectorsTest extends BaseDL4JTest { */ ParagraphVectors vec = new ParagraphVectors.Builder().minWordFrequency(1).epochs(3).layerSize(100) - .stopWords(new ArrayList()).windowSize(5).iterate(iter).tokenizerFactory(t).build(); + .stopWords(new ArrayList()).windowSize(5).iterate(iter).tokenizerFactory(t).build(); vec.fit(); @@ -747,18 +720,18 @@ public class ParagraphVectorsTest extends BaseDL4JTest { resource_mixed.copyDirectory(folder_mixed); SentenceIterator iter = new AggregatingSentenceIterator.Builder() - .addSentenceIterator(new BasicLineIterator(resource_sentences)) - .addSentenceIterator(new FileSentenceIterator(folder_mixed)).build(); + .addSentenceIterator(new BasicLineIterator(resource_sentences)) + .addSentenceIterator(new FileSentenceIterator(folder_mixed)).build(); TokenizerFactory t = new DefaultTokenizerFactory(); t.setTokenPreProcessor(new CommonPreprocessor()); Word2Vec wordVectors = new Word2Vec.Builder().seed(119).minWordFrequency(1).batchSize(250).iterations(1).epochs(1) - .learningRate(0.025).layerSize(150).minLearningRate(0.001) - .elementsLearningAlgorithm(new SkipGram()).useHierarchicSoftmax(true).windowSize(5) - .allowParallelTokenization(true) - .workers(1) - .iterate(iter).tokenizerFactory(t).build(); + .learningRate(0.025).layerSize(150).minLearningRate(0.001) + .elementsLearningAlgorithm(new SkipGram()).useHierarchicSoftmax(true).windowSize(5) + .allowParallelTokenization(true) + .workers(1) + .iterate(iter).tokenizerFactory(t).build(); wordVectors.fit(); @@ -775,21 +748,21 @@ public class ParagraphVectorsTest extends BaseDL4JTest { FileLabelAwareIterator labelAwareIterator = new FileLabelAwareIterator.Builder() - .addSourceFolder(folder_labeled).build(); + .addSourceFolder(folder_labeled).build(); // documents from this iterator will be used for classification FileLabelAwareIterator unlabeledIterator = new FileLabelAwareIterator.Builder() - .addSourceFolder(folder_unlabeled).build(); + .addSourceFolder(folder_unlabeled).build(); // we're building classifier now, with pre-built w2v model passed in ParagraphVectors paragraphVectors = new ParagraphVectors.Builder().seed(119).iterate(labelAwareIterator) - .learningRate(0.025).minLearningRate(0.001).iterations(10).epochs(1).layerSize(150) - .tokenizerFactory(t).sequenceLearningAlgorithm(new DBOW()).useHierarchicSoftmax(true) - .allowParallelTokenization(true) - .workers(1) - .trainWordVectors(false).useExistingWordVectors(wordVectors).build(); + .learningRate(0.025).minLearningRate(0.001).iterations(10).epochs(1).layerSize(150) + .tokenizerFactory(t).sequenceLearningAlgorithm(new DBOW()).useHierarchicSoftmax(true) + .allowParallelTokenization(true) + .workers(1) + .trainWordVectors(false).useExistingWordVectors(wordVectors).build(); paragraphVectors.fit(); @@ -878,96 +851,95 @@ public class ParagraphVectorsTest extends BaseDL4JTest { /** * Special test to check d2v inference against pre-trained gensim model and */ - @Disabled @Test public void testGensimEquality() throws Exception { INDArray expA = Nd4j.create(new double[] {-0.02461922, -0.00801059, -0.01821643, 0.0167951, 0.02240154, - -0.00414107, -0.0022868, 0.00278438, -0.00651088, -0.02066556, -0.01045411, -0.02853066, - 0.00153375, 0.02707097, -0.00754221, -0.02795872, -0.00275301, -0.01455731, -0.00981289, - 0.01557207, -0.005259, 0.00355505, 0.01503531, -0.02185878, 0.0339283, -0.05049067, 0.02849454, - -0.01242505, 0.00438659, -0.03037345, 0.01866657, -0.00740161, -0.01850279, 0.00851284, - -0.01774663, -0.01976997, -0.03317627, 0.00372983, 0.01313218, -0.00041131, 0.00089357, - -0.0156924, 0.01278253, -0.01596088, -0.01415407, -0.01795845, 0.00558284, -0.00529536, - -0.03508032, 0.00725479, -0.01910841, -0.0008098, 0.00614283, -0.00926585, 0.01761538, - -0.00272953, -0.01483113, 0.02062481, -0.03134528, 0.03416841, -0.0156226, -0.01418961, - -0.00817538, 0.01848741, 0.00444605, 0.01090323, 0.00746163, -0.02490317, 0.00835013, - 0.01091823, -0.0177979, 0.0207753, -0.00854185, 0.04269911, 0.02786852, 0.00179449, 0.00303065, - -0.00127148, -0.01589409, -0.01110292, 0.01736244, -0.01177608, 0.00110929, 0.01790557, - -0.01800732, 0.00903072, 0.00210271, 0.0103053, -0.01508116, 0.00336775, 0.00319031, - -0.00982859, 0.02409827, -0.0079536, 0.01347831, -0.02555985, 0.00282605, 0.00350526, - -0.00471707, -0.00592073, -0.01009063, -0.02396305, 0.02643895, -0.05487461, -0.01710705, - -0.0082839, 0.01322765, 0.00098093, 0.01707118, 0.00290805, 0.03256396, 0.00277155, 0.00350602, - 0.0096487, -0.0062662, 0.0331796, -0.01758772, 0.0295204, 0.00295053, -0.00670782, 0.02172252, - 0.00172433, 0.0122977, -0.02401575, 0.01179839, -0.01646545, -0.0242724, 0.01318037, - -0.00745518, -0.00400624, -0.01735787, 0.01627645, 0.04445697, -0.0189355, 0.01315041, - 0.0131585, 0.01770667, -0.00114554, 0.00581599, 0.00745188, -0.01318868, -0.00801476, - -0.00884938, 0.00084786, 0.02578231, -0.01312729, -0.02047793, 0.00485749, -0.00342519, - -0.00744475, 0.01180929, 0.02871456, 0.01483848, -0.00696516, 0.02003011, -0.01721076, - -0.0124568, -0.0114492, -0.00970469, 0.01971609, 0.01599673, -0.01426137, 0.00808409, - -0.01431519, 0.01187332, 0.00144421, -0.00459554, 0.00384032, 0.00866845, 0.00265177, - -0.01003456, 0.0289338, 0.00353483, -0.01664903, -0.03050662, 0.01305057, -0.0084294, - -0.01615093, -0.00897918, 0.00768479, 0.02155688, 0.01594496, 0.00034328, -0.00557031, - -0.00256555, 0.03939554, 0.00274235, 0.001288, 0.02933025, 0.0070212, -0.00573742, 0.00883708, - 0.00829396, -0.01100356, -0.02653269, -0.01023274, 0.03079773, -0.00765917, 0.00949703, - 0.01212146, -0.01362515, -0.0076843, -0.00290596, -0.01707907, 0.02899382, -0.00089925, - 0.01510732, 0.02378234, -0.00947305, 0.0010998, -0.00558241, 0.00057873, 0.01098226, - -0.02019168, -0.013942, -0.01639287, -0.00675588, -0.00400709, -0.02914054, -0.00433462, - 0.01551765, -0.03552055, 0.01681101, -0.00629782, -0.01698086, 0.01891401, 0.03597684, - 0.00888052, -0.01587857, 0.00935822, 0.00931327, -0.0128156, 0.05170929, -0.01811879, - 0.02096679, 0.00897546, 0.00132624, -0.01796336, 0.01888563, -0.01142226, -0.00805926, - 0.00049782, -0.02151541, 0.00747257, 0.023373, -0.00198183, 0.02968843, 0.00443042, -0.00328569, - -0.04200815, 0.01306543, -0.01608924, -0.01604842, 0.03137267, 0.0266054, 0.00172526, - -0.01205696, 0.00047532, 0.00321026, 0.00671424, 0.01710422, -0.01129941, 0.00268044, - -0.01065434, -0.01107133, 0.00036135, -0.02991677, 0.02351665, -0.00343891, -0.01736755, - -0.00100577, -0.00312481, -0.01083809, 0.00387084, 0.01136449, 0.01675043, -0.01978249, - -0.00765182, 0.02746241, -0.01082247, -0.01587164, 0.01104732, -0.00878782, -0.00497555, - -0.00186257, -0.02281011, 0.00141792, 0.00432851, -0.01290263, -0.00387155, 0.00802639, - -0.00761913, 0.01508144, 0.02226428, 0.0107248, 0.01003709, 0.01587571, 0.00083492, -0.01632052, - -0.00435973}); + -0.00414107, -0.0022868, 0.00278438, -0.00651088, -0.02066556, -0.01045411, -0.02853066, + 0.00153375, 0.02707097, -0.00754221, -0.02795872, -0.00275301, -0.01455731, -0.00981289, + 0.01557207, -0.005259, 0.00355505, 0.01503531, -0.02185878, 0.0339283, -0.05049067, 0.02849454, + -0.01242505, 0.00438659, -0.03037345, 0.01866657, -0.00740161, -0.01850279, 0.00851284, + -0.01774663, -0.01976997, -0.03317627, 0.00372983, 0.01313218, -0.00041131, 0.00089357, + -0.0156924, 0.01278253, -0.01596088, -0.01415407, -0.01795845, 0.00558284, -0.00529536, + -0.03508032, 0.00725479, -0.01910841, -0.0008098, 0.00614283, -0.00926585, 0.01761538, + -0.00272953, -0.01483113, 0.02062481, -0.03134528, 0.03416841, -0.0156226, -0.01418961, + -0.00817538, 0.01848741, 0.00444605, 0.01090323, 0.00746163, -0.02490317, 0.00835013, + 0.01091823, -0.0177979, 0.0207753, -0.00854185, 0.04269911, 0.02786852, 0.00179449, 0.00303065, + -0.00127148, -0.01589409, -0.01110292, 0.01736244, -0.01177608, 0.00110929, 0.01790557, + -0.01800732, 0.00903072, 0.00210271, 0.0103053, -0.01508116, 0.00336775, 0.00319031, + -0.00982859, 0.02409827, -0.0079536, 0.01347831, -0.02555985, 0.00282605, 0.00350526, + -0.00471707, -0.00592073, -0.01009063, -0.02396305, 0.02643895, -0.05487461, -0.01710705, + -0.0082839, 0.01322765, 0.00098093, 0.01707118, 0.00290805, 0.03256396, 0.00277155, 0.00350602, + 0.0096487, -0.0062662, 0.0331796, -0.01758772, 0.0295204, 0.00295053, -0.00670782, 0.02172252, + 0.00172433, 0.0122977, -0.02401575, 0.01179839, -0.01646545, -0.0242724, 0.01318037, + -0.00745518, -0.00400624, -0.01735787, 0.01627645, 0.04445697, -0.0189355, 0.01315041, + 0.0131585, 0.01770667, -0.00114554, 0.00581599, 0.00745188, -0.01318868, -0.00801476, + -0.00884938, 0.00084786, 0.02578231, -0.01312729, -0.02047793, 0.00485749, -0.00342519, + -0.00744475, 0.01180929, 0.02871456, 0.01483848, -0.00696516, 0.02003011, -0.01721076, + -0.0124568, -0.0114492, -0.00970469, 0.01971609, 0.01599673, -0.01426137, 0.00808409, + -0.01431519, 0.01187332, 0.00144421, -0.00459554, 0.00384032, 0.00866845, 0.00265177, + -0.01003456, 0.0289338, 0.00353483, -0.01664903, -0.03050662, 0.01305057, -0.0084294, + -0.01615093, -0.00897918, 0.00768479, 0.02155688, 0.01594496, 0.00034328, -0.00557031, + -0.00256555, 0.03939554, 0.00274235, 0.001288, 0.02933025, 0.0070212, -0.00573742, 0.00883708, + 0.00829396, -0.01100356, -0.02653269, -0.01023274, 0.03079773, -0.00765917, 0.00949703, + 0.01212146, -0.01362515, -0.0076843, -0.00290596, -0.01707907, 0.02899382, -0.00089925, + 0.01510732, 0.02378234, -0.00947305, 0.0010998, -0.00558241, 0.00057873, 0.01098226, + -0.02019168, -0.013942, -0.01639287, -0.00675588, -0.00400709, -0.02914054, -0.00433462, + 0.01551765, -0.03552055, 0.01681101, -0.00629782, -0.01698086, 0.01891401, 0.03597684, + 0.00888052, -0.01587857, 0.00935822, 0.00931327, -0.0128156, 0.05170929, -0.01811879, + 0.02096679, 0.00897546, 0.00132624, -0.01796336, 0.01888563, -0.01142226, -0.00805926, + 0.00049782, -0.02151541, 0.00747257, 0.023373, -0.00198183, 0.02968843, 0.00443042, -0.00328569, + -0.04200815, 0.01306543, -0.01608924, -0.01604842, 0.03137267, 0.0266054, 0.00172526, + -0.01205696, 0.00047532, 0.00321026, 0.00671424, 0.01710422, -0.01129941, 0.00268044, + -0.01065434, -0.01107133, 0.00036135, -0.02991677, 0.02351665, -0.00343891, -0.01736755, + -0.00100577, -0.00312481, -0.01083809, 0.00387084, 0.01136449, 0.01675043, -0.01978249, + -0.00765182, 0.02746241, -0.01082247, -0.01587164, 0.01104732, -0.00878782, -0.00497555, + -0.00186257, -0.02281011, 0.00141792, 0.00432851, -0.01290263, -0.00387155, 0.00802639, + -0.00761913, 0.01508144, 0.02226428, 0.0107248, 0.01003709, 0.01587571, 0.00083492, -0.01632052, + -0.00435973}); INDArray expB = Nd4j.create(new double[] {-0.02465764, 0.00756337, -0.0268607, 0.01588023, 0.01580242, - -0.00150542, 0.00116652, 0.0021577, -0.00754891, -0.02441176, -0.01271976, -0.02015191, - 0.00220599, 0.03722657, -0.01629612, -0.02779619, -0.01157856, -0.01937938, -0.00744667, - 0.01990043, -0.00505888, 0.00573646, 0.00385467, -0.0282531, 0.03484593, -0.05528606, - 0.02428633, -0.01510474, 0.00153177, -0.03637344, 0.01747423, -0.00090738, -0.02199888, - 0.01410434, -0.01710641, -0.01446697, -0.04225266, 0.00262217, 0.00871943, 0.00471594, - 0.0101348, -0.01991908, 0.00874325, -0.00606416, -0.01035323, -0.01376545, 0.00451507, - -0.01220307, -0.04361237, 0.00026028, -0.02401881, 0.00580314, 0.00238946, -0.01325974, - 0.01879044, -0.00335623, -0.01631887, 0.02222102, -0.02998703, 0.03190075, -0.01675236, - -0.01799807, -0.01314015, 0.01950069, 0.0011723, 0.01013178, 0.01093296, -0.034143, 0.00420227, - 0.01449351, -0.00629987, 0.01652851, -0.01286825, 0.03314656, 0.03485073, 0.01120341, - 0.01298241, 0.0019494, -0.02420256, -0.0063762, 0.01527091, -0.00732881, 0.0060427, 0.019327, - -0.02068196, 0.00876712, 0.00292274, 0.01312969, -0.01529114, 0.0021757, -0.00565621, - -0.01093122, 0.02758765, -0.01342688, 0.01606117, -0.02666447, 0.00541112, 0.00375426, - -0.00761796, 0.00136015, -0.01169962, -0.03012749, 0.03012953, -0.05491332, -0.01137303, - -0.01392103, 0.01370098, -0.00794501, 0.0248435, 0.00319645, 0.04261713, -0.00364211, - 0.00780485, 0.01182583, -0.00647098, 0.03291231, -0.02515565, 0.03480943, 0.00119836, - -0.00490694, 0.02615346, -0.00152456, 0.00196142, -0.02326461, 0.00603225, -0.02414703, - -0.02540966, 0.0072112, -0.01090273, -0.00505061, -0.02196866, 0.00515245, 0.04981546, - -0.02237269, -0.00189305, 0.0169786, 0.01782372, -0.00430022, 0.00551226, 0.00293861, - -0.01337168, -0.00302476, -0.01869966, 0.00270757, 0.03199976, -0.01614617, -0.02716484, - 0.01560035, -0.01312686, -0.01604082, 0.01347521, 0.03229654, 0.00707219, -0.00588392, - 0.02444809, -0.01068742, -0.0190814, -0.00556385, -0.00462766, 0.01283929, 0.02001247, - -0.00837629, -0.00041943, -0.02298774, 0.00874839, 0.00434907, -0.00963332, 0.00476905, - 0.00793049, -0.00212557, -0.01839353, 0.03345517, 0.00838255, -0.0157447, -0.0376134, - 0.01059611, -0.02323246, -0.01326356, -0.01116734, 0.00598869, 0.0211626, 0.01872963, - -0.0038276, -0.01208279, -0.00989125, 0.04147648, 0.00181867, -0.00369355, 0.02312465, - 0.0048396, 0.00564515, 0.01317832, -0.0057621, -0.01882041, -0.02869064, -0.00670661, - 0.02585443, -0.01108428, 0.01411031, 0.01204507, -0.01244726, -0.00962342, -0.00205239, - -0.01653971, 0.02871559, -0.00772978, 0.0214524, 0.02035478, -0.01324312, 0.00169302, - -0.00064739, 0.00531795, 0.01059279, -0.02455794, -0.00002782, -0.0068906, -0.0160858, - -0.0031842, -0.02295724, 0.01481094, 0.01769004, -0.02925742, 0.02050495, -0.00029003, - -0.02815636, 0.02467367, 0.03419458, 0.00654938, -0.01847546, 0.00999932, 0.00059222, - -0.01722176, 0.05172159, -0.01548486, 0.01746444, 0.007871, 0.0078471, -0.02414417, 0.01898077, - -0.01470176, -0.00299465, 0.00368212, -0.02474656, 0.01317451, 0.03706085, -0.00032923, - 0.02655881, 0.0013586, -0.0120303, -0.05030316, 0.0222294, -0.0070967, -0.02150935, 0.03254268, - 0.01369857, 0.00246183, -0.02253576, -0.00551247, 0.00787363, 0.01215617, 0.02439827, - -0.01104699, -0.00774596, -0.01898127, -0.01407653, 0.00195514, -0.03466602, 0.01560903, - -0.01239944, -0.02474852, 0.00155114, 0.00089324, -0.01725949, -0.00011816, 0.00742845, - 0.01247074, -0.02467943, -0.00679623, 0.01988366, -0.00626181, -0.02396477, 0.01052101, - -0.01123178, -0.00386291, -0.00349261, -0.02714747, -0.00563315, 0.00228767, -0.01303677, - -0.01971108, 0.00014759, -0.00346399, 0.02220698, 0.01979946, -0.00526076, 0.00647453, - 0.01428513, 0.00223467, -0.01690172, -0.0081715}); + -0.00150542, 0.00116652, 0.0021577, -0.00754891, -0.02441176, -0.01271976, -0.02015191, + 0.00220599, 0.03722657, -0.01629612, -0.02779619, -0.01157856, -0.01937938, -0.00744667, + 0.01990043, -0.00505888, 0.00573646, 0.00385467, -0.0282531, 0.03484593, -0.05528606, + 0.02428633, -0.01510474, 0.00153177, -0.03637344, 0.01747423, -0.00090738, -0.02199888, + 0.01410434, -0.01710641, -0.01446697, -0.04225266, 0.00262217, 0.00871943, 0.00471594, + 0.0101348, -0.01991908, 0.00874325, -0.00606416, -0.01035323, -0.01376545, 0.00451507, + -0.01220307, -0.04361237, 0.00026028, -0.02401881, 0.00580314, 0.00238946, -0.01325974, + 0.01879044, -0.00335623, -0.01631887, 0.02222102, -0.02998703, 0.03190075, -0.01675236, + -0.01799807, -0.01314015, 0.01950069, 0.0011723, 0.01013178, 0.01093296, -0.034143, 0.00420227, + 0.01449351, -0.00629987, 0.01652851, -0.01286825, 0.03314656, 0.03485073, 0.01120341, + 0.01298241, 0.0019494, -0.02420256, -0.0063762, 0.01527091, -0.00732881, 0.0060427, 0.019327, + -0.02068196, 0.00876712, 0.00292274, 0.01312969, -0.01529114, 0.0021757, -0.00565621, + -0.01093122, 0.02758765, -0.01342688, 0.01606117, -0.02666447, 0.00541112, 0.00375426, + -0.00761796, 0.00136015, -0.01169962, -0.03012749, 0.03012953, -0.05491332, -0.01137303, + -0.01392103, 0.01370098, -0.00794501, 0.0248435, 0.00319645, 0.04261713, -0.00364211, + 0.00780485, 0.01182583, -0.00647098, 0.03291231, -0.02515565, 0.03480943, 0.00119836, + -0.00490694, 0.02615346, -0.00152456, 0.00196142, -0.02326461, 0.00603225, -0.02414703, + -0.02540966, 0.0072112, -0.01090273, -0.00505061, -0.02196866, 0.00515245, 0.04981546, + -0.02237269, -0.00189305, 0.0169786, 0.01782372, -0.00430022, 0.00551226, 0.00293861, + -0.01337168, -0.00302476, -0.01869966, 0.00270757, 0.03199976, -0.01614617, -0.02716484, + 0.01560035, -0.01312686, -0.01604082, 0.01347521, 0.03229654, 0.00707219, -0.00588392, + 0.02444809, -0.01068742, -0.0190814, -0.00556385, -0.00462766, 0.01283929, 0.02001247, + -0.00837629, -0.00041943, -0.02298774, 0.00874839, 0.00434907, -0.00963332, 0.00476905, + 0.00793049, -0.00212557, -0.01839353, 0.03345517, 0.00838255, -0.0157447, -0.0376134, + 0.01059611, -0.02323246, -0.01326356, -0.01116734, 0.00598869, 0.0211626, 0.01872963, + -0.0038276, -0.01208279, -0.00989125, 0.04147648, 0.00181867, -0.00369355, 0.02312465, + 0.0048396, 0.00564515, 0.01317832, -0.0057621, -0.01882041, -0.02869064, -0.00670661, + 0.02585443, -0.01108428, 0.01411031, 0.01204507, -0.01244726, -0.00962342, -0.00205239, + -0.01653971, 0.02871559, -0.00772978, 0.0214524, 0.02035478, -0.01324312, 0.00169302, + -0.00064739, 0.00531795, 0.01059279, -0.02455794, -0.00002782, -0.0068906, -0.0160858, + -0.0031842, -0.02295724, 0.01481094, 0.01769004, -0.02925742, 0.02050495, -0.00029003, + -0.02815636, 0.02467367, 0.03419458, 0.00654938, -0.01847546, 0.00999932, 0.00059222, + -0.01722176, 0.05172159, -0.01548486, 0.01746444, 0.007871, 0.0078471, -0.02414417, 0.01898077, + -0.01470176, -0.00299465, 0.00368212, -0.02474656, 0.01317451, 0.03706085, -0.00032923, + 0.02655881, 0.0013586, -0.0120303, -0.05030316, 0.0222294, -0.0070967, -0.02150935, 0.03254268, + 0.01369857, 0.00246183, -0.02253576, -0.00551247, 0.00787363, 0.01215617, 0.02439827, + -0.01104699, -0.00774596, -0.01898127, -0.01407653, 0.00195514, -0.03466602, 0.01560903, + -0.01239944, -0.02474852, 0.00155114, 0.00089324, -0.01725949, -0.00011816, 0.00742845, + 0.01247074, -0.02467943, -0.00679623, 0.01988366, -0.00626181, -0.02396477, 0.01052101, + -0.01123178, -0.00386291, -0.00349261, -0.02714747, -0.00563315, 0.00228767, -0.01303677, + -0.01971108, 0.00014759, -0.00346399, 0.02220698, 0.01979946, -0.00526076, 0.00647453, + 0.01428513, 0.00223467, -0.01690172, -0.0081715}); VectorsConfiguration configuration = new VectorsConfiguration(); @@ -977,10 +949,10 @@ public class ParagraphVectorsTest extends BaseDL4JTest { configuration.setNegative(0); Word2Vec w2v = WordVectorSerializer.readWord2VecFromText( - new File("/home/raver119/Downloads/gensim_models_for_dl4j/word"), - new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs"), - new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs_code"), - new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs_mapping"), configuration); + new File("/home/raver119/Downloads/gensim_models_for_dl4j/word"), + new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs"), + new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs_code"), + new File("/home/raver119/Downloads/gensim_models_for_dl4j/hs_mapping"), configuration); TokenizerFactory tokenizerFactory = new DefaultTokenizerFactory(); tokenizerFactory.setTokenPreProcessor(new CommonPreprocessor()); @@ -990,8 +962,8 @@ public class ParagraphVectorsTest extends BaseDL4JTest { assertNotEquals(null, w2v.getVocab()); ParagraphVectors d2v = new ParagraphVectors.Builder(configuration).useExistingWordVectors(w2v) - .sequenceLearningAlgorithm(new DM()).tokenizerFactory(tokenizerFactory) - .resetModel(false).build(); + .sequenceLearningAlgorithm(new DM()).tokenizerFactory(tokenizerFactory) + .resetModel(false).build(); assertNotEquals(null, d2v.getLookupTable()); @@ -1029,7 +1001,6 @@ public class ParagraphVectorsTest extends BaseDL4JTest { } @Test - @Disabled //AB 2020/02/06 - https://github.com/eclipse/deeplearning4j/issues/8677 public void testDirectInference(@TempDir Path testDir) throws Exception { boolean isIntegration = isIntegrationTests(); File resource = Resources.asFile("/big/raw_sentences.txt"); @@ -1039,22 +1010,22 @@ public class ParagraphVectorsTest extends BaseDL4JTest { File local_resource_mixed = testDir.toFile(); resource_mixed.copyDirectory(local_resource_mixed); SentenceIterator iter = new AggregatingSentenceIterator.Builder() - .addSentenceIterator(sentencesIter) - .addSentenceIterator(new FileSentenceIterator(local_resource_mixed)).build(); + .addSentenceIterator(sentencesIter) + .addSentenceIterator(new FileSentenceIterator(local_resource_mixed)).build(); TokenizerFactory t = new DefaultTokenizerFactory(); t.setTokenPreProcessor(new CommonPreprocessor()); Word2Vec wordVectors = new Word2Vec.Builder().minWordFrequency(1).batchSize(250).iterations(1).epochs(1) - .learningRate(0.025).layerSize(150).minLearningRate(0.001) - .elementsLearningAlgorithm(new SkipGram()).useHierarchicSoftmax(true).windowSize(5) - .iterate(iter).tokenizerFactory(t).build(); + .learningRate(0.025).layerSize(150).minLearningRate(0.001) + .elementsLearningAlgorithm(new SkipGram()).useHierarchicSoftmax(true).windowSize(5) + .iterate(iter).tokenizerFactory(t).build(); wordVectors.fit(); ParagraphVectors pv = new ParagraphVectors.Builder().tokenizerFactory(t).iterations(10) - .useHierarchicSoftmax(true).trainWordVectors(true).useExistingWordVectors(wordVectors) - .negativeSample(0).sequenceLearningAlgorithm(new DM()).build(); + .useHierarchicSoftmax(true).trainWordVectors(true).useExistingWordVectors(wordVectors) + .negativeSample(0).sequenceLearningAlgorithm(new DM()).build(); INDArray vec1 = pv.inferVector("This text is pretty awesome"); INDArray vec2 = pv.inferVector("Fantastic process of crazy things happening inside just for history purposes"); @@ -1062,7 +1033,6 @@ public class ParagraphVectorsTest extends BaseDL4JTest { log.info("vec1/vec2: {}", Transforms.cosineSim(vec1, vec2)); } - @Disabled @Test public void testGoogleModelForInference() throws Exception { WordVectors googleVectors = WordVectorSerializer.readWord2VecModel(new File("/ext/GoogleNews-vectors-negative300.bin.gz")); @@ -1071,9 +1041,9 @@ public class ParagraphVectorsTest extends BaseDL4JTest { t.setTokenPreProcessor(new CommonPreprocessor()); ParagraphVectors pv = - new ParagraphVectors.Builder().tokenizerFactory(t).iterations(10).useHierarchicSoftmax(false) - .trainWordVectors(false).iterations(10).useExistingWordVectors(googleVectors) - .negativeSample(10).sequenceLearningAlgorithm(new DM()).build(); + new ParagraphVectors.Builder().tokenizerFactory(t).iterations(10).useHierarchicSoftmax(false) + .trainWordVectors(false).iterations(10).useExistingWordVectors(googleVectors) + .negativeSample(10).sequenceLearningAlgorithm(new DM()).build(); INDArray vec1 = pv.inferVector("This text is pretty awesome"); INDArray vec2 = pv.inferVector("Fantastic process of crazy things happening inside just for history purposes"); @@ -1101,38 +1071,36 @@ public class ParagraphVectorsTest extends BaseDL4JTest { * * @throws Exception */ - @Disabled - @Test + @Tag(TagNames.LONG_TEST) + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testsParallelFit1() throws Exception { final File file = Resources.asFile("big/raw_sentences.txt"); for (int i = 0; i < 1000; i++) { List threads = new ArrayList<>(); for (int t = 0; t < 3; t++) { - threads.add(new Thread(new Runnable() { - @Override - public void run() { - try { - TokenizerFactory t = new DefaultTokenizerFactory(); + threads.add(new Thread(() -> { + try { + TokenizerFactory t1 = new DefaultTokenizerFactory(); - LabelsSource source = new LabelsSource("DOC_"); + LabelsSource source = new LabelsSource("DOC_"); - SentenceIteratorConverter sic = - new SentenceIteratorConverter(new BasicLineIterator(file), source); + SentenceIteratorConverter sic = + new SentenceIteratorConverter(new BasicLineIterator(file), source); - ParagraphVectors vec = new ParagraphVectors.Builder().seed(42) - //.batchSize(10) - .minWordFrequency(1).iterations(1).epochs(5).layerSize(100) - .learningRate(0.05) - //.labelsSource(source) - .windowSize(5).trainWordVectors(true).allowParallelTokenization(false) - //.vocabCache(cache) - .tokenizerFactory(t).workers(1).iterate(sic).build(); + ParagraphVectors vec = new ParagraphVectors.Builder().seed(42) + //.batchSize(10) + .minWordFrequency(1).iterations(1).epochs(5).layerSize(100) + .learningRate(0.05) + //.labelsSource(source) + .windowSize(5).trainWordVectors(true).allowParallelTokenization(false) + //.vocabCache(cache) + .tokenizerFactory(t1).workers(1).iterate(sic).build(); - vec.fit(); - } catch (Exception e) { - throw new RuntimeException(e); - } + vec.fit(); + } catch (Exception e) { + throw new RuntimeException(e); } })); } @@ -1189,6 +1157,7 @@ public class ParagraphVectorsTest extends BaseDL4JTest { @Test() @Timeout(300000) + @Tag(TagNames.LONG_TEST) public void testDoubleFit() throws Exception { boolean isIntegration = isIntegrationTests(); File resource = Resources.asFile("/big/raw_sentences.txt"); diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/SequenceVectorsTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/SequenceVectorsTest.java index c6c50b01b..fe4567123 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/SequenceVectorsTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/SequenceVectorsTest.java @@ -74,7 +74,6 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@Disabled @Tag(TagNames.FILE_IO) @NativeTag public class SequenceVectorsTest extends BaseDL4JTest { @@ -275,7 +274,6 @@ public class SequenceVectorsTest extends BaseDL4JTest { } @Test - @Disabled public void testDeepWalk() throws Exception { Heartbeat.getInstance().disableHeartbeat(); diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/transformers/impl/iterables/ParallelTransformerIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/transformers/impl/iterables/ParallelTransformerIteratorTest.java index 2ef5e3a6b..1e7c4c746 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/transformers/impl/iterables/ParallelTransformerIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/sequencevectors/transformers/impl/iterables/ParallelTransformerIteratorTest.java @@ -46,7 +46,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @Slf4j -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class ParallelTransformerIteratorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/iterator/Word2VecDataSetIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/iterator/Word2VecDataSetIteratorTest.java index b6e26cc5c..23b9530f5 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/iterator/Word2VecDataSetIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/iterator/Word2VecDataSetIteratorTest.java @@ -61,7 +61,6 @@ public class Word2VecDataSetIteratorTest extends BaseDL4JTest { * Basically all we want from this test - being able to finish without exceptions. */ @Test - @Disabled public void testIterator1() throws Exception { File inputFile = Resources.asFile("big/raw_sentences.txt"); diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/wordstore/VocabConstructorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/wordstore/VocabConstructorTest.java index 79e49b8e8..5827fa4d7 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/wordstore/VocabConstructorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/models/word2vec/wordstore/VocabConstructorTest.java @@ -53,7 +53,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.jupiter.api.Assertions.*; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class VocabConstructorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/AsyncLabelAwareIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/AsyncLabelAwareIteratorTest.java index e99a00ae3..f1e27ca5a 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/AsyncLabelAwareIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/AsyncLabelAwareIteratorTest.java @@ -33,7 +33,6 @@ import org.nd4j.common.tests.tags.TagNames; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class AsyncLabelAwareIteratorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/BasicLabelAwareIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/BasicLabelAwareIteratorTest.java index cc2e58dab..97134c790 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/BasicLabelAwareIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/BasicLabelAwareIteratorTest.java @@ -36,7 +36,6 @@ import org.nd4j.common.tests.tags.TagNames; import java.io.File; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class BasicLabelAwareIteratorTest extends BaseDL4JTest { @@ -48,7 +47,6 @@ public class BasicLabelAwareIteratorTest extends BaseDL4JTest { @Test public void testHasNextDocument1() throws Exception { - File inputFile = Resources.asFile("big/raw_sentences.txt"); SentenceIterator iter = new BasicLineIterator(inputFile.getAbsolutePath()); diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileDocumentIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileDocumentIteratorTest.java index ea7b18b31..a16de22db 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileDocumentIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileDocumentIteratorTest.java @@ -46,7 +46,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @Slf4j -@Disabled @Tag(TagNames.FILE_IO) @NativeTag public class FileDocumentIteratorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileLabelAwareIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileLabelAwareIteratorTest.java index 4f5268cba..24ad3b162 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileLabelAwareIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FileLabelAwareIteratorTest.java @@ -38,7 +38,6 @@ import java.nio.file.Path; import static org.junit.jupiter.api.Assertions.*; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class FileLabelAwareIteratorTest extends BaseDL4JTest { @@ -51,7 +50,8 @@ public class FileLabelAwareIteratorTest extends BaseDL4JTest { @Test public void testExtractLabelFromPath1(@TempDir Path testDir) throws Exception { - val dir = testDir.toFile(); + val dir = testDir.resolve("new-folder").toFile(); + dir.mkdirs(); val resource = new ClassPathResource("/labeled/"); resource.copyDirectory(dir); @@ -79,8 +79,12 @@ public class FileLabelAwareIteratorTest extends BaseDL4JTest { @Test public void testExtractLabelFromPath2(@TempDir Path testDir) throws Exception { + testDir = testDir.resolve("new-folder"); + testDir.toFile().mkdirs(); val dir0 = new File(testDir.toFile(),"dir-0"); val dir1 = new File(testDir.toFile(),"dir-1"); + dir0.mkdirs(); + dir1.mkdirs(); val resource = new ClassPathResource("/labeled/"); val resource2 = new ClassPathResource("/rootdir/"); resource.copyDirectory(dir0); diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FilenamesLabelAwareIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FilenamesLabelAwareIteratorTest.java index 0c6ca4bf8..852cb1913 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FilenamesLabelAwareIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/documentiterator/FilenamesLabelAwareIteratorTest.java @@ -40,7 +40,6 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class FilenamesLabelAwareIteratorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/AggregatingSentenceIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/AggregatingSentenceIteratorTest.java index 12cbf2413..8a2e6a376 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/AggregatingSentenceIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/AggregatingSentenceIteratorTest.java @@ -30,7 +30,6 @@ import java.io.File; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled("Permissions issues on CI") public class AggregatingSentenceIteratorTest extends BaseDL4JTest { @Test() diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/BasicLineIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/BasicLineIteratorTest.java index f5564548e..95be3d88b 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/BasicLineIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/BasicLineIteratorTest.java @@ -33,7 +33,6 @@ import java.io.FileInputStream; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled("Permissions issues on CI") public class BasicLineIteratorTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/MutipleEpochsSentenceIteratorTest.java b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/MutipleEpochsSentenceIteratorTest.java index 5933f5b5f..84a5e3b0f 100644 --- a/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/MutipleEpochsSentenceIteratorTest.java +++ b/deeplearning4j/deeplearning4j-nlp-parent/deeplearning4j-nlp/src/test/java/org/deeplearning4j/text/sentenceiterator/MutipleEpochsSentenceIteratorTest.java @@ -28,7 +28,6 @@ import org.nd4j.common.resources.Resources; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled("Permissions issues on CI") public class MutipleEpochsSentenceIteratorTest extends BaseDL4JTest { @Test() @Timeout(30000) diff --git a/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper-parameter-server/src/test/java/org/deeplearning4j/parallelism/parameterserver/ParameterServerParallelWrapperTest.java b/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper-parameter-server/src/test/java/org/deeplearning4j/parallelism/parameterserver/ParameterServerParallelWrapperTest.java index dad5e56ed..8700d121c 100644 --- a/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper-parameter-server/src/test/java/org/deeplearning4j/parallelism/parameterserver/ParameterServerParallelWrapperTest.java +++ b/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper-parameter-server/src/test/java/org/deeplearning4j/parallelism/parameterserver/ParameterServerParallelWrapperTest.java @@ -44,7 +44,6 @@ import org.nd4j.linalg.learning.config.Nesterovs; import org.nd4j.linalg.lossfunctions.LossFunctions; @Slf4j -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class ParameterServerParallelWrapperTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper/src/test/java/org/deeplearning4j/parallelism/ParallelInferenceTest.java b/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper/src/test/java/org/deeplearning4j/parallelism/ParallelInferenceTest.java index 5b1a1f739..8c25bae54 100644 --- a/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper/src/test/java/org/deeplearning4j/parallelism/ParallelInferenceTest.java +++ b/deeplearning4j/deeplearning4j-scaleout/deeplearning4j-scaleout-parallelwrapper/src/test/java/org/deeplearning4j/parallelism/ParallelInferenceTest.java @@ -62,7 +62,6 @@ import java.util.concurrent.atomic.AtomicInteger; import static org.junit.jupiter.api.Assertions.*; @Slf4j -@Disabled("Permissions issues on CI") @Tag(TagNames.FILE_IO) @NativeTag public class ParallelInferenceTest extends BaseDL4JTest { diff --git a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/BaseSparkTest.java b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/BaseSparkTest.java index e00f8d6d3..12695656d 100644 --- a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/BaseSparkTest.java +++ b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/BaseSparkTest.java @@ -20,6 +20,9 @@ package org.deeplearning4j.spark; +import com.sun.jna.Platform; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.hadoop.conf.Configuration; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; @@ -31,7 +34,9 @@ import org.deeplearning4j.nn.conf.NeuralNetConfiguration; import org.deeplearning4j.spark.impl.multilayer.SparkDl4jMultiLayer; import org.deeplearning4j.spark.impl.paramavg.ParameterAveragingTrainingMaster; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; +import org.nd4j.common.resources.Downloader; import org.nd4j.linalg.activations.Activation; import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.dataset.DataSet; @@ -39,12 +44,14 @@ import org.nd4j.linalg.factory.Nd4j; import org.nd4j.linalg.learning.config.Nesterovs; import org.nd4j.linalg.lossfunctions.LossFunctions; +import java.io.File; import java.io.Serializable; +import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Random; - +@Slf4j public abstract class BaseSparkTest extends BaseDL4JTest implements Serializable { protected transient JavaSparkContext sc; protected transient INDArray labels; @@ -60,6 +67,25 @@ public abstract class BaseSparkTest extends BaseDL4JTest implements Serializable public long getTimeoutMilliseconds() { return 120000L; } + @BeforeAll + @SneakyThrows + public static void beforeAll() { + if(Platform.isWindows()) { + File hadoopHome = new File(System.getProperty("java.io.tmpdir"),"hadoop-tmp"); + File binDir = new File(hadoopHome,"bin"); + if(!binDir.exists()) + binDir.mkdirs(); + File outputFile = new File(binDir,"winutils.exe"); + if(!outputFile.exists()) { + log.info("Fixing spark for windows"); + Downloader.download("winutils.exe", + URI.create("https://github.com/cdarlint/winutils/blob/master/hadoop-2.6.5/bin/winutils.exe?raw=true").toURL(), + outputFile,"db24b404d2331a1bec7443336a5171f1",3); + } + + System.setProperty("hadoop.home.dir", hadoopHome.getAbsolutePath()); + } + } @BeforeEach public void before() { @@ -76,6 +102,8 @@ public abstract class BaseSparkTest extends BaseDL4JTest implements Serializable labels.putScalar(new int[] {i, x1}, 1.0); } + + sparkData = getBasicSparkDataSet(nRows, input, labels); } @@ -122,7 +150,7 @@ public abstract class BaseSparkTest extends BaseDL4JTest implements Serializable protected SparkDl4jMultiLayer getBasicNetwork() { return new SparkDl4jMultiLayer(sc, getBasicConf(), - new ParameterAveragingTrainingMaster(true, numExecutors(), 1, 10, 1, 0)); + new ParameterAveragingTrainingMaster(true, numExecutors(), 1, 10, 1, 0)); } protected int numExecutors() { @@ -132,12 +160,12 @@ public abstract class BaseSparkTest extends BaseDL4JTest implements Serializable protected MultiLayerConfiguration getBasicConf() { MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(123) .updater(new Nesterovs(0.1, 0.9)).list() - .layer(0, new org.deeplearning4j.nn.conf.layers.DenseLayer.Builder().nIn(nIn).nOut(3) - .activation(Activation.TANH).build()) - .layer(1, new org.deeplearning4j.nn.conf.layers.OutputLayer.Builder( - LossFunctions.LossFunction.MCXENT).nIn(3).nOut(nOut) - .activation(Activation.SOFTMAX).build()) - .build(); + .layer(0, new org.deeplearning4j.nn.conf.layers.DenseLayer.Builder().nIn(nIn).nOut(3) + .activation(Activation.TANH).build()) + .layer(1, new org.deeplearning4j.nn.conf.layers.OutputLayer.Builder( + LossFunctions.LossFunction.MCXENT).nIn(3).nOut(nOut) + .activation(Activation.SOFTMAX).build()) + .build(); return conf; } diff --git a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/TestCompareParameterAveragingSparkVsSingleMachine.java b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/TestCompareParameterAveragingSparkVsSingleMachine.java index 9bf38b228..5f67a22a3 100644 --- a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/TestCompareParameterAveragingSparkVsSingleMachine.java +++ b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/TestCompareParameterAveragingSparkVsSingleMachine.java @@ -21,6 +21,8 @@ package org.deeplearning4j.spark.impl.paramavg; import com.sun.jna.Platform; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; @@ -42,6 +44,7 @@ import org.deeplearning4j.spark.impl.multilayer.SparkDl4jMultiLayer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.nd4j.common.resources.Downloader; import org.nd4j.common.tests.tags.NativeTag; import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.activations.Activation; @@ -53,6 +56,8 @@ import org.nd4j.linalg.learning.config.RmsProp; import org.nd4j.linalg.learning.config.Sgd; import org.nd4j.linalg.lossfunctions.LossFunctions; +import java.io.File; +import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -62,11 +67,31 @@ import static org.junit.jupiter.api.Assertions.*; @Tag(TagNames.SPARK) @Tag(TagNames.DIST_SYSTEMS) @NativeTag +@Slf4j public class TestCompareParameterAveragingSparkVsSingleMachine { @BeforeEach public void setUp() { //CudaEnvironment.getInstance().getConfiguration().allowMultiGPU(false); } + @SneakyThrows + @BeforeEach + void before() { + if(Platform.isWindows()) { + File hadoopHome = new File(System.getProperty("java.io.tmpdir"),"hadoop-tmp"); + File binDir = new File(hadoopHome,"bin"); + if(!binDir.exists()) + binDir.mkdirs(); + File outputFile = new File(binDir,"winutils.exe"); + if(!outputFile.exists()) { + log.info("Fixing spark for windows"); + Downloader.download("winutils.exe", + URI.create("https://github.com/cdarlint/winutils/blob/master/hadoop-2.6.5/bin/winutils.exe?raw=true").toURL(), + outputFile,"db24b404d2331a1bec7443336a5171f1",3); + } + + System.setProperty("hadoop.home.dir", hadoopHome.getAbsolutePath()); + } + } private static MultiLayerConfiguration getConf(int seed, IUpdater updater) { diff --git a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/util/ExportSupportTest.java b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/util/ExportSupportTest.java index 0fdeaaabf..bd993d362 100644 --- a/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/util/ExportSupportTest.java +++ b/deeplearning4j/deeplearning4j-scaleout/spark/dl4j-spark/src/test/java/org/deeplearning4j/spark/impl/paramavg/util/ExportSupportTest.java @@ -20,12 +20,18 @@ package org.deeplearning4j.spark.impl.paramavg.util; +import com.sun.jna.Platform; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.nd4j.common.resources.Downloader; +import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -36,9 +42,30 @@ import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Ede Meijer */ +@Slf4j public class ExportSupportTest { private static final String FS_CONF = "spark.hadoop.fs.defaultFS"; + @SneakyThrows + @BeforeEach + void before() { + if(Platform.isWindows()) { + File hadoopHome = new File(System.getProperty("java.io.tmpdir"),"hadoop-tmp"); + File binDir = new File(hadoopHome,"bin"); + if(!binDir.exists()) + binDir.mkdirs(); + File outputFile = new File(binDir,"winutils.exe"); + if(!outputFile.exists()) { + log.info("Fixing spark for windows"); + Downloader.download("winutils.exe", + URI.create("https://github.com/cdarlint/winutils/blob/master/hadoop-2.6.5/bin/winutils.exe?raw=true").toURL(), + outputFile,"db24b404d2331a1bec7443336a5171f1",3); + } + + System.setProperty("hadoop.home.dir", hadoopHome.getAbsolutePath()); + } + } + @Test public void testLocalSupported() throws IOException { assertSupported(new SparkConf().setMaster("local").set(FS_CONF, "file:///")); diff --git a/deeplearning4j/deeplearning4j-scaleout/spark/pom.xml b/deeplearning4j/deeplearning4j-scaleout/spark/pom.xml index 0147f87af..e73ed6e6c 100644 --- a/deeplearning4j/deeplearning4j-scaleout/spark/pom.xml +++ b/deeplearning4j/deeplearning4j-scaleout/spark/pom.xml @@ -129,6 +129,15 @@ + + get-cpu-count + + cpu-count + + + system.numCores + + diff --git a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/MiscTests.java b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/MiscTests.java index cb7c5264a..6ef061a79 100644 --- a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/MiscTests.java +++ b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/MiscTests.java @@ -37,10 +37,10 @@ import org.nd4j.linalg.factory.Nd4j; import org.nd4j.linalg.lossfunctions.LossFunctions; import java.io.File; -@Disabled("Times out too often") @Tag(TagNames.FILE_IO) @Tag(TagNames.DL4J_OLD_API) @NativeTag +@Tag(TagNames.LONG_TEST) public class MiscTests extends BaseDL4JTest { @Override diff --git a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestDownload.java b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestDownload.java index b63563cf8..1fc21d7a0 100644 --- a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestDownload.java +++ b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestDownload.java @@ -47,10 +47,10 @@ import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; @Slf4j -@Disabled("Times out too often") @Tag(TagNames.FILE_IO) @Tag(TagNames.DL4J_OLD_API) @NativeTag +@Tag(TagNames.LONG_TEST) public class TestDownload extends BaseDL4JTest { @TempDir static Path sharedTempDir; diff --git a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestImageNet.java b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestImageNet.java index 7f4d2686d..506de77e6 100644 --- a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestImageNet.java +++ b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestImageNet.java @@ -57,10 +57,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @Slf4j -@Disabled("Times out too often") @Tag(TagNames.FILE_IO) @Tag(TagNames.DL4J_OLD_API) @NativeTag +@Tag(TagNames.LONG_TEST) public class TestImageNet extends BaseDL4JTest { @Override diff --git a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestInstantiation.java b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestInstantiation.java index 746b7cfc8..a1d0f003c 100644 --- a/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestInstantiation.java +++ b/deeplearning4j/deeplearning4j-zoo/src/test/java/org/deeplearning4j/zoo/TestInstantiation.java @@ -59,6 +59,7 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue; @Tag(TagNames.FILE_IO) @Tag(TagNames.DL4J_OLD_API) @NativeTag +@Tag(TagNames.LONG_TEST) public class TestInstantiation extends BaseDL4JTest { protected static void ignoreIfCuda(){ diff --git a/deeplearning4j/dl4j-integration-tests/src/test/resources/junit-platform.properties b/deeplearning4j/dl4j-integration-tests/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..8ec0fbcee --- /dev/null +++ b/deeplearning4j/dl4j-integration-tests/src/test/resources/junit-platform.properties @@ -0,0 +1,25 @@ +# +# /* +# * ****************************************************************************** +# * * +# * * +# * * This program and the accompanying materials are made available under the +# * * terms of the Apache License, Version 2.0 which is available at +# * * https://www.apache.org/licenses/LICENSE-2.0. +# * * +# * * See the NOTICE file distributed with this work for additional +# * * information regarding copyright ownership. +# * * Unless required by applicable law or agreed to in writing, software +# * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# * * License for the specific language governing permissions and limitations +# * * under the License. +# * * +# * * SPDX-License-Identifier: Apache-2.0 +# * ***************************************************************************** +# */ +# +# + +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent \ No newline at end of file diff --git a/deeplearning4j/pom.xml b/deeplearning4j/pom.xml index 384f8a081..4e0ef9a2d 100644 --- a/deeplearning4j/pom.xml +++ b/deeplearning4j/pom.xml @@ -138,12 +138,6 @@ 4.1.1.4 test - - org.deeplearning4j - deeplearning4j-common-tests - 1.0.0-SNAPSHOT - test - diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/listeners/profiler/comparison/ProfileAnalyzer.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/listeners/profiler/comparison/ProfileAnalyzer.java index 7e6d71025..08c5f7727 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/listeners/profiler/comparison/ProfileAnalyzer.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/listeners/profiler/comparison/ProfileAnalyzer.java @@ -22,6 +22,7 @@ package org.nd4j.autodiff.listeners.profiler.comparison; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.nd4j.autodiff.functions.DifferentialFunction; import org.nd4j.autodiff.listeners.profiler.ProfilingListener; import org.nd4j.autodiff.listeners.profiler.data.Phase; @@ -35,8 +36,8 @@ import org.nd4j.common.primitives.Pair; import org.nd4j.list.NDArrayList; import org.nd4j.shade.jackson.databind.ObjectMapper; -import java.io.File; -import java.io.IOException; +import java.io.*; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; @@ -140,13 +141,20 @@ public class ProfileAnalyzer { public static TraceEvent[] getTraceEvents(File file, ProfileFormat profileFormat, boolean aggregateTFSubOps) { ObjectMapper json = ProfilingListener.jsonMapper(); - String content; - try { - content = FileUtils.readFileToString(file, StandardCharsets.UTF_8); + String content = null; + try(BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file))) { + try { + content = IOUtils.toString(bufferedInputStream, Charset.defaultCharset()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); } catch (IOException e) { - throw new RuntimeException(e); + e.printStackTrace(); } + if (!content.matches(".*]\\s*")) { if (content.endsWith(",")) { //Has comma, missing ] @@ -190,7 +198,7 @@ public class ProfileAnalyzer { } - if(aggregateTFSubOps){ + if(aggregateTFSubOps) { //For CUDA ops, TF will log sub-ops like: //fire2/e1x1/Conv2D:Conv2D#id=74,device=/job:localhost/replica:0/task:0/device:GPU:0,async=false#@@cudnn::maxwell::gemm::computeOffsetsKernel(cudnn::maxwell::gemm::ComputeOffsetsParams) //fire2/e1x1/Conv2D:Conv2D#id=74,device=/job:localhost/replica:0/task:0/device:GPU:0,async=false#@@maxwell_scudnn_128x64_relu_interior_nn @@ -218,7 +226,7 @@ public class ProfileAnalyzer { } last = te; - if(te.getArgs() == null || te.getArgs().isEmpty()){ + if(te.getArgs() == null || te.getArgs().isEmpty()) { out.add(te); continue; } @@ -260,7 +268,7 @@ public class ProfileAnalyzer { } //Strip everything after ":" in "fire2/e1x1/Conv2D:Conv2D#id=74,device=/job:localhost/..." - for( int i=0; i calculateOutputShape(OpContext opContext) { - if(shape != null){ - return Collections.singletonList(LongShapeDescriptor.fromShape(shape, dataType)); - } else { - return Collections.singletonList(LongShapeDescriptor.fromShape(shape, Shape.pickPairwiseDataType(args()[0].dataType(), Nd4j.dataType()))); - } - } + @Override public List calculateOutputDataTypes(List inputDataTypes) { diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/AlphaDropOut.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/AlphaDropOut.java index 0189376c3..68c7cfa24 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/AlphaDropOut.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/AlphaDropOut.java @@ -24,8 +24,11 @@ import lombok.NonNull; import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; +import java.util.Arrays; import java.util.List; public class AlphaDropOut extends BaseRandomOp { @@ -72,6 +75,17 @@ public class AlphaDropOut extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { return null; diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BernoulliDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BernoulliDistribution.java index b50de8980..67552c12e 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BernoulliDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BernoulliDistribution.java @@ -27,10 +27,13 @@ import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.exception.ND4JIllegalStateException; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -108,7 +111,16 @@ public class BernoulliDistribution extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } @Override public List doDiff(List f1) { return Collections.emptyList(); //No SDVariable args diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistribution.java index e29c00c56..3a31a6139 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistribution.java @@ -27,9 +27,12 @@ import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -121,7 +124,16 @@ public class BinomialDistribution extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } @Override public List doDiff(List f1) { diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistributionEx.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistributionEx.java index ecc65c132..6694d1ca6 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistributionEx.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/BinomialDistributionEx.java @@ -25,8 +25,11 @@ import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; +import java.util.Arrays; import java.util.List; public class BinomialDistributionEx extends BaseRandomOp { @@ -105,6 +108,17 @@ public class BinomialDistributionEx extends BaseRandomOp { @Override public List doDiff(List f1) { - return null; + throw new UnsupportedOperationException("BinomialDistributionEx does not have a derivative."); + } + + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); } } diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Choice.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Choice.java index c53354a58..a601207e5 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Choice.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Choice.java @@ -25,8 +25,11 @@ import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; +import java.util.Arrays; import java.util.List; public class Choice extends BaseRandomOp { @@ -39,7 +42,7 @@ public class Choice extends BaseRandomOp { super(source, probabilities, z); Preconditions.checkArgument(source.dataType() == probabilities.dataType() && z.dataType() == source.dataType(), "Data types of all arguments should match"); Preconditions.checkState(source.length() == probabilities.length(), "From & probabilities length mismatch: %s vs. %s", - source.length(), probabilities.length()); + source.length(), probabilities.length()); if (probabilities.elementWiseStride() < 1 || source.elementWiseStride() < 1) throw new IllegalStateException("Source and probabilities should have element-wise stride >= 1"); this.extraArgs = new Object[] {0.0}; @@ -66,8 +69,19 @@ public class Choice extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { - return null; + throw new UnsupportedOperationException("Choice does not have a derivative"); } } diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOut.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOut.java index d77477dae..21ec7fc98 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOut.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOut.java @@ -25,7 +25,11 @@ import lombok.NonNull; import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.autodiff.samediff.SameDiff; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; + +import java.util.Arrays; import java.util.List; @NoArgsConstructor @@ -36,8 +40,8 @@ public class DropOut extends BaseRandomOp { public DropOut(SameDiff sameDiff, SDVariable input, double p) { super(sameDiff, input); this.p = p; - //https://github.com/eclipse/deeplearning4j/issues/5650 - throw new UnsupportedOperationException("Dropout SameDiff support disabled pending backprop support"); + this.extraArgs = new Object[] {p}; + } public DropOut(@NonNull INDArray x, double p) { @@ -65,6 +69,12 @@ public class DropOut extends BaseRandomOp { return Type.RANDOM ; } + @Override + public List calculateOutputShape(OpContext oc) { + INDArray input = oc.getInputArray(0); + return Arrays.asList(input.shapeDescriptor()); + } + @Override public List doDiff(List f1) { throw new UnsupportedOperationException("Not supported"); //We should only use *inverted* dropout with samediff diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOutInverted.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOutInverted.java index 759d7f520..e1b3cfc16 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOutInverted.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/DropOutInverted.java @@ -25,11 +25,14 @@ import onnx.Onnx; import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.autodiff.samediff.SameDiff; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.tensorflow.framework.AttrValue; import org.tensorflow.framework.GraphDef; import org.tensorflow.framework.NodeDef; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -43,6 +46,7 @@ public class DropOutInverted extends BaseRandomOp { public DropOutInverted(SameDiff sameDiff, SDVariable input, double p) { super(sameDiff, input); this.p = p; + this.extraArgs = new Object[]{p}; } public DropOutInverted(@NonNull INDArray x, double p) { @@ -82,6 +86,18 @@ public class DropOutInverted extends BaseRandomOp { @Override public List doDiff(List f1) { - return null; + throw new UnsupportedOperationException("DropOutInverted does not have a derivative."); } + + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + } diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/GaussianDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/GaussianDistribution.java index 5795b3457..c3850e86e 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/GaussianDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/GaussianDistribution.java @@ -27,9 +27,12 @@ import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -56,7 +59,7 @@ public class GaussianDistribution extends BaseRandomOp { super(); } - public GaussianDistribution(double mean, double stddev, DataType datatype, long... shape){ + public GaussianDistribution(double mean, double stddev, DataType datatype, long... shape) { this(Nd4j.createUninitialized(datatype, shape), mean, stddev); } @@ -75,7 +78,6 @@ public class GaussianDistribution extends BaseRandomOp { public GaussianDistribution(@NonNull INDArray z, @NonNull INDArray means, double stddev) { - super(z, means, z); if (z.length() != means.length()) throw new IllegalStateException("Result length should be equal to provided Means length"); @@ -84,6 +86,7 @@ public class GaussianDistribution extends BaseRandomOp { this.mean = 0.0; this.stddev = stddev; + this.z = z; this.extraArgs = new Object[] {this.mean, this.stddev}; } @@ -124,20 +127,24 @@ public class GaussianDistribution extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } - @Override - public void setZ(INDArray z){ - //We want all 3 args set to z for this op - this.x = z; - this.y = z; - this.z = z; - } - @Override public List doDiff(List f1) { return Collections.emptyList(); } + + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List calculateOutputDataTypes(List inputDataTypes){ Preconditions.checkState(inputDataTypes == null || inputDataTypes.isEmpty(), "Expected no input datatypes (no args) for %s, got %s", getClass(), inputDataTypes); diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Linspace.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Linspace.java index 8bc772cf0..71d0ab2c4 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Linspace.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/Linspace.java @@ -26,10 +26,12 @@ import org.nd4j.autodiff.samediff.SameDiff; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -117,11 +119,6 @@ public class Linspace extends BaseRandomOp { this.y = null; } - @Override - public List calculateOutputShape() { - return Collections.singletonList(LongShapeDescriptor.fromShape(new long[]{length}, DataType.FLOAT)); //TODO Don't hardcode float! - } - @Override public String onnxName() { throw new NoOpNameFoundException("No onnx op opName found for " + opName()); @@ -133,6 +130,17 @@ public class Linspace extends BaseRandomOp { } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { //No inputs diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/LogNormalDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/LogNormalDistribution.java index f28ec024b..79cd13bbe 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/LogNormalDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/LogNormalDistribution.java @@ -27,9 +27,12 @@ import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -41,14 +44,14 @@ public class LogNormalDistribution extends BaseRandomOp { super(); } - public LogNormalDistribution(SameDiff sd, double mean, double stdev, long... shape){ + public LogNormalDistribution(SameDiff sd, double mean, double stdev, long... shape) { super(sd, shape); this.mean = mean; this.stddev = stdev; this.extraArgs = new Object[] {this.mean, this.stddev}; } - public LogNormalDistribution(SameDiff sd, double mean, double stdev, DataType dataType, long... shape){ + public LogNormalDistribution(SameDiff sd, double mean, double stdev, DataType dataType, long... shape) { this(sd, mean, stdev,shape); this.dataType = dataType; } @@ -127,6 +130,17 @@ public class LogNormalDistribution extends BaseRandomOp { this.z = z; } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { return Collections.emptyList(); diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/ProbablisticMerge.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/ProbablisticMerge.java index 0f3aed89a..a8e8e0699 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/ProbablisticMerge.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/ProbablisticMerge.java @@ -24,8 +24,11 @@ import lombok.NonNull; import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; +import java.util.Arrays; import java.util.List; public class ProbablisticMerge extends BaseRandomOp { @@ -66,6 +69,17 @@ public class ProbablisticMerge extends BaseRandomOp { throw new NoOpNameFoundException("No tensorflow op opName found for " + opName()); } + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { return null; diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/TruncatedNormalDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/TruncatedNormalDistribution.java index e5a9c6627..d3aeca3c3 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/TruncatedNormalDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/TruncatedNormalDistribution.java @@ -27,9 +27,12 @@ import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -130,6 +133,18 @@ public class TruncatedNormalDistribution extends BaseRandomOp { this.z = z; } + + @Override + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + @Override public List doDiff(List f1) { return Collections.emptyList(); diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/UniformDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/UniformDistribution.java index 4781cb9b8..19827d075 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/UniformDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/ops/random/impl/UniformDistribution.java @@ -25,11 +25,16 @@ import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.autodiff.samediff.SameDiff; import org.nd4j.common.base.Preconditions; import org.nd4j.imports.NoOpNameFoundException; +import org.nd4j.linalg.api.buffer.DataBuffer; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.OpContext; import org.nd4j.linalg.api.ops.random.BaseRandomOp; +import org.nd4j.linalg.api.shape.LongShapeDescriptor; +import org.nd4j.linalg.api.shape.options.ArrayOptionsHelper; import org.nd4j.linalg.factory.Nd4j; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -41,7 +46,7 @@ public class UniformDistribution extends BaseRandomOp { super(); } - public UniformDistribution(SameDiff sd, double from, double to, long[] shape){ + public UniformDistribution(SameDiff sd, double from, double to, long[] shape) { super(sd, shape); this.from = from; this.to = to; @@ -55,6 +60,7 @@ public class UniformDistribution extends BaseRandomOp { public UniformDistribution(double min, double max, DataType datatype, long... shape){ this(Nd4j.createUninitialized(datatype, shape), min, max); + this.shape = shape; } /** @@ -68,6 +74,7 @@ public class UniformDistribution extends BaseRandomOp { this.from = from; this.to = to; this.extraArgs = new Object[] {this.from, this.to}; + this.shape = z.shape(); } /** @@ -107,7 +114,18 @@ public class UniformDistribution extends BaseRandomOp { } @Override - public List calculateOutputDataTypes(List inputDataTypes){ + public List calculateOutputShape(OpContext oc) { + return calculateOutputShape(); + } + + @Override + public List calculateOutputShape() { + LongShapeDescriptor longShapeDescriptor = LongShapeDescriptor.fromShape(shape,dataType); + return Arrays.asList(longShapeDescriptor); + } + + @Override + public List calculateOutputDataTypes(List inputDataTypes) { Preconditions.checkState(inputDataTypes == null || inputDataTypes.isEmpty(), "Expected no input datatypes (no args) for %s, got %s", getClass(), inputDataTypes); //Input data type specifies the shape; output data type should be any float //TODO MAKE CONFIGUREABLE - https://github.com/eclipse/deeplearning4j/issues/6854 diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/rng/distribution/impl/NormalDistribution.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/rng/distribution/impl/NormalDistribution.java index a7ccc5caf..50adf3638 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/rng/distribution/impl/NormalDistribution.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/rng/distribution/impl/NormalDistribution.java @@ -352,4 +352,6 @@ public class NormalDistribution extends BaseDistribution { return ret; } } + + } diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/shape/Shape.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/shape/Shape.java index 9de6781c9..4898f3370 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/shape/Shape.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/shape/Shape.java @@ -3539,7 +3539,7 @@ public class Shape { return shape.length; } - public static int rankFromShape(long[] shape){ + public static int rankFromShape(long[] shape) { if(shape == null){ throw new ND4JIllegalStateException("Cannot get rank from null shape array"); } @@ -3551,7 +3551,7 @@ public class Shape { } public static void assertBroadcastable(@NonNull int[] x, @NonNull int[] y){ - if(!areShapesBroadcastable(x, y)){ + if(!areShapesBroadcastable(x, y)) { throw new ND4JIllegalStateException("Arrays are different shape and are not broadcastable." + " Array 1 shape = " + Arrays.toString(x) + ", array 2 shape = " + Arrays.toString(y)); } @@ -3570,7 +3570,7 @@ public class Shape { } public static boolean areShapesBroadcastable(@NonNull int[] x, @NonNull int[] y){ - //Ported from: https://github.com/deeplearning4j/libnd4j/blob/master/include/helpers/impl/ShapeUtils.cpp + //Ported from: https://github.com/eclipse/deeplearning4j/libnd4j/blob/master/include/helpers/impl/ShapeUtils.cpp int minRank = Math.min(x.length, y.length); for( int i=-1; i>= -minRank; i--){ @@ -3583,7 +3583,7 @@ public class Shape { } public static boolean areShapesBroadcastable(@NonNull long[] left, @NonNull long[] right){ - //Ported from: https://github.com/deeplearning4j/libnd4j/blob/master/include/helpers/impl/ShapeUtils.cpp + //Ported from: https://github.com/eclipse/deeplearning4j/libnd4j/blob/master/include/helpers/impl/ShapeUtils.cpp int minRank = Math.min(left.length, right.length); diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java index 30e580848..31249a1a5 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java @@ -2785,7 +2785,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(@NonNull int... shape) { - INDArray ret = createUninitialized(shape, order()); //INSTANCE.rand(shape, Nd4j.getRandom()); + INDArray ret = createUninitialized(shape, order()).castTo(Nd4j.defaultFloatingPointType()); //INSTANCE.rand(shape, Nd4j.getRandom()); return rand(ret); } @@ -2793,7 +2793,7 @@ public class Nd4j { * See {@link #rand(int[])} */ public static INDArray rand(@NonNull long... shape) { - INDArray ret = createUninitialized(shape, order()); //INSTANCE.rand(shape, Nd4j.getRandom()); + INDArray ret = createUninitialized(shape, order()).castTo(Nd4j.defaultFloatingPointType()); //INSTANCE.rand(shape, Nd4j.getRandom()); return rand(ret); } @@ -2806,7 +2806,7 @@ public class Nd4j { public static INDArray rand(@NonNull DataType dataType, @NonNull long... shape) { Preconditions.checkArgument(dataType.isFPType(), "Can't create a random array of a non-floating point data type"); - INDArray ret = createUninitialized(dataType, shape, order()); //INSTANCE.rand(shape, Nd4j.getRandom()); + INDArray ret = createUninitialized(dataType, shape, order()).castTo(Nd4j.defaultFloatingPointType()); //INSTANCE.rand(shape, Nd4j.getRandom()); return rand(ret); } @@ -2820,7 +2820,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(char order, @NonNull int... shape) { - INDArray ret = Nd4j.createUninitialized(shape, order); //INSTANCE.rand(order, shape); + INDArray ret = Nd4j.createUninitialized(shape, order).castTo(Nd4j.defaultFloatingPointType()); //INSTANCE.rand(order, shape); return rand(ret); } @@ -2829,7 +2829,7 @@ public class Nd4j { */ @Deprecated public static INDArray rand(@NonNull DataType dataType, int[] shape, char order) { - return rand(dataType, order, ArrayUtil.toLongArray(shape)); + return rand(dataType, order, ArrayUtil.toLongArray(shape)).castTo(Nd4j.defaultFloatingPointType()); } /** @@ -2837,7 +2837,7 @@ public class Nd4j { */ @Deprecated public static INDArray rand(@NonNull DataType dataType, char order, @NonNull int... shape) { - return rand(dataType, order, ArrayUtil.toLongArray(shape)); + return rand(dataType, order, ArrayUtil.toLongArray(shape)).castTo(Nd4j.defaultFloatingPointType()); } /** @@ -2851,7 +2851,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(@NonNull DataType dataType, char order, @NonNull long... shape) { - INDArray ret = Nd4j.createUninitialized(dataType, shape, order); + INDArray ret = Nd4j.createUninitialized(dataType, shape, order).castTo(Nd4j.defaultFloatingPointType()); return rand(ret); } @@ -2866,7 +2866,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(@NonNull DataType dataType, @NonNull int... shape) { - INDArray ret = Nd4j.createUninitialized(dataType, ArrayUtil.toLongArray(shape), Nd4j.order()); + INDArray ret = Nd4j.createUninitialized(dataType, ArrayUtil.toLongArray(shape), Nd4j.order()).castTo(Nd4j.defaultFloatingPointType()); return rand(ret); } @@ -2911,7 +2911,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(long seed, @NonNull long... shape) { - INDArray ret = createUninitialized(shape, Nd4j.order());//;INSTANCE.rand(shape, seed); + INDArray ret = createUninitialized(shape, Nd4j.order()).castTo(Nd4j.defaultFloatingPointType());//;INSTANCE.rand(shape, seed); return rand(ret, seed); } @@ -2920,7 +2920,7 @@ public class Nd4j { */ @Deprecated public static INDArray rand(int[] shape, long seed) { - return rand(seed, ArrayUtil.toLongArray(shape)); + return rand(seed, ArrayUtil.toLongArray(shape)).castTo(Nd4j.defaultFloatingPointType()); } @@ -2943,7 +2943,7 @@ public class Nd4j { */ @Deprecated public static INDArray rand(int[] shape, @NonNull org.nd4j.linalg.api.rng.Random rng) { - return rand(rng, ArrayUtil.toLongArray(shape)); + return rand(rng, ArrayUtil.toLongArray(shape)).castTo(Nd4j.defaultFloatingPointType()); } /** @@ -2954,7 +2954,7 @@ public class Nd4j { * @return the random ndarray with the specified shape */ public static INDArray rand(@NonNull org.nd4j.linalg.api.rng.Random rng, @NonNull long... shape) { - INDArray ret = createUninitialized(shape, Nd4j.order()); //INSTANCE.rand(shape, rng); + INDArray ret = createUninitialized(shape, Nd4j.order()).castTo(Nd4j.defaultFloatingPointType()); //INSTANCE.rand(shape, rng); return rand(ret, rng); } @@ -2963,7 +2963,7 @@ public class Nd4j { */ @Deprecated public static INDArray rand(int[] shape, @NonNull Distribution dist) { - return rand(dist, ArrayUtil.toLongArray(shape)); + return rand(dist, ArrayUtil.toLongArray(shape)).castTo(Nd4j.defaultFloatingPointType()); } /** diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/ops/NDNN.java b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/ops/NDNN.java index f12b2dac6..55a3bb778 100644 --- a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/ops/NDNN.java +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/ops/NDNN.java @@ -23,6 +23,7 @@ import static org.nd4j.linalg.factory.NDValidation.isSameType; import org.nd4j.common.base.Preconditions; import org.nd4j.enums.PadMode; import org.nd4j.linalg.api.ndarray.INDArray; +import org.nd4j.linalg.api.ops.Op; import org.nd4j.linalg.factory.NDValidation; import org.nd4j.linalg.factory.Nd4j; @@ -131,7 +132,7 @@ public class NDNN { */ public INDArray dropout(INDArray input, double inputRetainProbability) { NDValidation.validateNumerical("dropout", "input", input); - return Nd4j.exec(new org.nd4j.linalg.api.ops.random.impl.DropOut(input, inputRetainProbability)); + return Nd4j.exec((Op) new org.nd4j.linalg.api.ops.random.impl.DropOut(input, inputRetainProbability)); } /** diff --git a/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/resources/nd4j-op-def.pbtxt b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/resources/nd4j-op-def.pbtxt new file mode 100644 index 000000000..9cbb9c962 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/resources/nd4j-op-def.pbtxt @@ -0,0 +1,20909 @@ +opList { + name: "Assert" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "BinaryMinimalRelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "thresholdRelative" + argType: DOUBLE + } + argDescriptor { + name: "thresholdAbsolute" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "BinaryRelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ClipByValue" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "clipValueMin" + argType: DOUBLE + } + argDescriptor { + name: "clipValueMax" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "Conditional" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "ExternalErrorsFn" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "Floor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "Log1p" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "ParallelConcat" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "Pow" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "Pow_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdy" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdz" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdy" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "Reciprocal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "RelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "Return" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "Scope" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "Switch" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: DIVERGENT_OP_IMPL +} +opList { + name: "Where" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "While" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "isConstant" + argType: BOOL + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "_geluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_mishderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_powderivative" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "pow" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_precise_geluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_sigmoidderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_swishderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_tanhderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "abs" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "absolute_difference_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "absolute_difference_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "acos" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "acosh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ada_delta_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateMsg" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateMsdx" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dRho" + argType: DOUBLE + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateMsg" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateMsdx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rho" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "updatedStateMsdx" + argType: INPUT_TENSOR + argIndex: 5 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ada_grad_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateH" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 3 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ada_max_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adabelief_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adam_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "add" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "add_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "add_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "adjust_contrast" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_contrast_v2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_hue" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delta" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_saturation" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "all" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "alpha_dropout" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: DOUBLE + } + argDescriptor { + name: "b" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "alphaPrime" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "alpha_dropout_bp" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "alphaValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "alpha1Value" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "betaValue" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "amax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amax_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amin_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ams_grad_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "stateH" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateV" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "initStateH" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 7 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "and" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "and_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "any" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "apply_sgd" + argDescriptor { + name: "Z" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: DOUBLE + } + argDescriptor { + name: "parameters" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradients" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "tarr" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "applygradientdescent" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "argamax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argamin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argmax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argmin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "asin" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "asinh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "assign" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "assign_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "asum" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "atan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "atanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "avgpool2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "avgpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "avgpool3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "avgpool3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "axpy" + argDescriptor { + name: "n" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "barnes_edge_forces" + argDescriptor { + name: "N" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "rowP" + argType: INPUT_TENSOR + } + argDescriptor { + name: "colP" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "valP" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dataP" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "barnes_gains" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradX" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "barnes_symmetrized" + argDescriptor { + name: "N" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputRows" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputCols" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "outputVals" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rowP" + argType: INPUT_TENSOR + } + argDescriptor { + name: "colP" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "valP" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "outRows" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batch_to_space" + argDescriptor { + name: "blockSize" + argType: INT64 + } + argDescriptor { + name: "croppingTop" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "croppingBottom" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "crop" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "batch_to_space_nd" + argDescriptor { + name: "blocks" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "blockShape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "crop" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "batched_gemm" + argDescriptor { + name: "transA" + argType: INT64 + } + argDescriptor { + name: "transB" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "M" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "N" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "K" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "ldA" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "ldB" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "ldC" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "batchSize" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "vC" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "transposeA" + argType: BOOL + } + argDescriptor { + name: "transposeB" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + } + argDescriptor { + name: "beta" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "vA" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "vB" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batchnorm" + argDescriptor { + name: "applyScale" + argType: INT64 + } + argDescriptor { + name: "applyOffset" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "applyGamma" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "applyBeta" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gamma" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batchnorm_bp" + argDescriptor { + name: "applyScale" + argType: INT64 + } + argDescriptor { + name: "applyOffset" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdM" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdV" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdG" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "applyGamma" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "applyBeta" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gamma" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "betainc" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "biasadd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "biasadd_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "bincount" + argDescriptor { + name: "minLength" + argType: INT64 + } + argDescriptor { + name: "maxLength" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputType" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "bitcast" + argDescriptor { + name: "newType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dataType" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "bits_hamming_distance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "bitwise_and" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bitwise_or" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bitwise_xor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bool_not" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "boolean_and" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "boolean_not" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "boolean_or" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "boolean_xor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "broadcast_amax" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_amin" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_dynamic_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "broadcast_equalto" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_greaterthan" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_greaterthanorequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_lessthan" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_lessthanorequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_max" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_min" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_notequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_to" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "broadcastadd" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastcopy" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastdiv" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastgradientargs" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "broadcastmul" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastrdiv" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastrsub" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastsub" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "car" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "set" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cas" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "set" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cast" + argDescriptor { + name: "dst" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "cbow" + argDescriptor { + name: "numWorkers" + argType: INT64 + } + argDescriptor { + name: "nsRounds" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "trainWords" + argType: BOOL + } + argDescriptor { + name: "isInference" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ngStarter" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "context" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "codes" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "syn0" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "syn1" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "syn1neg" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "expTable" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "negTable" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "randomValue" + argType: INPUT_TENSOR + argIndex: 11 + } + argDescriptor { + name: "numLabels" + argType: INPUT_TENSOR + argIndex: 12 + } + argDescriptor { + name: "lockedWords" + argType: INPUT_TENSOR + argIndex: 13 + } + argDescriptor { + name: "inferenceVector" + argType: INPUT_TENSOR + argIndex: 14 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ceil" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cell_contains" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "contains" + argType: BOOL + } + argDescriptor { + name: "corner" + argType: INPUT_TENSOR + } + argDescriptor { + name: "width" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "point" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "check_numerics" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "message" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "choice" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "source" + argType: INPUT_TENSOR + } + argDescriptor { + name: "probabilities" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cholesky" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "choose" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "numResults" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "scalar" + argType: DOUBLE + } + argDescriptor { + name: "arg" + argType: INPUT_TENSOR + } + argDescriptor { + name: "comp" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clip_by_global_norm" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "clipbyavgnorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clipbyavgnorm_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clipbynorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clipbynorm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clipbyvalue" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "left" + argType: DOUBLE + } + argDescriptor { + name: "right" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clone_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "col2im" + argDescriptor { + name: "strideY" + argType: INT64 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "padHeight" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "padWidth" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "imgHeight" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "imgWidth" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "compare_and_bitpack" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "compat_sparse_to_dense" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "def" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "compat_string_split" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delim" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "concat" + argDescriptor { + name: "concatDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isDynamicAxis" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "concatDimension" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "concat_bp" + argDescriptor { + name: "concatDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "epsilonChunk" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dynamicAxis" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "originalChunk" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "confusion_matrix" + argDescriptor { + name: "numClasses" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv1d" + argDescriptor { + name: "kW" + argType: INT64 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "isNCW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv1d_bp" + argDescriptor { + name: "kW" + argType: INT64 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "isNCW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "conv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "conv2d_input_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradIShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "copy" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cos" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosine_distance_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cosine_distance_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cosinedistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosinesimilarity" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "countNonZero" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "countZero" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "create" + argDescriptor { + name: "order" + argType: INT64 + } + argDescriptor { + name: "outputType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "init" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "create_list" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "expandable" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "crelu" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "crelu_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "epsilon" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilonNext" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "crop_and_resize" + argDescriptor { + name: "method" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "extrapolationVal" + argType: DOUBLE + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "boxIndexes" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "cross" + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "ctc_loss" + argDescriptor { + name: "blankIndex" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputLosses" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targetLabels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logitInput" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "targetLabelLengths" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logitInputLengths" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "ctc_loss_grad" + argDescriptor { + name: "blankIndex" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputGradients" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targetLabels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logitInput" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "targetLabelLengths" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logitInputLengths" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "cube" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cube_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cubederivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cumprod" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cumprod_bp" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cumsum" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cumsum_bp" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cyclic_rshift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "cyclic_shift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "decode_bitmap" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updates" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "start" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "decode_threshold" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updates" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "deconv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "deconv2d_tf" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradIShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv3d" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv3d_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "deconv3d_tf" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "depth_to_space" + argDescriptor { + name: "block_size" + argType: INT64 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "depthwise_conv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "depthwise_conv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "diag" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "diag_part" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "digamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dilation2d" + argDescriptor { + name: "isSameMode" + argType: INT64 + } + argDescriptor { + name: "rates" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strides" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isSameMode" + argType: BOOL + } + argDescriptor { + name: "inPlace" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "r" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "distribution_bernoulli" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "prob" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_binomial" + argDescriptor { + name: "trials" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_binomial_ex" + argDescriptor { + name: "trials" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_gaussian" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stddev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_lognormal" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stdev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_truncated" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stddev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_uniform" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "div_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "divide" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "divide_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "divide_no_nan" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "dot" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "newFormat" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "dot_product_attention" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "outputWeights" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "withWeights" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "dot_product_attention_bp" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdq" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdk" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdv" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "draw_bounding_boxes" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "images" + argType: INPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "colors" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "dropout" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dropout_bp" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dropout_inverted" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "p" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "dynamic_bidirectional_rnn" + argDescriptor { + name: "timeMajor" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "hFW" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hBW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hFWFinal" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "hBWFinal" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "WxFW" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "WhFW" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bFW" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "WxBW" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "WhBW" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "bBW" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "h0FW" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "h0BW" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "dynamic_partition" + argDescriptor { + name: "numPartitions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputList" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "dynamic_partition_bp" + argDescriptor { + name: "numPartition" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputList" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradsAtOutput" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "dynamic_rnn" + argDescriptor { + name: "timeMajor" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "dynamic_stitch" + argDescriptor { + name: "numPartitions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "index" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "elu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "elu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "embedding_lookup" + argDescriptor { + name: "partition_mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "encode_bitmap" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "encoded" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "counter" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "counter" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "encode_threshold" + argDescriptor { + name: "boundary" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updated" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "enter" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "isConstant" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "entropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "eps" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "eps_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "equals" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "equals_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "equals_with_eps" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "eps" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "erf" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "erfc" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "euclidean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "evaluate_reduction_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "oldFormat" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "inputShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "exit" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "exp" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "expand_dims" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "expm1" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "expose" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "extract_image_patches" + argDescriptor { + name: "ksizeRows" + argType: INT64 + } + argDescriptor { + name: "ksizeCols" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kstrideRows" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "kstrideCols" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "krateRows" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "krateCols" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sameMode" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "eye" + argDescriptor { + name: "numRows" + argType: INT64 + } + argDescriptor { + name: "numCols" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "batchDimension" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dataType" + argType: DOUBLE + } + argDescriptor { + name: "numRows" + argType: INPUT_TENSOR + } + argDescriptor { + name: "numCols" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "fake_quant_with_min_max_args" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowRange" + argType: BOOL + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "fake_quant_with_min_max_vars" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowed" + argType: BOOL + } + argDescriptor { + name: "m" + argType: DOUBLE + } + argDescriptor { + name: "m2" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "fake_quant_with_min_max_vars_per_channel" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowed" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "fill" + argDescriptor { + name: "dtype" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "value" + argType: DOUBLE + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "outputs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "fill_as" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "firas_sparse" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "first_index" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "flatten" + argDescriptor { + name: "order" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "flatten_2d" + argDescriptor { + name: "flattenDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "floor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "floordiv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "floordiv_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "floormod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "floormod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "fmod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "fmod_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "fused_batch_norm" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "isTraining" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "batchMean" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "batchVar" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scale" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "offset" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "batchMeanVar" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "gather" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "intArgs" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "gather_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "gather_nd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "checkIndices" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "gelu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "get_seed" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "gradientbackwards" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "greater" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "greater_equal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "greaterthan_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "greaterthanorequal_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "grid_free" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "gru" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "gruCell" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "r" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "u" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hLast" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wru" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "bru" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "bc" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "gruCell_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdhi" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdW" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWc" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdbc" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hi" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "bc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdr" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "dLdu" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "dLdc" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 9 + } +} +opList { + name: "gru_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWh" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "hammingdistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hard_sigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hard_sigmoidderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hardsigmoid" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardsigmoid_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanhderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hashcode" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "hasinf" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hasnan" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hinge_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "hinge_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "histogram" + argDescriptor { + name: "numBins" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "histogram_fixed_width" + argDescriptor { + name: "nbins" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "range" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numBins" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "hsv_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "huber_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "delta" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "huber_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "delta" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "identity" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "identity_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "identity_n" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "igamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "igammac" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "im2col" + argDescriptor { + name: "kernelHeight" + argType: INT64 + } + argDescriptor { + name: "kernelWidth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strideY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "padHeight" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "padWidth" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "zeroPadVal" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "im2col_bp" + argDescriptor { + name: "kernelHeight" + argType: INT64 + } + argDescriptor { + name: "kernelWidth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strideY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "zeroPadVal" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradAtOutput" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "image_resize" + argDescriptor { + name: "method" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "preserveAspectRatio" + argType: BOOL + } + argDescriptor { + name: "antialias" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "in_top_k" + argDescriptor { + name: "k" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sorted" + argType: BOOL + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "invert_permutation" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "is_non_decreasing" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "is_numeric_tensor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "is_strictly_increasing" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "isfinite" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "isinf" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ismax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "isnan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "jaccarddistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "knn_mindistance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lowest" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "highest" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "distance" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "l2_loss" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "last_index" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "layer_norm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "noBias" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gain" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "layer_norm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdg" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "noBias" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gain" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdx" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdg" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdb" + argType: INPUT_TENSOR + argIndex: 6 + } +} +opList { + name: "leakyrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "leakyreluderivative" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "less" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "less_equal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "lessthan_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "lessthanorequal_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "lgamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "lin_space" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "start" + argType: DOUBLE + } + argDescriptor { + name: "stop" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "start" + argType: INPUT_TENSOR + } + argDescriptor { + name: "finish" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numOfElements" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "linspace_random" + argDescriptor { + name: "length" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "listdiff" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "output1" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "output2" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keep" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "log" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "log1p" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "log_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_matrix_determinant" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "log_poisson_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "full" + argType: BOOL + } + argDescriptor { + name: "log_predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_poisson_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "full" + argType: BOOL + } + argDescriptor { + name: "log_predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_softmax" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "log_softmax_bp" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "log_x" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "base" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "logdet" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "logentropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "logsigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "loop_cond" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "lrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrelu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrn" + argDescriptor { + name: "depth" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "bias" + argType: DOUBLE + } + argDescriptor { + name: "alpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrn_bp" + argDescriptor { + name: "depth" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "bias" + argType: DOUBLE + } + argDescriptor { + name: "alpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lstm" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "projection" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + } + argDescriptor { + name: "clippingProjValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmBlock" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "dataFormat" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "i" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "f" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "maxTSLength" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "cLast" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "yLast" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wci" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wcf" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wco" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "lstmBlockCell" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "i" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "f" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "cLast" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "yLast" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wci" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wcf" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wco" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmCell" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "projection" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + } + argDescriptor { + name: "clippingProjValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ht_1" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "ct_1" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayer" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "directionMode" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "gateAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hL" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "cL" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasSeqLen" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "hasInitH" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "hasInitC" + argType: BOOL + argIndex: 3 + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 4 + } + argDescriptor { + name: "retFullSeq" + argType: BOOL + argIndex: 5 + } + argDescriptor { + name: "retLastH" + argType: BOOL + argIndex: 6 + } + argDescriptor { + name: "retLastC" + argType: BOOL + argIndex: 7 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "seqLen" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayerCell" + argDescriptor { + name: "gateAct" + argType: INT64 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } +} +opList { + name: "lstmLayerCellBp" + argDescriptor { + name: "gateAct" + argType: INT64 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWr" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdcI" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWp" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayer_bp" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "directionMode" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "gateAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWr" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdcI" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWp" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasSeqLen" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "hasInitH" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "hasInitC" + argType: BOOL + argIndex: 3 + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 4 + } + argDescriptor { + name: "retFullSeq" + argType: BOOL + argIndex: 5 + } + argDescriptor { + name: "retLastH" + argType: BOOL + argIndex: 6 + } + argDescriptor { + name: "retLastC" + argType: BOOL + argIndex: 7 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "seqLen" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "dLdhL" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "dLdcL" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "dLdsL" + argType: INPUT_TENSOR + argIndex: 11 + } +} +opList { + name: "lstsq" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "fastFlag" + argType: BOOL + } + argDescriptor { + name: "l2_factor" + argType: DOUBLE + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "lu" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "p" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "manhattan" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "match_condition" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "match_condition_transform" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "matmul" + argDescriptor { + name: "transX" + argType: INT64 + } + argDescriptor { + name: "transY" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "transZ" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "transposeX" + argType: BOOL + } + argDescriptor { + name: "transposeY" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "matmul_bp" + argDescriptor { + name: "transX" + argType: INT64 + } + argDescriptor { + name: "transY" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "transZ" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dldx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dldy" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dldx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dldy" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "matrix_band_part" + argDescriptor { + name: "minLower" + argType: INT64 + } + argDescriptor { + name: "maxUpper" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "minLowerT" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxUpperT" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "matrix_determinant" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_diag" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "diagonal" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_diag_part" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_inverse" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "matrix_set_diag" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "diagonal" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "max_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "max_pool_with_argmax" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "sameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "outArgMax" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "max_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "maximum" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "maximum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "maxout" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "maxpool2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "maxpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "maxpool3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "arrayOutput" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "maxpool3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mean_pairwssqerr_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_pairwssqerr_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_sqerr_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_sqerr_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "merge" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "mergeadd" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergeadd_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergeavg" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergeavg_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergemax" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergemax_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergemaxindex" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } +} +opList { + name: "mergesum" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "meshgrid" + argDescriptor { + name: "swapFirst2Dims" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cartesian" + argType: BOOL + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } +} +opList { + name: "meta_postulate" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_predicate" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_predicate_inverted" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_reduce" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "min_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "minimum" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "minimum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mirror_pad" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isSymmetric" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "paddings" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mish" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "mod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "mod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "moments" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "means" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "variances" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "outStd" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mul_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "multi_head_dot_product_attention" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "weights" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "withWeights" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wq" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wk" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wv" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wo" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "multi_head_dot_product_attention_bp" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdq" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdk" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdv" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWq" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdWk" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdWv" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWo" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wq" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wk" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wv" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wo" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "multiply" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "multiply_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "nadam_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateV" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "neg" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "nesterovs_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dMomentum" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "momentum" + argType: INPUT_TENSOR + argIndex: 3 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "next_iteration" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "non_max_suppression" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutputSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "non_max_suppression_overlaps" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "overlapThreshold" + argType: DOUBLE + } + argDescriptor { + name: "scoreThreshold" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "non_max_suppression_v3" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "noop" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "norm" + argDescriptor { + name: "*output" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mode" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: REDUCTION_OP_IMPL +} +opList { + name: "normalize_moments" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "resMeans" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "resVariances" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shift" + argType: DOUBLE + } + argDescriptor { + name: "counts" + argType: INPUT_TENSOR + } + argDescriptor { + name: "means" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variances" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "outMean" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outVar" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "not" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "not_equals" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "not_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "notequals_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "nth_element" + argDescriptor { + name: "reverse" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "reverse" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "n" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "old_assign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "onehot" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "depth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "on" + argType: DOUBLE + } + argDescriptor { + name: "off" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "depth" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "on" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "off" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "oneminus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ones_as" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "or" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "or_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "order" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "pad" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "padValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "paddings" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "parallel_stack" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "percentile" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "q" + argType: DOUBLE + } + argDescriptor { + name: "interpolation" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "permute" + argDescriptor { + name: "reverseDims" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "permutationVector" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pick_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ia" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "pnormpool2d" + argDescriptor { + name: "kY" + argType: INT64 + } + argDescriptor { + name: "kX" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pY" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pX" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "pnormpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "pnorm" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "eps" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pointwise_conv2d" + argDescriptor { + name: "isNCHW" + argType: INT64 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "polygamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "n" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "pooling3dpool3dnew_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pow" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "pow" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "pow" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "pow_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "precise_gelu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "prelu" + argDescriptor { + name: "sharedAxes" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "prelu_bp" + argDescriptor { + name: "sharedAxes" + argType: INT64 + } + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdA" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdO" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdI" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdA" + argType: INPUT_TENSOR + argIndex: 4 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "print_affinity" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "print_variable" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "printSpecial" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "message" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "probablistic_merge" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "qr" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputQ" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputR" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "fullMatricies" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_bernoulli" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "f" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_crop" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_exponential" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lambda" + argType: DOUBLE + } +} +opList { + name: "random_gamma" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "random_multinomial" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputSamples" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_normal" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_poisson" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lambda" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_shuffle" + argDescriptor { + name: "seeds" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "randomnormal" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stdev" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } +} +opList { + name: "randomuniform" + argDescriptor { + name: "dtype" + argType: INT64 + } + argDescriptor { + name: "seed" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "range" + argDescriptor { + name: "from" + argType: INT64 + } + argDescriptor { + name: "to" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "step" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "step" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "from" + argType: INPUT_TENSOR + } + argDescriptor { + name: "to" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "step" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rank" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "rational_tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rational_tanh_derivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rationaltanh" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rationaltanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rdiv_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "read_list" + argDescriptor { + name: "index" + argType: INT64 + } + argDescriptor { + name: "importDataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "vec" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "realdiv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "realdiv_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rectified_tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rectified_tanh_derivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rectifiedtanh" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rectifiedtanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "reduce_dot_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputY" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "reduce_logsumexp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_max" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_max_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_mean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_mean_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_min" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_min_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm1" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm1_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm2" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm2_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm_max" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm_max_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_normmax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "reduce_prod" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_prod_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_sqnorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_sqnorm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_stdev" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_stdev_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_sum" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_sum_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_variance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_variance_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "relu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu6" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu6_bp" + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "scalar" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu_layer" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "remainder" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "remainder_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "repeat" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "replace_nans" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "set" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "reshape" + argDescriptor { + name: "shapeArr" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reshapeas" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_area" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_bicubic" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "alignPixelCenters" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_bilinear" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "halfPixelCenter" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_images" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "preserveAspectRatio" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "methodT" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "resize_nearest_neighbor" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "halfPixelCenter" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "restorev2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "reverse" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "reverse_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "grad" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reverse_sequence" + argDescriptor { + name: "seqDim" + argType: INT64 + } + argDescriptor { + name: "batchDim" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "seqLengths" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reverse_v2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isLegacy" + argType: BOOL + } +} +opList { + name: "reversedivide" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversedivide_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reversemod" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversemod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reversesubtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversesubtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rgb_to_grs" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "rgb_to_hsv" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rgb_to_yiq" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rgb_to_yuv" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rint" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "rms_prop_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateG" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dRmsDecay" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rmsDecay" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 4 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "roll" + argDescriptor { + name: "shift" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shiftsI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "round" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rshift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "rsqrt" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rsub_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "savev2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "scalar_min" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "scatter_add" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_div" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "array" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "scatter_max" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_min" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_mul" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "scatter_nd_add" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd_sub" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd_update" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_sub" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_upd" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_update" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "operand" + argType: INPUT_TENSOR + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sconv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "*output" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "*input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "*weightsDepth" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sconv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "*gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "*gradWD" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradWP" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "*input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "*gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "*weightsDepth" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "segment_max" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_max_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_mean" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_mean_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_min" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_min_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_prod" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_prod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_sum" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_sum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "data" + argType: INPUT_TENSOR + } + argDescriptor { + name: "segmentIds" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "select" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cond" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "selu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "selu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "seluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sequence_mask" + argDescriptor { + name: "maxInd" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "is_static_maxlen" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "maxlen" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "set" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "set_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "set_seed" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "setrange" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "setvalorless_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sgd_updater" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "shannonentropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "shape_of" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "shapes_of" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "shift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "sigm_cross_entropy_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sigm_cross_entropy_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "labelSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sigmoid_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sin" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sinh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "size" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "size_at" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "size_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "skipgram" + argDescriptor { + name: "numWorkers" + argType: INT64 + } + argDescriptor { + name: "nsRounds" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isInference" + argType: BOOL + } + argDescriptor { + name: "isPreciseMode" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ngStarter" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "codes" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "syn0" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "syn1" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "syn1neg" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "expTable" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "negTable" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "randomValue" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "inferenceVector" + argType: INPUT_TENSOR + argIndex: 11 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "slice" + argDescriptor { + name: "size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "e" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "slice_bp" + argDescriptor { + name: "size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "e" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "softmax" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softmax_bp" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softmax_cross_entropy_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "softmax_cross_entropy_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "softmax_cross_entropy_loss_with_logits" + argDescriptor { + name: "classesDim" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "softmax_cross_entropy_loss_with_logits_grad" + argDescriptor { + name: "classesDim" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "softplus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softplus_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsign_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsignderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "solve" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "useAdjoint" + argType: BOOL + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "adjoint" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "solve_ls" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "fastFlag" + argType: BOOL + } + argDescriptor { + name: "l2_factor" + argType: DOUBLE + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "somepoolingpool2d" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "somepoolingpool2d_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "grad" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "space_to_batch" + argDescriptor { + name: "blockSize" + argType: INT64 + } + argDescriptor { + name: "paddingTop" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "paddingBottom" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "padding" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "space_to_batch_nd" + argDescriptor { + name: "blocks" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "blockShape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "padding" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "space_to_depth" + argDescriptor { + name: "block_size" + argType: INT64 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "sparse_softmax_cross_entropy_loss_with_logits" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "sparse_softmax_cross_entropy_loss_with_logits_grad" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split" + argDescriptor { + name: "numSplit" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "array" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "split_string" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delim" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split_v" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "numSplit" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "_a" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sqrt" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sqrtm" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "square" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "squaredsubtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "squaredsubtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "squeeze" + argDescriptor { + name: "_a" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "sru" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sruCell" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ct_1" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "sru_bi" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sru_bi_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradC0" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "ct" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "inGradC0" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "inGradHt" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "sru_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradInit" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "c" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "inGradCt" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "inGradH" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "stabilize" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "realMin" + argType: DOUBLE + } + argDescriptor { + name: "cutOff" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "k" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "stack" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "stack_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "standardize" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "standardize_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "static_bidirectional_rnn" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFWFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hBWFinal" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "WxFW" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "WhFW" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bFW" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "WxBW" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "WhBW" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "bBW" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "h0FW" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "h0BW" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "static_rnn" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "std" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "step" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "stop_gradient" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "strided_slice" + argDescriptor { + name: "begin_mask" + argType: INT64 + } + argDescriptor { + name: "ellipsis_mask" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "end_mask" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "new_axis_mask" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "shrink_axis_mask" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "v_begin" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "v_end" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v_stride" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "strided_slice_bp" + argDescriptor { + name: "begin_mask" + argType: INT64 + } + argDescriptor { + name: "ellipsis_mask" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "end_mask" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "new_axis_mask" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "shrink_axis_mask" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "v_begin" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v_end" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "v_stride" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sub_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "subtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "subtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sufficient_statistics" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dataCount" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sum" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "squares" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "shift" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shift" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "svd" + argDescriptor { + name: "fullUV" + argType: INT64 + } + argDescriptor { + name: "calcUV" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "switchNum" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "full_matrices" + argType: BOOL + } + argDescriptor { + name: "computeUv" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "u" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "swish" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "switch" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "predicate" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "tanderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tear" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outE" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tensorarrayv3" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "tensorarraywritev3" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tensordot" + argDescriptor { + name: "dimensionsY" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "addedEdges" + argType: BOOL + } + argDescriptor { + name: "transposeY" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tensormmul" + argDescriptor { + name: "axe0_size" + argType: INT64 + } + argDescriptor { + name: "axe1_size" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tensormmul_bp" + argDescriptor { + name: "axe0Size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdA" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdB" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "A" + argType: INPUT_TENSOR + } + argDescriptor { + name: "B" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdC" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "test_output_reshape" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "test_scalar" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "testcustom" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "testop2i2o" + argDescriptor { + name: "xO" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "yO" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "testreduction" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: REDUCTION_OP_IMPL +} +opList { + name: "tf_atan2" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "thresholdedrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "thresholdedrelu_bp" + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dLdO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tile" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "is_static_reps" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "reps_vector" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tile_bp" + argDescriptor { + name: "repeat" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tile_to_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tile_to_shape_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "timesoneminus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "to_double" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_float16" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_float32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_int32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_int64" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_uint32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_uint64" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "toggle_bits" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "top_k" + argDescriptor { + name: "k" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "needSort" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "trace" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "transpose" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "permuteDims" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tri" + argDescriptor { + name: "row" + argType: INT64 + } + argDescriptor { + name: "column" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "diag" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "triangular_solve" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isLower" + argType: BOOL + } + argDescriptor { + name: "useAdjoint" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lower" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "adjoint" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "triu" + argDescriptor { + name: "diag" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "triu_bp" + argDescriptor { + name: "diag" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "truncatediv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "unique" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unique_with_counts" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "counts" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unsorted_segment_max" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_max_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_mean" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_mean_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_min" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_min_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_prod" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_prod_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sqrt_n" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sqrt_n_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sum" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sum_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unstack" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "num" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unstack_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputList" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "upsampling2d" + argDescriptor { + name: "factorH" + argType: INT64 + } + argDescriptor { + name: "factorW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "upsampling2d_bp" + argDescriptor { + name: "scaleW" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "upsampling3d" + argDescriptor { + name: "factorD" + argType: INT64 + } + argDescriptor { + name: "factorH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "factorW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ncdhw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "upsampling3d_bp" + argDescriptor { + name: "isNCDHW" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ncdhw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "var" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "weighted_cross_entropy_with_logits" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targets" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "where_np" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "write_list" + argDescriptor { + name: "idx" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "xor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "xor_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "xw_plus_b" + argDescriptor { + name: "bTranspose" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "xw_plus_b_bp" + argDescriptor { + name: "bTranspose" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdz" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "yiq_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "yuv_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "zero_fraction" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeros_as" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "zeros_like" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeroslike" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeta" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "q" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "placeholder" + opDeclarationType: LOGIC_OP_IMPL +} diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/pom.xml b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/pom.xml index a906afb06..7ee86dfdf 100644 --- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/pom.xml +++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-cuda/pom.xml @@ -140,6 +140,8 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false ${env.LD_LIBRARY_PATH}:${user.dir}:${libnd4jhome}/blasbuild/cuda/blas/ diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/ops/NativeOpExecutioner.java b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/ops/NativeOpExecutioner.java index 8b7074694..b0bb2ae08 100644 --- a/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/ops/NativeOpExecutioner.java +++ b/nd4j/nd4j-backends/nd4j-backend-impls/nd4j-native/src/main/java/org/nd4j/linalg/cpu/nativecpu/ops/NativeOpExecutioner.java @@ -1272,18 +1272,20 @@ public class NativeOpExecutioner extends DefaultOpExecutioner { val zb = z == null ? null : ((BaseCpuDataBuffer) z.data()).getOpaqueDataBuffer(); if (x != null && y != null && z != null) { + DataBuffer dataBuffer = op.extraArgsDataBuff(z.dataType()); // triple arg call loop.execRandom3(null, op.opNum(), rng.getStatePointer(), // rng state ptr xb, (LongPointer) x.shapeInfoDataBuffer().addressPointer(), null, yb, (LongPointer) y.shapeInfoDataBuffer().addressPointer(), null, zb, (LongPointer) z.shapeInfoDataBuffer().addressPointer(), null, - op.extraArgsDataBuff(z.dataType()).addressPointer()); + dataBuffer != null ? dataBuffer.addressPointer() : null); } else if (x != null && z != null) { + DataBuffer dataBuffer = op.extraArgsDataBuff(z.dataType()); //double arg call loop.execRandom2(null, op.opNum(), rng.getStatePointer(), // rng state ptr xb, (LongPointer) x.shapeInfoDataBuffer().addressPointer(), null, zb, (LongPointer) z.shapeInfoDataBuffer().addressPointer(), null, - op.extraArgsDataBuff(z.dataType()).addressPointer()); + dataBuffer != null ? dataBuffer.addressPointer() : null); } else { // single arg call loop.execRandom(null, op.opNum(), rng.getStatePointer(), // rng state ptr diff --git a/nd4j/nd4j-backends/nd4j-backend-impls/pom.xml b/nd4j/nd4j-backends/nd4j-backend-impls/pom.xml index 644ac9cab..82fbffb8c 100644 --- a/nd4j/nd4j-backends/nd4j-backend-impls/pom.xml +++ b/nd4j/nd4j-backends/nd4j-backend-impls/pom.xml @@ -124,7 +124,10 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false + 1 ${env.LD_LIBRARY_PATH}:${user.dir} diff --git a/nd4j/nd4j-backends/nd4j-tests/ops-added-new.txt b/nd4j/nd4j-backends/nd4j-tests/ops-added-new.txt new file mode 100644 index 000000000..84cf4d764 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/ops-added-new.txt @@ -0,0 +1,19 @@ +Const,in_0 +Const,while/Const +Const,while/add/y +Identity,in_0/read +Enter,while/Enter +Enter,while/Enter_1 +Merge,while/Merge +Merge,while/Merge_1 +Less,while/Less +LoopCond,while/LoopCond +Switch,while/Switch +Switch,while/Switch_1 +Identity,while/Identity +Exit,while/Exit +Identity,while/Identity_1 +Exit,while/Exit_1 +Add,while/add +NextIteration,while/NextIteration_1 +NextIteration,while/NextIteration diff --git a/nd4j/nd4j-backends/nd4j-tests/ops-imported-new.txt b/nd4j/nd4j-backends/nd4j-tests/ops-imported-new.txt new file mode 100644 index 000000000..f4bde2724 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/ops-imported-new.txt @@ -0,0 +1,16 @@ +Identity,in_0/read +Enter,while/Enter +Enter,while/Enter_1 +Merge,while/Merge +Merge,while/Merge_1 +Less,while/Less +LoopCond,while/LoopCond +Switch,while/Switch +Switch,while/Switch_1 +Identity,while/Identity +Exit,while/Exit +Identity,while/Identity_1 +Exit,while/Exit_1 +Add,while/add +NextIteration,while/NextIteration_1 +NextIteration,while/NextIteration diff --git a/nd4j/nd4j-backends/nd4j-tests/ops-removed-new.txt b/nd4j/nd4j-backends/nd4j-tests/ops-removed-new.txt new file mode 100644 index 000000000..201dc67b4 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/ops-removed-new.txt @@ -0,0 +1,19 @@ +in_0 +while/Const +while/add/y +in_0/read +while/Enter +while/Enter_1 +while/Merge +while/Merge_1 +while/Less +while/LoopCond +while/Switch +while/Switch_1 +while/Identity +while/Exit +while/Identity_1 +while/Exit_1 +while/add +while/NextIteration_1 +while/NextIteration diff --git a/nd4j/nd4j-backends/nd4j-tests/pom.xml b/nd4j/nd4j-backends/nd4j-tests/pom.xml index d70eb3ced..dc763b298 100644 --- a/nd4j/nd4j-backends/nd4j-tests/pom.xml +++ b/nd4j/nd4j-backends/nd4j-tests/pom.xml @@ -178,14 +178,11 @@ org.nd4j samediff-import-tensorflow ${project.version} - compile org.nd4j samediff-import-onnx ${project.version} - compile - org.nd4j @@ -272,7 +269,11 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false + 1 + ${nd4j.basedir}/nd4j-backends/nd4j-backend-impls/nd4j-native/target/classes @@ -347,11 +348,6 @@ cuda-platform ${cuda.version}-${cudnn.version}-${javacpp-presets.cuda.version} - - org.apache.maven.surefire - surefire-junit47 - 2.19.1 - diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/TestSessions.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/TestSessions.java index d675075e9..ecae1fa98 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/TestSessions.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/TestSessions.java @@ -87,7 +87,7 @@ public class TestSessions extends BaseNd4jTestWithBackends { m.put("y", y); Map outMap = is.output(Collections.singletonList("out"), m, null, - Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); + Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); assertEquals(1, outMap.size()); assertEquals(outExp, outMap.get("out")); @@ -125,7 +125,7 @@ public class TestSessions extends BaseNd4jTestWithBackends { m.put("y", y); Map outMap = is.output(Collections.singletonList("d"), m, null, - Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); + Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); assertEquals(1, outMap.size()); assertEquals(dExp, outMap.get("d")); @@ -160,7 +160,7 @@ public class TestSessions extends BaseNd4jTestWithBackends { // String outName = merge.name(); String outName = outVar.name(); Map outMap = is.output(Collections.singletonList(outName), m, null, - Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); + Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); assertEquals(1, outMap.size()); INDArray out = outMap.get(outName); @@ -196,7 +196,7 @@ public class TestSessions extends BaseNd4jTestWithBackends { String n = merge.name(); // System.out.println("----------------------------------"); - Map outMap = is.output(Collections.singletonList(n), m, null, Collections.emptyList(), + Map outMap = is.output(Collections.singletonList(n), m, null, Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); assertEquals(1, outMap.size()); assertEquals(expTrue, outMap.get(n)); @@ -206,14 +206,17 @@ public class TestSessions extends BaseNd4jTestWithBackends { //Check false case: bArr.assign(0); is = new InferenceSession(sd); - outMap = is.output(Collections.singletonList(n), m, null, Collections.emptyList(), null, At.defaultAt(Operation.TRAINING)); + outMap = is.output(Collections.singletonList(n), m, null, Collections.emptyList(), null, + At.defaultAt(Operation.TRAINING)); assertEquals(1, outMap.size()); assertEquals(expFalse, outMap.get(n)); } - @Test() @Timeout(20000L) - public void testSwitchWhile() throws Exception{ + @Tag(TagNames.FILE_IO) + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + public void testSwitchWhile(Nd4jBackend backend) throws Exception{ /* Test case: @@ -229,7 +232,7 @@ public class TestSessions extends BaseNd4jTestWithBackends { for( int numIter : new int[]{1,3}) { File f = new ClassPathResource("tf_graphs/examples/while1/iter_" + numIter + "/frozen_model.pb").getFile(); TensorflowFrameworkImporter tensorflowFrameworkImporter = new TensorflowFrameworkImporter(); - SameDiff sd = tensorflowFrameworkImporter.runImport(f.getAbsolutePath(),null); + SameDiff sd = tensorflowFrameworkImporter.runImport(f.getAbsolutePath(),Collections.emptyMap()); // System.out.println(sd.summary()); sd.summary(); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/MiscOpValidation.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/MiscOpValidation.java index 1dbd5f39b..1fb0921b0 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/MiscOpValidation.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/MiscOpValidation.java @@ -35,6 +35,7 @@ import org.nd4j.autodiff.validation.OpTestCase; import org.nd4j.autodiff.validation.OpValidation; import org.nd4j.autodiff.validation.TestCase; import org.nd4j.common.base.Preconditions; +import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.api.blas.params.MMulTranspose; import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @@ -81,7 +82,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assumptions.*; @Slf4j -@Tag("samediff") +@Tag(TagNames.SAMEDIFF) public class MiscOpValidation extends BaseOpValidation { @@ -665,48 +666,6 @@ public class MiscOpValidation extends BaseOpValidation { } - @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled - public void testMmulGradientManual(Nd4jBackend backend) { - SameDiff sameDiff = SameDiff.create(); - INDArray sumInput = Nd4j.linspace(1, 4, 4, DataType.DOUBLE).reshape(2, 2); - Map inputs = new HashMap<>(); - inputs.put("x", sumInput); - inputs.put("y", sumInput.dup()); - - sameDiff.defineFunction("mmulGradient", (sameDiff1, inputs1, variableInputs) -> { - SDVariable input = sameDiff1.var("x", inputs1.get("x")); - SDVariable input2 = sameDiff1.var("y", inputs1.get("y")); - SDVariable exp = sameDiff1.mmul(input, input2); - SDVariable sum = sameDiff1.sum(exp, Integer.MAX_VALUE); - return new SDVariable[]{sum}; - }, inputs); - - - assertNotNull(sameDiff.getFunction("mmulGradient").getFunction("grad")); - assertNotNull(sameDiff.getFunction("mmulGradient").grad("x")); - assertNotNull(sameDiff.getFunction("mmulGradient").grad("y")); - - SDVariable gradWrtX = sameDiff.getFunction("mmulGradient").grad("x"); - SDVariable gradWrtY = sameDiff.getFunction("mmulGradient").grad("y"); - assertNotNull(gradWrtX.getArr()); - assertNotNull(gradWrtY.getArr()); - - - INDArray xGradAssertion = Nd4j.create(new double[][]{ - {3, 7}, - {3, 7} - }); - - INDArray yGradAssertion = Nd4j.create(new double[][]{ - {4, 4}, - {6, 6} - }); - - assertEquals(xGradAssertion, gradWrtX.getArr()); - assertEquals(yGradAssertion, gradWrtY.getArr()); - } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/RandomOpValidation.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/RandomOpValidation.java index 9cba3ccf5..cd3d129b6 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/RandomOpValidation.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/RandomOpValidation.java @@ -391,7 +391,7 @@ public class RandomOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testAllEmptyReduce(){ + public void testAllEmptyReduce(Nd4jBackend backend) { INDArray x = Nd4j.createFromArray(true, true, true); All all = new All(x); all.setEmptyReduce(true); //For TF compatibility - empty array for axis (which means no-op - and NOT all array reduction) @@ -401,9 +401,9 @@ public class RandomOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testUniformDtype(){ + public void testUniformDtype(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); - for(DataType t : new DataType[]{DataType.FLOAT, DataType.DOUBLE, }){ + for(DataType t : new DataType[]{DataType.FLOAT, DataType.DOUBLE}) { SameDiff sd = SameDiff.create(); SDVariable shape = sd.constant("shape", Nd4j.createFromArray(1, 100)); SDVariable out = sd.random.uniform(0, 10, t, 1, 100); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/ShapeOpValidation.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/ShapeOpValidation.java index feedb6e41..e3b889890 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/ShapeOpValidation.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/ShapeOpValidation.java @@ -206,7 +206,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testRank(){ + public void testRank(Nd4jBackend backend) { List inShape = Arrays.asList(null, new long[]{1}, new long[]{6}, new long[]{3,4}, new long[]{3,4,5}); @@ -842,7 +842,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testTileBp(){ + public void testTileBp(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.create(1,2,3); //Values aren't used in backprop, just shape @@ -876,7 +876,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testTileBp2(){ + public void testTileBp2(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.create(3,4,5); //Values aren't used in backprop, just shape @@ -965,7 +965,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testTransposeOp(){ + public void testTransposeOp(Nd4jBackend backend) { INDArray arr = Nd4j.linspace(1,15, 15).reshape(5,3); INDArray out = Nd4j.create(Nd4j.defaultFloatingPointType(), new long[]{3,5}, 'c'); @@ -1025,7 +1025,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPermute(){ + public void testPermute(Nd4jBackend backend) { INDArray in = Nd4j.linspace(1, 60, 60).reshape(3,4,5); INDArray exp = in.permute(0,1,2); //No op @@ -1040,7 +1040,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPermute2(){ + public void testPermute2(Nd4jBackend backend) { for (int[] perm : new int[][]{{0, 1, 2}, {0, 2, 1}, {1, 0, 2}, {1, 2, 0}, {2, 0, 1}, {2, 1, 0}}) { INDArray in = Nd4j.linspace(1, 60, 60).reshape(3,4,5); INDArray exp = in.permute(perm).dup('c'); @@ -1061,8 +1061,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testConstant(){ - //OpValidationSuite.ignoreFailing(); + public void testConstant(Nd4jBackend backend) { //Case 0: no shape SameDiff sd = SameDiff.create(); @@ -1089,7 +1088,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testUnstackEdgeCase2(){ + public void testUnstackEdgeCase2(Nd4jBackend backend) { for( int i=0; i<3; i++ ) { INDArray arr = Nd4j.rand(new long[]{1, 1, 1}); @@ -1122,7 +1121,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGatherNd(){ + public void testGatherNd(Nd4jBackend backend) { List indices = new ArrayList<>(); List params = new ArrayList<>(); @@ -1208,9 +1207,9 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testMatrixDeterminant(){ - OpValidationSuite.ignoreFailing(); //Gradient check failing - + @Disabled("MatrixDeterminant does not have a gradient yet.") + @Tag(TagNames.NEEDS_VERIFY) + public void testMatrixDeterminant(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.rand(3,3); @@ -1230,9 +1229,9 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testDeterminant22(){ - OpValidationSuite.ignoreFailing(); //Gradient check failing - + @Disabled("MatrixDeterminant does not have a gradient yet.") + @Tag(TagNames.NEEDS_VERIFY) + public void testDeterminant22(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.create(new double[][]{{1, 2.5}, {3.5, 4.5}}); @@ -1255,8 +1254,9 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testMatrixDeterminant3(){ - OpValidationSuite.ignoreFailing(); //Gradient checks failing + @Disabled("MatrixDeterminant does not have a gradient yet.") + @Tag(TagNames.NEEDS_VERIFY) + public void testMatrixDeterminant3(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.rand(3,3); //System.out.println(in.shapeInfoToString()); //Rank: 2,Offset: 0 Order: c Shape: [3,3], stride: [3,1] @@ -1287,8 +1287,9 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testMatrixDeterminant4(){ - OpValidationSuite.ignoreFailing(); //Gradient checks failing + @Disabled("MatrixDeterminant does not have a gradient yet.") + @Tag(TagNames.NEEDS_VERIFY) + public void testMatrixDeterminant4(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray in = Nd4j.rand(4,4); //System.out.println(in.shapeInfoToString()); //Rank: 2,Offset: 0 Order: c Shape: [4,4], stride: [4,1] @@ -1308,8 +1309,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSegmentOps(){ - OpValidationSuite.ignoreFailing(); + public void testSegmentOps(Nd4jBackend backend) { //https://github.com/eclipse/deeplearning4j/issues/6952 INDArray s = Nd4j.create(new double[]{0,0,0,1,2,2,3,3}, new long[]{8}).castTo(DataType.INT); INDArray d = Nd4j.create(new double[]{5,1,7,2,3,4,1,3}, new long[]{8}); @@ -1401,7 +1401,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSegmentMean(){ + public void testSegmentMean(Nd4jBackend backend) { INDArray x = Nd4j.linspace(DataType.FLOAT, 1, 18, 1).reshape(6, 3); INDArray segmentIds = Nd4j.createFromArray(0, 0, 1, 1, 2, 2); @@ -1457,7 +1457,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testMeshGrid(){ + public void testMeshGrid(Nd4jBackend backend) { List failed = new ArrayList<>(); for( int rank=2; rank<=4; rank++ ){ @@ -1514,7 +1514,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGather(){ + public void testGather(Nd4jBackend backend) { List inArrs = new ArrayList<>(); List axis = new ArrayList<>(); List indices = new ArrayList<>(); @@ -1837,7 +1837,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testEye(){ + public void testEye(Nd4jBackend backend) { int[] rows = new int[]{3,3,3,3}; int[] cols = new int[]{3,2,2,2}; int[][] batch = new int[][]{null, null, {4}, {3,3}}; @@ -1876,7 +1876,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSplit1(){ + public void testSplit1(Nd4jBackend backend) { INDArray in = Nd4j.linspace(1,10,10).reshape(10); INDArray axis = Nd4j.scalar(-1); @@ -1895,7 +1895,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSplit2(){ + public void testSplit2(Nd4jBackend backend) { INDArray in = Nd4j.linspace(1,24,24).reshape(3,8); INDArray axis = Nd4j.scalar(-1); @@ -1914,7 +1914,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testDistancesExec(){ + public void testDistancesExec(Nd4jBackend backend) { //https://github.com/eclipse/deeplearning4j/issues/7001 for(String s : new String[]{"euclidean", "manhattan", "cosinesim", "cosinedist", "jaccard"}) { log.info("Starting: {}", s); @@ -1970,7 +1970,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testReductionShape(){ + public void testReductionShape(Nd4jBackend backend) { INDArray shape = Nd4j.createFromArray(4,2); INDArray axis = Nd4j.scalar(0); @@ -1989,7 +1989,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void gatherTest(){ + public void gatherTest(Nd4jBackend backend) { INDArray in = Nd4j.createFromArray(new double[][]{ {1,2,3,4,5}, {6,7,8,9,10}, @@ -2009,7 +2009,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSliceShape(){ + public void testSliceShape(Nd4jBackend backend) { INDArray arr = Nd4j.arange(0, 25).reshape(1,5,5).castTo(DataType.INT); // System.out.println(Arrays.toString(arr.shape())); @@ -2031,7 +2031,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testWhereAllFalse(){ + public void testWhereAllFalse(Nd4jBackend backend) { INDArray in = Nd4j.create(DataType.BOOL, 1917); DynamicCustomOp op = DynamicCustomOp.builder("Where") .addInputs(in) @@ -2046,7 +2046,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGatherScalar(){ + public void testGatherScalar(Nd4jBackend backend) { INDArray in = Nd4j.linspace(100, 200, 100, DataType.FLOAT).reshape(100); INDArray indices = Nd4j.scalar(0); INDArray axis = Nd4j.scalar(0); @@ -2071,7 +2071,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testCastEmpty(){ + public void testCastEmpty(Nd4jBackend backend) { INDArray emptyLong = Nd4j.empty(DataType.LONG); int dtype = 9; //INT = 9 - https://github.com/eclipse/deeplearning4j/blob/master/libnd4j/include/array/DataType.h DynamicCustomOp op = DynamicCustomOp.builder("cast") @@ -2088,7 +2088,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGatherEmpty(){ + public void testGatherEmpty(Nd4jBackend backend) { /* tf.reset_default_graph() emptyInt = tf.constant([], shape=[0], dtype=tf.int32) @@ -2121,7 +2121,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSplitEmpty(){ + public void testSplitEmpty(Nd4jBackend backend) { /* tf.reset_default_graph() # Hack to create empty array @@ -2159,7 +2159,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testConcatEmpty(){ + public void testConcatEmpty(Nd4jBackend backend) { /* TF behaviour with concatenatioun of empty arrays: concat(empty,empty,empty) -> empty @@ -2209,7 +2209,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testConcatEmpty2(){ + public void testConcatEmpty2(Nd4jBackend backend) { INDArray empty10a = Nd4j.create(DataType.INT, 1, 0); INDArray empty10b = Nd4j.create(DataType.INT, 1, 0); @@ -2242,7 +2242,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testEmptyGather(){ + public void testEmptyGather(Nd4jBackend backend) { /* tf.reset_default_graph() inputFloat = tf.constant([], shape=[0,2,3], dtype=tf.float32) @@ -2275,7 +2275,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testBroadcastDynamicShape1(){ + public void testBroadcastDynamicShape1(Nd4jBackend backend) { //Test case: [2,1] and [4]: expect [2,4] INDArray out = Nd4j.create(DataType.INT, 2); @@ -2297,7 +2297,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testBroadcastDynamicShape2(){ + public void testBroadcastDynamicShape2(Nd4jBackend backend) { //Test case: [2,1,4] and [2,2,4]: expect [2,2,4] INDArray out = Nd4j.create(DataType.INT, 3); @@ -2320,7 +2320,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testStridedSliceShrinkAxis(){ + public void testStridedSliceShrinkAxis(Nd4jBackend backend) { INDArray in = Nd4j.create(DataType.DOUBLE, 3,2,2); INDArray begin = Nd4j.createFromArray(2); INDArray end = Nd4j.createFromArray(3); //Should be ignored due to shrink_axis_mask @@ -2346,7 +2346,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testStridedSliceEmpty(){ + public void testStridedSliceEmpty(Nd4jBackend backend) { INDArray in = Nd4j.createFromArray(10); //Integer, Length 1, rank 1, value 10 - Not used due to begin mask! INDArray from = Nd4j.createFromArray(0); @@ -2369,7 +2369,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testStridedSliceEdgeCase(){ + public void testStridedSliceEdgeCase(Nd4jBackend backend) { INDArray in = Nd4j.scalar(10).reshape(1); //Int [1] INDArray begin = Nd4j.ones(DataType.INT, 1); INDArray end = Nd4j.zeros(DataType.INT, 1); @@ -2395,7 +2395,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testEmptySlice1(){ + public void testEmptySlice1(Nd4jBackend backend) { INDArray in = Nd4j.createFromArray(38); INDArray begin = Nd4j.createFromArray(1); INDArray size = Nd4j.createFromArray(-1); @@ -2415,7 +2415,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testEmptySlice2(){ + public void testEmptySlice2(Nd4jBackend backend) { INDArray in = Nd4j.createFromArray(38); INDArray begin = Nd4j.createFromArray(0); INDArray size = Nd4j.createFromArray(0); @@ -2435,7 +2435,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testFill(){ + public void testFill(Nd4jBackend backend) { INDArray shape = Nd4j.createFromArray(0,4); INDArray value = Nd4j.scalar(1.0f); @@ -2455,7 +2455,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testFill2(){ + public void testFill2(Nd4jBackend backend) { INDArray shape = Nd4j.createFromArray(0,4); INDArray value = Nd4j.scalar(1.0f); @@ -2473,7 +2473,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPermuteShapeDynamicAxis(){ + public void testPermuteShapeDynamicAxis(Nd4jBackend backend) { DynamicCustomOp op = DynamicCustomOp.builder("permute") .addInputs(Nd4j.rand(DataType.FLOAT, 3, 4), @@ -2503,7 +2503,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGather2(){ + public void testGather2(Nd4jBackend backend) { SameDiff sd = SameDiff.create(); SDVariable input = sd.var("in", Nd4j.arange(6).castTo(DataType.FLOAT).reshape(2,3)); SDVariable indices = sd.constant("indices", Nd4j.createFromArray(0)); @@ -2523,7 +2523,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPermute3(){ + public void testPermute3(Nd4jBackend backend) { INDArray in = Nd4j.linspace(DataType.FLOAT, 1, 6, 1).reshape(3,2); INDArray permute = Nd4j.createFromArray(1,0); @@ -2542,7 +2542,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPermute4(){ + public void testPermute4(Nd4jBackend backend) { INDArray in = Nd4j.linspace(DataType.FLOAT, 1, 6, 1).reshape(3,2); INDArray permute = Nd4j.createFromArray(1,0); @@ -2573,7 +2573,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testInvertPermutation(){ + public void testInvertPermutation(Nd4jBackend backend) { DynamicCustomOp op = DynamicCustomOp.builder("invert_permutation") .addInputs(Nd4j.createFromArray(1, 0)) .build(); @@ -2595,7 +2595,7 @@ public class ShapeOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testBroadcastInt2(){ + public void testBroadcastInt2(Nd4jBackend backend) { INDArray out = Nd4j.create(DataType.INT, 2); DynamicCustomOp op = DynamicCustomOp.builder("broadcast_dynamic_shape") .addInputs(Nd4j.createFromArray(2, 2), Nd4j.createFromArray(1)) @@ -2607,8 +2607,9 @@ public class ShapeOpValidation extends BaseOpValidation { } - @Test @Disabled //AB 2020/04/01 - https://github.com/eclipse/deeplearning4j/issues/8592 - public void testReshapeZeros(){ + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + public void testReshapeZeros(Nd4jBackend backend) { int[][] shapes = new int[][]{{2,0}, {10,0}, {10, 0}, {2,0,0,10}, {10, 0}, {0, 0, 10}, {0,2,10}, {1,2,0}}; int[][] reshape = new int[][]{{2,-1}, {2,0,-1}, {5,2,-1}, {2,0,-1}, {-1, 2, 0}, {2, -1, 0}, {2, 0, 0, 0, -1}, {2,0,-1}}; int[][] expected = new int[][]{{2,0}, {2,0,5}, {5,2,0}, {2,0,10}, {5,2,0}, {2,5,0}, {2,0,0,0,10}, {2,0,1}}; diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/TransformOpValidation.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/TransformOpValidation.java index b5fe68361..4b1da1cba 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/TransformOpValidation.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/opvalidation/TransformOpValidation.java @@ -1408,15 +1408,6 @@ public class TransformOpValidation extends BaseOpValidation { } -/* @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testDepth(Nd4jBackend backend) { - SameDiff sameDiff = SameDiff.create(); - SDVariable x = sameDiff.one("one",new long[]{2,2}); - assertEquals(0,x.depth()); - SDVariable sigmoid = sameDiff.sigmoid("sigmoid",x); - assertEquals(1,sigmoid.depth()); - }*/ @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") @@ -1451,10 +1442,9 @@ public class TransformOpValidation extends BaseOpValidation { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testBooleanAnd(Nd4jBackend backend) { - Nd4j.setDataType(DataType.FLOAT); - INDArray arr1 = Nd4j.create(new long[]{3, 4}); - INDArray arr2 = Nd4j.create(new long[]{3, 4}); - INDArray out = Nd4j.create(new long[]{3, 4}); + INDArray arr1 = Nd4j.create(new long[]{3, 4}).castTo(DataType.FLOAT); + INDArray arr2 = Nd4j.create(new long[]{3, 4}).castTo(DataType.FLOAT); + INDArray out = Nd4j.create(new long[]{3, 4}).castTo(DataType.FLOAT); DynamicCustomOp op = DynamicCustomOp.builder("boolean_and") .addInputs(arr1, arr2) diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FailingSameDiffTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FailingSameDiffTests.java index 8c8cca0f5..26ce9c58e 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FailingSameDiffTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FailingSameDiffTests.java @@ -40,9 +40,9 @@ import org.nd4j.linalg.ops.transforms.Transforms; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; @NativeTag @Tag(TagNames.SAMEDIFF) @@ -54,21 +54,6 @@ public class FailingSameDiffTests extends BaseNd4jTestWithBackends { return 'c'; } - @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testEye(Nd4jBackend backend){ - INDArray arr = Nd4j.create(new double[]{1, 0, 0, 0, 1, 0}, new int[]{2, 3}); - List stack = new ArrayList<>(); - for(int i = 0; i < 25; i++){ - stack.add(arr); - } - INDArray expOut = Nd4j.pile(stack).reshape(5, 5, 2, 3); - - SameDiff sd = SameDiff.create(); - SDVariable result = sd.math().eye(2, 3 /*, DataType.DOUBLE, new long[]{5, 5}*/); - - assertEquals(expOut, result.eval()); - } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") @@ -114,12 +99,15 @@ public class FailingSameDiffTests extends BaseNd4jTestWithBackends { SDVariable input = sd.var("input", ia); SDVariable res = sd.nn().dropout(input, p); - assertArrayEquals(new long[]{2, 2}, res.getShape()); + Map output = sd.outputAll(Collections.emptyMap()); + assertTrue(!output.isEmpty()); + + // assertArrayEquals(new long[]{2, 2}, res.eval().shape()); } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testExecutionDifferentShapesDynamicCustom(Nd4jBackend backend){ + public void testExecutionDifferentShapesDynamicCustom(Nd4jBackend backend) { SameDiff sd = SameDiff.create(); SDVariable in = sd.var("in", Nd4j.linspace(1,12,12, DataType.DOUBLE).reshape(3,4)); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FlatBufferSerdeTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FlatBufferSerdeTest.java index def1e8c39..4baf33372 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FlatBufferSerdeTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/FlatBufferSerdeTest.java @@ -276,6 +276,7 @@ public class FlatBufferSerdeTest extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testTrainingSerde(Nd4jBackend backend) throws Exception { //Ensure 2 things: diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/listeners/ProfilingListenerTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/listeners/ProfilingListenerTest.java index a28ace7ab..60e7686c0 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/listeners/ProfilingListenerTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/samediff/listeners/ProfilingListenerTest.java @@ -40,17 +40,19 @@ import org.nd4j.linalg.factory.Nd4j; import org.nd4j.linalg.factory.Nd4jBackend; import java.io.File; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; +import java.util.UUID; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; public class ProfilingListenerTest extends BaseNd4jTestWithBackends { - @TempDir Path testDir; @Override public char ordering() { @@ -61,9 +63,7 @@ public class ProfilingListenerTest extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled public void testProfilingListenerSimple(Nd4jBackend backend) throws Exception { - SameDiff sd = SameDiff.create(); SDVariable in = sd.placeHolder("in", DataType.FLOAT, -1, 3); SDVariable label = sd.placeHolder("label", DataType.FLOAT, 1, 2); @@ -75,16 +75,17 @@ public class ProfilingListenerTest extends BaseNd4jTestWithBackends { INDArray i = Nd4j.rand(DataType.FLOAT, 1, 3); INDArray l = Nd4j.rand(DataType.FLOAT, 1, 2); - - File dir = testDir.toFile(); + Path testDir = Paths.get(new File(System.getProperty("java.io.tmpdir")).toURI()); + File dir = testDir.resolve("new-dir-" + UUID.randomUUID().toString()).toFile(); + dir.mkdirs(); File f = new File(dir, "test.json"); + f.deleteOnExit(); ProfilingListener listener = ProfilingListener.builder(f) .recordAll() .warmup(5) .build(); sd.setListeners(listener); - Map ph = new HashMap<>(); ph.put("in", i); @@ -95,7 +96,6 @@ public class ProfilingListenerTest extends BaseNd4jTestWithBackends { String content = FileUtils.readFileToString(f, StandardCharsets.UTF_8); // System.out.println(content); assertFalse(content.isEmpty()); - //Should be 2 begins and 2 ends for each entry //5 warmup iterations, 5 profile iterations, x2 for both the op name and the op "instance" name String[] opNames = {"matmul", "add", "softmax"}; @@ -103,32 +103,8 @@ public class ProfilingListenerTest extends BaseNd4jTestWithBackends { assertEquals( 10, StringUtils.countMatches(content, s),s); } - System.out.println("///////////////////////////////////////////"); - ProfileAnalyzer.summarizeProfile(f, ProfileAnalyzer.ProfileFormat.SAMEDIFF); + //ProfileAnalyzer.summarizeProfile(f, ProfileAnalyzer.ProfileFormat.SAMEDIFF); } - - /* - @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testLoadTfProfile(){ - File f = new File("C:\\Temp\\sd_profiler\\tf_profile.json"); - ProfileAnalyzer.summarizeProfile(f, ProfileAnalyzer.ProfileFormat.TENSORFLOW); - } - - @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testLoadTfProfileDir(){ - File f = new File("C:\\Temp\\sd_profiler\\tf_multiple_profiles"); - ProfileAnalyzer.summarizeProfileDirectory(f, ProfileAnalyzer.ProfileFormat.TENSORFLOW); - } - - @ParameterizedTest - @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testLoadTfProfileDir2(){ - File f = new File("C:\\DL4J\\Git\\dl4j-dev-tools\\import-tests\\profiling\\mobilenet_v2_1.0_224_batch32_tf-1.15.0"); - ProfileAnalyzer.summarizeProfileDirectory(f, ProfileAnalyzer.ProfileFormat.TENSORFLOW); - } - */ } diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/FileReadWriteTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/FileReadWriteTests.java index f4e0a78d6..9eb7a45c4 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/FileReadWriteTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/FileReadWriteTests.java @@ -92,7 +92,8 @@ public class FileReadWriteTests extends BaseNd4jTestWithBackends { SDVariable v = sd.var("variable", DataType.DOUBLE, 3, 4); SDVariable sum = v.sum(); - File f = testDir.toFile(); + File f = testDir.resolve("new-dir-1").toFile(); + f.mkdirs(); if (f.exists()) f.delete(); System.out.println(f.getAbsolutePath()); @@ -185,7 +186,7 @@ public class FileReadWriteTests extends BaseNd4jTestWithBackends { FlatArray fa = (FlatArray) events.get(i).getRight(); INDArray arr = Nd4j.createFromFlatArray(fa); - INDArray exp = Nd4j.scalar(0.5 + (i-1) * 0.1); + INDArray exp = Nd4j.scalar(0.5 + (i - 1) * 0.1); assertEquals(exp, arr); } } @@ -193,7 +194,8 @@ public class FileReadWriteTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNullBinLabels(Nd4jBackend backend) throws Exception{ - File dir = testDir.toFile(); + File dir = testDir.resolve("new-dir").toFile(); + dir.mkdirs(); File f = new File(dir, "temp.bin"); LogFileWriter w = new LogFileWriter(f); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/UIListenerTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/UIListenerTest.java index aef21d8bf..145748afc 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/UIListenerTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/autodiff/ui/UIListenerTest.java @@ -115,7 +115,8 @@ public class UIListenerTest extends BaseNd4jTestWithBackends { SameDiff sd1 = getSimpleNet(); SameDiff sd2 = getSimpleNet(); - File dir = testDir.toFile(); + File dir = testDir.resolve("new-dir-1").toFile(); + dir.mkdirs(); File f = new File(dir, "logFileNoContinue.bin"); f.delete(); UIListener l1 = UIListener.builder(f) @@ -205,7 +206,8 @@ public class UIListenerTest extends BaseNd4jTestWithBackends { IrisDataSetIterator iter = new IrisDataSetIterator(150, 150); SameDiff sd1 = getSimpleNet(); - File dir = testDir.toFile(); + File dir = testDir.resolve("new-dir-2").toFile(); + dir.mkdirs(); File f = new File(dir, "logFile.bin"); f.delete(); UIListener l1 = UIListener.builder(f) diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/evaluation/RegressionEvalTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/evaluation/RegressionEvalTest.java index 4e83697ee..605c86b1f 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/evaluation/RegressionEvalTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/evaluation/RegressionEvalTest.java @@ -79,7 +79,7 @@ public class RegressionEvalTest extends BaseNd4jTestWithBackends { RegressionEvaluation eval = new RegressionEvaluation(nCols); for (int i = 0; i < nTestArrays; i++) { - INDArray rand = Nd4j.rand(valuesPerTestArray, nCols); + INDArray rand = Nd4j.rand(valuesPerTestArray, nCols).castTo(DataType.DOUBLE); eval.eval(rand, rand); } @@ -172,8 +172,8 @@ public class RegressionEvalTest extends BaseNd4jTestWithBackends { for (int i = 0; i < nEvalInstances; i++) { list.add(new RegressionEvaluation(nCols)); for (int j = 0; j < numMinibatches; j++) { - INDArray p = Nd4j.rand(nRows, nCols); - INDArray act = Nd4j.rand(nRows, nCols); + INDArray p = Nd4j.rand(nRows, nCols).castTo(Nd4j.defaultFloatingPointType()); + INDArray act = Nd4j.rand(nRows, nCols).castTo(Nd4j.defaultFloatingPointType()); single.eval(act, p); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/NDArrayTestsFortran.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/NDArrayTestsFortran.java index e02467051..3deb3d725 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/NDArrayTestsFortran.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/NDArrayTestsFortran.java @@ -1086,8 +1086,8 @@ public class NDArrayTestsFortran extends BaseNd4jTestWithBackends { assertArrayEquals(new long[] {6, 3, 4, 5}, shape); } - @Test - @Disabled + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testTensorDot(Nd4jBackend backend) { INDArray oneThroughSixty = Nd4j.arange(60).reshape('f', 3, 4, 5).castTo(DataType.DOUBLE); INDArray oneThroughTwentyFour = Nd4j.arange(24).reshape('f', 4, 3, 2).castTo(DataType.DOUBLE); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsC.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsC.java index 6cdbc6705..783ba427d 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsC.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsC.java @@ -1382,7 +1382,7 @@ public class Nd4jTestsC extends BaseNd4jTestWithBackends { INDArray outC = arrC.sum(d); INDArray outF = arrF.sum(d); - INDArray exp = Nd4j.create(expD[i], outC.shape()); + INDArray exp = Nd4j.create(expD[i], outC.shape()).castTo(DataType.DOUBLE); assertEquals(exp, outC); assertEquals(exp, outF); @@ -3139,10 +3139,10 @@ public class Nd4jTestsC extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testAssignOffset(Nd4jBackend backend) { - INDArray arr = Nd4j.ones(5, 5); + INDArray arr = Nd4j.ones(5, 5).castTo(DataType.DOUBLE); INDArray row = arr.slice(1); row.assign(1); - assertEquals(Nd4j.ones(5), row); + assertEquals(Nd4j.ones(5).castTo(DataType.DOUBLE), row); } @ParameterizedTest @@ -6691,8 +6691,8 @@ public class Nd4jTestsC extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testAllDistancesEdgeCase1(Nd4jBackend backend) { - val x = Nd4j.create(400, 20).assign(2.0); - val y = Nd4j.ones(1, 20); + val x = Nd4j.create(400, 20).assign(2.0).castTo(Nd4j.defaultFloatingPointType()); + val y = Nd4j.ones(1, 20).castTo(Nd4j.defaultFloatingPointType()); val z = Transforms.allEuclideanDistances(x, y, 1); val exp = Nd4j.create(400, 1).assign(4.47214); @@ -8568,7 +8568,9 @@ public class Nd4jTestsC extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testBatchToSpace(){ + @Disabled("Needs verification") + @Tag(TagNames.NEEDS_VERIFY) + public void testBatchToSpace(Nd4jBackend backend) { INDArray out = Nd4j.create(DataType.FLOAT, 2, 4, 5); DynamicCustomOp c = new BatchToSpaceND(); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsComparisonFortran.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsComparisonFortran.java index 50fa9374d..f359894a7 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsComparisonFortran.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/Nd4jTestsComparisonFortran.java @@ -122,13 +122,13 @@ public class Nd4jTestsComparisonFortran extends BaseNd4jTestWithBackends { for (int m = 0; m < beta.length; m++) { //System.out.println((String.format("Running iteration %d %d %d %d", i, j, k, m))); - INDArray cff = Nd4j.create(cOrig.shape(), 'f'); + INDArray cff = Nd4j.create(cOrig.shape(), 'f').castTo(DataType.DOUBLE); cff.assign(cOrig); - INDArray cft = Nd4j.create(cOrig.shape(), 'f'); + INDArray cft = Nd4j.create(cOrig.shape(), 'f').castTo(DataType.DOUBLE); cft.assign(cOrig); - INDArray ctf = Nd4j.create(cOrig.shape(), 'f'); + INDArray ctf = Nd4j.create(cOrig.shape(), 'f').castTo(DataType.DOUBLE); ctf.assign(cOrig); - INDArray ctt = Nd4j.create(cOrig.shape(), 'f'); + INDArray ctt = Nd4j.create(cOrig.shape(), 'f').castTo(DataType.DOUBLE); ctt.assign(cOrig); double a = alpha[k]; diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DataBufferTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DataBufferTests.java index 1540d26aa..31af7b595 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DataBufferTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DataBufferTests.java @@ -51,8 +51,6 @@ import static org.junit.jupiter.api.Assertions.*; public class DataBufferTests extends BaseNd4jTestWithBackends { - @Test - @Disabled("AB 2019/06/03 - CI issue: \"CUDA stream synchronization failed\" - see issue 7657") @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNoArgCreateBufferFromArray(Nd4jBackend backend) { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DoubleDataBufferTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DoubleDataBufferTest.java index 08bc4d4a4..f07df5211 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DoubleDataBufferTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/DoubleDataBufferTest.java @@ -57,24 +57,22 @@ import static org.junit.jupiter.api.Assertions.*; * @author Adam Gibson */ -@Disabled("AB 2019/05/23 - Failing on linux-x86_64-cuda-9.2 - see issue #7657") @NativeTag public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { DataType initialType = Nd4j.dataType(); - + @TempDir Path testDir; @BeforeEach - public void before(Nd4jBackend backend) { - + public void before() { DataTypeUtil.setDTypeForContext(DataType.DOUBLE); } @AfterEach - public void after(Nd4jBackend backend) { + public void after() { DataTypeUtil.setDTypeForContext(initialType); } @@ -88,7 +86,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { assertArrayEquals(other.asDouble(), buffer.asDouble(), 0.001); } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testGetSet(Nd4jBackend backend) { double[] d1 = new double[] {1, 2, 3, 4}; @@ -100,9 +98,9 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSerialization2() throws Exception { + public void testSerialization2(Nd4jBackend backend) throws Exception { INDArray[] arr = new INDArray[] {Nd4j.ones(1, 10), // Nd4j.ones(5,10).getRow(2) }; @@ -124,14 +122,14 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { INDArray aDeserialized = (INDArray) ois.readObject(); System.out.println(aDeserialized); - assertEquals(Nd4j.ones(1, 10), aDeserialized); + assertEquals(Nd4j.ones(1, 10).castTo(aDeserialized.dataType()), aDeserialized); } } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSerialization(@TempDir Path testDir) throws Exception { + public void testSerialization(Nd4jBackend backend) throws Exception { File dir = testDir.toFile(); DataBuffer buf = Nd4j.createBuffer(5); String fileName = "buf.ser"; @@ -152,7 +150,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testDup(Nd4jBackend backend) { double[] d1 = new double[] {1, 2, 3, 4}; @@ -163,7 +161,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testPut(Nd4jBackend backend) { double[] d1 = new double[] {1, 2, 3, 4}; @@ -175,7 +173,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testGetRange(Nd4jBackend backend) { DataBuffer buffer = Nd4j.linspace(1, 5, 5, DataType.DOUBLE).data(); @@ -191,7 +189,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testGetOffsetRange(Nd4jBackend backend) { DataBuffer buffer = Nd4j.linspace(1, 5, 5, DataType.DOUBLE).data(); @@ -207,7 +205,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testAssign(Nd4jBackend backend) { DataBuffer assertion = Nd4j.createBuffer(new double[] {1, 2, 3}); @@ -219,7 +217,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testOffset(Nd4jBackend backend) { DataBuffer create = Nd4j.createBuffer(new double[] {1, 2, 3, 4}, 2); @@ -230,7 +228,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testReallocation(Nd4jBackend backend) { DataBuffer buffer = Nd4j.createBuffer(new double[] {1, 2, 3, 4}); @@ -241,7 +239,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { assertArrayEquals(old, Arrays.copyOf(buffer.asDouble(), 4), 1e-1); } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testReallocationWorkspace(Nd4jBackend backend) { WorkspaceConfiguration initialConfig = WorkspaceConfiguration.builder().initialSize(10 * 1024L * 1024L) @@ -259,7 +257,7 @@ public class DoubleDataBufferTest extends BaseNd4jTestWithBackends { } - @ParameterizedTest + @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testAddressPointer(){ if( Nd4j.getExecutioner().type() != OpExecutioner.ExecutionerType.NATIVE_CPU ){ diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/FloatDataBufferTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/FloatDataBufferTest.java index 961969b22..2d6cf5e14 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/FloatDataBufferTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/api/buffer/FloatDataBufferTest.java @@ -56,11 +56,11 @@ import static org.junit.jupiter.api.Assertions.*; * * @author Adam Gibson */ -@Disabled("AB 2019/05/21 - Failing on linux-x86_64-cuda-9.2 - see issue #7657") @NativeTag public class FloatDataBufferTest extends BaseNd4jTestWithBackends { DataType initialType = Nd4j.dataType(); + @TempDir Path tempDir; @BeforeEach public void before() { @@ -98,8 +98,9 @@ public class FloatDataBufferTest extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testSerialization(@TempDir Path tempDir,Nd4jBackend backend) throws Exception { - File dir = tempDir.toFile(); + public void testSerialization(Nd4jBackend backend) throws Exception { + File dir = tempDir.resolve("new-dir-1").toFile(); + dir.mkdirs(); DataBuffer buf = Nd4j.createBuffer(5); String fileName = "buf.ser"; File file = new File(dir, fileName); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/broadcast/BasicBroadcastTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/broadcast/BasicBroadcastTests.java index 319c03154..e1033ab17 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/broadcast/BasicBroadcastTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/broadcast/BasicBroadcastTests.java @@ -174,7 +174,6 @@ public class BasicBroadcastTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled public void basicBroadcastFailureTest_4(Nd4jBackend backend) { val x = Nd4j.create(DataType.FLOAT, 3, 1, 2).assign(4.f); val y = Nd4j.createFromArray(new float[]{2.f, 2.f, 2.f, 2.f}).reshape(2, 2); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/compression/CompressionTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/compression/CompressionTests.java index 5ead23234..9547dc27f 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/compression/CompressionTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/compression/CompressionTests.java @@ -454,7 +454,7 @@ public class CompressionTests extends BaseNd4jTestWithBackends { Nd4j.getExecutioner().bitmapDecode(enc, target); log.info("Target: {}", Arrays.toString(target.data().asFloat())); - assertEquals(exp_1, target); + assertEquals(exp_1, target.castTo(exp_1.dataType())); } diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/custom/CustomOpsTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/custom/CustomOpsTests.java index 1af93afc3..6f9c18e3a 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/custom/CustomOpsTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/custom/CustomOpsTests.java @@ -23,10 +23,12 @@ package org.nd4j.linalg.custom; import lombok.extern.slf4j.Slf4j; import lombok.val; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.nd4j.common.tests.tags.NativeTag; +import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.BaseNd4jTestWithBackends; import org.nd4j.linalg.api.blas.params.MMulTranspose; import org.nd4j.linalg.api.buffer.DataType; @@ -1278,17 +1280,18 @@ public class CustomOpsTests extends BaseNd4jTestWithBackends { assertEquals(expected, x); } - @Disabled("AS failed 2019/12/04") @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.NEEDS_VERIFY) + @Disabled("Implementation needs verification") public void testPolygamma(Nd4jBackend backend) { - INDArray n = Nd4j.linspace(DataType.FLOAT, 1.0, 1.0, 9).reshape(3,3); - INDArray x = Nd4j.create(DataType.FLOAT, 3,3); + INDArray n = Nd4j.linspace(DataType.DOUBLE, 1.0, 1.0, 9).reshape(3,3); + INDArray x = Nd4j.create(DataType.DOUBLE, 3,3); x.assign(0.5); - INDArray expected = Nd4j.createFromArray(new float[]{4.934802f, -16.828796f, 97.409088f, -771.474243f, - 7691.113770f, -92203.460938f, 1290440.250000f, -20644900.000000f, 3.71595e+08f}).reshape(3,3); - INDArray output = Nd4j.create(DataType.FLOAT, expected.shape()); + INDArray expected = Nd4j.createFromArray(new double[]{4.934802, -16.828796, 97.409088, -771.474243, + 7691.113770f, -92203.460938f, 1290440.250000, -20644900.000000, 3.71595e+08}).reshape(3,3); + INDArray output = Nd4j.create(DataType.DOUBLE, expected.shape()); val op = new Polygamma(x,n,output); Nd4j.exec(op); assertEquals(expected, output); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/factory/Nd4jTest.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/factory/Nd4jTest.java index 5059d84b7..a4b0f7ff2 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/factory/Nd4jTest.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/factory/Nd4jTest.java @@ -231,7 +231,6 @@ public class Nd4jTest extends BaseNd4jTestWithBackends { @Test - @Disabled("AB 2019/05/23 - Failing on linux-x86_64-cuda-9.2 - see issue #7657") public void testNumpyConversion() throws Exception { INDArray linspace = Nd4j.linspace(1,4,4, DataType.FLOAT); Pointer convert = Nd4j.getNDArrayFactory().convertToNumpy(linspace); @@ -269,7 +268,6 @@ public class Nd4jTest extends BaseNd4jTestWithBackends { @Test - @Disabled("AB 2019/05/23 - Failing on linux-x86_64-cuda-9.2 - see issue #7657") public void testNumpyWrite() throws Exception { INDArray linspace = Nd4j.linspace(1,4,4, Nd4j.dataType()); File tmpFile = new File(System.getProperty("java.io.tmpdir"),"nd4j-numpy-tmp-" + UUID.randomUUID().toString() + ".bin"); @@ -281,7 +279,6 @@ public class Nd4jTest extends BaseNd4jTestWithBackends { } @Test - @Disabled("AB 2019/05/23 - Failing on linux-x86_64-cuda-9.2 - see issue #7657") public void testNpyByteArray() throws Exception { INDArray linspace = Nd4j.linspace(1,4,4, Nd4j.dataType()); byte[] bytes = Nd4j.toNpyByteArray(linspace); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpConstructorTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpConstructorTests.java index ece9ed136..c3e4d28bf 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpConstructorTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpConstructorTests.java @@ -21,11 +21,12 @@ package org.nd4j.linalg.ops; import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.nd4j.autodiff.functions.DifferentialFunction; import org.nd4j.autodiff.samediff.SDVariable; +import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.BaseNd4jTestWithBackends; import org.nd4j.linalg.api.ops.NoOp; import org.nd4j.linalg.factory.Nd4jBackend; @@ -42,8 +43,6 @@ import java.util.*; import static org.junit.jupiter.api.Assertions.assertEquals; -@Disabled //AB 2019/08/23 Ignored for now - public class OpConstructorTests extends BaseNd4jTestWithBackends { //Ignore individual classes @@ -60,6 +59,8 @@ public class OpConstructorTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Disabled("Need to check") + @Tag(TagNames.NEEDS_VERIFY) public void checkForINDArrayConstructors(Nd4jBackend backend) throws Exception { /* Check that all op classes have at least one INDArray or INDArray[] constructor, so they can actually diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTests.java index 3939a08a5..05a86011a 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTests.java @@ -117,7 +117,6 @@ public class OpExecutionerTests extends BaseNd4jTestWithBackends { @Test - @Disabled public void testDistance() throws Exception { INDArray matrix = Nd4j.rand(new int[] {400,10}); INDArray rowVector = matrix.getRow(70); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTestsC.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTestsC.java index 3bd70f71f..0c6042308 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTestsC.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/ops/OpExecutionerTestsC.java @@ -1049,10 +1049,10 @@ public class OpExecutionerTestsC extends BaseNd4jTestWithBackends { public void testPile2(Nd4jBackend backend) { List arrays = new ArrayList<>(); for (int i = 0; i < 10; i++) { - arrays.add(Nd4j.create(10, 10, 10).assign(i)); + arrays.add(Nd4j.create(10, 10, 10).assign(i).castTo(DataType.FLOAT)); } - INDArray pile = Nd4j.pile(arrays); + INDArray pile = Nd4j.pile(arrays).castTo(DataType.FLOAT); assertEquals(4, pile.rank()); for (int i = 0; i < 10; i++) { @@ -1114,8 +1114,8 @@ public class OpExecutionerTestsC extends BaseNd4jTestWithBackends { * * @throws Exception */ - @Test - @Disabled + @ParameterizedTest + @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testTadEws(Nd4jBackend backend) { INDArray array = Nd4j.create(32, 5, 10); assertEquals(1, array.tensorAlongDimension(0, 1, 2).elementWiseStride()); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/options/ArrayOptionsTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/options/ArrayOptionsTests.java index c7f19151d..33dc564bf 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/options/ArrayOptionsTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/options/ArrayOptionsTests.java @@ -40,24 +40,18 @@ import static org.junit.jupiter.api.Assertions.assertNotEquals; @Slf4j @Tag(TagNames.JAVA_ONLY) public class ArrayOptionsTests extends BaseNd4jTestWithBackends { - private static long[] shapeInfo; - - - - @BeforeEach - public void setUp() { - shapeInfo = new long[]{2, 2, 2, 2, 1, 0, 1, 99}; - } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testArrayType_0(Nd4jBackend backend) { + long[] shapeInfo = new long[]{2, 2, 2, 2, 1, 0, 1, 99}; assertEquals(ArrayType.DENSE, ArrayOptionsHelper.arrayType(shapeInfo)); } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testArrayType_1(Nd4jBackend backend) { + long[] shapeInfo = new long[]{2, 2, 2, 2, 1, 0, 1, 99}; ArrayOptionsHelper.setOptionBit(shapeInfo, ArrayType.EMPTY); assertEquals(ArrayType.EMPTY, ArrayOptionsHelper.arrayType(shapeInfo)); @@ -66,6 +60,7 @@ public class ArrayOptionsTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testArrayType_2(Nd4jBackend backend) { + long[] shapeInfo = new long[]{2, 2, 2, 2, 1, 0, 1, 99}; ArrayOptionsHelper.setOptionBit(shapeInfo, ArrayType.SPARSE); assertEquals(ArrayType.SPARSE, ArrayOptionsHelper.arrayType(shapeInfo)); @@ -74,6 +69,7 @@ public class ArrayOptionsTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testArrayType_3(Nd4jBackend backend) { + long[] shapeInfo = new long[]{2, 2, 2, 2, 1, 0, 1, 99}; ArrayOptionsHelper.setOptionBit(shapeInfo, ArrayType.COMPRESSED); assertEquals(ArrayType.COMPRESSED, ArrayOptionsHelper.arrayType(shapeInfo)); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/InfNanTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/InfNanTests.java index e745725a0..ff54b8d11 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/InfNanTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/InfNanTests.java @@ -34,6 +34,7 @@ import org.nd4j.linalg.api.ops.executioner.OpExecutionerUtil; import org.nd4j.linalg.exception.ND4JIllegalStateException; import org.nd4j.linalg.factory.Nd4j; import org.nd4j.linalg.factory.Nd4jBackend; +import org.nd4j.linalg.profiler.ProfilerConfig; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -43,20 +44,25 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @BeforeEach public void setUp() { - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForINF(true) + .checkForNAN(true) + .build()); } @AfterEach public void cleanUp() { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.DISABLED); + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder().build()); } @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testInf1(Nd4jBackend backend) { assertThrows(ND4JIllegalStateException.class,() -> { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.INF_PANIC); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForNAN(true) + .checkForINF(true) + .build()); INDArray x = Nd4j.create(100); x.putScalar(2, Float.NEGATIVE_INFINITY); @@ -71,8 +77,10 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testInf2(Nd4jBackend backend) { assertThrows(ND4JIllegalStateException.class,() -> { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.ANY_PANIC); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForNAN(true) + .checkForINF(true) + .build()); INDArray x = Nd4j.create(100); x.putScalar(2, Float.NEGATIVE_INFINITY); @@ -85,8 +93,6 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testInf3(Nd4jBackend backend) { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.ANY_PANIC); - INDArray x = Nd4j.create(100); OpExecutionerUtil.checkForAny(x); @@ -95,7 +101,7 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testInf4(Nd4jBackend backend) { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.DISABLED); + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder().build()); INDArray x = Nd4j.create(100); @@ -106,8 +112,9 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNaN1(Nd4jBackend backend) { assertThrows(ND4JIllegalStateException.class,() -> { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.NAN_PANIC); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForNAN(true) + .build()); INDArray x = Nd4j.create(100); x.putScalar(2, Float.NaN); @@ -122,8 +129,10 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNaN2(Nd4jBackend backend) { assertThrows(ND4JIllegalStateException.class,() -> { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.ANY_PANIC); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForINF(true) + .checkForNAN(true) + .build()); INDArray x = Nd4j.create(100); x.putScalar(2, Float.NaN); @@ -136,8 +145,10 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNaN3(Nd4jBackend backend) { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.ANY_PANIC); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .checkForINF(true) + .checkForNAN(true) + .build()); INDArray x = Nd4j.create(100); OpExecutionerUtil.checkForAny(x); @@ -146,8 +157,8 @@ public class InfNanTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testNaN4(Nd4jBackend backend) { - Nd4j.getExecutioner().setProfilingMode(OpExecutioner.ProfilingMode.DISABLED); - + Nd4j.getExecutioner().setProfilingConfig(ProfilerConfig.builder() + .build()); INDArray x = Nd4j.create(100); OpExecutionerUtil.checkForAny(x); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/OperationProfilerTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/OperationProfilerTests.java index 485e75eea..8fe6d8b13 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/OperationProfilerTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/profiling/OperationProfilerTests.java @@ -230,7 +230,6 @@ public class OperationProfilerTests extends BaseNd4jTestWithBackends { } @Test - @Disabled public void testBadTad4(Nd4jBackend backend) { INDArray x = Nd4j.create(2, 4, 5, 6); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RandomTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RandomTests.java index 7cd631a11..7414862c1 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RandomTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RandomTests.java @@ -72,6 +72,7 @@ import static org.junit.jupiter.api.Assertions.*; @Slf4j @Tag(TagNames.RNG) @NativeTag +@Tag(TagNames.LONG_TEST) public class RandomTests extends BaseNd4jTestWithBackends { private DataType initialType; @@ -439,6 +440,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testStepOver1(Nd4jBackend backend) { Random random1 = Nd4j.getRandomFactory().getNewRandomInstance(119); @@ -919,7 +921,6 @@ public class RandomTests extends BaseNd4jTestWithBackends { assertEquals(exp, sampled); } - @Disabled @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testDeallocation1() throws Exception { @@ -1370,7 +1371,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void reproducabilityTest(){ + public void reproducabilityTest(Nd4jBackend backend) { int numBatches = 1; for (int t = 0; t < 10; t++) { @@ -1397,7 +1398,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testBernoulli(){ + public void testBernoulli(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray arr = Nd4j.create(DataType.DOUBLE, 100); Nd4j.exec(new BernoulliDistribution(arr, 0.5)); @@ -1419,7 +1420,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testRngRepeatabilityUniform(){ + public void testRngRepeatabilityUniform(Nd4jBackend backend) { val nexp = Nd4j.create(DataType.FLOAT, 10); Nd4j.getRandom().setSeed(12345); val out1 = Nd4j.create(DataType.FLOAT, 10); @@ -1435,7 +1436,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testRngRepeatabilityBernoulli(){ + public void testRngRepeatabilityBernoulli(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray out1 = Nd4j.create(DataType.FLOAT, 10); Nd4j.exec(new RandomBernoulli(Nd4j.createFromArray(10L), out1, 0.5)); @@ -1449,7 +1450,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testGamma(){ + public void testGamma(Nd4jBackend backend){ Nd4j.getRandom().setSeed(12345); INDArray shape = Nd4j.createFromArray(new int[] {1000,1000}); INDArray alpha = Nd4j.createFromArray(new float[]{2.f}); @@ -1471,7 +1472,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testPoisson(){ + public void testPoisson(Nd4jBackend backend){ Nd4j.getRandom().setSeed(12345); INDArray shape = Nd4j.createFromArray(new int[] {1,3}); INDArray alpha = Nd4j.rand(1,3); @@ -1485,7 +1486,7 @@ public class RandomTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - public void testShuffle(){ + public void testShuffle(Nd4jBackend backend) { Nd4j.getRandom().setSeed(12345); INDArray alpha = Nd4j.rand(1,3); val randomShuffle = new RandomShuffle(alpha); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RngValidationTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RngValidationTests.java index 8fe62a784..c8e0380c9 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RngValidationTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/rng/RngValidationTests.java @@ -129,7 +129,6 @@ public class RngValidationTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled public void validateRngDistributions(Nd4jBackend backend){ List testCases = new ArrayList<>(); for(DataType type : new DataType[]{DataType.DOUBLE, DataType.FLOAT, DataType.HALF}) { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/LargeSerDeTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/LargeSerDeTests.java index dde0a37e3..8ff21e60a 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/LargeSerDeTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/LargeSerDeTests.java @@ -42,7 +42,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @Slf4j -@Disabled("AB 2019/05/23 - JVM crash on linux-x86_64-cpu-avx512 - issue #7657") @Tag(TagNames.JACKSON_SERDE) @NativeTag public class LargeSerDeTests extends BaseNd4jTestWithBackends { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/NumpyFormatTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/NumpyFormatTests.java index e9a0d0710..06e826953 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/NumpyFormatTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/serde/NumpyFormatTests.java @@ -220,7 +220,6 @@ public class NumpyFormatTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled public void testNpy(Nd4jBackend backend) throws Exception { for(boolean empty : new boolean[]{false, true}) { val dir = testDir.toFile(); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/shape/concat/ConcatTestsC.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/shape/concat/ConcatTestsC.java index 5268f6acd..4268c0c80 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/shape/concat/ConcatTestsC.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/shape/concat/ConcatTestsC.java @@ -237,7 +237,6 @@ public class ConcatTestsC extends BaseNd4jTestWithBackends { } @Test - @Disabled @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testConcat3dv2(Nd4jBackend backend) { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/specials/LongTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/specials/LongTests.java index 6876f2cf0..f52114b4a 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/specials/LongTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/specials/LongTests.java @@ -22,11 +22,13 @@ package org.nd4j.linalg.specials; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.nd4j.common.tests.tags.NativeTag; +import org.nd4j.common.tests.tags.TagNames; import org.nd4j.linalg.BaseNd4jTestWithBackends; import org.nd4j.linalg.api.buffer.DataBuffer; import org.nd4j.linalg.api.buffer.DataType; @@ -44,7 +46,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @Slf4j -@Disabled @NativeTag public class LongTests extends BaseNd4jTestWithBackends { @@ -52,6 +53,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testSomething1(Nd4jBackend backend) { // we create 2D array, total nr. of elements is 2.4B elements, > MAX_INT INDArray huge = Nd4j.create(8000000, 300); @@ -79,6 +81,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testSomething2(Nd4jBackend backend) { // we create 2D array, total nr. of elements is 2.4B elements, > MAX_INT INDArray huge = Nd4j.create(100, 10); @@ -106,6 +109,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOffsets1(Nd4jBackend backend) { INDArray huge = Nd4j.create(230000000, 10); @@ -116,6 +120,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp1(Nd4jBackend backend) { double exp = Transforms.manhattanDistance(Nd4j.create(1000).assign(1.0), Nd4j.create(1000).assign(2.0)); @@ -135,6 +140,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp2(Nd4jBackend backend) { INDArray hugeX = Nd4j.create(2300000, 1000).assign(1.0); @@ -147,6 +153,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp2_micro(Nd4jBackend backend) { INDArray hugeX = Nd4j.create(230, 1000).assign(1.0); @@ -159,6 +166,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp3(Nd4jBackend backend) { INDArray hugeX = Nd4j.create(2300000, 1000).assign(1.0); @@ -171,6 +179,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp4(Nd4jBackend backend) { INDArray hugeX = Nd4j.create(2300000, 1000).assign(1.0); @@ -183,6 +192,7 @@ public class LongTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") + @Tag(TagNames.LONG_TEST) public void testLongTadOp5(Nd4jBackend backend) { List list = new ArrayList<>(); diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/BasicWorkspaceTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/BasicWorkspaceTests.java index 5b04dbbeb..c0e4a6d9c 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/BasicWorkspaceTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/BasicWorkspaceTests.java @@ -990,7 +990,6 @@ public class BasicWorkspaceTests extends BaseNd4jTestWithBackends { @Test - @Disabled @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testMmap2(Nd4jBackend backend) throws Exception { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/CyclicWorkspaceTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/CyclicWorkspaceTests.java index dc2a16b0f..c7946e39e 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/CyclicWorkspaceTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/CyclicWorkspaceTests.java @@ -66,7 +66,6 @@ public class CyclicWorkspaceTests extends BaseNd4jTestWithBackends { } @Test - @Disabled @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") public void testGc(Nd4jBackend backend) { diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/SpecialWorkspaceTests.java b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/SpecialWorkspaceTests.java index cb8bc8b28..ab2e26bd6 100644 --- a/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/SpecialWorkspaceTests.java +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/java/org/nd4j/linalg/workspace/SpecialWorkspaceTests.java @@ -176,7 +176,6 @@ public class SpecialWorkspaceTests extends BaseNd4jTestWithBackends { @ParameterizedTest @MethodSource("org.nd4j.linalg.BaseNd4jTestWithBackends#configs") - @Disabled public void testVariableTimeSeries2(Nd4jBackend backend) { WorkspaceConfiguration configuration = WorkspaceConfiguration.builder().initialSize(0).overallocationLimit(3.0) .policyAllocation(AllocationPolicy.OVERALLOCATE).policySpill(SpillPolicy.REALLOCATE) diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/junit-platform.properties b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..ce1af3f2b --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/junit-platform.properties @@ -0,0 +1,27 @@ +# +# /* +# * ****************************************************************************** +# * * +# * * +# * * This program and the accompanying materials are made available under the +# * * terms of the Apache License, Version 2.0 which is available at +# * * https://www.apache.org/licenses/LICENSE-2.0. +# * * +# * * See the NOTICE file distributed with this work for additional +# * * information regarding copyright ownership. +# * * Unless required by applicable law or agreed to in writing, software +# * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# * * License for the specific language governing permissions and limitations +# * * under the License. +# * * +# * * SPDX-License-Identifier: Apache-2.0 +# * ***************************************************************************** +# */ +# +# + +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent +junit.jupiter.execution.parallel.config.strategy=fixed +junit.jupiter.execution.parallel.config.fixed.parallelism=4 \ No newline at end of file diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/nd4j-op-def.pbtxt b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/nd4j-op-def.pbtxt new file mode 100644 index 000000000..9cbb9c962 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/nd4j-op-def.pbtxt @@ -0,0 +1,20909 @@ +opList { + name: "Assert" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "BinaryMinimalRelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "thresholdRelative" + argType: DOUBLE + } + argDescriptor { + name: "thresholdAbsolute" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "BinaryRelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ClipByValue" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "clipValueMin" + argType: DOUBLE + } + argDescriptor { + name: "clipValueMax" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "Conditional" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "ExternalErrorsFn" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "Floor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "Log1p" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "ParallelConcat" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "Pow" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "Pow_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdy" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdz" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdy" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "Reciprocal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "RelativeError" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "Return" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "Scope" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "Switch" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: DIVERGENT_OP_IMPL +} +opList { + name: "Where" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "While" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "isConstant" + argType: BOOL + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + opDeclarationType: LOGIC_OP_IMPL +} +opList { + name: "_geluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_mishderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_powderivative" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "pow" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_precise_geluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_sigmoidderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_swishderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "_tanhderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "abs" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "absolute_difference_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "absolute_difference_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "acos" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "acosh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ada_delta_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateMsg" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateMsdx" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dRho" + argType: DOUBLE + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateMsg" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateMsdx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rho" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "updatedStateMsdx" + argType: INPUT_TENSOR + argIndex: 5 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ada_grad_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateH" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 3 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ada_max_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adabelief_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adam_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateU" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateU" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "add" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "add_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "add_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "adjust_contrast" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_contrast_v2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_hue" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delta" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "adjust_saturation" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "factor" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "all" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "alpha_dropout" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: DOUBLE + } + argDescriptor { + name: "b" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "alphaPrime" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "alpha_dropout_bp" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "alphaValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "alpha1Value" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "betaValue" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "amax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amax_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "amin_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ams_grad_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "stateH" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateV" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "initStateH" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 7 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "and" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "and_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "any" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "apply_sgd" + argDescriptor { + name: "Z" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: DOUBLE + } + argDescriptor { + name: "parameters" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradients" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "tarr" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "applygradientdescent" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "argamax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argamin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argmax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "argmin" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "asin" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "asinh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "assign" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "assign_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "asum" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "atan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "atanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "avgpool2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "avgpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "avgpool3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "avgpool3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "axpy" + argDescriptor { + name: "n" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "barnes_edge_forces" + argDescriptor { + name: "N" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "rowP" + argType: INPUT_TENSOR + } + argDescriptor { + name: "colP" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "valP" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dataP" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "barnes_gains" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradX" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "barnes_symmetrized" + argDescriptor { + name: "N" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputRows" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputCols" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "outputVals" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rowP" + argType: INPUT_TENSOR + } + argDescriptor { + name: "colP" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "valP" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "outRows" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batch_to_space" + argDescriptor { + name: "blockSize" + argType: INT64 + } + argDescriptor { + name: "croppingTop" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "croppingBottom" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "crop" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "batch_to_space_nd" + argDescriptor { + name: "blocks" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "blockShape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "crop" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "batched_gemm" + argDescriptor { + name: "transA" + argType: INT64 + } + argDescriptor { + name: "transB" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "M" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "N" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "K" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "ldA" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "ldB" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "ldC" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "batchSize" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "vC" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "transposeA" + argType: BOOL + } + argDescriptor { + name: "transposeB" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + } + argDescriptor { + name: "beta" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "vA" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "vB" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batchnorm" + argDescriptor { + name: "applyScale" + argType: INT64 + } + argDescriptor { + name: "applyOffset" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "applyGamma" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "applyBeta" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gamma" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "batchnorm_bp" + argDescriptor { + name: "applyScale" + argType: INT64 + } + argDescriptor { + name: "applyOffset" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdM" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdV" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdG" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "applyGamma" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "applyBeta" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gamma" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "betainc" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "biasadd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "biasadd_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "bincount" + argDescriptor { + name: "minLength" + argType: INT64 + } + argDescriptor { + name: "maxLength" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputType" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "bitcast" + argDescriptor { + name: "newType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dataType" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "bits_hamming_distance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "bitwise_and" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bitwise_or" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bitwise_xor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "bool_not" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "boolean_and" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "boolean_not" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "boolean_or" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "boolean_xor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "broadcast_amax" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_amin" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_dynamic_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "broadcast_equalto" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_greaterthan" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_greaterthanorequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_lessthan" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_lessthanorequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_max" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_min" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_notequal" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcast_to" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "broadcastadd" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastcopy" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastdiv" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastgradientargs" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "broadcastmul" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastrdiv" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastrsub" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "broadcastsub" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dimension" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "car" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "set" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cas" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "set" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cast" + argDescriptor { + name: "dst" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "cbow" + argDescriptor { + name: "numWorkers" + argType: INT64 + } + argDescriptor { + name: "nsRounds" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "trainWords" + argType: BOOL + } + argDescriptor { + name: "isInference" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ngStarter" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "context" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "codes" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "syn0" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "syn1" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "syn1neg" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "expTable" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "negTable" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "randomValue" + argType: INPUT_TENSOR + argIndex: 11 + } + argDescriptor { + name: "numLabels" + argType: INPUT_TENSOR + argIndex: 12 + } + argDescriptor { + name: "lockedWords" + argType: INPUT_TENSOR + argIndex: 13 + } + argDescriptor { + name: "inferenceVector" + argType: INPUT_TENSOR + argIndex: 14 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "ceil" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cell_contains" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "contains" + argType: BOOL + } + argDescriptor { + name: "corner" + argType: INPUT_TENSOR + } + argDescriptor { + name: "width" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "point" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "check_numerics" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "message" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "choice" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "source" + argType: INPUT_TENSOR + } + argDescriptor { + name: "probabilities" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cholesky" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "choose" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "numResults" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "scalar" + argType: DOUBLE + } + argDescriptor { + name: "arg" + argType: INPUT_TENSOR + } + argDescriptor { + name: "comp" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clip_by_global_norm" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "clipbyavgnorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clipbyavgnorm_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipNorm" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clipbynorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clipbynorm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "clipValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "clipbyvalue" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "left" + argType: DOUBLE + } + argDescriptor { + name: "right" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "clone_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "col2im" + argDescriptor { + name: "strideY" + argType: INT64 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "padHeight" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "padWidth" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "imgHeight" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "imgWidth" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "compare_and_bitpack" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "compat_sparse_to_dense" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "def" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "compat_string_split" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delim" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "concat" + argDescriptor { + name: "concatDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isDynamicAxis" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "concatDimension" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "concat_bp" + argDescriptor { + name: "concatDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "epsilonChunk" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dynamicAxis" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "originalChunk" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "confusion_matrix" + argDescriptor { + name: "numClasses" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv1d" + argDescriptor { + name: "kW" + argType: INT64 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "isNCW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv1d_bp" + argDescriptor { + name: "kW" + argType: INT64 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "isNCW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "conv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "conv2d_input_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradIShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "conv3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "paddingMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "copy" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cos" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosine_distance_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cosine_distance_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cosinedistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cosinesimilarity" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "countNonZero" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "countZero" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "create" + argDescriptor { + name: "order" + argType: INT64 + } + argDescriptor { + name: "outputType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "init" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "create_list" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "expandable" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "crelu" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "crelu_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "epsilon" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilonNext" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "crop_and_resize" + argDescriptor { + name: "method" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "extrapolationVal" + argType: DOUBLE + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "boxIndexes" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "cross" + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "ctc_loss" + argDescriptor { + name: "blankIndex" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputLosses" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targetLabels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logitInput" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "targetLabelLengths" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logitInputLengths" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "ctc_loss_grad" + argDescriptor { + name: "blankIndex" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputGradients" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targetLabels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logitInput" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "targetLabelLengths" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logitInputLengths" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "cube" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cube_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cubederivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "cumprod" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cumprod_bp" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cumsum" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "cumsum_bp" + argDescriptor { + name: "exclusive" + argType: INT64 + } + argDescriptor { + name: "reverse" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "exclusive" + argType: BOOL + } + argDescriptor { + name: "reverse" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "cyclic_rshift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "cyclic_shift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "decode_bitmap" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updates" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "start" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "decode_threshold" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updates" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "deconv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "deconv2d_tf" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradIShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv3d" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "deconv3d_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "deconv3d_tf" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "depth_to_space" + argDescriptor { + name: "block_size" + argType: INT64 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "depthwise_conv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "depthwise_conv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "diag" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "diag_part" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "digamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dilation2d" + argDescriptor { + name: "isSameMode" + argType: INT64 + } + argDescriptor { + name: "rates" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strides" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isSameMode" + argType: BOOL + } + argDescriptor { + name: "inPlace" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "r" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "distribution_bernoulli" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "prob" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_binomial" + argDescriptor { + name: "trials" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_binomial_ex" + argDescriptor { + name: "trials" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_gaussian" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stddev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_lognormal" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stdev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_truncated" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stddev" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "distribution_uniform" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "shape" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "div_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "divide" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "divide_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "divide_no_nan" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "dot" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "newFormat" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "dot_product_attention" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "outputWeights" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "withWeights" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "dot_product_attention_bp" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdq" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdk" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdv" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "draw_bounding_boxes" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "images" + argType: INPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "colors" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "dropout" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dropout_bp" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "reduceShape" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "dropout_inverted" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "p" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "dynamic_bidirectional_rnn" + argDescriptor { + name: "timeMajor" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "hFW" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hBW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hFWFinal" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "hBWFinal" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "WxFW" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "WhFW" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bFW" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "WxBW" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "WhBW" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "bBW" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "h0FW" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "h0BW" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "dynamic_partition" + argDescriptor { + name: "numPartitions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputList" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "dynamic_partition_bp" + argDescriptor { + name: "numPartition" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputList" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradsAtOutput" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "dynamic_rnn" + argDescriptor { + name: "timeMajor" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "dynamic_stitch" + argDescriptor { + name: "numPartitions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "index" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "elu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "elu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "embedding_lookup" + argDescriptor { + name: "partition_mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "encode_bitmap" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "encoded" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "counter" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "counter" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "encode_threshold" + argDescriptor { + name: "boundary" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "updated" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "threshold" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "encoded" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "enter" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "isConstant" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "entropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "eps" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "eps_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "equals" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "equals_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "equals_with_eps" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "eps" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "erf" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "erfc" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "euclidean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "evaluate_reduction_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "oldFormat" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "inputShape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "exit" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "exp" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "expand_dims" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "expm1" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "expose" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "extract_image_patches" + argDescriptor { + name: "ksizeRows" + argType: INT64 + } + argDescriptor { + name: "ksizeCols" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kstrideRows" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "kstrideCols" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "krateRows" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "krateCols" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sameMode" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "eye" + argDescriptor { + name: "numRows" + argType: INT64 + } + argDescriptor { + name: "numCols" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "batchDimension" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dataType" + argType: DOUBLE + } + argDescriptor { + name: "numRows" + argType: INPUT_TENSOR + } + argDescriptor { + name: "numCols" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "fake_quant_with_min_max_args" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowRange" + argType: BOOL + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "fake_quant_with_min_max_vars" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowed" + argType: BOOL + } + argDescriptor { + name: "m" + argType: DOUBLE + } + argDescriptor { + name: "m2" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "fake_quant_with_min_max_vars_per_channel" + argDescriptor { + name: "numBits" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "narrowed" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "fill" + argDescriptor { + name: "dtype" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "value" + argType: DOUBLE + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "outputs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "fill_as" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "firas_sparse" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "first_index" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "flatten" + argDescriptor { + name: "order" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "flatten_2d" + argDescriptor { + name: "flattenDimension" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "floor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "floordiv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "floordiv_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "floormod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "floormod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "fmod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "fmod_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "fused_batch_norm" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "isTraining" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "batchMean" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "batchVar" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scale" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "offset" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "mean" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "variance" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "batchMeanVar" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "gather" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "intArgs" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "gather_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "gather_nd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "checkIndices" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "gelu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "get_seed" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "gradientbackwards" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "greater" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "greater_equal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "greaterthan_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "greaterthanorequal_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "grid_free" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "gru" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "gruCell" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "r" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "u" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hLast" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wru" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "bru" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "bc" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "gruCell_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdhi" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdW" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWc" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdbc" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hi" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "bc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdr" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "dLdu" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "dLdc" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 9 + } +} +opList { + name: "gru_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWh" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 5 + } +} +opList { + name: "hammingdistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hard_sigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hard_sigmoidderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hardsigmoid" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardsigmoid_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "hardtanhderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hashcode" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "hasinf" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hasnan" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "hinge_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "hinge_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "histogram" + argDescriptor { + name: "numBins" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "histogram_fixed_width" + argDescriptor { + name: "nbins" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "range" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numBins" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "hsv_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "huber_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "delta" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "huber_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "delta" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "identity" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "identity_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "identity_n" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "igamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "igammac" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "im2col" + argDescriptor { + name: "kernelHeight" + argType: INT64 + } + argDescriptor { + name: "kernelWidth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strideY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "padHeight" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "padWidth" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "zeroPadVal" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "im2col_bp" + argDescriptor { + name: "kernelHeight" + argType: INT64 + } + argDescriptor { + name: "kernelWidth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "strideY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "strideX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "zeroPadVal" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradAtOutput" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "image_resize" + argDescriptor { + name: "method" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "preserveAspectRatio" + argType: BOOL + } + argDescriptor { + name: "antialias" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "in_top_k" + argDescriptor { + name: "k" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sorted" + argType: BOOL + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "invert_permutation" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "is_non_decreasing" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "is_numeric_tensor" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "is_strictly_increasing" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: BOOLEAN_OP_IMPL +} +opList { + name: "isfinite" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "isinf" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ismax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "isnan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "jaccarddistance" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "knn_mindistance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lowest" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "highest" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "distance" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "l2_loss" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "last_index" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "layer_norm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "noBias" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gain" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "layer_norm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdg" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "noBias" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gain" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdx" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdg" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdb" + argType: INPUT_TENSOR + argIndex: 6 + } +} +opList { + name: "leakyrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "leakyreluderivative" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "less" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "less_equal" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "lessthan_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "lessthanorequal_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "lgamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "lin_space" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "start" + argType: DOUBLE + } + argDescriptor { + name: "stop" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "start" + argType: INPUT_TENSOR + } + argDescriptor { + name: "finish" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numOfElements" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "linspace_random" + argDescriptor { + name: "length" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "listdiff" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "output1" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "output2" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keep" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "log" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "log1p" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "log_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsilon" + argType: DOUBLE + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_matrix_determinant" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "log_poisson_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "full" + argType: BOOL + } + argDescriptor { + name: "log_predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_poisson_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "full" + argType: BOOL + } + argDescriptor { + name: "log_predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "log_softmax" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "log_softmax_bp" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "log_x" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "base" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "logdet" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "logentropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "logsigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "loop_cond" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "lrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrelu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrn" + argDescriptor { + name: "depth" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "bias" + argType: DOUBLE + } + argDescriptor { + name: "alpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lrn_bp" + argDescriptor { + name: "depth" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "bias" + argType: DOUBLE + } + argDescriptor { + name: "alpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "lstm" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "projection" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + } + argDescriptor { + name: "clippingProjValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmBlock" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "dataFormat" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "i" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "f" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "maxTSLength" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "cLast" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "yLast" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wci" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wcf" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wco" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "lstmBlockCell" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "i" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "f" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "o" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "y" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "cLast" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "yLast" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "W" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wci" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wcf" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wco" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmCell" + argDescriptor { + name: "peephole" + argType: INT64 + } + argDescriptor { + name: "projection" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "clippingCellValue" + argType: DOUBLE + } + argDescriptor { + name: "clippingProjValue" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "forgetBias" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ht_1" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "ct_1" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wc" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayer" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "directionMode" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "gateAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hL" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "cL" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasSeqLen" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "hasInitH" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "hasInitC" + argType: BOOL + argIndex: 3 + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 4 + } + argDescriptor { + name: "retFullSeq" + argType: BOOL + argIndex: 5 + } + argDescriptor { + name: "retLastH" + argType: BOOL + argIndex: 6 + } + argDescriptor { + name: "retLastC" + argType: BOOL + argIndex: 7 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "seqLen" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayerCell" + argDescriptor { + name: "gateAct" + argType: INT64 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } +} +opList { + name: "lstmLayerCellBp" + argDescriptor { + name: "gateAct" + argType: INT64 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWr" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdcI" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWp" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "lstmLayer_bp" + argDescriptor { + name: "dataFormat" + argType: INT64 + } + argDescriptor { + name: "directionMode" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "gateAct" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "cellAct" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "outAct" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdWx" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdWr" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdhI" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdcI" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWp" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "hasBiases" + argType: BOOL + } + argDescriptor { + name: "hasSeqLen" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "hasInitH" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "hasInitC" + argType: BOOL + argIndex: 3 + } + argDescriptor { + name: "hasPH" + argType: BOOL + argIndex: 4 + } + argDescriptor { + name: "retFullSeq" + argType: BOOL + argIndex: 5 + } + argDescriptor { + name: "retLastH" + argType: BOOL + argIndex: 6 + } + argDescriptor { + name: "retLastC" + argType: BOOL + argIndex: 7 + } + argDescriptor { + name: "cellClip" + argType: DOUBLE + } + argDescriptor { + name: "gateAlpha" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gateBeta" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "cellAlpha" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "cellBeta" + argType: DOUBLE + argIndex: 4 + } + argDescriptor { + name: "outAlpha" + argType: DOUBLE + argIndex: 5 + } + argDescriptor { + name: "outBeta" + argType: DOUBLE + argIndex: 6 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "seqLen" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "hI" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "cI" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "Wp" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "dLdh" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "dLdhL" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "dLdcL" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "dLdsL" + argType: INPUT_TENSOR + argIndex: 11 + } +} +opList { + name: "lstsq" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "fastFlag" + argType: BOOL + } + argDescriptor { + name: "l2_factor" + argType: DOUBLE + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "lu" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "p" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "manhattan" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "allDistances" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "match_condition" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "match_condition_transform" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "compare" + argType: DOUBLE + } + argDescriptor { + name: "eps" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "matmul" + argDescriptor { + name: "transX" + argType: INT64 + } + argDescriptor { + name: "transY" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "transZ" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "transposeX" + argType: BOOL + } + argDescriptor { + name: "transposeY" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "matmul_bp" + argDescriptor { + name: "transX" + argType: INT64 + } + argDescriptor { + name: "transY" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "transZ" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dldx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dldy" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "alpha" + argType: DOUBLE + } + argDescriptor { + name: "beta" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dldx" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dldy" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "matrix_band_part" + argDescriptor { + name: "minLower" + argType: INT64 + } + argDescriptor { + name: "maxUpper" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "minLowerT" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxUpperT" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "matrix_determinant" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_diag" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "diagonal" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_diag_part" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "matrix_inverse" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "matrix_set_diag" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "diagonal" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "max_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "max_pool_with_argmax" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "sameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "outArgMax" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "max_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "maximum" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "maximum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "maxout" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "maxpool2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "maxpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "maxpool3dnew" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "arrayOutput" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "maxpool3dnew_bp" + argDescriptor { + name: "kD" + argType: INT64 + } + argDescriptor { + name: "kH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sD" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "pD" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "dD" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 11 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 12 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 14 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mean_pairwssqerr_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_pairwssqerr_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_sqerr_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mean_sqerr_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "predictions" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "merge" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "mergeadd" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergeadd_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergeavg" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergeavg_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergemax" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "mergemax_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mergemaxindex" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } +} +opList { + name: "mergesum" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "meshgrid" + argDescriptor { + name: "swapFirst2Dims" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cartesian" + argType: BOOL + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + } +} +opList { + name: "meta_postulate" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_predicate" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_predicate_inverted" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "meta_reduce" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "min_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "minimum" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "minimum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mirror_pad" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isSymmetric" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "paddings" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "mish" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "mod" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "mod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "moments" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "means" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "variances" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "outStd" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "mul_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "multi_head_dot_product_attention" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "weights" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "withWeights" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wq" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wk" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wv" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wo" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "multi_head_dot_product_attention_bp" + argDescriptor { + name: "normalization" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdq" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdk" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdv" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdWq" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdWk" + argType: OUTPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "dLdWv" + argType: OUTPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "dLdWo" + argType: OUTPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "scaled" + argType: BOOL + } + argDescriptor { + name: "queries" + argType: INPUT_TENSOR + } + argDescriptor { + name: "keys" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "values" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "Wq" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "Wk" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "Wv" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "Wo" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "multiply" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "multiply_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "nadam_updater" + argDescriptor { + name: "iteration" + argType: INT64 + } + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "stateM" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dBeta1" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dBeta2" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 3 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initStateV" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "initStateM" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "beta1" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "beta2" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 6 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "neg" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "nesterovs_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateV" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dMomentum" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "momentum" + argType: INPUT_TENSOR + argIndex: 3 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "next_iteration" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "non_max_suppression" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutputSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "non_max_suppression_overlaps" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "overlapThreshold" + argType: DOUBLE + } + argDescriptor { + name: "scoreThreshold" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "non_max_suppression_v3" + argDescriptor { + name: "maxOutputSize" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "boxes" + argType: INPUT_TENSOR + } + argDescriptor { + name: "scales" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "maxOutSize" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "iouThreshold" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "scoreThreshold" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "noop" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "norm" + argDescriptor { + name: "*output" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mode" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: REDUCTION_OP_IMPL +} +opList { + name: "normalize_moments" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "resMeans" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "resVariances" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shift" + argType: DOUBLE + } + argDescriptor { + name: "counts" + argType: INPUT_TENSOR + } + argDescriptor { + name: "means" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "variances" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "outMean" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outVar" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "not" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "not_equals" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_BOOL_OP_IMPL +} +opList { + name: "not_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "notequals_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "nth_element" + argDescriptor { + name: "reverse" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "reverse" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "n" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "old_assign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "onehot" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "depth" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dataType" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "on" + argType: DOUBLE + } + argDescriptor { + name: "off" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "depth" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "on" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "off" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "oneminus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "ones_as" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "or" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "or_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "order" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "pad" + argDescriptor { + name: "mode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "padValue" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "paddings" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "parallel_stack" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "percentile" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "q" + argType: DOUBLE + } + argDescriptor { + name: "interpolation" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "permute" + argDescriptor { + name: "reverseDims" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "permutationVector" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pick_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ia" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "pnormpool2d" + argDescriptor { + name: "kY" + argType: INT64 + } + argDescriptor { + name: "kX" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sY" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sX" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pY" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pX" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dY" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dX" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "pnormpool2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "pnorm" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "eps" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pointwise_conv2d" + argDescriptor { + name: "isNCHW" + argType: INT64 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "polygamma" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "n" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "pooling3dpool3dnew_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputArrays" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "pow" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "pow" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "pow" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "pow_pairwise" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "precise_gelu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "precise" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "prelu" + argDescriptor { + name: "sharedAxes" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "prelu_bp" + argDescriptor { + name: "sharedAxes" + argType: INT64 + } + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdA" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdO" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdI" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "dLdA" + argType: INPUT_TENSOR + argIndex: 4 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "print_affinity" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "print_variable" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "printSpecial" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "message" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "probablistic_merge" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "probability" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "qr" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputQ" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputR" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "fullMatricies" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_bernoulli" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "f" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_crop" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_exponential" + argDescriptor { + name: "shape" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lambda" + argType: DOUBLE + } +} +opList { + name: "random_gamma" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "beta" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "random_multinomial" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inputSamples" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_normal" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "random_poisson" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lambda" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "random_shuffle" + argDescriptor { + name: "seeds" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "randomnormal" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "mean" + argType: DOUBLE + } + argDescriptor { + name: "stdev" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } +} +opList { + name: "randomuniform" + argDescriptor { + name: "dtype" + argType: INT64 + } + argDescriptor { + name: "seed" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + } + argDescriptor { + name: "min" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "max" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "range" + argDescriptor { + name: "from" + argType: INT64 + } + argDescriptor { + name: "to" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "step" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "from" + argType: DOUBLE + } + argDescriptor { + name: "to" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "step" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "from" + argType: INPUT_TENSOR + } + argDescriptor { + name: "to" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "step" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rank" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "rational_tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rational_tanh_derivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rationaltanh" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rationaltanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rdiv_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "read_list" + argDescriptor { + name: "index" + argType: INT64 + } + argDescriptor { + name: "importDataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "vec" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "realdiv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "realdiv_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rectified_tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rectified_tanh_derivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rectifiedtanh" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rectifiedtanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "reduce_dot_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "outputY" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "reduce_logsumexp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_max" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_max_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_mean" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_mean_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_min" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_min_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm1" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm1_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm2" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm2_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_norm_max" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_norm_max_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_normmax" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "reduce_prod" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_prod_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_sqnorm" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_sqnorm_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_stdev" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_stdev_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_sum" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_sum_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reduce_variance" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reduce_variance_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "keepDims" + argType: DOUBLE + } + argDescriptor { + name: "biasCorrected" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "relu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu6" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu6_bp" + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "scalar" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "relu_layer" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "remainder" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "remainder_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "repeat" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "replace_nans" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "set" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "reshape" + argDescriptor { + name: "shapeArr" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reshapeas" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_area" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_bicubic" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "alignPixelCenters" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_bilinear" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "halfPixelCenter" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "resize_images" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "preserveAspectRatio" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "size" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "methodT" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "resize_nearest_neighbor" + argDescriptor { + name: "height" + argType: INT64 + } + argDescriptor { + name: "width" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "alignCorners" + argType: BOOL + } + argDescriptor { + name: "halfPixelCenter" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "image" + argType: INPUT_TENSOR + } + argDescriptor { + name: "newImageSize" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "restorev2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "reverse" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "reverse_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "grad" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reverse_sequence" + argDescriptor { + name: "seqDim" + argType: INT64 + } + argDescriptor { + name: "batchDim" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "seqLengths" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "reverse_v2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isLegacy" + argType: BOOL + } +} +opList { + name: "reversedivide" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversedivide_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reversemod" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversemod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "reversesubtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "reversesubtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "rgb_to_grs" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "rgb_to_hsv" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rgb_to_yiq" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rgb_to_yuv" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "rint" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "rms_prop_updater" + argDescriptor { + name: "update" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "stateG" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLr" + argType: DOUBLE + } + argDescriptor { + name: "dRmsDecay" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "dEpsilon" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + } + argDescriptor { + name: "initState" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "rmsDecay" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 4 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "roll" + argDescriptor { + name: "shift" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "shiftsI" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "round" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rshift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "rsqrt" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "rsub_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "savev2" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "scalar_min" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "scatter_add" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_div" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "array" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "scatter_max" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_min" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_mul" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shape" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "scatter_nd_add" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd_sub" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_nd_update" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_sub" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_upd" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lock" + argType: BOOL + } + argDescriptor { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "scatter_update" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "operand" + argType: INPUT_TENSOR + } + argDescriptor { + name: "updates" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sconv2d" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "*output" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "*input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "*weightsDepth" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sconv2d_bp" + argDescriptor { + name: "kH" + argType: INT64 + } + argDescriptor { + name: "kW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "sH" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "sW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "pH" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "pW" + argType: INT64 + argIndex: 5 + } + argDescriptor { + name: "dH" + argType: INT64 + argIndex: 6 + } + argDescriptor { + name: "dW" + argType: INT64 + argIndex: 7 + } + argDescriptor { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + argDescriptor { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "*gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "*gradWD" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradWP" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "*input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "*gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "*weightsDepth" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bias" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "segment_max" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_max_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_mean" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_mean_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_min" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_min_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_prod" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_prod_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outIndices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradOut" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "segment_sum" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "segment_sum_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "data" + argType: INPUT_TENSOR + } + argDescriptor { + name: "segmentIds" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradient" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "select" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cond" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "selu" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "selu_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "seluderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sequence_mask" + argDescriptor { + name: "maxInd" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "is_static_maxlen" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "maxlen" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "set" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "set_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "set_seed" + argDescriptor { + name: "seed" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "setrange" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "min" + argType: DOUBLE + } + argDescriptor { + name: "max" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "setvalorless_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sgd_updater" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "lr" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "shannonentropy" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "keepDims" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "shape_of" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "shapes_of" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "shift_bits" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "sigm_cross_entropy_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sigm_cross_entropy_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "labelSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sigmoid" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sigmoid_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "sign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sin" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sinh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "size" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "size_at" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "size_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "skipgram" + argDescriptor { + name: "numWorkers" + argType: INT64 + } + argDescriptor { + name: "nsRounds" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isInference" + argType: BOOL + } + argDescriptor { + name: "isPreciseMode" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "target" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ngStarter" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "indices" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "codes" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "syn0" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "syn1" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "syn1neg" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "expTable" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "negTable" + argType: INPUT_TENSOR + argIndex: 8 + } + argDescriptor { + name: "alpha" + argType: INPUT_TENSOR + argIndex: 9 + } + argDescriptor { + name: "randomValue" + argType: INPUT_TENSOR + argIndex: 10 + } + argDescriptor { + name: "inferenceVector" + argType: INPUT_TENSOR + argIndex: 11 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "slice" + argDescriptor { + name: "size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "e" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "slice_bp" + argDescriptor { + name: "size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "e" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "softmax" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softmax_bp" + argDescriptor { + name: "dimension" + argType: INT64 + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softmax_cross_entropy_loss" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "softmax_cross_entropy_loss_grad" + argDescriptor { + name: "reductionMode" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "labelsSmoothing" + argType: DOUBLE + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "softmax_cross_entropy_loss_with_logits" + argDescriptor { + name: "classesDim" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "softmax_cross_entropy_loss_with_logits_grad" + argDescriptor { + name: "classesDim" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdl" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "softplus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softplus_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsign" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsign_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "softsignderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "solve" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "useAdjoint" + argType: BOOL + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "adjoint" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "solve_ls" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "fastFlag" + argType: BOOL + } + argDescriptor { + name: "l2_factor" + argType: DOUBLE + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "somepoolingpool2d" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "somepoolingpool2d_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "grad" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "space_to_batch" + argDescriptor { + name: "blockSize" + argType: INT64 + } + argDescriptor { + name: "paddingTop" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "paddingBottom" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "padding" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "space_to_batch_nd" + argDescriptor { + name: "blocks" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "blockShape" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "padding" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "space_to_depth" + argDescriptor { + name: "block_size" + argType: INT64 + } + argDescriptor { + name: "isNHWC" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "sparse_softmax_cross_entropy_loss_with_logits" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "sparse_softmax_cross_entropy_loss_with_logits_grad" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdp" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "labels" + argType: INPUT_TENSOR + } + argDescriptor { + name: "logits" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split" + argDescriptor { + name: "numSplit" + argType: INT64 + } + argDescriptor { + name: "dimensions" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "array" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "split_string" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "delim" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "split_v" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "numSplit" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "sizes" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "_a" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sqrt" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "sqrtm" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "square" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "squaredsubtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "squaredsubtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "squeeze" + argDescriptor { + name: "_a" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "sru" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sruCell" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "xt" + argType: INPUT_TENSOR + } + argDescriptor { + name: "ct_1" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "sru_bi" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "ht" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ct" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sru_bi_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradC0" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "ct" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "inGradC0" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "inGradHt" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "sru_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradW" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "gradB" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "gradInit" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "c0" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "c" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "inGradCt" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "inGradH" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "mask" + argType: INPUT_TENSOR + argIndex: 7 + } +} +opList { + name: "stabilize" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "realMin" + argType: DOUBLE + } + argDescriptor { + name: "cutOff" + argType: DOUBLE + argIndex: 1 + } + argDescriptor { + name: "k" + argType: DOUBLE + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "stack" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "inArrs" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "stack_list" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "standardize" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "standardize_bp" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "eps" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "static_bidirectional_rnn" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFWFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "hBWFinal" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "WxFW" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "WhFW" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "bFW" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "WxBW" + argType: INPUT_TENSOR + argIndex: 4 + } + argDescriptor { + name: "WhBW" + argType: INPUT_TENSOR + argIndex: 5 + } + argDescriptor { + name: "bBW" + argType: INPUT_TENSOR + argIndex: 6 + } + argDescriptor { + name: "h0FW" + argType: INPUT_TENSOR + argIndex: 7 + } + argDescriptor { + name: "h0BW" + argType: INPUT_TENSOR + argIndex: 8 + } +} +opList { + name: "static_rnn" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "h" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "hFinal" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "Wx" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "Wh" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "h0" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "std" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "step" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "stop_gradient" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "strided_slice" + argDescriptor { + name: "begin_mask" + argType: INT64 + } + argDescriptor { + name: "ellipsis_mask" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "end_mask" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "new_axis_mask" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "shrink_axis_mask" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "v_begin" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "v_end" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v_stride" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "strided_slice_bp" + argDescriptor { + name: "begin_mask" + argType: INT64 + } + argDescriptor { + name: "ellipsis_mask" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "end_mask" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "new_axis_mask" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "shrink_axis_mask" + argType: INT64 + argIndex: 4 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "v_begin" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v_end" + argType: INPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "v_stride" + argType: INPUT_TENSOR + argIndex: 4 + } +} +opList { + name: "sub_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "subtract" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "subtract_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "gradY" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "sufficient_statistics" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dataCount" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "sum" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "squares" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "shift" + argType: OUTPUT_TENSOR + argIndex: 3 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dimensions" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "shift" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "svd" + argDescriptor { + name: "fullUV" + argType: INT64 + } + argDescriptor { + name: "calcUV" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "switchNum" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "full_matrices" + argType: BOOL + } + argDescriptor { + name: "computeUv" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "s" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "u" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "v" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "swish" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "switch" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "frameName" + argType: STRING + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "predicate" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tan" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "tanderivative" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "tanh" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tanh_bp" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsilon" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tear" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outE" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tensorarrayv3" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "tensorarraywritev3" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tensordot" + argDescriptor { + name: "dimensionsY" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "addedEdges" + argType: BOOL + } + argDescriptor { + name: "transposeY" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tensormmul" + argDescriptor { + name: "axe0_size" + argType: INT64 + } + argDescriptor { + name: "axe1_size" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "c" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tensormmul_bp" + argDescriptor { + name: "axe0Size" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdA" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdB" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "A" + argType: INPUT_TENSOR + } + argDescriptor { + name: "B" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdC" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "test_output_reshape" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "test_scalar" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "testcustom" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "testop2i2o" + argDescriptor { + name: "xO" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "yO" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: OP_IMPL +} +opList { + name: "testreduction" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + opDeclarationType: REDUCTION_OP_IMPL +} +opList { + name: "tf_atan2" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "thresholdedrelu" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "thresholdedrelu_bp" + argDescriptor { + name: "dLdI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "cutoff" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "dLdO" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "tile" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "is_static_reps" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "reps_vector" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tile_bp" + argDescriptor { + name: "repeat" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tile_to_shape" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "tile_to_shape_bp" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradX" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "epsNext" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "timesoneminus" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "to_double" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_float16" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_float32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_int32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_int64" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_uint32" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "to_uint64" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "toggle_bits" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: OP_IMPL +} +opList { + name: "top_k" + argDescriptor { + name: "k" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "needSort" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "trace" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "transpose" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "permuteDims" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "tri" + argDescriptor { + name: "row" + argType: INT64 + } + argDescriptor { + name: "column" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "diag" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "triangular_solve" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "isLower" + argType: BOOL + } + argDescriptor { + name: "useAdjoint" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "a" + argType: INPUT_TENSOR + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "lower" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "adjoint" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "triu" + argDescriptor { + name: "diag" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "triu_bp" + argDescriptor { + name: "diag" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "truncatediv" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: BROADCASTABLE_OP_IMPL +} +opList { + name: "unique" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unique_with_counts" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "values" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "indices" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "counts" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unsorted_segment_max" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_max_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_mean" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_mean_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_min" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_min_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_prod" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_prod_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sqrt_n" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sqrt_n_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sum" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "segmentedOutput" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unsorted_segment_sum_bp" + argDescriptor { + name: "numSegments" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "idxSegments" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "numSegments" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "unstack" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "num" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outArrs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "unstack_list" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "outputList" + argType: INPUT_TENSOR + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "upsampling2d" + argDescriptor { + name: "factorH" + argType: INT64 + } + argDescriptor { + name: "factorW" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "isNCHW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "upsampling2d_bp" + argDescriptor { + name: "scaleW" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "nchw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "upsampling3d" + argDescriptor { + name: "factorD" + argType: INT64 + } + argDescriptor { + name: "factorH" + argType: INT64 + argIndex: 1 + } + argDescriptor { + name: "factorW" + argType: INT64 + argIndex: 2 + } + argDescriptor { + name: "isNCDHW" + argType: INT64 + argIndex: 3 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ncdhw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "upsampling3d_bp" + argDescriptor { + name: "isNCDHW" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "gradI" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "ncdhw" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "gradO" + argType: INPUT_TENSOR + argIndex: 1 + } +} +opList { + name: "var" + argDescriptor { + name: "dimensions" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "biasCorrected" + argType: BOOL + } + argDescriptor { + name: "keepDims" + argType: BOOL + argIndex: 1 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "weighted_cross_entropy_with_logits" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "targets" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 2 + } + opDeclarationType: OP_IMPL +} +opList { + name: "where_np" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "condition" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "write_list" + argDescriptor { + name: "idx" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "list" + argType: INPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LIST_OP_IMPL +} +opList { + name: "xor" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "comparable" + argType: DOUBLE + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "y" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "xor_scalar" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: LEGACY_XYZ +} +opList { + name: "xw_plus_b" + argDescriptor { + name: "bTranspose" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "weights" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } +} +opList { + name: "xw_plus_b_bp" + argDescriptor { + name: "bTranspose" + argType: INT64 + } + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "dLdx" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "dLdw" + argType: OUTPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "dLdb" + argType: OUTPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "w" + argType: INPUT_TENSOR + argIndex: 1 + } + argDescriptor { + name: "b" + argType: INPUT_TENSOR + argIndex: 2 + } + argDescriptor { + name: "dLdz" + argType: INPUT_TENSOR + argIndex: 3 + } +} +opList { + name: "yiq_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "yuv_to_rgb" + argDescriptor { + name: "dimC" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "zero_fraction" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeros_as" + argDescriptor { + name: "dtype" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } +} +opList { + name: "zeros_like" + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeroslike" + argDescriptor { + name: "dataType" + argType: INT64 + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } +} +opList { + name: "zeta" + argDescriptor { + name: "dataType" + argType: DATA_TYPE + } + argDescriptor { + name: "outputs" + argType: OUTPUT_TENSOR + } + argDescriptor { + name: "inPlace" + argType: BOOL + } + argDescriptor { + name: "input" + argType: INPUT_TENSOR + } + argDescriptor { + name: "q" + argType: INPUT_TENSOR + argIndex: 1 + } + opDeclarationType: CONFIGURABLE_OP_IMPL +} +opList { + name: "placeholder" + opDeclarationType: LOGIC_OP_IMPL +} diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-mapping-ruleset.pbtxt b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-mapping-ruleset.pbtxt new file mode 100644 index 000000000..b8cb3531b --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-mapping-ruleset.pbtxt @@ -0,0 +1,6749 @@ +mappings { + frameworkName: "onnx" + opName: "add" + inputFrameworkOpName: "Add" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Add" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Add" + } +} +mappings { + frameworkName: "onnx" + opName: "tan" + inputFrameworkOpName: "Tan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Tan" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Tan" + } +} +mappings { + frameworkName: "onnx" + opName: "or" + inputFrameworkOpName: "Or" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "A" + } + ruleType: "tensor" + inputFrameworkOpName: "Or" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Or" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "comparable" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "comparable" + argType: DOUBLE + } + } + inputFrameworkOpName: "Or" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_max" + inputFrameworkOpName: "ReduceMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceMax" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMax" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMax" + } +} +mappings { + frameworkName: "onnx" + opName: "maxpool2d" + inputFrameworkOpName: "MaxPool" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isNCHW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNCHW" + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isSameMode" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isSameMode" + argType: INT64 + argIndex: 8 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "dH" + outputIntName: "dH" + inputFloatName: "dilations" + inputToOutput { + key: "dH" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "dilations" + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "dilations" + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "dW" + outputIntName: "dW" + inputFloatName: "dilations" + inputToOutput { + key: "dW" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "dilations" + int64Value: 1 + argIndex: 7 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "dilations" + int64Value: 1 + argIndex: 7 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "pads" + outputIntName: "pH" + inputFloatName: "pads" + inputToOutput { + key: "pH" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pH" + transformerArgs { + name: "pads" + argIndex: 4 + } + transformerArgs { + name: "pads" + argType: INT64 + argIndex: 4 + } + } + transformerArgs { + key: "pH" + transformerArgs { + name: "pads" + argIndex: 4 + } + transformerArgs { + name: "pads" + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "pads" + outputIntName: "pW" + inputFloatName: "pads" + inputToOutput { + key: "pW" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pW" + transformerArgs { + name: "pads" + int64Value: 1 + argIndex: 5 + } + transformerArgs { + name: "pads" + argType: INT64 + argIndex: 5 + } + } + transformerArgs { + key: "pW" + transformerArgs { + name: "pads" + int64Value: 1 + argIndex: 5 + } + transformerArgs { + name: "pads" + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "sH" + outputIntName: "sH" + inputFloatName: "strides" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "strides" + argIndex: 2 + } + transformerArgs { + name: "sH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "strides" + argIndex: 2 + } + transformerArgs { + name: "sH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "sW" + outputIntName: "sW" + inputFloatName: "strides" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "strides" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "sW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "strides" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "sW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kH" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kH" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "kernel_shape" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kW" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kW" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "kernel_shape" + int64Value: 1 + argIndex: 1 + } + } + inputFrameworkOpName: "MaxPool" + } +} +mappings { + frameworkName: "onnx" + opName: "size" + inputFrameworkOpName: "Size" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Size" + } +} +mappings { + frameworkName: "onnx" + opName: "lrn" + inputFrameworkOpName: "LRN" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "LRN" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "size" + outputIntName: "depth" + inputFloatName: "alpha" + inputFloatName: "beta" + inputFloatName: "bias" + outputDoubleName: "alpha" + outputDoubleName: "beta" + outputDoubleName: "bias" + inputToOutput { + key: "alpha" + value: "alpha" + } + inputToOutput { + key: "beta" + value: "beta" + } + inputToOutput { + key: "bias" + value: "bias" + } + inputToOutput { + key: "depth" + value: "size" + } + ruleType: "attribute" + inputFrameworkOpName: "LRN" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LRN" + } +} +mappings { + frameworkName: "onnx" + opName: "isinf" + inputFrameworkOpName: "IsInf" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "IsInf" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "IsInf" + } +} +mappings { + frameworkName: "onnx" + opName: "batchnorm" + inputFrameworkOpName: "BatchNormalization" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "mean" + inputTensorName: "var" + inputTensorName: "scale" + outputTensorName: "input" + outputTensorName: "mean" + outputTensorName: "variance" + outputTensorName: "gamma" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "mean" + value: "mean" + } + inputToOutput { + key: "variance" + value: "var" + } + inputToOutput { + key: "gamma" + value: "scale" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "epsilon" + outputDoubleName: "epsilon" + inputToOutput { + key: "epsilon" + value: "epsilon" + } + ruleType: "attribute" + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "applyGamma" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "applyGamma" + boolValue: true + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "applyBeta" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "applyBeta" + boolValue: true + argType: BOOL + argIndex: 2 + } + } + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "applyScale" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "applyScale" + int64Value: 1 + argType: INT64 + } + } + inputFrameworkOpName: "BatchNormalization" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "applyOffset" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "applyOffset" + int64Value: 1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "BatchNormalization" + } +} +mappings { + frameworkName: "onnx" + opName: "elu" + inputFrameworkOpName: "Elu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Elu" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "alpha" + outputDoubleName: "alpha" + inputToOutput { + key: "alpha" + value: "alpha" + } + ruleType: "attribute" + inputFrameworkOpName: "Elu" + } +} +mappings { + frameworkName: "onnx" + opName: "concat" + inputFrameworkOpName: "Concat" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "inputs" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "inputs" + } + ruleType: "tensor" + inputFrameworkOpName: "Concat" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "concatDimension" + inputToOutput { + key: "concatDimension" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "Concat" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isDynamicAxis" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isDynamicAxis" + argType: BOOL + } + } + inputFrameworkOpName: "Concat" + } +} +mappings { + frameworkName: "onnx" + opName: "top_k" + inputFrameworkOpName: "TopK" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "TopK" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "sorted" + outputBooleanName: "needSort" + inputToOutput { + key: "needSort" + value: "sorted" + } + ruleType: "attribute" + inputFrameworkOpName: "TopK" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "k" + inputToOutput { + key: "k" + value: "K" + } + ruleType: "attribute" + inputFrameworkOpName: "TopK" + } +} +mappings { + frameworkName: "onnx" + opName: "equals" + inputFrameworkOpName: "Equal" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Equal" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Equal" + } +} +mappings { + frameworkName: "onnx" + opName: "matmul" + inputFrameworkOpName: "MatMul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "transposeX" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transposeX" + argType: BOOL + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "transposeY" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transposeY" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "transposeZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "alpha" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "alpha" + argType: DOUBLE + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "beta" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "beta" + doubleValue: 1.0 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "MatMul" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_min" + inputFrameworkOpName: "ReduceMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceMin" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMin" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMin" + } +} +mappings { + frameworkName: "onnx" + opName: "sinh" + inputFrameworkOpName: "Sinh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Sinh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sinh" + } +} +mappings { + frameworkName: "onnx" + opName: "asinh" + inputFrameworkOpName: "Asinh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Asinh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Asinh" + } +} +mappings { + frameworkName: "onnx" + opName: "gather_nd" + inputFrameworkOpName: "GatherND" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "data" + outputTensorName: "indices" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "GatherND" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "GatherND" + } +} +mappings { + frameworkName: "onnx" + opName: "squeeze" + inputFrameworkOpName: "Squeeze" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Squeeze" + } + rule { + ruleName: "convertinputnumberlisttondarray" + functionName: "convertinputnumberlisttondarray" + inputToOutput { + key: "a" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "Squeeze" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "_a" + inputToOutput { + key: "_a" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "Squeeze" + } +} +mappings { + frameworkName: "onnx" + opName: "identity" + inputFrameworkOpName: "Identity" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Identity" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Identity" + } +} +mappings { + frameworkName: "onnx" + opName: "less" + inputFrameworkOpName: "Less" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Less" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Less" + } +} +mappings { + frameworkName: "onnx" + opName: "softplus" + inputFrameworkOpName: "Softplus" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Softplus" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softplus" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_sum" + inputFrameworkOpName: "ReduceSum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceSum" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceSum" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceSum" + } +} +mappings { + frameworkName: "onnx" + opName: "tanh" + inputFrameworkOpName: "Tanh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Tanh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Tanh" + } +} +mappings { + frameworkName: "onnx" + opName: "subtract" + inputFrameworkOpName: "Sub" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Sub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sub" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_prod" + inputFrameworkOpName: "ReduceProd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceProd" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceProd" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceProd" + } +} +mappings { + frameworkName: "onnx" + opName: "multiply" + inputFrameworkOpName: "Mul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Mul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Mul" + } +} +mappings { + frameworkName: "onnx" + opName: "log" + inputFrameworkOpName: "Log" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Log" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Log" + } +} +mappings { + frameworkName: "onnx" + opName: "flatten_2d" + inputFrameworkOpName: "Flatten" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Flatten" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "flattenDimension" + inputToOutput { + key: "flattenDimension" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "Flatten" + } +} +mappings { + frameworkName: "onnx" + opName: "range" + inputFrameworkOpName: "Range" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "start" + inputTensorName: "limit" + inputTensorName: "delta" + outputTensorName: "from" + outputTensorName: "to" + outputTensorName: "step" + inputToOutput { + key: "from" + value: "start" + } + inputToOutput { + key: "to" + value: "limit" + } + inputToOutput { + key: "step" + value: "delta" + } + ruleType: "tensor" + inputFrameworkOpName: "Range" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "from" + inputToOutput { + key: "from" + value: "start" + } + ruleType: "attribute" + inputFrameworkOpName: "Range" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "to" + inputToOutput { + key: "to" + value: "limit" + } + ruleType: "attribute" + inputFrameworkOpName: "Range" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "step" + inputToOutput { + key: "step" + value: "delta" + } + ruleType: "attribute" + inputFrameworkOpName: "Range" + } +} +mappings { + frameworkName: "onnx" + opName: "transpose" + inputFrameworkOpName: "Transpose" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Transpose" + } + rule { + ruleName: "listnumbertondarray" + functionName: "listnumbertondarray" + inputToOutput { + key: "permuteDims" + value: "perm" + } + ruleType: "attribute" + inputFrameworkOpName: "Transpose" + } +} +mappings { + frameworkName: "onnx" + opName: "gather" + inputFrameworkOpName: "Gather" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "data" + outputTensorName: "indices" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Gather" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "Gather" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Gather" + } +} +mappings { + frameworkName: "onnx" + opName: "argmax" + inputFrameworkOpName: "ArgMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ArgMax" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ArgMax" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "ArgMax" + } +} +mappings { + frameworkName: "onnx" + opName: "not" + inputFrameworkOpName: "Not" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Not" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "comparable" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "comparable" + argType: DOUBLE + } + } + inputFrameworkOpName: "Not" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_mean" + inputFrameworkOpName: "ReduceMean" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceMean" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMean" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceMean" + } +} +mappings { + frameworkName: "onnx" + opName: "reshape" + inputFrameworkOpName: "Reshape" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "shape" + outputTensorName: "input" + outputTensorName: "shape" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "Reshape" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "shapeArr" + inputToOutput { + key: "shapeArr" + value: "shape" + } + ruleType: "attribute" + inputFrameworkOpName: "Reshape" + } +} +mappings { + frameworkName: "onnx" + opName: "randomuniform" + inputFrameworkOpName: "RandomUniform" + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "low" + inputFloatName: "high" + outputDoubleName: "min" + outputDoubleName: "max" + inputToOutput { + key: "min" + value: "low" + } + inputToOutput { + key: "max" + value: "high" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniform" + } + rule { + ruleName: "listnumbertondarray" + functionName: "listnumbertondarray" + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniform" + } +} +mappings { + frameworkName: "onnx" + opName: "boolean_and" + inputFrameworkOpName: "And" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "And" + } +} +mappings { + frameworkName: "onnx" + opName: "softmax" + inputFrameworkOpName: "Softmax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Softmax" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimension" + inputToOutput { + key: "dimension" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "Softmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softmax" + } +} +mappings { + frameworkName: "onnx" + opName: "leakyrelu" + inputFrameworkOpName: "LeakyRelu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "LeakyRelu" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "alpha" + outputDoubleName: "alpha" + inputToOutput { + key: "alpha" + value: "alpha" + } + ruleType: "attribute" + inputFrameworkOpName: "LeakyRelu" + } +} +mappings { + frameworkName: "onnx" + opName: "erf" + inputFrameworkOpName: "Erf" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Erf" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Erf" + } +} +mappings { + frameworkName: "onnx" + opName: "pow_pairwise" + inputFrameworkOpName: "Pow" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "Y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "y" + value: "Y" + } + ruleType: "tensor" + inputFrameworkOpName: "Pow" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Pow" + } +} +mappings { + frameworkName: "onnx" + opName: "acos" + inputFrameworkOpName: "Acos" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Acos" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Acos" + } +} +mappings { + frameworkName: "onnx" + opName: "sin" + inputFrameworkOpName: "Sin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Sin" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sin" + } +} +mappings { + frameworkName: "onnx" + opName: "bitwise_xor" + inputFrameworkOpName: "Xor" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Xor" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Xor" + } +} +mappings { + frameworkName: "onnx" + opName: "ceil" + inputFrameworkOpName: "Ceil" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Ceil" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Ceil" + } +} +mappings { + frameworkName: "onnx" + opName: "relu" + inputFrameworkOpName: "Relu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Relu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Relu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "cutoff" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "cutoff" + argType: DOUBLE + } + } + inputFrameworkOpName: "Relu" + } +} +mappings { + frameworkName: "onnx" + opName: "split" + inputFrameworkOpName: "Split" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "a" + inputToOutput { + key: "a" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Split" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "Split" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "numSplit" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "numSplit" + argType: INT64 + } + } + inputFrameworkOpName: "Split" + } + rule { + ruleName: "listnumbertondarray" + functionName: "listnumbertondarray" + inputToOutput { + key: "b" + value: "split" + } + ruleType: "attribute" + inputFrameworkOpName: "Split" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_logsumexp" + inputFrameworkOpName: "ReduceLogSumExp" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceLogSumExp" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputDoubleName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceLogSumExp" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "keepdims" + outputDoubleName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceLogSumExp" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceLogSumExp" + } +} +mappings { + frameworkName: "onnx" + opName: "matmul" + inputFrameworkOpName: "Gemm" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Gemm" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "transA" + inputIntName: "transB" + inputFloatName: "alpha" + inputFloatName: "beta" + outputDoubleName: "alpha" + outputDoubleName: "beta" + outputBooleanName: "transposeX" + outputBooleanName: "transposeY" + inputToOutput { + key: "alpha" + value: "alpha" + } + inputToOutput { + key: "beta" + value: "beta" + } + inputToOutput { + key: "transposeX" + value: "transA" + } + inputToOutput { + key: "transposeY" + value: "transB" + } + ruleType: "attribute" + inputFrameworkOpName: "Gemm" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "transZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transZ" + argType: BOOL + argIndex: 2 + } + } + inputFrameworkOpName: "Gemm" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "transposeZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transposeZ" + argType: BOOL + argIndex: 2 + } + } + inputFrameworkOpName: "Gemm" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "transA" + inputIntName: "transB" + outputIntName: "transX" + outputIntName: "transY" + inputToOutput { + key: "transX" + value: "transA" + } + inputToOutput { + key: "transY" + value: "transB" + } + ruleType: "attribute" + inputFrameworkOpName: "Gemm" + } +} +mappings { + frameworkName: "onnx" + opName: "acosh" + inputFrameworkOpName: "Acosh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Acosh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Acosh" + } +} +mappings { + frameworkName: "onnx" + opName: "less_equal" + inputFrameworkOpName: "LessOrEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "LessOrEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LessOrEqual" + } +} +mappings { + frameworkName: "onnx" + opName: "cosh" + inputFrameworkOpName: "Cosh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Cosh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Cosh" + } +} +mappings { + frameworkName: "onnx" + opName: "non_max_suppression_v3" + inputFrameworkOpName: "NonMaxSuppression" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "boxes" + inputTensorName: "scores" + inputTensorName: "max_output_boxes_per_class" + inputTensorName: "iou_threshold" + inputTensorName: "score_threshold" + outputTensorName: "boxes" + outputTensorName: "scales" + outputTensorName: "maxOutSize" + outputTensorName: "iouThreshold" + outputTensorName: "scoreThreshold" + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "maxOutSize" + value: "max_output_boxes_per_class" + } + inputToOutput { + key: "iouThreshold" + value: "iou_threshold" + } + inputToOutput { + key: "scoreThreshold" + value: "score_threshold" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppression" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "maxOutputSize" + inputToOutput { + key: "maxOutputSize" + value: "max_output_boxes_per_class" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppression" + } +} +mappings { + frameworkName: "onnx" + opName: "log_softmax" + inputFrameworkOpName: "LogSoftmax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "LogSoftmax" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimension" + inputToOutput { + key: "dimension" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "LogSoftmax" + } +} +mappings { + frameworkName: "onnx" + opName: "shape_of" + inputFrameworkOpName: "Shape" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Shape" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Shape" + } +} +mappings { + frameworkName: "onnx" + opName: "random_normal" + inputFrameworkOpName: "RandomNormal" + rule { + ruleName: "listnumbertondarray" + functionName: "listnumbertondarray" + inputToOutput { + key: "input" + value: "shape" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomNormal" + } +} +mappings { + frameworkName: "onnx" + opName: "hard_sigmoid" + inputFrameworkOpName: "HardSigmoid" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "HardSigmoid" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "HardSigmoid" + } +} +mappings { + frameworkName: "onnx" + opName: "noop" + inputFrameworkOpName: "Constant" +} +mappings { + frameworkName: "onnx" + opName: "cumsum" + inputFrameworkOpName: "CumSum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "CumSum" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "exclusive" + inputIntName: "reverse" + outputIntName: "exclusive" + outputIntName: "reverse" + inputToOutput { + key: "exclusive" + value: "exclusive" + } + inputToOutput { + key: "reverse" + value: "reverse" + } + ruleType: "attribute" + inputFrameworkOpName: "CumSum" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "CumSum" + } +} +mappings { + frameworkName: "onnx" + opName: "scatter_update" + inputFrameworkOpName: "ScatterElements" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "updates" + inputTensorName: "indices" + outputTensorName: "operand" + outputTensorName: "updates" + outputTensorName: "indices" + inputToOutput { + key: "operand" + value: "data" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterElements" + } +} +mappings { + frameworkName: "onnx" + opName: "gruCell" + inputFrameworkOpName: "GRU" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "R" + inputTensorName: "W" + inputTensorName: "B" + inputTensorName: "initial_h" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "Wru" + outputTensorName: "Wc" + outputTensorName: "bc" + outputTensorName: "hLast" + outputTensorName: "bru" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "Wru" + value: "R" + } + inputToOutput { + key: "Wc" + value: "W" + } + inputToOutput { + key: "bc" + value: "B" + } + inputToOutput { + key: "hLast" + value: "initial_h" + } + inputToOutput { + key: "bru" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "GRU" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_norm1" + inputFrameworkOpName: "ReduceL1" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceL1" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceL1" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceL1" + } +} +mappings { + frameworkName: "onnx" + opName: "abs" + inputFrameworkOpName: "Abs" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Abs" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Abs" + } +} +mappings { + frameworkName: "onnx" + opName: "fill" + inputFrameworkOpName: "ConstantOfShape" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "shape" + inputToOutput { + key: "shape" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "ConstantOfShape" + } + rule { + ruleName: "attributendarraytoscalarattribute" + functionName: "attributendarraytoscalarattribute" + outputDoubleName: "value" + inputTensorName: "value" + inputToOutput { + key: "value" + value: "value" + } + ruleType: "attribute" + inputFrameworkOpName: "ConstantOfShape" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "outputDataType" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "outputDataType" + argType: INT64 + } + } + inputFrameworkOpName: "ConstantOfShape" + } +} +mappings { + frameworkName: "onnx" + opName: "reduce_norm2" + inputFrameworkOpName: "ReduceL2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ReduceL2" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceL2" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axes" + } + ruleType: "attribute" + inputFrameworkOpName: "ReduceL2" + } +} +mappings { + frameworkName: "onnx" + opName: "round" + inputFrameworkOpName: "Round" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Round" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Round" + } +} +mappings { + frameworkName: "onnx" + opName: "selu" + inputFrameworkOpName: "Selu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Selu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Selu" + } +} +mappings { + frameworkName: "onnx" + opName: "argmin" + inputFrameworkOpName: "ArgMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "ArgMin" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + inputIntName: "keepdims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keepdims" + } + ruleType: "attribute" + inputFrameworkOpName: "ArgMin" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "ArgMin" + } +} +mappings { + frameworkName: "onnx" + opName: "sigmoid" + inputFrameworkOpName: "Sigmoid" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Sigmoid" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sigmoid" + } +} +mappings { + frameworkName: "onnx" + opName: "avgpool2d" + inputFrameworkOpName: "AveragePool" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "isNCHW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNCHW" + int64Value: 1 + argIndex: 10 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "stringcontains" + functionName: "stringcontains" + inputStringAttrName: "auto_pad" + outputIntName: "isSameMode" + inputFloatName: "auto_pad" + inputToOutput { + key: "isSameMode" + value: "auto_pad" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "auto_pad" + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "pH" + inputFloatName: "pads" + inputToOutput { + key: "pH" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pH" + transformerArgs { + name: "pads" + argIndex: 4 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "pW" + inputFloatName: "pads" + inputToOutput { + key: "pW" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pW" + transformerArgs { + name: "pads" + int64Value: 1 + argIndex: 5 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "sH" + inputFloatName: "strides" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "strides" + argIndex: 2 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "sW" + inputFloatName: "strides" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "strides" + int64Value: 1 + argIndex: 3 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kW" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kW" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "kernel_shape" + int64Value: 1 + argIndex: 1 + } + } + inputFrameworkOpName: "AveragePool" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kH" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kH" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "kernel_shape" + } + } + inputFrameworkOpName: "AveragePool" + } +} +mappings { + frameworkName: "onnx" + opName: "dropout_inverted" + inputFrameworkOpName: "Dropout" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Dropout" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "p" + inputToOutput { + key: "p" + value: "ratio" + } + ruleType: "attribute" + inputFrameworkOpName: "Dropout" + } +} +mappings { + frameworkName: "onnx" + opName: "atan" + inputFrameworkOpName: "Atan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Atan" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Atan" + } +} +mappings { + frameworkName: "onnx" + opName: "floor" + inputFrameworkOpName: "Floor" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Floor" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Floor" + } +} +mappings { + frameworkName: "onnx" + opName: "prelu" + inputFrameworkOpName: "PRelu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "slope" + outputTensorName: "input" + outputTensorName: "alpha" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "alpha" + value: "slope" + } + ruleType: "tensor" + inputFrameworkOpName: "PRelu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "sharedAxes" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sharedAxes" + int64Value: -1 + argType: INT64 + } + } + inputFrameworkOpName: "PRelu" + } +} +mappings { + frameworkName: "onnx" + opName: "atanh" + inputFrameworkOpName: "Atanh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Atanh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Atanh" + } +} +mappings { + frameworkName: "onnx" + opName: "mod" + inputFrameworkOpName: "Mod" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Mod" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Mod" + } +} +mappings { + frameworkName: "onnx" + opName: "lstmLayer" + inputFrameworkOpName: "LSTM" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "W" + inputTensorName: "R" + inputTensorName: "P" + inputTensorName: "B" + inputTensorName: "sequence_lens" + inputTensorName: "initial_h" + inputTensorName: "initial_c" + outputTensorName: "input" + outputTensorName: "Wx" + outputTensorName: "Wr" + outputTensorName: "Wp" + outputTensorName: "b" + outputTensorName: "seqLen" + outputTensorName: "hI" + outputTensorName: "cI" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "Wx" + value: "W" + } + inputToOutput { + key: "Wr" + value: "R" + } + inputToOutput { + key: "Wp" + value: "P" + } + inputToOutput { + key: "b" + value: "B" + } + inputToOutput { + key: "seqLen" + value: "sequence_lens" + } + inputToOutput { + key: "hI" + value: "initial_h" + } + inputToOutput { + key: "cI" + value: "initial_c" + } + ruleType: "tensor" + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "clip" + outputDoubleName: "cellClip" + inputToOutput { + key: "cellClip" + value: "clip" + } + ruleType: "attribute" + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "stringtoindex" + functionName: "stringtoindex" + inputStringAttrName: "direction" + outputIntName: "directionMode" + inputFloatName: "directionMode" + inputFloatName: "directionMode" + inputFloatName: "directionMode" + inputToOutput { + key: "directionMode" + value: "direction" + } + ruleType: "attribute" + transformerArgs { + key: "directionMode" + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "forward" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "reverse" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "bidirectional" + } + } + transformerArgs { + key: "directionMode" + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "forward" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "reverse" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "bidirectional" + } + } + transformerArgs { + key: "directionMode" + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "forward" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "reverse" + } + transformerArgs { + name: "directionMode" + argIndex: 1 + stringValue: "bidirectional" + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dataFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dataFormat" + argType: INT64 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "hasBiases" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "hasBiases" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "hasSeqLen" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "hasSeqLen" + boolValue: true + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "hasInitH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "hasInitH" + boolValue: true + argType: BOOL + argIndex: 2 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "hasInitC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "hasInitC" + boolValue: true + argType: BOOL + argIndex: 3 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "hasPH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "hasPH" + boolValue: true + argType: BOOL + argIndex: 4 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "retFullSeq" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "retFullSeq" + boolValue: true + argType: BOOL + argIndex: 5 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "retLastH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "retLastH" + boolValue: true + argType: BOOL + argIndex: 6 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "retLastC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "retLastC" + boolValue: true + argType: BOOL + argIndex: 7 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_alpha" + outputDoubleName: "gateAlpha" + inputToOutput { + key: "gateAlpha" + value: "activation_alpha" + } + ruleType: "attribute" + transformerArgs { + key: "gateAlpha" + transformerArgs { + name: "activation_alpha" + argIndex: 1 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_alpha" + outputDoubleName: "cellAlpha" + inputToOutput { + key: "cellAlpha" + value: "activation_alpha" + } + ruleType: "attribute" + transformerArgs { + key: "cellAlpha" + transformerArgs { + name: "activation_alpha" + int64Value: 1 + argIndex: 3 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_alpha" + outputDoubleName: "outAlpha" + inputToOutput { + key: "outAlpha" + value: "activation_alpha" + } + ruleType: "attribute" + transformerArgs { + key: "outAlpha" + transformerArgs { + name: "activation_alpha" + int64Value: 2 + argIndex: 5 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_beta" + outputDoubleName: "gateBeta" + inputToOutput { + key: "gateBeta" + value: "activation_beta" + } + ruleType: "attribute" + transformerArgs { + key: "gateBeta" + transformerArgs { + name: "activation_beta" + argIndex: 2 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_beta" + outputDoubleName: "cellBeta" + inputToOutput { + key: "cellBeta" + value: "activation_beta" + } + ruleType: "attribute" + transformerArgs { + key: "cellBeta" + transformerArgs { + name: "activation_beta" + int64Value: 1 + argIndex: 4 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputFloatName: "activation_beta" + outputDoubleName: "outBeta" + inputToOutput { + key: "outBeta" + value: "activation_beta" + } + ruleType: "attribute" + transformerArgs { + key: "outBeta" + transformerArgs { + name: "activation_beta" + int64Value: 2 + argIndex: 6 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "mapstringtoindex" + functionName: "mapstringtoindex" + outputIntName: "gateAct" + inputFloatName: "Relu" + inputFloatName: "Tanh" + inputFloatName: "Sigmoid" + inputFloatName: "Affine" + inputFloatName: "LeakyRelu" + inputFloatName: "ThresholdedRelu" + inputFloatName: "ScaledTanh" + inputFloatName: "HardSigmoid" + inputFloatName: "Elu" + inputFloatName: "Softsign" + inputFloatName: "Softplus" + inputFloatName: "index" + inputToOutput { + key: "gateAct" + value: "activations" + } + ruleType: "attribute" + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "gateAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "Tanh" + argIndex: 2 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 2 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 2 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 2 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 2 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 2 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 2 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 2 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 2 + } + } + transformerArgs { + key: "index" + transformerArgs { + name: "index" + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "mapstringtoindex" + functionName: "mapstringtoindex" + outputIntName: "cellAct" + inputFloatName: "Relu" + inputFloatName: "Tanh" + inputFloatName: "Sigmoid" + inputFloatName: "Affine" + inputFloatName: "LeakyRelu" + inputFloatName: "ThresholdedRelu" + inputFloatName: "ScaledTanh" + inputFloatName: "HardSigmoid" + inputFloatName: "Elu" + inputFloatName: "Softsign" + inputFloatName: "Softplus" + inputFloatName: "index" + inputToOutput { + key: "cellAct" + value: "activations" + } + ruleType: "attribute" + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "cellAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "Tanh" + argIndex: 3 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 3 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 3 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 3 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 3 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 3 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 3 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 3 + } + } + transformerArgs { + key: "index" + transformerArgs { + name: "index" + int64Value: 1 + } + } + inputFrameworkOpName: "LSTM" + } + rule { + ruleName: "mapstringtoindex" + functionName: "mapstringtoindex" + outputIntName: "outAct" + inputFloatName: "Relu" + inputFloatName: "Tanh" + inputFloatName: "Sigmoid" + inputFloatName: "Affine" + inputFloatName: "LeakyRelu" + inputFloatName: "ThresholdedRelu" + inputFloatName: "ScaledTanh" + inputFloatName: "HardSigmoid" + inputFloatName: "Elu" + inputFloatName: "Softsign" + inputFloatName: "Softplus" + inputFloatName: "index" + inputToOutput { + key: "outAct" + value: "activations" + } + ruleType: "attribute" + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "outAct" + transformerArgs { + name: "Relu" + int64Value: 1 + argIndex: 4 + } + transformerArgs { + name: "Tanh" + argIndex: 4 + } + transformerArgs { + name: "Sigmoid" + int64Value: 2 + argIndex: 4 + } + transformerArgs { + name: "Affine" + int64Value: 3 + argIndex: 4 + } + transformerArgs { + name: "LeakyRelu" + int64Value: 4 + argIndex: 4 + } + transformerArgs { + name: "ThresholdedRelu" + int64Value: 5 + argIndex: 4 + } + transformerArgs { + name: "ScaledTanh" + int64Value: 6 + argIndex: 4 + } + transformerArgs { + name: "HardSigmoid" + int64Value: 7 + argIndex: 4 + } + transformerArgs { + name: "Elu" + int64Value: 8 + argIndex: 4 + } + transformerArgs { + name: "Softsign" + int64Value: 9 + argIndex: 4 + } + transformerArgs { + name: "Softplus" + int64Value: 10 + argIndex: 4 + } + } + transformerArgs { + key: "index" + transformerArgs { + name: "index" + int64Value: 2 + } + } + inputFrameworkOpName: "LSTM" + } +} +mappings { + frameworkName: "onnx" + opName: "cos" + inputFrameworkOpName: "Cos" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Cos" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Cos" + } +} +mappings { + frameworkName: "onnx" + opName: "sqrt" + inputFrameworkOpName: "Sqrt" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Sqrt" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sqrt" + } +} +mappings { + frameworkName: "onnx" + opName: "asin" + inputFrameworkOpName: "Asin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Asin" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Asin" + } +} +mappings { + frameworkName: "onnx" + opName: "space_to_depth" + inputFrameworkOpName: "SpaceToDepth" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "SpaceToDepth" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "blocksize" + outputIntName: "block_size" + inputToOutput { + key: "block_size" + value: "blocksize" + } + ruleType: "attribute" + inputFrameworkOpName: "SpaceToDepth" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isNHWC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNHWC" + int64Value: 1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "SpaceToDepth" + } +} +mappings { + frameworkName: "onnx" + opName: "tile" + inputFrameworkOpName: "Tile" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "repeats" + outputTensorName: "input" + outputTensorName: "reps_vector" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "reps_vector" + value: "repeats" + } + ruleType: "tensor" + inputFrameworkOpName: "Tile" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "is_static_reps" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "is_static_reps" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "Tile" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimensions" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimensions" + argType: INT64 + } + } + inputFrameworkOpName: "Tile" + } +} +mappings { + frameworkName: "onnx" + opName: "greater_equal" + inputFrameworkOpName: "GreaterOrEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "GreaterOrEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "GreaterOrEqual" + } +} +mappings { + frameworkName: "onnx" + opName: "depth_to_space" + inputFrameworkOpName: "DepthToSpace" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "DepthToSpace" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "blocksize" + outputIntName: "block_size" + inputToOutput { + key: "block_size" + value: "blocksize" + } + ruleType: "attribute" + inputFrameworkOpName: "DepthToSpace" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isNHWC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNHWC" + int64Value: 1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "DepthToSpace" + } +} +mappings { + frameworkName: "onnx" + opName: "isnan" + inputFrameworkOpName: "IsNaN" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "IsNaN" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "IsNaN" + } +} +mappings { + frameworkName: "onnx" + opName: "divide" + inputFrameworkOpName: "Div" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Div" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Div" + } +} +mappings { + frameworkName: "onnx" + opName: "neg" + inputFrameworkOpName: "Neg" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Neg" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Neg" + } +} +mappings { + frameworkName: "onnx" + opName: "matrix_determinant" + inputFrameworkOpName: "Det" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "X" + } + ruleType: "tensor" + inputFrameworkOpName: "Det" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Det" + } +} +mappings { + frameworkName: "onnx" + opName: "pad" + inputFrameworkOpName: "Pad" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "pads" + outputTensorName: "input" + outputTensorName: "paddings" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "paddings" + value: "pads" + } + ruleType: "tensor" + inputFrameworkOpName: "Pad" + } + rule { + ruleName: "stringtoindex" + functionName: "stringtoindex" + inputStringAttrName: "mode" + outputIntName: "mode" + inputFloatName: "mode" + inputFloatName: "mode" + inputFloatName: "mode" + inputToOutput { + key: "mode" + value: "mode" + } + ruleType: "attribute" + transformerArgs { + key: "mode" + transformerArgs { + name: "mode" + stringValue: "constant" + } + transformerArgs { + name: "mode" + stringValue: "reflect" + } + transformerArgs { + name: "mode" + stringValue: "edge" + } + } + transformerArgs { + key: "mode" + transformerArgs { + name: "mode" + stringValue: "constant" + } + transformerArgs { + name: "mode" + stringValue: "reflect" + } + transformerArgs { + name: "mode" + stringValue: "edge" + } + } + transformerArgs { + key: "mode" + transformerArgs { + name: "mode" + stringValue: "constant" + } + transformerArgs { + name: "mode" + stringValue: "reflect" + } + transformerArgs { + name: "mode" + stringValue: "edge" + } + } + inputFrameworkOpName: "Pad" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "padValue" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "padValue" + argType: DOUBLE + } + } + inputFrameworkOpName: "Pad" + } +} +mappings { + frameworkName: "onnx" + opName: "conv2d" + inputFrameworkOpName: "Conv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "X" + inputTensorName: "W" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "weights" + outputTensorName: "bias" + inputToOutput { + key: "input" + value: "X" + } + inputToOutput { + key: "weights" + value: "W" + } + inputToOutput { + key: "bias" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isNCHW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNCHW" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "wFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "wFormat" + int64Value: 1 + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "auto_pad" + outputIntName: "isSameMode" + inputFloatName: "auto_pad" + inputToOutput { + key: "isSameMode" + value: "auto_pad" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "auto_pad" + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "dH" + outputIntName: "dH" + inputFloatName: "dilations" + inputToOutput { + key: "dH" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "dilations" + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "dilations" + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "dW" + outputIntName: "dW" + inputFloatName: "dilations" + inputToOutput { + key: "dW" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "dilations" + int64Value: 1 + argIndex: 7 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "dilations" + int64Value: 1 + argIndex: 7 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "pH" + inputFloatName: "pads" + inputToOutput { + key: "pH" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pH" + transformerArgs { + name: "pads" + argIndex: 4 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "pW" + inputFloatName: "pads" + inputToOutput { + key: "pW" + value: "pads" + } + ruleType: "attribute" + transformerArgs { + key: "pW" + transformerArgs { + name: "pads" + int64Value: 1 + argIndex: 5 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "strides" + outputIntName: "sH" + inputFloatName: "strides" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "strides" + argIndex: 2 + } + transformerArgs { + name: "strides" + int64Value: 1 + argType: INT64 + argIndex: 2 + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "strides" + argIndex: 2 + } + transformerArgs { + name: "strides" + int64Value: 1 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "strides" + outputIntName: "sW" + inputFloatName: "strides" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "strides" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "strides" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "strides" + int64Value: 1 + argIndex: 3 + } + transformerArgs { + name: "strides" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kW" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kW" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "kernel_shape" + int64Value: 1 + } + } + inputFrameworkOpName: "Conv" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + outputIntName: "kH" + inputFloatName: "kernel_shape" + inputToOutput { + key: "kH" + value: "kernel_shape" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "kernel_shape" + argIndex: 1 + } + } + inputFrameworkOpName: "Conv" + } +} +mappings { + frameworkName: "onnx" + opName: "greater" + inputFrameworkOpName: "Greater" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "A" + inputTensorName: "B" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "A" + } + inputToOutput { + key: "y" + value: "B" + } + ruleType: "tensor" + inputFrameworkOpName: "Greater" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Greater" + } +} +mappings { + frameworkName: "onnx" + opName: "sign" + inputFrameworkOpName: "Sign" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Sign" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sign" + } +} +mappings { + frameworkName: "onnx" + opName: "softsign" + inputFrameworkOpName: "Softsign" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Softsign" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softsign" + } +} +mappings { + frameworkName: "onnx" + opName: "exp" + inputFrameworkOpName: "Exp" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Exp" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Exp" + } +} diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-def.pbtxt b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-def.pbtxt new file mode 100644 index 000000000..3129b1509 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-def.pbtxt @@ -0,0 +1,6004 @@ +input: "X" +output: "Y" +name: "Abs" +op_type: "Abs" +attribute { + name: "X-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nAbsolute takes one input data (Tensor) and produces one output data\n(Tensor) where the absolute is, y = abs(x), is applied to\nthe tensor elementwise.\n" +-- +input: "input" +output: "output" +name: "Acos" +op_type: "Acos" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the arccosine (inverse of cosine) of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Acosh" +op_type: "Acosh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic arccosine of the given input tensor element-wise.\n" +-- +input: "R" +input: "T" +input: "inputs" +output: "outputs" +name: "Adagrad" +op_type: "Adagrad" +attribute { + name: "decay_factor" + f: 0.0 + type: FLOAT +} +attribute { + name: "epsilon" + f: 1e-06 + type: FLOAT +} +attribute { + name: "norm_coefficient" + f: 0.0 + type: FLOAT +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + type: STRINGS +} +attribute { + name: "T-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "inputs-types" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Compute one iteration of ADAGRAD, a stochastic gradient based optimization\n algorithm. This operator can conduct the optimization of multiple tensor variables.\n\n Let\'s define the behavior of this operator. As you can imagine, ADAGRAD requires\n some parameters:\n \n - The initial learning-rate \"R\".\n - The update count \"T\". That is, the number of training iterations conducted.\n - A L2-norm regularization coefficient \"norm_coefficient\".\n - A learning-rate decay factor \"decay_factor\".\n - A small constant \"epsilon\" to avoid dividing-by-zero. \n\n At each ADAGRAD iteration, the optimized tensors are moved along a direction\n computed based on their estimated gradient and accumulated squared gradient. Assume\n that only a single tensor \"X\" is updated by this operator. We need the value of \"X\",\n its gradient \"G\", and its accumulated squared gradient \"H\". Therefore, variables in\n this operator\'s input list are sequentially \"R\", \"T\", \"X\", \"G\", and \"H\". Other\n parameters are given as attributes because they are usually constants. Also, the\n corresponding output tensors are the new value of \"X\" (called \"X_new\"), and then\n the new accumulated squared gradient (called \"H_new\"). Those outputs are computed\n from the given inputs following the pseudo code below.\n\n Let \"+\", \"-\", \"*\", and \"/\" are all element-wise arithmetic operations with\n numpy-style broadcasting support. The pseudo code to compute those outputs is:\n\n // Compute a scalar learning-rate factor. At the first update of X, T is generally\n // 0 (0-based update index) or 1 (1-based update index).\n r = R / (1 + T * decay_factor);\n\n // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm.\n G_regularized = norm_coefficient * X + G;\n\n // Compute new accumulated squared gradient.\n H_new = H + G_regularized * G_regularized;\n\n // Compute the adaptive part of per-coordinate learning rate. Note that Sqrt(...)\n // computes element-wise square-root.\n H_adaptive = Sqrt(H_new) + epsilon\n\n // Compute the new value of \"X\".\n X_new = X - r * G_regularized / H_adaptive;\n\n If one assign this operators to optimize multiple inputs, for example, \"X_1\" and \"X_2\", the same\n pseudo code may be extended to handle all tensors jointly. More specifically, we can view \"X\" as a\n concatenation of \"X_1\" and \"X_2\" (of course, their gradient and accumulate gradient should\n be concatenated too) and then just reuse the entire pseudo code.\n\n Note that ADAGRAD was first proposed in http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf.\n In that reference paper, this operator is a special case of the Figure 1\'s composite mirror\n descent update.\n" +-- +input: "R" +input: "T" +input: "inputs" +output: "outputs" +name: "Adam" +op_type: "Adam" +attribute { + name: "alpha" + f: 0.9 + type: FLOAT +} +attribute { + name: "beta" + f: 0.999 + type: FLOAT +} +attribute { + name: "epsilon" + f: 1e-06 + type: FLOAT +} +attribute { + name: "norm_coefficient" + f: 0.0 + type: FLOAT +} +attribute { + name: "norm_coefficient_post" + f: 0.0 + type: FLOAT +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + type: STRINGS +} +attribute { + name: "T-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "inputs-types" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Compute one iteration of Adam, a stochastic gradient based optimization\n algorithm. This operator can conduct the optimization of multiple tensor variables.\n\n Let\'s define the behavior of this operator. First of all, Adam requires\n some parameters:\n \n - The learning-rate \"R\".\n - The update count \"T\". That is, the number of training iterations conducted.\n - A L2-norm regularization coefficient \"norm_coefficient\".\n - A small constant \"epsilon\" to avoid dividing-by-zero. \n - Two coefficients, \"alpha\" and \"beta\".\n\n At each Adam iteration, the optimized tensors are moved along a direction\n computed based on their exponentially-averaged historical gradient and\n exponentially-averaged historical squared gradient. Assume that only a tensor\n \"X\" is being optimized. The rest of required information is\n \n - the value of \"X\",\n - \"X\"\'s gradient (denoted by \"G\"),\n - \"X\"\'s exponentially-averaged historical gradient (denoted by \"V\"), and\n - \"X\"\'s exponentially-averaged historical squared gradient (denoted by \"H\").\n\n Some of those parameters are passed into this operator as input tensors and others\n are stored as this operator\'s attributes. Specifically, this operator\'s input tensor\n list is [\"R\", \"T\", \"X\", \"G\", \"V\", \"H\"]. That is, \"R\" is the first input, \"T\" is\n the second input, and so on. Other parameters are given as attributes because they\n are constants. Moreover, the corresponding output tensors are \n \n - the new value of \"X\" (called \"X_new\"),\n - the new exponentially-averaged historical gradient (denoted by \"V_new\"), and\n - the new exponentially-averaged historical squared gradient (denoted by \"H_new\").\n\n Those outputs are computed following the pseudo code below.\n\n Let \"+\", \"-\", \"*\", and \"/\" are all element-wise arithmetic operations with\n numpy-style broadcasting support. The pseudo code to compute those outputs is:\n\n // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm.\n G_regularized = norm_coefficient * X + G\n\n // Update exponentially-averaged historical gradient.\n V_new = alpha * V + (1 - alpha) * G_regularized\n\n // Update exponentially-averaged historical squared gradient.\n H_new = beta * H + (1 - beta) * G_regularized * G_regularized\n\n // Compute the element-wise square-root of H_new. V_new will be element-wisely\n // divided by H_sqrt for a better update direction.\n H_sqrt = Sqrt(H_new) + epsilon\n\n // Compute learning-rate. Note that \"alpha**T\"/\"beta**T\" is alpha\'s/beta\'s T-th power.\n R_adjusted = T > 0 ? R * Sqrt(1 - beta**T) / (1 - alpha**T) : R\n\n // Compute new value of \"X\".\n X_new = X - R_adjusted * V_new / H_sqrt\n\n // Post-update regularization.\n X_final = (1 - norm_coefficient_post) * X_new \n\n If there are multiple inputs to be optimized, the pseudo code will be applied\n independently to each of them.\n" +-- +input: "A" +input: "B" +output: "C" +name: "Add" +op_type: "Add" +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nPerforms element-wise binary addition (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "A" +input: "B" +output: "C" +name: "And" +op_type: "And" +attribute { + name: "A-types" + strings: "bool" + type: STRINGS +} +attribute { + name: "B-types" + strings: "bool" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `and` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "data" +output: "reduced" +name: "ArgMax" +op_type: "ArgMax" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "select_last_index" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nComputes the indices of the max elements of the input tensor\'s element along the \nprovided axis. The resulting tensor has the same rank as the input if keepdims equal 1. \nIf keepdims equal 0, then the resulting tensor have the reduced dimension pruned. \nIf select_last_index is True (default False), the index of the last occurrence of the max \nis selected if the max appears more than once in the input. Otherwise the index of the \nfirst occurrence is selected.\nThe type of the output tensor is integer." +-- +input: "data" +output: "reduced" +name: "ArgMin" +op_type: "ArgMin" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "select_last_index" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nComputes the indices of the min elements of the input tensor\'s element along the \nprovided axis. The resulting tensor has the same rank as the input if keepdims equal 1. \nIf keepdims equal 0, then the resulting tensor have the reduced dimension pruned. \nIf select_last_index is True (default False), the index of the last occurrence of the min \nis selected if the min appears more than once in the input. Otherwise the index of the \nfirst occurrence is selected.\nThe type of the output tensor is integer." +-- +input: "X" +input: "Y" +output: "Z" +name: "ArrayFeatureExtractor" +op_type: "ArrayFeatureExtractor" +attribute { + name: "X-types" + strings: "int64" + strings: "string" + strings: "double" + strings: "float" + strings: "int32" + type: STRINGS +} +attribute { + name: "Y-types" + strings: "int64" + type: STRINGS +} +doc_string: "\n Select elements of the input tensor based on the indices passed.
\n The indices are applied to the last axes of the tensor.\n" +-- +input: "input" +output: "output" +name: "Asin" +op_type: "Asin" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the arcsine (inverse of sine) of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Asinh" +op_type: "Asinh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic arcsine of the given input tensor element-wise.\n" +-- +input: "input" +output: "output" +name: "Atan" +op_type: "Atan" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the arctangent (inverse of tangent) of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Atanh" +op_type: "Atanh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic arctangent of the given input tensor element-wise.\n" +-- +input: "X" +output: "Y" +name: "AveragePool" +op_type: "AveragePool" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "ceil_mode" + i: 0 + type: INT +} +attribute { + name: "count_include_pad" + i: 0 + type: INT +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n AveragePool consumes an input tensor X and applies average pooling across\n the tensor according to kernel sizes, stride sizes, and pad lengths.\n average pooling consisting of computing the average on all values of a\n subset of the input tensor according to the kernel size and downsampling the\n data into the output tensor Y for further processing. The output spatial shape will be following:\n ```\n output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1)\n ```\n or\n ```\n output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1)\n ```\n if ceil_mode is enabled\n\n ```\n * pad_shape[i] is sum of pads along axis i\n ```\n\n `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following:\n ```\n VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i])\n SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])\n ```\n And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`:\n ```\n pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i]\n ```\n The output of each pooling window is divided by the number of elements (exclude pad when attribute count_include_pad is zero).\n " +-- +input: "X" +input: "scale" +input: "B" +input: "mean" +input: "var" +output: "Y" +output: "mean" +output: "var" +output: "saved_mean" +output: "saved_var" +name: "BatchNormalization" +op_type: "BatchNormalization" +attribute { + name: "epsilon" + f: 1e-05 + type: FLOAT +} +attribute { + name: "momentum" + f: 0.9 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "scale-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "mean-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "var-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCarries out batch normalization as described in the paper\nhttps://arxiv.org/abs/1502.03167. Depending on the mode it is being run,\nthere are multiple cases for the number of outputs, which we list below:\n\nOutput case #1: Y, mean, var, saved_mean, saved_var (training mode)\nOutput case #2: Y (test mode)\n\nFor previous (depreciated) non-spatial cases, implementors are suggested\nto flatten the input shape to (N x C*D1*D2 ..*Dn) before a BatchNormalization Op.\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +input: "X" +output: "Y" +name: "Binarizer" +op_type: "Binarizer" +attribute { + name: "threshold" + f: 0.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Maps the values of the input tensor to either 0 or 1, element-wise, based on the outcome of a comparison against a threshold value.\n" +-- +input: "X" +input: "Y" +output: "Z" +name: "BitShift" +op_type: "BitShift" +attribute { + name: "direction" + s: "" + type: STRING +} +attribute { + name: "X-types" + strings: "uint16" + strings: "uint32" + strings: "uint64" + strings: "uint8" + type: STRINGS +} +attribute { + name: "Y-types" + strings: "uint16" + strings: "uint32" + strings: "uint64" + strings: "uint8" + type: STRINGS +} +doc_string: "\nBitwise shift operator performs element-wise operation. For each input element, if the\n attribute \"direction\" is \"RIGHT\", this operator moves its binary representation toward\n the right side so that the input value is effectively decreased. If the attribute \"direction\"\n is \"LEFT\", bits of binary representation moves toward the left side, which results the\n increase of its actual value. The input X is the tensor to be shifted and another input\n Y specifies the amounts of shifting. For example, if \"direction\" is \"Right\", X is [1, 4],\n and S is [1, 1], the corresponding output Z would be [0, 2]. If \"direction\" is \"LEFT\" with\n X=[1, 2] and S=[1, 2], the corresponding output Y would be [2, 8].\n \n Because this operator supports Numpy-style broadcasting, X\'s and Y\'s shapes are\n not necessarily identical.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md)." +-- +input: "input" +output: "output" +name: "Cast" +op_type: "Cast" +attribute { + name: "to" + s: "" + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "double" + strings: "uint32" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThe operator casts the elements of a given input tensor to a data type\nspecified by the \'to\' argument and returns an output tensor of the same size in\nthe converted type. The \'to\' argument must be one of the data types specified\nin the \'DataType\' enum field in the TensorProto message.\n\nCasting from string tensor in plain (e.g., \"3.14\" and \"1000\") and scientific numeric representations\n(e.g., \"1e-5\" and \"1E8\") to float types is supported. For example, converting string \"100.5\" to an integer may\nresult 100. There are some string literals reserved for special floating-point values;\n\"+INF\" (and \"INF\"), \"-INF\", and \"NaN\" are positive infinity, negative infinity, and not-a-number, respectively.\nAny string which can exactly match \"+INF\" in a case-insensitive way would be mapped to positive infinite. Similarly,\nthis case-insensitive rule is applied to \"INF\" and \"NaN\". When casting from numeric tensors\nto string tensors, plain floating-point representation (such as \"314.15926\") would be used. \nConverting non-numerical-literal string such as \"Hello World!\" is an undefined behavior. Cases \nof converting string representing floating-point arithmetic value, such as \"2.718\", to INT is an undefined behavior.\n\nConversion from a numerical type to any numerical type is always allowed.\nUser must be aware of precision loss and value change caused by range difference between two types.\nFor example, a 64-bit float 3.1415926459 may be round to a 32-bit float 3.141592. Similarly, converting\nan integer 36 to Boolean may produce 1 because we truncate bits which can\'t be stored in the targeted type.\n" +-- +input: "X" +output: "Y" +name: "CastMap" +op_type: "CastMap" +attribute { + name: "cast_to" + s: "TO_FLOAT" + type: STRING +} +attribute { + name: "map_form" + s: "DENSE" + type: STRING +} +attribute { + name: "max_map" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "map(int64,float" + strings: "map(int64,string" + type: STRINGS +} +doc_string: "\n Converts a map to a tensor.
The map key must be an int64 and the values will be ordered\n in ascending order based on this key.
The operator supports dense packing or sparse packing.\n If using sparse packing, the key cannot exceed the max_map-1 value.\n" +-- +input: "X" +output: "Y" +name: "CategoryMapper" +op_type: "CategoryMapper" +attribute { + name: "cats_int64s" + s: "" + type: INTS +} +attribute { + name: "cats_strings" + s: "" + type: STRINGS +} +attribute { + name: "default_int64" + i: -1 + type: INT +} +attribute { + name: "default_string" + s: "_Unused" + type: STRING +} +attribute { + name: "X-types" + strings: "int64" + strings: "string" + type: STRINGS +} +doc_string: "\n Converts strings to integers and vice versa.
\n Two sequences of equal length are used to map between integers and strings,\n with strings and integers at the same index detailing the mapping.
\n Each operator converts either integers to strings or strings to integers, depending \n on which default value attribute is provided. Only one default value attribute\n should be defined.
\n If the string default value is set, it will convert integers to strings.\n If the int default value is set, it will convert strings to integers.\n" +-- +input: "X" +output: "Y" +name: "Ceil" +op_type: "Ceil" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCeil takes one input data (Tensor) and produces one output data\n(Tensor) where the ceil is, y = ceil(x), is applied to\nthe tensor elementwise.\n" +-- +input: "X" +output: "Y" +name: "Celu" +op_type: "Celu" +attribute { + name: "alpha" + f: 1.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "float" + type: STRINGS +} +doc_string: "\nContinuously Differentiable Exponential Linear Units:\nPerform the linear unit element-wise on the input tensor X\nusing formula: \n\n```\nmax(0,x) + min(0,alpha*(exp(x/alpha)-1))\n```\n" +-- +input: "input" +input: "min" +input: "max" +output: "output" +name: "Clip" +op_type: "Clip" +attribute { + name: "input-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "min-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "max-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nClip operator limits the given input within an interval. The interval is\nspecified by the inputs \'min\' and \'max\'. They default to\nnumeric_limits::lowest() and numeric_limits::max(), respectively.\n" +-- +input: "input" +input: "condition" +output: "output" +name: "Compress" +op_type: "Compress" +attribute { + name: "axis" + s: "" + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "condition-types" + strings: "bool" + type: STRINGS +} +doc_string: "\n Selects slices from an input tensor along a given axis where condition evaluates to True for each axis index.\n In case axis is not provided, input is flattened before elements are selected.\n Compress behaves like numpy.compress: https://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html\n " +-- +input: "inputs" +output: "concat_result" +name: "Concat" +op_type: "Concat" +attribute { + name: "axis" + s: "" + type: INT +} +attribute { + name: "inputs-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "Concatenate a list of tensors into a single tensor. All input tensors must have the same shape, except for the dimension size of the axis to concatenate on." +-- +input: "input_sequence" +output: "concat_result" +name: "ConcatFromSequence" +op_type: "ConcatFromSequence" +attribute { + name: "axis" + s: "" + type: INT +} +attribute { + name: "new_axis" + i: 0 + type: INT +} +attribute { + name: "input_sequence-types" + strings: "seq(float" + strings: "seq(uint32" + strings: "seq(string" + strings: "seq(int64" + strings: "seq(double" + strings: "seq(int8" + strings: "seq(float16" + strings: "seq(bool" + strings: "seq(complex128" + strings: "seq(uint64" + strings: "seq(int16" + strings: "seq(int32" + strings: "seq(uint16" + strings: "seq(complex64" + strings: "seq(uint8" + type: STRINGS +} +doc_string: "\nConcatenate a sequence of tensors into a single tensor.\nAll input tensors must have the same shape, except for the dimension size of the axis to concatenate on.\nBy default \'new_axis\' is 0, the behavior is similar to numpy.concatenate.\nWhen \'new_axis\' is 1, the behavior is similar to numpy.stack.\n" +-- +output: "output" +name: "Constant" +op_type: "Constant" +attribute { + name: "sparse_value" + s: "" + type: SPARSE_TENSOR +} +attribute { + name: "value" + s: "" + type: TENSOR +} +attribute { + name: "value_float" + s: "" + type: FLOAT +} +attribute { + name: "value_floats" + s: "" + type: FLOATS +} +attribute { + name: "value_int" + s: "" + type: INT +} +attribute { + name: "value_ints" + s: "" + type: INTS +} +attribute { + name: "value_string" + s: "" + type: STRING +} +attribute { + name: "value_strings" + s: "" + type: STRINGS +} +doc_string: "\nThis operator produces a constant tensor. Exactly one of the provided attributes, either value, sparse_value,\nor value_* must be specified.\n" +-- +input: "input" +output: "output" +name: "ConstantOfShape" +op_type: "ConstantOfShape" +attribute { + name: "value" + s: "" + type: TENSOR +} +attribute { + name: "input-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nGenerate a tensor with given value and shape.\n" +-- +input: "X" +input: "W" +input: "B" +output: "Y" +name: "Conv" +op_type: "Conv" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "dilations" + s: "" + type: INTS +} +attribute { + name: "group" + i: 1 + type: INT +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "W-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThe convolution operator consumes an input tensor and a filter, and\ncomputes the output." +-- +input: "x" +input: "w" +input: "x_zero_point" +input: "w_zero_point" +output: "y" +name: "ConvInteger" +op_type: "ConvInteger" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "dilations" + s: "" + type: INTS +} +attribute { + name: "group" + i: 1 + type: INT +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "x-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "w-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "x_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "w_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThe integer convolution operator consumes an input tensor, its zero-point, a filter, and its zero-point,\nand computes the output. The production MUST never overflow. The accumulation may overflow if and only if in 32 bits.\n" +-- +input: "X" +input: "W" +input: "B" +output: "Y" +name: "ConvTranspose" +op_type: "ConvTranspose" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "dilations" + s: "" + type: INTS +} +attribute { + name: "group" + i: 1 + type: INT +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "output_padding" + s: "" + type: INTS +} +attribute { + name: "output_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "W-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThe convolution transpose operator consumes an input tensor and a filter,\nand computes the output.\n\nIf the pads parameter is provided the shape of the output is calculated via the following equation:\n\n output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]\n\noutput_shape can also be explicitly specified in which case pads values are auto generated using these equations:\n\n total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i]\n If (auto_pads != SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2)\n Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2).\n\n " +-- +input: "input" +output: "output" +name: "Cos" +op_type: "Cos" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the cosine of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Cosh" +op_type: "Cosh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic cosine of the given input tensor element-wise.\n" +-- +input: "x" +input: "axis" +output: "y" +name: "CumSum" +op_type: "CumSum" +attribute { + name: "exclusive" + i: 0 + type: INT +} +attribute { + name: "reverse" + i: 0 + type: INT +} +attribute { + name: "x-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "int32" + type: STRINGS +} +attribute { + name: "axis-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nPerforms cumulative sum of the input elements along the given axis.\nBy default, it will do the sum inclusively meaning the first element is copied as is.\nThrough an `exclusive` attribute, this behavior can change to exclude the first element.\nIt can also perform summation in the opposite direction of the axis. For that, set `reverse` attribute to 1.\n\nExample:\n```\ninput_x = [1, 2, 3]\naxis=0\noutput = [1, 3, 6]\nexclusive=1\noutput = [0, 1, 3]\nexclusive=0\nreverse=1\noutput = [6, 5, 3]\nexclusive=1\nreverse=1\noutput = [5, 3, 0]\n```\n " +-- +input: "input" +output: "output" +name: "DepthToSpace" +op_type: "DepthToSpace" +attribute { + name: "blocksize" + s: "" + type: INT +} +attribute { + name: "mode" + s: "DCR" + type: STRING +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "DepthToSpace rearranges (permutes) data from depth into blocks of spatial data.\nThis is the reverse transformation of SpaceToDepth. More specifically, this op outputs a copy of\nthe input tensor where values from the depth dimension are moved in spatial blocks to the height\nand width dimensions. By default, `mode` = `DCR`.\nIn the DCR mode, elements along the depth dimension from the input tensor are rearranged in the\nfollowing order: depth, column, and then row. The output y is computed from the input x as below:\n\nb, c, h, w = x.shape\n\ntmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w])\n\ntmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2])\n\ny = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize])\n\n\nIn the CRD mode, elements along the depth dimension from the input tensor are rearranged in the\nfollowing order: column, row, and the depth. The output y is computed from the input x as below:\n\nb, c, h, w = x.shape\n\ntmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w])\n\ntmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3])\n\ny = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize])\n\n" +-- +input: "x" +input: "x_scale" +input: "x_zero_point" +output: "y" +name: "DequantizeLinear" +op_type: "DequantizeLinear" +attribute { + name: "x-types" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "x_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "x_zero_point-types" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThe linear dequantization operator. It consumes a quantized tensor, a scale, a zero point to compute the full precision tensor.\nThe dequantization formula is y = (x - x_zero_point) * x_scale. \'x_scale\' and \'x_zero_point\' must have same shape.\n\'x_zero_point\' and \'x\' must have same type. \'x\' and \'y\' must have same shape. In the case of dequantizing int32,\nthere\'s no zero point (zero point is supposed to be 0).\n" +-- +input: "X" +output: "Y" +name: "Det" +op_type: "Det" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nDet calculates determinant of a square matrix or batches of square matrices.\nDet takes one input tensor of shape `[*, M, M]`, where `*` is zero or more batch dimensions,\nand the inner-most 2 dimensions form square matrices.\nThe output is a tensor of shape `[*]`, containing the determinants of all input submatrices.\ne.g., When the input is 2-D, the output is a scalar(shape is empty: `[]`).\n" +-- +input: "X" +output: "Y" +name: "DictVectorizer" +op_type: "DictVectorizer" +attribute { + name: "int64_vocabulary" + s: "" + type: INTS +} +attribute { + name: "string_vocabulary" + s: "" + type: STRINGS +} +attribute { + name: "X-types" + strings: "map(string,double" + strings: "map(int64,double" + strings: "map(string,float" + strings: "map(int64,float" + strings: "map(int64,string" + strings: "map(string,int64" + type: STRINGS +} +doc_string: "\n Uses an index mapping to convert a dictionary to an array.
\n Given a dictionary, each key is looked up in the vocabulary attribute corresponding to\n the key type. The index into the vocabulary array at which the key is found is then\n used to index the output 1-D tensor \'Y\' and insert into it the value found in the dictionary \'X\'.
\n The key type of the input map must correspond to the element type of the defined vocabulary attribute.\n Therefore, the output array will be equal in length to the index mapping vector parameter.\n All keys in the input dictionary must be present in the index mapping vector.\n For each item in the input dictionary, insert its value in the output array.\n Any keys not present in the input dictionary, will be zero in the output array.
\n For example: if the ``string_vocabulary`` parameter is set to ``[\"a\", \"c\", \"b\", \"z\"]``,\n then an input of ``{\"a\": 4, \"c\": 8}`` will produce an output of ``[4, 8, 0, 0]``.\n " +-- +input: "A" +input: "B" +output: "C" +name: "Div" +op_type: "Div" +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nPerforms element-wise binary division (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "data" +input: "ratio" +input: "training_mode" +output: "output" +output: "mask" +name: "Dropout" +op_type: "Dropout" +attribute { + name: "seed" + s: "" + type: INT +} +attribute { + name: "data-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "ratio-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "training_mode-types" + strings: "bool" + type: STRINGS +} +doc_string: "\nDropout takes an input floating-point tensor, an optional input ratio (floating-point scalar) and an optional input training_mode (boolean scalar). It produces two tensor outputs,\noutput (floating-point tensor) and mask (optional `Tensor`). If `training_mode` is true then the output Y will be a random dropout;\nNote that this Dropout scales the masked input data by the following equation, so to convert the trained model into inference mode,\nthe user can simply not pass `training_mode` input or set it to false.\n```\noutput = scale * data * mask,\n```\nwhere\n```\nscale = 1. / (1. - ratio).\n```\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +input: "x" +output: "y" +output: "y_scale" +output: "y_zero_point" +name: "DynamicQuantizeLinear" +op_type: "DynamicQuantizeLinear" +attribute { + name: "x-types" + strings: "float" + type: STRINGS +} +doc_string: "\nA Function to fuse calculation for Scale, Zero Point and FP32->8Bit convertion of FP32 Input data.\nOutputs Scale, ZeroPoint and Quantized Input for a given FP32 Input.\nScale is calculated as:\n```\n y_scale = (max(x) - min(x))/(qmax - qmin)\n * where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8\n * data range is adjusted to include 0.\n```\nZero point is calculated as:\n```\nintermediate_zero_point = qmin - min(x)/y_scale\ny_zero_point = cast(round(saturate(itermediate_zero_point)))\n* where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8\n* for saturation, it saturates to [0, 255] if it\'s uint8, or [-127, 127] if it\'s int8. Right now only uint8 is supported.\n* rounding to nearest ties to even.\n```\nData quantization formula is:\n```\ny = saturate (round (x / y_scale) + y_zero_point)\n* for saturation, it saturates to [0, 255] if it\'s uint8, or [-127, 127] if it\'s int8. Right now only uint8 is supported.\n* rounding to nearest ties to even.\n```\n" +-- +input: "Inputs" +output: "Output" +name: "Einsum" +op_type: "Einsum" +attribute { + name: "equation" + s: "" + type: STRING +} +attribute { + name: "Inputs-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nAn einsum of the form ```term1, term2 -> output-term``` produces an output tensor using the following equation\n\n```output[output-term] = reduce-sum( input1[term1] * input2[term] )```\n\nwhere the reduce-sum performs a summation over all the indices occurring in in the input terms (term1, term2)\nthat do not occur in the output-term.\n\nThe Einsum operator evaluates algebraic tensor operations on a sequence of tensors, using the Einstein summation\nconvention. The equation string contains a comma-separated sequence of lower case letters. Each term corresponds to\nan operand tensor, and the characters within the terms correspond to operands dimensions.\n\nThis sequence may be followed by \"->\" to separate the left and right hand side of the equation.\nIf the equation contains \"->\" followed by the right-hand side, the explicit (not classical) form of the Einstein\nsummation is performed, and the right-hand side indices indicate output tensor dimensions. In other cases,\noutput indices are (implicitly) set to the alphabetically sorted sequence of indices appearing exactly once in the\nequation.\n\nWhen a dimension character is repeated in the left-hand side, it represents summation along the dimension.\n\nThe equation may contain ellipsis (\"...\") to enable broadcasting. Ellipsis must indicate a fixed number of dimensions.\nSpecifically, every occurrence of ellipsis in the equation must represent the same number of dimensions.\nThe right-hand side may contain exactly one ellipsis. In implicit mode, the ellipsis dimensions are set to the\nbeginning of the output. The equation string may contain space (U+0020) character.\n" +-- +input: "X" +output: "Y" +name: "Elu" +op_type: "Elu" +attribute { + name: "alpha" + f: 1.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nElu takes one input data (Tensor) and produces one output data\n(Tensor) where the function `f(x) = alpha * (exp(x) - 1.) for x <\n0`, `f(x) = x for x >= 0`., is applied to the tensor elementwise.\n\n" +-- +input: "A" +input: "B" +output: "C" +name: "Equal" +op_type: "Equal" +attribute { + name: "A-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `equal` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "input" +output: "output" +name: "Erf" +op_type: "Erf" +attribute { + name: "input-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nComputes the error function of the given input tensor element-wise.\n" +-- +input: "input" +output: "output" +name: "Exp" +op_type: "Exp" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the exponential of the given input tensor, element-wise.\n" +-- +input: "input" +input: "shape" +output: "output" +name: "Expand" +op_type: "Expand" +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "shape-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nBroadcast the input tensor following the given shape and the broadcast rule.\nThe broadcast rule is similar to numpy.array(input) * numpy.ones(shape):\nDimensions are right alignment;\nTwo corresponding dimension must have the same value, or one of them is equal to 1.\nAlso, this operator is similar to numpy.broadcast_to(input, shape),\nbut the major difference is numpy.broadcast_to() does not allow shape to be smaller than input.size().\nIt is possible that the output.shape is not equal to shape, when some dimensions in shape is equal to 1,\nor the shape.ndim < input.shape.ndim.\n" +-- +input: "input" +output: "output" +name: "EyeLike" +op_type: "EyeLike" +attribute { + name: "dtype" + s: "" + type: INT +} +attribute { + name: "k" + i: 0 + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "double" + strings: "uint32" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGenerate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D\ntensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the\nsame as the input tensor. The data type can be specified by the \'dtype\' argument. If\n\'dtype\' is not specified, then the type of input tensor is used. By default, the main diagonal\nis populated with ones, but attribute \'k\' can be used to populate upper or lower diagonals.\nThe \'dtype\' argument must be one of the data types specified in the \'DataType\' enum field in the\nTensorProto message and be valid as an output type.\n" +-- +input: "X" +output: "Y" +name: "FeatureVectorizer" +op_type: "FeatureVectorizer" +attribute { + name: "inputdimensions" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Concatenates input tensors into one continuous output.
\n All input shapes are 2-D and are concatenated along the second dimention. 1-D tensors are treated as [1,C].\n Inputs are copied to the output maintaining the order of the input arguments.
\n All inputs must be integers or floats, while the output will be all floating point values.\n" +-- +input: "input" +output: "output" +name: "Flatten" +op_type: "Flatten" +attribute { + name: "axis" + i: 1 + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nFlattens the input tensor into a 2D matrix. If input tensor has shape\n(d_0, d_1, ... d_n) then the output will have shape\n(d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn).\n" +-- +input: "X" +output: "Y" +name: "Floor" +op_type: "Floor" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nFloor takes one input data (Tensor) and produces one output data\n(Tensor) where the floor is, y = floor(x), is applied to\nthe tensor elementwise.\n" +-- +input: "X" +input: "W" +input: "R" +input: "B" +input: "sequence_lens" +input: "initial_h" +output: "Y" +output: "Y_h" +name: "GRU" +op_type: "GRU" +attribute { + name: "activation_alpha" + s: "" + type: FLOATS +} +attribute { + name: "activation_beta" + s: "" + type: FLOATS +} +attribute { + name: "activations" + s: "" + type: STRINGS +} +attribute { + name: "clip" + s: "" + type: FLOAT +} +attribute { + name: "direction" + s: "forward" + type: STRING +} +attribute { + name: "hidden_size" + s: "" + type: INT +} +attribute { + name: "linear_before_reset" + i: 0 + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "W-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "sequence_lens-types" + strings: "int32" + type: STRINGS +} +attribute { + name: "initial_h-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nComputes an one-layer GRU. This operator is usually supported via some custom\nimplementation such as CuDNN.\n\nNotations:\n\n`X` - input tensor\n\n`z` - update gate\n\n`r` - reset gate\n\n`h` - hidden gate\n\n`t` - time step (t-1 means previous time step)\n\n`W[zrh]` - W parameter weight matrix for update, reset, and hidden gates\n\n`R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates\n\n`Wb[zrh]` - W bias vectors for update, reset, and hidden gates\n\n`Rb[zrh]` - R bias vectors for update, reset, and hidden gates\n\n`WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates\n\n`RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates\n\n`WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates\n\n`RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates\n\n`H` - Hidden state\n\n`num_directions` - 2 if direction == bidirectional else 1\n\nActivation functions:\n\n Relu(x) - max(0, x)\n\n Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})\n\n Sigmoid(x) - 1/(1 + e^{-x})\n\n (NOTE: Below are optional)\n\n Affine(x) - alpha*x + beta\n\n LeakyRelu(x) - x if x >= 0 else alpha * x\n\n ThresholdedRelu(x) - x if x >= alpha else 0\n\n ScaledTanh(x) - alpha*Tanh(beta*x)\n\n HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)\n\n Elu(x) - x if x >= 0 else alpha*(e^x - 1)\n\n Softsign(x) - x/(1 + |x|)\n\n Softplus(x) - log(1 + e^x)\n\nEquations (Default: f=Sigmoid, g=Tanh):\n\n - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz)\n\n - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr)\n\n - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # default, when linear_before_reset = 0\n\n - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*(Rh^T) + Rbh)) + Wbh) # when linear_before_reset != 0\n\n - Ht = (1 - zt) (.) ht + zt (.) Ht-1\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +input: "data" +input: "indices" +output: "output" +name: "Gather" +op_type: "Gather" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nGiven `data` tensor of rank r >= 1, and `indices` tensor of rank q, gather\nentries of the axis dimension of `data` (by default outer-most one as axis=0) indexed by `indices`, and concatenates\nthem in an output tensor of rank q + (r - 1).\n\naxis = 0 :\n\nLet\nk = indices[i_{0}, ..., i_{q-1}]\nThen\noutput[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}]\n\n```\n data = [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ]\n indices = [\n [0, 1],\n [1, 2],\n ]\n output = [\n [\n [1.0, 1.2],\n [2.3, 3.4],\n ],\n [\n [2.3, 3.4],\n [4.5, 5.7],\n ],\n ]\n```\naxis = 1 :\n\nLet\nk = indices[i_{0}, ..., i_{q-1}]\nThen\noutput[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[j_{0}, k, j_{1}, ..., j_{r-2}]\n\n```\n data = [\n [1.0, 1.2, 1.9],\n [2.3, 3.4, 3.9],\n [4.5, 5.7, 5.9],\n ]\n indices = [\n [0, 2],\n ]\n axis = 1,\n output = [\n [\n [1.0, 1.9],\n [2.3, 3.9],\n [4.5, 5.9],\n ],\n ]\n```\n" +-- +input: "data" +input: "indices" +output: "output" +name: "GatherElements" +op_type: "GatherElements" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\n\nGatherElements takes two inputs `data` and `indices` of the same rank r >= 1\nand an optional attribute `axis` that identifies an axis of `data`\n(by default, the outer-most axis, that is axis 0). It is an indexing operation\nthat produces its output by indexing into the input data tensor at index\npositions determined by elements of the `indices` tensor.\nIts output shape is the same as the shape of `indices` and consists of one value\n(gathered from the `data`) for each element in `indices`.\n\nFor instance, in the 3-D case (r = 3), the output produced is determined\nby the following equations: \n```\n out[i][j][k] = input[index[i][j][k]][j][k] if axis = 0,\n out[i][j][k] = input[i][index[i][j][k]][k] if axis = 1,\n out[i][j][k] = input[i][j][index[i][j][k]] if axis = 2,\n```\n\nThis operator is also the inverse of ScatterElements. It is similar to Torch\'s gather operation.\n\nExample 1:\n```\n data = [\n [1, 2],\n [3, 4],\n ]\n indices = [\n [0, 0],\n [1, 0],\n ]\n axis = 1\n output = [\n [\n [1, 1],\n [4, 3],\n ],\n ]\n```\nExample 2:\n```\n data = [\n [1, 2, 3],\n [4, 5, 6],\n [7, 8, 9],\n ]\n indices = [\n [1, 2, 0],\n [2, 0, 0],\n ]\n axis = 0\n output = [\n [\n [4, 8, 3],\n [7, 2, 3],\n ],\n ]\n```\n" +-- +input: "data" +input: "indices" +output: "output" +name: "GatherND" +op_type: "GatherND" +attribute { + name: "batch_dims" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nGiven `data` tensor of rank `r` >= 1, `indices` tensor of rank `q` >= 1, and `batch_dims` integer `b`, this operator gathers \nslices of `data` into an output tensor of rank `q + r - indices_shape[-1] - 1 - b`.\n\n`indices` is an q-dimensional integer tensor, best thought of as a `(q-1)`-dimensional tensor of index-tuples into `data`, \nwhere each element defines a slice of `data`\n\n`batch_dims` (denoted as `b`) is an integer indicating the number of batch dimensions, i.e the leading `b` number of dimensions of \n`data` tensor and `indices` are representing the batches, and the gather starts from the `b+1` dimension. \n\nSome salient points about the inputs\' rank and shape:\n \n1) r >= 1 and q >= 1 are to be honored. There is no dependency condition to be met between ranks `r` and `q`\n\n2) The first `b` dimensions of the shape of `indices` tensor and `data` tensor must be equal.\n\n3) b < min(q, r) is to be honored.\n\n4) The `indices_shape[-1]` should have a value between 1 (inclusive) and rank `r-b` (inclusive) \n\n5) All values in `indices` are expected to be within bounds [-s, s-1] along axis of size `s` (i.e.) `-data_shape[i] <= indices[...,i] <= data_shape[i] - 1`.\n It is an error if any of the index values are out of bounds.\n\nThe output is computed as follows:\n\nThe output tensor is obtained by mapping each index-tuple in the `indices` tensor to the corresponding slice of the input `data`.\n \n1) If `indices_shape[-1] > r-b` => error condition\n\n2) If `indices_shape[-1] == r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensors\n containing 1-D tensors of dimension `r-b`, where `N` is an integer equals to the product of 1 and all the elements in the batch dimensions \n of the indices_shape. Let us think of each such `r-b` ranked tensor as `indices_slice`. Each *scalar value* corresponding to `data[0:b-1,indices_slice]` \n is filled into the corresponding location of the `(q-b-1)`-dimensional tensor to form the `output` tensor (Example 1 below)\n\n3) If `indices_shape[-1] < r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensor\n containing 1-D tensors of dimension `< r-b`. Let us think of each such tensors as `indices_slice`. Each *tensor slice* corresponding \n to `data[0:b-1, indices_slice , :]` is filled into the corresponding location of the `(q-b-1)`-dimensional tensor \n to form the `output` tensor (Examples 2, 3, 4 and 5 below)\n\nThis operator is the inverse of `ScatterND`.\n\n`Example 1`\n\n batch_dims = 0\n\n data = [[0,1],[2,3]] # data_shape = [2, 2]\n\n indices = [[0,0],[1,1]] # indices_shape = [2, 2]\n\n output = [0,3] # output_shape = [2]\n\n`Example 2`\n\n batch_dims = 0\n\n data = [[0,1],[2,3]] # data_shape = [2, 2]\n\n indices = [[1],[0]] # indices_shape = [2, 1]\n\n output = [[2,3],[0,1]] # output_shape = [2, 2]\n\n`Example 3`\n\n batch_dims = 0\n\n data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]\n\n indices = [[0,1],[1,0]] # indices_shape = [2, 2]\n\n output = [[2,3],[4,5]] # output_shape = [2, 2] \n\n`Example 4`\n\n batch_dims = 0\n\n data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]\n\n indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2]\n\n output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2] \n\n`Example 5`\n\n batch_dims = 1\n\n data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2]\n\n indices = [[1],[0]] # indices_shape = [2, 1]\n\n output = [[2,3],[4,5]] # output_shape = [2, 2] \n\n\n" +-- +input: "A" +input: "B" +input: "C" +output: "Y" +name: "Gemm" +op_type: "Gemm" +attribute { + name: "alpha" + f: 1.0 + type: FLOAT +} +attribute { + name: "beta" + f: 1.0 + type: FLOAT +} +attribute { + name: "transA" + i: 0 + type: INT +} +attribute { + name: "transB" + i: 0 + type: INT +} +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "C-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "General Matrix multiplication:\nhttps://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3\n\nA\' = transpose(A) if transA else A\n\nB\' = transpose(B) if transB else B\n\nCompute Y = alpha * A\' * B\' + beta * C, where input tensor A has shape (M, K) or (K, M),\ninput tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N),\nand output tensor Y has shape (M, N). A will be transposed before doing the\ncomputation if attribute transA is non-zero, same for B and transB.\nThis operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md).\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +input: "X" +output: "Y" +name: "GlobalAveragePool" +op_type: "GlobalAveragePool" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n GlobalAveragePool consumes an input tensor X and applies average pooling across\n the values in the same channel. This is equivalent to AveragePool with kernel size\n equal to the spatial dimension of input tensor." +-- +input: "X" +output: "Y" +name: "GlobalLpPool" +op_type: "GlobalLpPool" +attribute { + name: "p" + i: 2 + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n GlobalLpPool consumes an input tensor X and applies lp pool pooling across\n the values in the same channel. This is equivalent to LpPool with kernel size\n equal to the spatial dimension of input tensor." +-- +input: "X" +output: "Y" +name: "GlobalMaxPool" +op_type: "GlobalMaxPool" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n GlobalMaxPool consumes an input tensor X and applies max pooling across\n the values in the same channel. This is equivalent to MaxPool with kernel size\n equal to the spatial dimension of input tensor." +-- +input: "Inputs" +output: "Outputs" +name: "Gradient" +op_type: "Gradient" +attribute { + name: "xs" + s: "" + type: STRINGS +} +attribute { + name: "y" + s: "" + type: STRING +} +attribute { + name: "zs" + s: "" + type: STRINGS +} +attribute { + name: "Inputs-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGradient operator computes the partial derivatives of a specific tensor w.r.t.\nsome other tensors. This operator is widely used in gradient-based training\nalgorithms. To illustrate its use, let\'s consider a computation graph,\n\n```\nX -----.\n |\n v\nW --> Conv --> H --> Gemm --> Y\n ^\n |\n Z\n```\n\n, where W and Z are trainable tensors. Note that operators\' attributes are\nomitted for the sake of simplicity. Let dY/dW (dY/dZ) be the gradient of\nY with respect to W (Z). The user can compute gradient by inserting Gradient\noperator to form another graph shown below.\n\n```\nW --> Conv --> H --> Gemm --> Y\n| ^ ^\n| | |\n| X Z\n| | |\n| | .----------\'\n| | | (W/Z/X is the 1st/2nd/3rd input of Gradient as shown in\n| | | \"xs\" followed by \"zs\")\n| v v\n\'---> Gradient(xs=[\"W\", \"Z\"], zs=[\"X\"], y=\"Y\")\n | |\n | \'-----------------------------------> dY/dW (1st output of Gradient)\n |\n \'---------------------------------------> dY/dZ (2nd output of Gradient)\n```\n\nBy definition, the tensor \"y\" is a function of independent variables in \"xs\"\nand \"zs\". Since we only compute the gradient of \"y\" w.r.t. the differentiable\nvariables in \"xs\", this Gradient only outputs dY/dW and dY/dZ. Note that \"H\"\ncannot appear in \"xs\" and \"zs\". The reason is that \"H\" can be determined by\ntensors \"W\" and \"X\" and therefore \"H\" is not an independent variable.\n\nAll outputs are optional. If needed, for example, user can assign an empty\nstring to the 1st output name of that Gradient to skip the generation of dY/dW.\nNote that the concept of optional outputs can also be found in ONNX\'s RNN, GRU,\nand LSTM.\n\nGradient operator can compute derivative against intermediate tensors. For\nexample, the gradient of Y with respect to H can be done via\n\n```\nW --> Conv --> H --> Gemm --> Y\n ^ | ^\n | | |\n X | Z\n .-------\' |\n | .----------\'\n | | (H/Z is the 1st/2nd input of Gradient as shown in \"xs\")\n v v\n Gradient(xs=[\"H\", \"Z\"], y=\"Y\")\n | |\n | \'-----------------------------------> dY/dH (1st output of Gradient)\n |\n \'---------------------------------------> dY/dZ (2nd output of Gradient)\n```\n\nIt is possible to represent high-order differentiation using Gradient operators.\nFor example, given the following linear model:\n\n```\nW --> Gemm --> Y --> Loss --> O\n ^ ^\n | |\n X L\n```\n\nTo compute the 2nd order derivative of O with respect to W (denoted by\nd^2O/dW^2), one can do\n\n```\nW --> Gemm --> Y --> Loss --> O\n| ^ ^\n| | |\n| X .------------L\n| | | |\n| | | v\n+------+-+> Gradient(xs=[\"X\", \"W\"], zs=[\"L\"], y=\"O\") ---> dO/dX (1st output of Gradient)\n| | | |\n| | | \'---> dO/dW (2nd output of Gradient)\n| v v\n\'---> Gradient(xs=[\"X\", \"W\"], zs=[\"L\"], y=\"dO/dW\") ---> d(dO/dW)dX (1st output of\n | Gradient)\n |\n |\n \'---> d^2O/dW^2 (2nd output of Gradient)\n```\n\nThe tensors named in attributes \"xs\", \"zs\", and \"y\" define the differentiated\ncomputation graph, and the inputs to Gradient node define the values at\nwhich the gradient is computed. We can feed different tensors to the identified\ngraph. For example, one can compute the gradient of Y with respect to H at \na specific value of H, H_1, by providing that value as an input to the Gradient\nnode.\n\n```\nW --> Conv --> H --> Gemm --> Y\n ^ ^\n | |\n X Z\n\n Z_1 (2nd input of Gradient)\n |\n v\nH_1 --> Gradient(xs=[\"H\", \"Z\"], y=\"Y\") ---> dY/dH when H = H_1 and Y = Y_1.\n |\n \'------------------------------> dY/dZ (2nd output of Gradient)\n```\n\nWhen the inputs of Gradient are the tensors named in \"xs\" and \"zs\", the\ncomputation can be optimized. More specifically, intermediate variables in\nforward pass can be reused if the gradient is computed via reverse-mode\nauto-differentiation.\n\n" +-- +input: "Inputs" +output: "Outputs" +name: "GraphCall" +op_type: "GraphCall" +attribute { + name: "graph_name" + s: "" + type: STRING +} +attribute { + name: "Inputs-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThe GraphCall operator invokes a graph inside TrainingInfoProto\'s\nalgorithm field. The GraphCall inputs and outputs are bound to those of\ninvoked graph by position. If a graph input has an initializer, that input\nis considered optional. All graph outputs are optional.\n\nBelow Python syntax is used for describing dictionary and list.\n\nAssume that ModelProto\'s graph field has\n- name: \"MyInferenceGraph\"\n- input: [\"X\", \"W\", \"Z\"]\n- initializer: [W]\n- output: [\"Y\"]\n\nas visualized below for inference.\n\n```\nX -----.\n |\n v\nW --> Conv --> H --> Gemm --> Y\n ^\n |\n Z\n```\n\nAssume that the training algorithm contains\n\n- inputs: [\"X_1\", \"Z_1\", \"C\"]\n- initializer: [T]\n- outputs: [\"W_new\"]\n\nwith a dictionary\n\n- update_binding: {\"W\": \"W_new\", \"T\": \"T_new\"}\n\nInside the training algorithm graph, one can invoke the inference\ngraph via adding a GraphCall node with\n\n- inputs: [\"X_1\", \"W\", Z_1\"]\n- outputs: [\"Y_1\"]\n- an attribute graph_name=\"MyInferenceGraph\",\n\nThe initializers, \"W\" and \"T\" in this case, in update_binding\nare considered globally-visible and mutable variables, which\ncan be used as inputs of operators in the training graph.\n\nAn example training algorithm graph may look like\n\n```\n.-------- W (a global and mutable variable from\n| | the inference graph)\n| |\n| .-----\'-----------.\n| | |\n| | v\n| | .-- X_1 --> GraphCall(graph_name=\"MyInferenceGraph\")\n| | | | |\n| | | | |\n| | | Z_1 -----\' |\n| | | | V\n| | | | Y_1 ---> Loss ---> O\n| | | | ^\n| | | | |\n| | `--. | C\n| | | | |\n| | | | .----------------\'\n| | | | |\n| | v v v\n| `--> Gradient(xs=[\"W\"], zs=[\"X_1\", \"Z_1\", \"C\"], y=\"O\")\n| |\n| v\n| dO_dW (gradient of W) 1 (a scalar one)\n| | |\n| V v\n| Div <--- T ------------> Add ---> T_new\n| | (T is the number of training iterations.\n| | T is also globally visible and mutable.)\n| v\n`-----> Sub ----> W_new\n```\n\nwhere Loss is a dummy node which computes the minimized objective function.\n\nThe variable \"W\" is an optional input in the called graph.\nIf the user omits it, the input list of GraphCall becomes [\"X_1\", \"\", \"Z_1\"].\nIn this case, from the view of computation graph, the Conv operator invoked by\nGraphCall\'s may be still connected the global \"W\" variable and therefore the\nstructure of the computation graph is unchanged.\n" +-- +input: "A" +input: "B" +output: "C" +name: "Greater" +op_type: "Greater" +attribute { + name: "A-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `greater` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "A" +input: "B" +output: "C" +name: "GreaterOrEqual" +op_type: "GreaterOrEqual" +attribute { + name: "A-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `greater_equal` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +output: "Y" +name: "HardSigmoid" +op_type: "HardSigmoid" +attribute { + name: "alpha" + f: 0.2 + type: FLOAT +} +attribute { + name: "beta" + f: 0.5 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nHardSigmoid takes one input data (Tensor) and produces one output data\n(Tensor) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)),\nis applied to the tensor elementwise.\n" +-- +input: "input" +output: "output" +name: "Hardmax" +op_type: "Hardmax" +attribute { + name: "axis" + i: 1 + type: INT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThe operator computes the hardmax (1 for the first maximum value, and 0 for all others) values for each layer in the batch\n of the given input.\n\nThe input does not need to explicitly be a 2D vector; rather, it will be\ncoerced into one. For an arbitrary n-dimensional tensor\ninput \\in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is\nthe axis provided, then input will be coerced into a 2-dimensional tensor with\ndimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default\ncase where axis=1, this means the input tensor will be coerced into a 2D tensor\nof dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size.\nIn this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D.\nEach of these dimensions must be matched correctly, or else the operator\nwill throw errors. The output tensor has the same shape\nand contains the hardmax values of the corresponding input.\n" +-- +input: "input" +output: "output" +name: "Identity" +op_type: "Identity" +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "Identity operator" +-- +input: "cond" +output: "outputs" +name: "If" +op_type: "If" +attribute { + name: "else_branch" + s: "" + type: GRAPH +} +attribute { + name: "then_branch" + s: "" + type: GRAPH +} +attribute { + name: "cond-types" + strings: "bool" + type: STRINGS +} +doc_string: "If conditional" +-- +input: "X" +output: "Y" +name: "Imputer" +op_type: "Imputer" +attribute { + name: "imputed_value_floats" + s: "" + type: FLOATS +} +attribute { + name: "imputed_value_int64s" + s: "" + type: INTS +} +attribute { + name: "replaced_value_float" + f: 0.0 + type: FLOAT +} +attribute { + name: "replaced_value_int64" + i: 0 + type: INT +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Replaces inputs that equal one value with another, leaving all other elements alone.
\n This operator is typically used to replace missing values in situations where they have a canonical\n representation, such as -1, 0, NaN, or some extreme value.
\n One and only one of imputed_value_floats or imputed_value_int64s should be defined -- floats if the input tensor\n holds floats, integers if the input tensor holds integers. The imputed values must all fit within the\n width of the tensor element type. One and only one of the replaced_value_float or replaced_value_int64 should be defined,\n which one depends on whether floats or integers are being processed.
\n The imputed_value attribute length can be 1 element, or it can have one element per input feature.
In other words, if the input tensor has the shape [*,F], then the length of the attribute array may be 1 or F. If it is 1, then it is broadcast along the last dimension and applied to each feature.\n" +-- +input: "input" +input: "scale" +input: "B" +output: "output" +name: "InstanceNormalization" +op_type: "InstanceNormalization" +attribute { + name: "epsilon" + f: 1e-05 + type: FLOAT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "scale-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCarries out instance normalization as described in the paper\nhttps://arxiv.org/abs/1607.08022.\n\ny = scale * (x - mean) / sqrt(variance + epsilon) + B,\nwhere mean and variance are computed per instance per channel.\n\n" +-- +input: "X" +output: "Y" +name: "IsInf" +op_type: "IsInf" +attribute { + name: "detect_negative" + i: 1 + type: INT +} +attribute { + name: "detect_positive" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "Map infinity to true and other values to false." +-- +input: "X" +output: "Y" +name: "IsNaN" +op_type: "IsNaN" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "Returns which elements of the input are NaN." +-- +input: "X" +output: "Y" +name: "LRN" +op_type: "LRN" +attribute { + name: "alpha" + f: 0.0001 + type: FLOAT +} +attribute { + name: "beta" + f: 0.75 + type: FLOAT +} +attribute { + name: "bias" + f: 1.0 + type: FLOAT +} +attribute { + name: "size" + s: "" + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nLocal Response Normalization proposed in the [AlexNet paper](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf).\nIt normalizes over local input regions.\nThe local region is defined across the channels. For an element X[n, c, d1, ..., dk] in a tensor\nof shape (N x C x D1 x D2, ..., Dk), its region is\n{X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}.\n\nsquare_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2),\nwhere max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2)).\n\nY[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta\n" +-- +input: "X" +input: "W" +input: "R" +input: "B" +input: "sequence_lens" +input: "initial_h" +input: "initial_c" +input: "P" +output: "Y" +output: "Y_h" +output: "Y_c" +name: "LSTM" +op_type: "LSTM" +attribute { + name: "activation_alpha" + s: "" + type: FLOATS +} +attribute { + name: "activation_beta" + s: "" + type: FLOATS +} +attribute { + name: "activations" + s: "" + type: STRINGS +} +attribute { + name: "clip" + s: "" + type: FLOAT +} +attribute { + name: "direction" + s: "forward" + type: STRING +} +attribute { + name: "hidden_size" + s: "" + type: INT +} +attribute { + name: "input_forget" + i: 0 + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "W-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "sequence_lens-types" + strings: "int32" + type: STRINGS +} +attribute { + name: "initial_h-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "initial_c-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "P-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nComputes an one-layer LSTM. This operator is usually supported via some\ncustom implementation such as CuDNN.\n\nNotations:\n\n`X` - input tensor\n\n`i` - input gate\n\n`o` - output gate\n\n`f` - forget gate\n\n`c` - cell gate\n\n`t` - time step (t-1 means previous time step)\n\n`W[iofc]` - W parameter weight matrix for input, output, forget, and cell gates\n\n`R[iofc]` - R recurrence weight matrix for input, output, forget, and cell gates\n\n`Wb[iofc]` - W bias vectors for input, output, forget, and cell gates\n\n`Rb[iofc]` - R bias vectors for input, output, forget, and cell gates\n\n`P[iof]` - P peephole weight vector for input, output, and forget gates\n\n`WB[iofc]` - W parameter weight matrix for backward input, output, forget, and cell gates\n\n`RB[iofc]` - R recurrence weight matrix for backward input, output, forget, and cell gates\n\n`WBb[iofc]` - W bias vectors for backward input, output, forget, and cell gates\n\n`RBb[iofc]` - R bias vectors for backward input, output, forget, and cell gates\n\n`PB[iof]` - P peephole weight vector for backward input, output, and forget gates\n\n`H` - Hidden state\n\n`num_directions` - 2 if direction == bidirectional else 1\n\nActivation functions:\n\n Relu(x) - max(0, x)\n\n Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})\n\n Sigmoid(x) - 1/(1 + e^{-x})\n\n (NOTE: Below are optional)\n\n Affine(x) - alpha*x + beta\n\n LeakyRelu(x) - x if x >= 0 else alpha * x\n\n ThresholdedRelu(x) - x if x >= alpha else 0\n\n ScaledTanh(x) - alpha*Tanh(beta*x)\n\n HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)\n\n Elu(x) - x if x >= 0 else alpha*(e^x - 1)\n\n Softsign(x) - x/(1 + |x|)\n\n Softplus(x) - log(1 + e^x)\n\nEquations (Default: f=Sigmoid, g=Tanh, h=Tanh):\n\n - it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi)\n\n - ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf)\n\n - ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc)\n\n - Ct = ft (.) Ct-1 + it (.) ct\n\n - ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo)\n\n - Ht = ot (.) h(Ct)\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +input: "X" +output: "Y" +name: "LabelEncoder" +op_type: "LabelEncoder" +attribute { + name: "default_float" + f: -0.0 + type: FLOAT +} +attribute { + name: "default_int64" + i: -1 + type: INT +} +attribute { + name: "default_string" + s: "_Unused" + type: STRING +} +attribute { + name: "keys_floats" + s: "" + type: FLOATS +} +attribute { + name: "keys_int64s" + s: "" + type: INTS +} +attribute { + name: "keys_strings" + s: "" + type: STRINGS +} +attribute { + name: "values_floats" + s: "" + type: FLOATS +} +attribute { + name: "values_int64s" + s: "" + type: INTS +} +attribute { + name: "values_strings" + s: "" + type: STRINGS +} +attribute { + name: "X-types" + strings: "int64" + strings: "string" + strings: "float" + type: STRINGS +} +doc_string: "\n Maps each element in the input tensor to another value.
\n The mapping is determined by the two parallel attributes, \'keys_*\' and\n \'values_*\' attribute. The i-th value in the specified \'keys_*\' attribute\n would be mapped to the i-th value in the specified \'values_*\' attribute. It\n implies that input\'s element type and the element type of the specified\n \'keys_*\' should be identical while the output type is identical to the\n specified \'values_*\' attribute. If an input element can not be found in the\n specified \'keys_*\' attribute, the \'default_*\' that matches the specified\n \'values_*\' attribute may be used as its output value.
\n Let\'s consider an example which maps a string tensor to an integer tensor.\n Assume and \'keys_strings\' is [\"Amy\", \"Sally\"], \'values_int64s\' is [5, 6],\n and \'default_int64\' is \'-1\'. The input [\"Dori\", \"Amy\", \"Amy\", \"Sally\",\n \"Sally\"] would be mapped to [-1, 5, 5, 6, 6].
\n Since this operator is an one-to-one mapping, its input and output shapes\n are the same. Notice that only one of \'keys_*\'/\'values_*\' can be set.
\n For key look-up, bit-wise comparison is used so even a float NaN can be\n mapped to a value in \'values_*\' attribute.
\n" +-- +input: "X" +output: "Y" +name: "LeakyRelu" +op_type: "LeakyRelu" +attribute { + name: "alpha" + f: 0.01 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nLeakyRelu takes input data (Tensor) and an argument alpha, and produces one\noutput data (Tensor) where the function `f(x) = alpha * x for x < 0`,\n`f(x) = x for x >= 0`, is applied to the data tensor elementwise.\n" +-- +input: "A" +input: "B" +output: "C" +name: "Less" +op_type: "Less" +attribute { + name: "A-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `less` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "A" +input: "B" +output: "C" +name: "LessOrEqual" +op_type: "LessOrEqual" +attribute { + name: "A-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `less_equal` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +output: "Y" +output: "Z" +name: "LinearClassifier" +op_type: "LinearClassifier" +attribute { + name: "classlabels_ints" + s: "" + type: INTS +} +attribute { + name: "classlabels_strings" + s: "" + type: STRINGS +} +attribute { + name: "coefficients" + s: "" + type: FLOATS +} +attribute { + name: "intercepts" + s: "" + type: FLOATS +} +attribute { + name: "multi_class" + i: 0 + type: INT +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Linear classifier\n" +-- +input: "X" +output: "Y" +name: "LinearRegressor" +op_type: "LinearRegressor" +attribute { + name: "coefficients" + s: "" + type: FLOATS +} +attribute { + name: "intercepts" + s: "" + type: FLOATS +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "targets" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Generalized linear regression evaluation.
\n If targets is set to 1 (default) then univariate regression is performed.
\n If targets is set to M then M sets of coefficients must be passed in as a sequence\n and M results will be output for each input n in N.
\n The coefficients array is of length n, and the coefficients for each target are contiguous.\n Intercepts are optional but if provided must match the number of targets.\n" +-- +input: "input" +output: "output" +name: "Log" +op_type: "Log" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the natural log of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "LogSoftmax" +op_type: "LogSoftmax" +attribute { + name: "axis" + i: 1 + type: INT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThe operator computes the logsoftmax (log of softmax) values for each layer in the batch\n of the given input.\n\nThe input does not need to explicitly be a 2D vector; rather, it will be\ncoerced into one. For an arbitrary n-dimensional tensor\ninput \\in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is\nthe axis provided, then input will be coerced into a 2-dimensional tensor with\ndimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default\ncase where axis=1, this means the input tensor will be coerced into a 2D tensor\nof dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size.\nIn this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D.\nEach of these dimensions must be matched correctly, or else the operator\nwill throw errors. The output tensor has the same shape\nand contains the logsoftmax values of the corresponding input.\n" +-- +input: "M" +input: "cond" +input: "v_initial" +output: "v_final_and_scan_outputs" +name: "Loop" +op_type: "Loop" +attribute { + name: "body" + s: "" + type: GRAPH +} +attribute { + name: "M-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "cond-types" + strings: "bool" + type: STRINGS +} +attribute { + name: "v_initial-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGeneric Looping construct. This loop has multiple termination conditions:\n\n1) Trip count. Iteration count specified at runtime. Set by\n specifying the input M. Optional. Set to empty string to omit.\n Note that a static trip count (specified at graph construction time) can be\n specified by passing in a constant node for input M.\n2) Loop termination condition. This is an input to the op that determines\n whether to run the first iteration and also a loop-carried dependency for\n the body graph. The body graph must yield a value for the condition variable,\n whether this input is provided or not.\n\nThis table summarizes the operating modes of this operator with equivalent\nC-style code:\n\n Operator inputs defined as (max_trip_count, condition_var).\n\n input (\"\", \"\"):\n for (int i=0; ; ++i) {\n cond = ... // Note this value is ignored, but is required in the body\n }\n\n input (\"\", cond) // Note this is analogous to a while loop\n bool cond = ...;\n for (int i=0; cond; ++i) {\n cond = ...;\n }\n\n input (\"\", 1) // Note this is analogous to a do-while loop\n bool cond = true\n for (int i=0; cond; ++i) {\n cond = ...;\n }\n\n input (trip_count, \"\") // Note this is analogous to a for loop\n int trip_count = ...\n for (int i=0; i < trip_count; ++i) {\n cond = ...; // ignored\n }\n\n input (trip_count, cond)\n int trip_count = ...;\n bool cond = ...;\n for (int i=0; i < trip_count && cond; ++i) {\n cond = ...;\n }\n\n\n*Sample usage - cond as well as trip count*\n\n graph predict-net {\n %a = Constant[value = ]()\n %b = Constant[value = ]()\n %keepgoing = Constant[value = ]()\n %max_trip_count = Constant[value = ]()\n %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b)\n return\n }\n\n graph body-net (\n %i[INT32, scalar] // iteration number\n %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used\n %b_in[INT32, scalar] // incoming value of loop-carried-dependency b\n ) {\n %my_local = Add(%a, %b_in)\n %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b\n %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition\n %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated\n return %keepgoing_out, %b_out, %user_defined_val\n }\n\n*Sample equivalent C code*\n\n {\n /* User-defined code (enclosing scope) */\n int a = 3, b = 6;\n bool keepgoing = true; // Analogous to input cond\n /* End user-defined code */\n\n /* Implicitly-defined code */\n const int max_trip_count = 10; // Analogous to input M\n int user_defined_vals[]; // Imagine this is resizable\n /* End implicitly-defined code */\n /* initialize loop-carried variables and scan-output variables */\n bool keepgoing_out = keepgoing\n int b_out = b\n\n for (int i=0; i < max_trip_count && keepgoing_out; ++i) {\n /* Implicitly-defined code: bind actual parameter values\n to formal parameter variables of loop-body */\n bool keepgoing_in = keepgoing_out; \n bool b_in = b_out;\n\n /* User-defined code (loop body) */\n int my_local = a + b_in; // Reading value \"a\" from the enclosing scope is fine\n b_out = a - b_in;\n keepgoing_out = my_local > b_out; \n user_defined_val = b_in + b_in; // b_in and b_out are different variables\n /* End user-defined code */\n\n /* Implicitly defined-code */\n user_defined_vals[i] = user_defined_val // accumulate scan-output values\n }\n // int t = my_local; // Can\'t do this. my_local is not accessible here.\n\n // The values below are bound to the output variables of the loop and therefore accessible\n // b_out; user_defined_vals; keepgoing_out;\n }\n\nThere are several things of note in this code snippet:\n\n1) Values from the enclosing scope (i.e. variable \"a\" here) are in scope and can\n be referenced in the inputs of the loop.\n2) Any values computed in the loop body that needs to be used in a subsequent\n iteration or after the loop are modelled using a pair of variables in the loop-body,\n consisting of an input variable (eg., b_in) and an output variable (eg., b_out).\n These are referred to as loop-carried dependences. The loop operation node\n supplies the input value of the input variable for the first iteration, and\n returns the output value of the output variable produced by the final\n iteration.\n3) Scan_output variables are used to implicitly concatenate values computed across\n all the iterations. In the above example, the value of user_defined_val computed\n over all iterations are concatenated and returned as the value of user_defined_vals\n after the loop.\n4) Values created in the body cannot be accessed in the enclosing scope,\n except using the mechanism described above.\n\nNote that the semantics of this op support \"diagonal\" or \"wavefront\" execution.\n(See Step 3 here for an example:\nhttps://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/).\nFrontends should emit multi-layer RNNs as a series of While operators (with\ntime being the inner looping dimension), with each successive layer consuming\nthe scan_outputs from the previous layer, possibly going through several\npoint-wise operators (e.g. dropout, residual connections, linear layer).\n" +-- +input: "input" +output: "output" +name: "LpNormalization" +op_type: "LpNormalization" +attribute { + name: "axis" + i: -1 + type: INT +} +attribute { + name: "p" + i: 2 + type: INT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nGiven a matrix, apply Lp-normalization along the provided axis.\n" +-- +input: "X" +output: "Y" +name: "LpPool" +op_type: "LpPool" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "p" + i: 2 + type: INT +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n LpPool consumes an input tensor X and applies Lp pooling across\n the tensor according to kernel sizes, stride sizes, and pad lengths.\n Lp pooling consisting of computing the Lp norm on all values of a subset\n of the input tensor according to the kernel size and downsampling the\n data into the output tensor Y for further processing." +-- +input: "A" +input: "B" +output: "Y" +name: "MatMul" +op_type: "MatMul" +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nMatrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html\n" +-- +input: "A" +input: "B" +input: "a_zero_point" +input: "b_zero_point" +output: "Y" +name: "MatMulInteger" +op_type: "MatMulInteger" +attribute { + name: "A-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "a_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "b_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nMatrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html.\nThe production MUST never overflow. The accumulation may overflow if and only if in 32 bits.\n" +-- +input: "data_0" +output: "max" +name: "Max" +op_type: "Max" +attribute { + name: "data_0-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nElement-wise max of each of the input tensors (with Numpy-style broadcasting support).\nAll inputs and outputs must have the same data type.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +output: "Y" +output: "Indices" +name: "MaxPool" +op_type: "MaxPool" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "ceil_mode" + i: 0 + type: INT +} +attribute { + name: "dilations" + s: "" + type: INTS +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "storage_order" + i: 0 + type: INT +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\n MaxPool consumes an input tensor X and applies max pooling across\n the tensor according to kernel sizes, stride sizes, and pad lengths.\n max pooling consisting of computing the max on all values of a\n subset of the input tensor according to the kernel size and downsampling the\n data into the output tensor Y for further processing. The output spatial shape will be following:\n ```\n output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)\n ```\n or\n ```\n output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)\n ```\n if ceil_mode is enabled\n\n ```\n * pad_shape[i] is sum of pads along axis i\n ```\n\n `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following:\n ```\n VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])\n SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])\n ```\n And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`:\n ```\n pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]\n ```\n The output of each pooling window is maximum number of elements exclude pad. \n " +-- +input: "X" +input: "rois" +output: "Y" +name: "MaxRoiPool" +op_type: "MaxRoiPool" +attribute { + name: "pooled_shape" + s: "" + type: INTS +} +attribute { + name: "spatial_scale" + f: 1.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "rois-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n ROI max pool consumes an input tensor X and region of interests (RoIs) to\n apply max pooling across each RoI, to produce output 4-D tensor of shape\n (num_rois, channels, pooled_shape[0], pooled_shape[1])." +-- +input: "X" +input: "I" +input: "output_shape" +output: "output" +name: "MaxUnpool" +op_type: "MaxUnpool" +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "I-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "output_shape-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nMaxUnpool essentially computes the partial inverse of the MaxPool op.\n The input information to this op is typically the the output information from a MaxPool op. The first\n input tensor X is the tensor that needs to be unpooled, which is typically the pooled tensor (first output)\n from MaxPool. The second input tensor, I, contains the indices to the (locally maximal) elements corrsponding\n to the elements in the first input tensor X. Input tensor I is typically the second output of the MaxPool op.\n The third (optional) input is a tensor that specifies the output size of the unpooling operation.\n\nMaxUnpool is intended to do \'partial\' inverse of the MaxPool op. \'Partial\' because all the non-maximal\n values from the original input to MaxPool are set to zero in the output of the MaxUnpool op. Pooling\n the result of an unpooling operation should give back the original input to the unpooling op.\n\nMaxUnpool can produce the same output size for several input sizes, which makes unpooling op ambiguous.\n The third input argument, output_size, is meant to disambiguate the op and produce output tensor of\n known/predictable size.\n\nIn addition to the inputs, MaxUnpool takes three attributes, namely kernel_shape, strides, and pads,\n which define the exact unpooling op. The attributes typically have the same values as the corrsponding\n pooling op that the unpooling op is trying to invert.\n" +-- +input: "data_0" +output: "mean" +name: "Mean" +op_type: "Mean" +attribute { + name: "data_0-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nElement-wise mean of each of the input tensors (with Numpy-style broadcasting support).\nAll inputs and outputs must have the same data type.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +output: "Y" +name: "MeanVarianceNormalization" +op_type: "MeanVarianceNormalization" +attribute { + name: "axes" + ints: 0 + ints: 2 + ints: 3 + type: INTS +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\n A MeanVarianceNormalization Function: Perform mean variance normalization\n on the input tensor X using formula:
``` (X-EX)/sqrt(E(X-EX)^2) ```\n" +-- +input: "data_0" +output: "min" +name: "Min" +op_type: "Min" +attribute { + name: "data_0-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nElement-wise min of each of the input tensors (with Numpy-style broadcasting support).\nAll inputs and outputs must have the same data type.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "A" +input: "B" +output: "C" +name: "Mod" +op_type: "Mod" +attribute { + name: "fmod" + i: 0 + type: INT +} +attribute { + name: "A-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\n Performs element-wise binary modulus (with Numpy-style broadcasting support). \n The sign of the remainder is the same as that of the Divisor.\n \n Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend \n (in contrast to integer mod). To force a behavior like numpy.fmod() an \'fmod\' Attribute is provided.\n This attribute is set to 0 by default causing the behavior to be like integer mod. \n Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod().\n\n If the input type is floating point, then `fmod` attribute must be set to 1.\n \n In case of dividend being zero, the results will be platform dependent.\n\n This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "R" +input: "T" +input: "inputs" +output: "outputs" +name: "Momentum" +op_type: "Momentum" +attribute { + name: "alpha" + s: "" + type: FLOAT +} +attribute { + name: "beta" + s: "" + type: FLOAT +} +attribute { + name: "mode" + s: "" + type: STRING +} +attribute { + name: "norm_coefficient" + s: "" + type: FLOAT +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + type: STRINGS +} +attribute { + name: "T-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "inputs-types" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Compute one iteration of stochastic gradient update with momentum.\n This operator can conduct the optimization of multiple tensor variables.\n\n Let\'s define the behavior of this operator. As you can imagine, SG with momentum requires\n several parameters:\n \n - The learning-rate \"R\".\n - The update count \"T\". That is, the number of conducted training iterations. It should\n be zero in the first training iteration.\n - A L2-norm regularization coefficient \"norm_coefficient\".\n - A decay coefficient of previous accumulated gradient (i.e., momentum) \"alpha\".\n - The scaling coefficient of current gradient \"beta\".\n - An attribute to choose either standard momentum or Nesterov\'s momentum \"mode\" should\n be used.\n\n For the sake of simplicity, assume that there is only one tensor (called \"X\") to be optimized.\n Other necessary inputs are \"X\"\'s gradient (called \"G\") and \"X\"\'s momentum (called \"V\"). This\n Momentum operator maps all these inputs to the new value of \"X\" (called \"X_new\") and its new\n momentum (called \"V_new\").\n \n This operator supports two different momentum algorithms. Set the attribute \"mode\" to\n \"nesterov\" if Nesterov\'s momentum is desired. Otherwise, set the attribute \"model\" to\n \"standard\" to use standard momentum. Computation details are described subsequently.\n\n Let \"+\", \"-\", \"*\", and \"/\" are all element-wise operations with numpy-style broadcasting.\n\n Pseudo code for SG with standard momentum:\n\n // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared\n // values of all elements in X.\n G_regularized = norm_coefficient * X + G\n\n // In the first training iteration, beta should always be 1.\n beta_adjusted = T > 0 ? beta : 1\n\n // Compute the current momentum based on previous momentum and the current gradient.\n V_new = alpha * V + beta_adjusted * G_regularized\n\n // Update X.\n X_new = X - R * V_new\n\n Pseudo code for SG with Nesterov\'s momentum:\n\n // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared\n // values of all elements in X.\n G_regularized = norm_coefficient * X + G;\n\n // In the first training iteration, beta should always be 1.\n beta_adjusted = T > 0 ? beta : 1\n\n // Compute the current momentum based on previous momentum and the current gradient.\n V_new = alpha * V + beta_adjusted * G_regularized;\n\n // Compute final update direction and then update X.\n X_new = X - R * (G_regularized + alpha * V_new)\n\n If one assign this operators to optimize multiple inputs, for example, \"X_1\" and \"X_2\". The same\n pseudo code would be extended to handle all tensors jointly. More specifically, we can view \"X\" as a\n concatenation of \"X_1\" and \"X_2\" (of course, their gradient and accumulate gradient should\n be concatenated too) and then our pseudo code becomes applicable.\n" +-- +input: "A" +input: "B" +output: "C" +name: "Mul" +op_type: "Mul" +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nPerforms element-wise binary multiplication (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "input" +output: "output" +name: "Multinomial" +op_type: "Multinomial" +attribute { + name: "dtype" + i: 6 + type: INT +} +attribute { + name: "sample_size" + i: 1 + type: INT +} +attribute { + name: "seed" + s: "" + type: FLOAT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nGenerate a tensor of samples from a multinomial distribution according to the probabilities\nof each of the possible outcomes.\n" +-- +input: "X" +output: "Y" +name: "Neg" +op_type: "Neg" +attribute { + name: "X-types" + strings: "int64" + strings: "float" + strings: "double" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + type: STRINGS +} +doc_string: "\nNeg takes one input data (Tensor) and produces one output data\n(Tensor) where each element flipped sign, y = -x, is applied to\nthe tensor elementwise.\n" +-- +input: "input" +input: "target" +input: "weight" +output: "loss" +name: "NegativeLogLikelihoodLoss" +op_type: "NegativeLogLikelihoodLoss" +attribute { + name: "ignore_index" + s: "" + type: INT +} +attribute { + name: "reduction" + s: "mean" + type: STRING +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "target-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "weight-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nA NegativeLogLikelihoodLoss operator computes (weighted) negative log likelihood loss.\nIts \"input\" tensor has the shape of (N, C, d1, d2, ..., dk) where k >= 0.\nThe \"input\" tensor contains log-probabilities for input[n, :, d_1, d_2,..., d_k] being in a class of [0, C).\nThe operator\'s \"target\" input tensor has the shape of (N, d1, d2, ..., dk). It encodes class labels (one of C classes)\nor it may contain a special value (indicated by an attribute ignore_index) for N x d1 x d2 x ... x dk samples.\nThe loss value for input[n, :, d_1, d_2,...d_k] being classified as class c = target[n][d_1][d_2]...[d_k] is computed as:\n\n loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k].\n\nWhen an optional \"weight\" is provided, the sample loss is calculated as:\n\n loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k] * weight[c].\n\nloss is zero for the case when target-value equals ignore_index.\n \n loss[n][d_1][d_2]...[d_k] = 0, when target[n][d_1][d_2]...[d_k] = ignore_index\n\nIf \"reduction\" attribute is set to \"none\", the operator\'s output will be the above loss with shape (N, d1, d2, ..., dk).\nIf \"reduction\" attribute is set to \"mean\" (the default attribute value), the output loss is (weight) averaged:\n\n mean(loss), if \"weight\" is not provided,\n\nor if weight is provided,\n\n sum(loss) / sum(weight[target[n][d_1][d_2]...[d_k]]]), for all samples.\n\nIf \"reduction\" attribute is set to \"sum\", the output is a scalar:\n sum(loss).\n\nSee also https://pytorch.org/docs/stable/nn.html#torch.nn.NLLLoss.\n\nExample 1:\n\n // negative log likelihood loss, \"none\" reduction\n N, C, d1 = 2, 3, 2\n input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],\n [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]\n target = [[2, 1], [0, 2]]\n\n loss = np.zeros((N, d1))\n for n in range(N):\n for d_1 in range(d1):\n c = target[n][d_1]\n loss[n][d_1] = -input[n][c][d_1]\n\n // print(loss)\n // [[-3. -2.]\n // [-0. -2.]]\n\nExample 2:\n\n // weighted negative log likelihood loss, sum reduction\n N, C, d1 = 2, 3, 2\n input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],\n [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]\n target = [[2, 1], [0, 2]]\n weight = [0.2, 0.3, 0.1]\n loss = np.zeros((N, d1))\n for n in range(N):\n for d_1 in range(d1):\n c = target[n][d_1]\n loss[n][d_1] = -input[n][c][d_1] * weight[c]\n\n loss = np.sum(loss)\n // print(loss)\n // -1.1\n\nExample 3:\n\n // weighted negative log likelihood loss, mean reduction\n N, C, d1 = 2, 3, 2\n input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]],\n [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]]\n target = [[2, 1], [0, 2]]\n weight = [0.2, 0.3, 0.1]\n loss = np.zeros((N, d1))\n weight_total = 0\n for n in range(N):\n for d_1 in range(d1):\n c = target[n][d_1]\n loss[n][d_1] = -input[n][c][d_1] * weight[c]\n weight_total = weight_total + weight[c]\n\n loss = np.sum(loss) / weight_total\n // print(loss)\n // -1.57\n" +-- +input: "boxes" +input: "scores" +input: "max_output_boxes_per_class" +input: "iou_threshold" +input: "score_threshold" +output: "selected_indices" +name: "NonMaxSuppression" +op_type: "NonMaxSuppression" +attribute { + name: "center_point_box" + i: 0 + type: INT +} +attribute { + name: "boxes-types" + strings: "float" + type: STRINGS +} +attribute { + name: "scores-types" + strings: "float" + type: STRINGS +} +attribute { + name: "max_output_boxes_per_class-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "iou_threshold-types" + strings: "float" + type: STRINGS +} +attribute { + name: "score_threshold-types" + strings: "float" + type: STRINGS +} +doc_string: "\nFilter out boxes that have high intersection-over-union (IOU) overlap with previously selected boxes.\nBounding boxes with score less than score_threshold are removed. Bounding box format is indicated by attribute center_point_box.\nNote that this algorithm is agnostic to where the origin is in the coordinate system and more generally is invariant to\northogonal transformations and translations of the coordinate system; thus translating or reflections of the coordinate system\nresult in the same boxes being selected by the algorithm.\nThe selected_indices output is a set of integers indexing into the input collection of bounding boxes representing the selected boxes.\nThe bounding box coordinates corresponding to the selected indices can then be obtained using the Gather or GatherND operation.\n" +-- +input: "X" +output: "Y" +name: "NonZero" +op_type: "NonZero" +attribute { + name: "X-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\n Returns the indices of the elements that are non-zero\n (in row-major order - by dimension).\n NonZero behaves similar to numpy.nonzero:\n https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html\n" +-- +input: "X" +output: "Y" +name: "Normalizer" +op_type: "Normalizer" +attribute { + name: "norm" + s: "MAX" + type: STRING +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Normalize the input. There are three normalization modes, which have the corresponding formulas,\n defined using element-wise infix operators \'/\' and \'^\' and tensor-wide functions \'max\' and \'sum\':
\n
\n Max: Y = X / max(X)
\n L1: Y = X / sum(X)
\n L2: Y = sqrt(X^2 / sum(X^2)}
\n In all modes, if the divisor is zero, Y == X.\n
\n For batches, that is, [N,C] tensors, normalization is done along the C axis. In other words, each row\n of the batch is normalized independently.\n" +-- +input: "X" +output: "Y" +name: "Not" +op_type: "Not" +attribute { + name: "X-types" + strings: "bool" + type: STRINGS +} +doc_string: "\nReturns the negation of the input tensor element-wise.\n" +-- +input: "indices" +input: "depth" +input: "values" +output: "output" +name: "OneHot" +op_type: "OneHot" +attribute { + name: "axis" + i: -1 + type: INT +} +attribute { + name: "indices-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "depth-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "values-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\n Produces a one-hot tensor based on inputs.\n The locations represented by the index values in the \'indices\' input tensor will have \'on_value\'\n and the other locations will have \'off_value\' in the output tensor, where \'on_value\' and \'off_value\'\n are specified as part of required input argument \'values\', which is a two-element tensor of format\n [off_value, on_value]. The rank of the output tensor will be one greater than the rank of the\n input tensor. The additional dimension is for one-hot representation. The additional dimension will\n be inserted at the position specified by \'axis\'. If \'axis\' is not specified then then additional\n dimension will be inserted as the innermost dimension, i.e. axis=-1. The size of the additional\n dimension is specified by required scalar input \'depth\'. The type of the output tensor is the same\n as the type of the \'values\' input. Any entries in the \'indices\' input tensor with values outside\n the range [-depth, depth-1] will result in one-hot representation with all \'off_value\' values in the\n output tensor.\n\n when axis = 0:\n output[input[i, j, k], i, j, k] = 1 for all i, j, k and 0 otherwise.\n\n when axis = -1:\n output[i, j, k, input[i, j, k]] = 1 for all i, j, k and 0 otherwise.\n\n" +-- +input: "X" +output: "Y" +name: "OneHotEncoder" +op_type: "OneHotEncoder" +attribute { + name: "cats_int64s" + s: "" + type: INTS +} +attribute { + name: "cats_strings" + s: "" + type: STRINGS +} +attribute { + name: "zeros" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "int64" + strings: "string" + strings: "double" + strings: "float" + strings: "int32" + type: STRINGS +} +doc_string: "\n Replace each input element with an array of ones and zeros, where a single\n one is placed at the index of the category that was passed in. The total category count \n will determine the size of the extra dimension of the output array Y.
\n For example, if we pass a tensor with a single value of 4, and a category count of 8, \n the output will be a tensor with ``[0,0,0,0,1,0,0,0]``.
\n This operator assumes every input feature is from the same set of categories.
\n If the input is a tensor of float, int32, or double, the data will be cast\n to integers and the cats_int64s category list will be used for the lookups.\n" +-- +input: "A" +input: "B" +output: "C" +name: "Or" +op_type: "Or" +attribute { + name: "A-types" + strings: "bool" + type: STRINGS +} +attribute { + name: "B-types" + strings: "bool" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `or` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +input: "slope" +output: "Y" +name: "PRelu" +op_type: "PRelu" +attribute { + name: "X-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "slope-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nPRelu takes input data (Tensor) and slope tensor as input, and produces one\noutput data (Tensor) where the function `f(x) = slope * x for x < 0`,\n`f(x) = x for x >= 0`., is applied to the data tensor elementwise.\nThis operator supports **unidirectional broadcasting** (tensor slope should be unidirectional broadcastable to input tensor X); for more details please check [the doc](Broadcasting.md)." +-- +input: "data" +input: "pads" +input: "constant_value" +output: "output" +name: "Pad" +op_type: "Pad" +attribute { + name: "mode" + s: "constant" + type: STRING +} +attribute { + name: "data-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "pads-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "constant_value-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGiven a tensor containing the data to be padded (`data`), a tensor containing the number of start and end pad values for axis (`pads`), (optionally) a `mode`, and (optionally) `constant_value`, \na padded tensor (`output`) is generated.\n\nThe three supported `modes` are (similar to corresponding modes supported by `numpy.pad`):\n\n1) `constant`(default) - pads with a given constant value as specified by `constant_value` (which defaults to 0)\n\n2) `reflect` - pads with the reflection of the vector mirrored on the first and last values of the vector along each axis\n\n3) `edge` - pads with the edge values of array\n\n\nExample 1 (`constant` mode):\n Insert 0 pads to the beginning of the second dimension.\n\n data = \n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ] \n\n pads = [0, 2, 0, 0]\n\n mode = \'constant\'\n\n constant_value = 0.0\n\n output = \n [\n [\n [0.0, 0.0, 1.0, 1.2],\n [0.0, 0.0, 2.3, 3.4],\n [0.0, 0.0, 4.5, 5.7],\n ],\n ]\n\n\nExample 2 (`reflect` mode):\n data = \n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ] \n\n pads = [0, 2, 0, 0]\n\n mode = \'reflect\'\n\n output = \n [\n [\n [1.0, 1.2, 1.0, 1.2],\n [2.3, 3.4, 2.3, 3.4],\n [4.5, 5.7, 4.5, 5.7],\n ],\n ]\n\n\nExample 3 (`edge` mode):\n data = \n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ] \n\n pads = [0, 2, 0, 0]\n\n mode = \'edge\'\n\n output = \n [\n [\n [1.0, 1.0, 1.0, 1.2],\n [2.3, 2.3, 2.3, 3.4],\n [4.5, 4.5, 4.5, 5.7],\n ],\n ]\n\n" +-- +input: "X" +input: "Y" +output: "Z" +name: "Pow" +op_type: "Pow" +attribute { + name: "X-types" + strings: "int64" + strings: "double" + strings: "float" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "Y-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nPow takes input data (Tensor) and exponent Tensor, and\nproduces one output data (Tensor) where the function `f(x) = x^exponent`,\nis applied to the data tensor elementwise.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md)." +-- +input: "x" +input: "x_scale" +input: "x_zero_point" +input: "w" +input: "w_scale" +input: "w_zero_point" +input: "y_scale" +input: "y_zero_point" +input: "B" +output: "y" +name: "QLinearConv" +op_type: "QLinearConv" +attribute { + name: "auto_pad" + s: "NOTSET" + type: STRING +} +attribute { + name: "dilations" + s: "" + type: INTS +} +attribute { + name: "group" + i: 1 + type: INT +} +attribute { + name: "kernel_shape" + s: "" + type: INTS +} +attribute { + name: "pads" + s: "" + type: INTS +} +attribute { + name: "strides" + s: "" + type: INTS +} +attribute { + name: "x-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "x_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "x_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "w-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "w_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "w_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "y_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "y_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int32" + type: STRINGS +} +doc_string: "\nThe convolution operator consumes a quantized input tensor, its scale and zero point,\na quantized filter, its scale and zero point, and output\'s scale and zero point,\nand computes the quantized output. Each scale and zero-point pair must have same shape.\nIt means they must be either scalars (per tensor) or 1-D tensors (per output channel).\nEach input or output and its related zero point must have same type.\nWhen bias is present it must be quantized using scale = input scale * weight scale and \nzero point as 0.\n" +-- +input: "a" +input: "a_scale" +input: "a_zero_point" +input: "b" +input: "b_scale" +input: "b_zero_point" +input: "y_scale" +input: "y_zero_point" +output: "y" +name: "QLinearMatMul" +op_type: "QLinearMatMul" +attribute { + name: "a-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "a_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "a_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "b-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "b_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "b_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "y_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "y_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nMatrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html.\nIt consumes two quantized input tensors, their scales and zero points, scale and zero point of output, and computes the quantized output.\nThe quantization formula is y = saturate((x / y_scale) + y_zero_point). For (x / y_scale), it is rounding to nearest ties to even.\nRefer to https://en.wikipedia.org/wiki/Rounding for details. Scale and zero point must have same shape.\nThey must be either scalar (per tensor) or 1-D tensor (per row for \'a\' and per column for \'b\'). If scale and zero point are 1-D tensor,\nthe number of elements of scale and zero point tensor of input \'a\' and output \'y\' should be equal to the number of rows of input \'a\',\nand the number of elements of scale and zero point tensor of input \'b\' should be equal to the number of columns of input \'b\'.\nProduction must never overflow, and accumulation may overflow if and only if in 32 bits.\n" +-- +input: "x" +input: "y_scale" +input: "y_zero_point" +output: "y" +name: "QuantizeLinear" +op_type: "QuantizeLinear" +attribute { + name: "x-types" + strings: "int32" + strings: "float" + type: STRINGS +} +attribute { + name: "y_scale-types" + strings: "float" + type: STRINGS +} +attribute { + name: "y_zero_point-types" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThe linear per-tensor/layer quantization operator. It consumes a high precision tensor, a scale, a zero point to compute the low precision / quantized tensor.\nThe quantization formula is y = saturate ((x / y_scale) + y_zero_point). For saturation, it saturates to [0, 255] if it\'s uint8, or [-128, 127] if it\'s int8.\nFor (x / y_scale), it\'s rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. \'y_zero_point\' and \'y\' must have same type.\n" +-- +input: "X" +input: "W" +input: "R" +input: "B" +input: "sequence_lens" +input: "initial_h" +output: "Y" +output: "Y_h" +name: "RNN" +op_type: "RNN" +attribute { + name: "activation_alpha" + s: "" + type: FLOATS +} +attribute { + name: "activation_beta" + s: "" + type: FLOATS +} +attribute { + name: "activations" + strings: "Tanh" + strings: "Tanh" + type: STRINGS +} +attribute { + name: "clip" + s: "" + type: FLOAT +} +attribute { + name: "direction" + s: "forward" + type: STRING +} +attribute { + name: "hidden_size" + s: "" + type: INT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "W-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "R-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "B-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "sequence_lens-types" + strings: "int32" + type: STRINGS +} +attribute { + name: "initial_h-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nComputes an one-layer simple RNN. This operator is usually supported\nvia some custom implementation such as CuDNN.\n\nNotations:\n\n`X` - input tensor\n\n`i` - input gate\n\n`t` - time step (t-1 means previous time step)\n\n`Wi` - W parameter weight matrix for input gate\n\n`Ri` - R recurrence weight matrix for input gate\n\n`Wbi` - W parameter bias vector for input gate\n\n`Rbi` - R parameter bias vector for input gate\n\n`WBi` - W parameter weight matrix for backward input gate\n\n`RBi` - R recurrence weight matrix for backward input gate\n\n`WBbi` - WR bias vectors for backward input gate\n\n`RBbi` - RR bias vectors for backward input gate\n\n`H` - Hidden state\n\n`num_directions` - 2 if direction == bidirectional else 1\n\nActivation functions:\n\n Relu(x) - max(0, x)\n\n Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})\n\n Sigmoid(x) - 1/(1 + e^{-x})\n\n (NOTE: Below are optional)\n\n Affine(x) - alpha*x + beta\n\n LeakyRelu(x) - x if x >= 0 else alpha * x\n\n ThresholdedRelu(x) - x if x >= alpha else 0\n\n ScaledTanh(x) - alpha*Tanh(beta*x)\n\n HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)\n\n Elu(x) - x if x >= 0 else alpha*(e^x - 1)\n\n Softsign(x) - x/(1 + |x|)\n\n Softplus(x) - log(1 + e^x)\n\nEquations (Default: f=Tanh):\n\n - Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi)\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument\'s name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n" +-- +output: "output" +name: "RandomNormal" +op_type: "RandomNormal" +attribute { + name: "dtype" + i: 1 + type: INT +} +attribute { + name: "mean" + f: 0.0 + type: FLOAT +} +attribute { + name: "scale" + f: 1.0 + type: FLOAT +} +attribute { + name: "seed" + s: "" + type: FLOAT +} +attribute { + name: "shape" + s: "" + type: INTS +} +doc_string: "\nGenerate a tensor with random values drawn from a normal distribution. The shape\nof the tensor is specified by the `shape` argument and the parameter of the normal distribution\nspecified by `mean` and `scale`.\n\nThe data type is specified by the \'dtype\' argument. The \'dtype\' argument must\nbe one of the data types specified in the \'DataType\' enum field in the\nTensorProto message.\n" +-- +input: "input" +output: "output" +name: "RandomNormalLike" +op_type: "RandomNormalLike" +attribute { + name: "dtype" + s: "" + type: INT +} +attribute { + name: "mean" + f: 0.0 + type: FLOAT +} +attribute { + name: "scale" + f: 1.0 + type: FLOAT +} +attribute { + name: "seed" + s: "" + type: FLOAT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGenerate a tensor with random values drawn from a normal distribution.\nThe shape of the output tensor is copied from the shape of the input tensor,\nand the parameters of the normal distribution are specified by `mean` and `scale`.\n\nThe data type is specified by the \'dtype\' argument, or copied from the input tensor if not provided.\nThe \'dtype\' argument must be one of the data types specified in the \'DataType\' enum field in the\nTensorProto message, and be valid as an output type.\n" +-- +output: "output" +name: "RandomUniform" +op_type: "RandomUniform" +attribute { + name: "dtype" + i: 1 + type: INT +} +attribute { + name: "high" + f: 1.0 + type: FLOAT +} +attribute { + name: "low" + f: 0.0 + type: FLOAT +} +attribute { + name: "seed" + s: "" + type: FLOAT +} +attribute { + name: "shape" + s: "" + type: INTS +} +doc_string: "\nGenerate a tensor with random values drawn from a uniform distribution. The shape\nof the tensor is specified by the `shape` argument and the range by `low` and `high`.\n\nThe data type is specified by the \'dtype\' argument. The \'dtype\' argument must\nbe one of the data types specified in the \'DataType\' enum field in the\nTensorProto message.\n" +-- +input: "input" +output: "output" +name: "RandomUniformLike" +op_type: "RandomUniformLike" +attribute { + name: "dtype" + s: "" + type: INT +} +attribute { + name: "high" + f: 1.0 + type: FLOAT +} +attribute { + name: "low" + f: 0.0 + type: FLOAT +} +attribute { + name: "seed" + s: "" + type: FLOAT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nGenerate a tensor with random values drawn from a uniform distribution.\nThe shape of the output tensor is copied from the shape of the input tensor,\nand the parameters of the uniform distribution are specified by `low` and `high`.\n\nThe data type is specified by the \'dtype\' argument, or copied from the input tensor if not provided.\nThe \'dtype\' argument must be one of the data types specified in the \'DataType\' enum field in the\nTensorProto message and be valid as an output type.\n" +-- +input: "start" +input: "limit" +input: "delta" +output: "output" +name: "Range" +op_type: "Range" +attribute { + name: "start-types" + strings: "int64" + strings: "double" + strings: "float" + strings: "int16" + strings: "int32" + type: STRINGS +} +attribute { + name: "limit-types" + strings: "int64" + strings: "double" + strings: "float" + strings: "int16" + strings: "int32" + type: STRINGS +} +attribute { + name: "delta-types" + strings: "int64" + strings: "double" + strings: "float" + strings: "int16" + strings: "int32" + type: STRINGS +} +doc_string: "\nGenerate a tensor containing a sequence of numbers that begin at `start` and extends by increments of `delta`\nup to `limit` (exclusive).\n\nThe number of elements in the output of range is computed as below-\n\n`number_of_elements = max( ceil( (limit - start) / delta ) , 0 )`\n\nThe pseudocode determining the contents of the output is shown below-\n\n`for(int i=0; i) and produces one output data\n(Tensor) where the reciprocal is, y = 1/x, is applied to\nthe tensor elementwise.\n" +-- +input: "data" +output: "reduced" +name: "ReduceL1" +op_type: "ReduceL1" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the L1 norm of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceL2" +op_type: "ReduceL2" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the L2 norm of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceLogSum" +op_type: "ReduceLogSum" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the log sum of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceLogSumExp" +op_type: "ReduceLogSumExp" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the log sum exponent of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceMax" +op_type: "ReduceMax" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nComputes the max of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceMean" +op_type: "ReduceMean" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the mean of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceMin" +op_type: "ReduceMin" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nComputes the min of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceProd" +op_type: "ReduceProd" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the product of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceSum" +op_type: "ReduceSum" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the sum of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "data" +output: "reduced" +name: "ReduceSumSquare" +op_type: "ReduceSumSquare" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "data-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nComputes the sum square of the input tensor\'s element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True." +-- +input: "X" +output: "Y" +name: "Relu" +op_type: "Relu" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nRelu takes one input data (Tensor) and produces one output data\n(Tensor) where the rectified linear function, y = max(0, x), is applied to\nthe tensor elementwise.\n" +-- +input: "data" +input: "shape" +output: "reshaped" +name: "Reshape" +op_type: "Reshape" +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "shape-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nReshape the input tensor similar to numpy.reshape.\nFirst input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor.\nAt most one dimension of the new shape can be -1. In this case, the value is\ninferred from the size of the tensor and the remaining dimensions. A dimension\ncould also be 0, in which case the actual dimension value is unchanged (i.e. taken\nfrom the input tensor)." +-- +input: "X" +input: "roi" +input: "scales" +input: "sizes" +output: "Y" +name: "Resize" +op_type: "Resize" +attribute { + name: "coordinate_transformation_mode" + s: "half_pixel" + type: STRING +} +attribute { + name: "cubic_coeff_a" + f: -0.75 + type: FLOAT +} +attribute { + name: "exclude_outside" + i: 0 + type: INT +} +attribute { + name: "extrapolation_value" + f: 0.0 + type: FLOAT +} +attribute { + name: "mode" + s: "nearest" + type: STRING +} +attribute { + name: "nearest_mode" + s: "round_prefer_floor" + type: STRING +} +attribute { + name: "X-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "roi-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "scales-types" + strings: "float" + type: STRINGS +} +attribute { + name: "sizes-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nResize the input tensor. In general, it calculates every value in the output tensor as a weighted average of neighborhood (a.k.a. sampling locations) in the input tensor.\nEach dimension value of the output tensor is:\n output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) if input \\\"sizes\\\" is not specified.\n" +-- +input: "input" +input: "sequence_lens" +output: "Y" +name: "ReverseSequence" +op_type: "ReverseSequence" +attribute { + name: "batch_axis" + i: 1 + type: INT +} +attribute { + name: "time_axis" + i: 0 + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "sequence_lens-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nReverse batch of sequences having different lengths specified by `sequence_lens`.\n\nFor each slice i iterating on batch axis, the operator reverses the first sequence_lens[i] elements on time axis,\nand copies elements whose index\'s beyond sequence_lens[i] to the output. So the output slice i contains reversed\nsequences on the first sequence_lens[i] elements, then have original values copied for the other elements.\n\nExample 1:\n input = [[0.0, 4.0, 8.0, 12.0],\n [1.0, 5.0, 9.0, 13.0],\n [2.0, 6.0, 10.0, 14.0],\n [3.0, 7.0, 11.0, 15.0]]\n sequence_lens = [4, 3, 2, 1]\n time_axis = 0\n batch_axis = 1\n\n output = [[3.0, 6.0, 9.0, 12.0],\n [2.0, 5.0, 8.0, 13.0],\n [1.0, 4.0, 10.0, 14.0],\n [0.0, 7.0, 11.0, 15.0]]\n\nExample 2:\n input = [[0.0, 1.0, 2.0, 3.0 ],\n [4.0, 5.0, 6.0, 7.0 ],\n [8.0, 9.0, 10.0, 11.0],\n [12.0, 13.0, 14.0, 15.0]]\n sequence_lens = [1, 2, 3, 4]\n time_axis = 1\n batch_axis = 0\n\n output = [[0.0, 1.0, 2.0, 3.0 ],\n [5.0, 4.0, 6.0, 7.0 ],\n [10.0, 9.0, 8.0, 11.0],\n [15.0, 14.0, 13.0, 12.0]]\n" +-- +input: "X" +input: "rois" +input: "batch_indices" +output: "Y" +name: "RoiAlign" +op_type: "RoiAlign" +attribute { + name: "mode" + s: "avg" + type: STRING +} +attribute { + name: "output_height" + i: 1 + type: INT +} +attribute { + name: "output_width" + i: 1 + type: INT +} +attribute { + name: "sampling_ratio" + i: 0 + type: INT +} +attribute { + name: "spatial_scale" + f: 1.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "rois-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "batch_indices-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nRegion of Interest (RoI) align operation described in the\n[Mask R-CNN paper](https://arxiv.org/abs/1703.06870).\nRoiAlign consumes an input tensor X and region of interests (rois)\nto apply pooling across each RoI; it produces a 4-D tensor of shape\n(num_rois, C, output_height, output_width).\n\nRoiAlign is proposed to avoid the misalignment by removing\nquantizations while converting from original image into feature\nmap and from feature map into RoI feature; in each ROI bin,\nthe value of the sampled locations are computed directly\nthrough bilinear interpolation.\n" +-- +input: "X" +output: "Y" +name: "Round" +op_type: "Round" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nRound takes one input Tensor and rounds the values, element-wise, meaning\nit finds the nearest integer for each value.\nIn case of halfs, the rule is to round them to the nearest even integer.\nThe output tensor has the same shape and type as the input.\n\nExamples:\n```\nround([0.9]) = [1.0]\nround([2.5]) = [2.0]\nround([2.3]) = [2.0]\nround([1.5]) = [2.0]\nround([-4.5]) = [-4.0]\n```\n" +-- +input: "X" +output: "Y" +output: "Z" +name: "SVMClassifier" +op_type: "SVMClassifier" +attribute { + name: "classlabels_ints" + s: "" + type: INTS +} +attribute { + name: "classlabels_strings" + s: "" + type: STRINGS +} +attribute { + name: "coefficients" + s: "" + type: FLOATS +} +attribute { + name: "kernel_params" + s: "" + type: FLOATS +} +attribute { + name: "kernel_type" + s: "LINEAR" + type: STRING +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "prob_a" + s: "" + type: FLOATS +} +attribute { + name: "prob_b" + s: "" + type: FLOATS +} +attribute { + name: "rho" + s: "" + type: FLOATS +} +attribute { + name: "support_vectors" + s: "" + type: FLOATS +} +attribute { + name: "vectors_per_class" + s: "" + type: INTS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Support Vector Machine classifier\n" +-- +input: "X" +output: "Y" +name: "SVMRegressor" +op_type: "SVMRegressor" +attribute { + name: "coefficients" + s: "" + type: FLOATS +} +attribute { + name: "kernel_params" + s: "" + type: FLOATS +} +attribute { + name: "kernel_type" + s: "LINEAR" + type: STRING +} +attribute { + name: "n_supports" + i: 0 + type: INT +} +attribute { + name: "one_class" + i: 0 + type: INT +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "rho" + s: "" + type: FLOATS +} +attribute { + name: "support_vectors" + s: "" + type: FLOATS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Support Vector Machine regression prediction and one-class SVM anomaly detection.\n" +-- +input: "X" +output: "Y" +name: "Scaler" +op_type: "Scaler" +attribute { + name: "offset" + s: "" + type: FLOATS +} +attribute { + name: "scale" + s: "" + type: FLOATS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Rescale input data, for example to standardize features by removing the mean and scaling to unit variance.\n" +-- +input: "initial_state_and_scan_inputs" +output: "final_state_and_scan_outputs" +name: "Scan" +op_type: "Scan" +attribute { + name: "body" + s: "" + type: GRAPH +} +attribute { + name: "num_scan_inputs" + s: "" + type: INT +} +attribute { + name: "scan_input_axes" + s: "" + type: INTS +} +attribute { + name: "scan_input_directions" + s: "" + type: INTS +} +attribute { + name: "scan_output_axes" + s: "" + type: INTS +} +attribute { + name: "scan_output_directions" + s: "" + type: INTS +} +attribute { + name: "initial_state_and_scan_inputs-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nScan can be used to iterate over one or more scan_input tensors,\nconstructing zero or more scan_output tensors. It combines ideas from general recurrences,\nfunctional programming constructs such as scan, fold, map, and zip and is intended to enable\ngeneralizations of RNN-like constructs for sequence-to-sequence processing.\nOther tensors (referred to as state_variables here) can be used to carry a state\nwhen iterating from one element to another (similar to hidden-state in RNNs, also referred\nto as loop-carried dependences in the context of loops).\nMany common usages involve a single scan_input tensor (where functionality\nsimilar to scan, fold and map can be obtained). When more than one scan_input is used,\na behavior similar to zip is obtained.\n\nThe attribute body must be a graph, specifying the computation to be performed in\nevery iteration. It takes as input the current values of the state_variables and\nthe current iterated element of the scan_inputs. It must return the (updated) values\nof the state_variables and zero or more scan_output_element tensors. The values of the\nscan_output_element tensors are concatenated over all the iterations to produce the\nscan_output values of the scan construct (similar to the concatenated intermediate\nhidden-state values of RNN-like constructs). All the output tensors (state_variables as\nwell as scan_output_element tensors) are required to have the same shape in each iteration\nof the loop (a restriction imposed to enable efficient memory allocation).\n\nNote that the iterated element passed to the body subgraph does not have a sequence\naxis. It will have a rank one less than the rank of the corresponding scan_input.\n\nThe scan operation returns the final values of the state_variables as well as the\nscan_outputs.\n\nThe optional attribute scan_input_directions specifies the direction (forward or backward)\nfor each scan input. If this attribute is omitted, all sequences are scanned in the forward\ndirection. A bidirectional scan may be performed by specifying the same tensor input twice\nin the scan_inputs, once with a forward direction, and once with a backward direction.\n\nThe scan_output of the operation is produced by concatenating the scan_output_element\nvalues produced by the body in each iteration. The optional attribute scan_output_directions\nspecifies the direction in which scan_output is constructed (by appending or prepending the\nscan_output_element to scan_output in each iteration) for each scan_output. If this attribute\nis omitted, the scan_output_element is appended to the scan_output in each iteration.\n\nThe optional attribute scan_input_axes specifies the axis to be scanned for each scan_input.\nIf omitted, every scan_input will be scanned in axis 0. For example, if axis 0 is the\nbatch axis and axis 1 is the time axis (to be scanned), specify an axis value of 1.\nNote that scanning a non-zero axis may be less efficient than scanning axis zero.\n\nThe optional attribute scan_output_axes specifies the axis along which the scan_outputs\nare accumulated for each scan_output. For example, if axis 1 is the time axis (to be\nscanned) for both inputs and outputs, specify a scan_input axis and scan_output axis\nvalue of 1.\n\nNote that because of the ONNX restriction that only the last parameter of an operator can\nbe variadic, the initial-states and scan-inputs are listed together as one input parameter.\nSimilarly, the final-states and scan-outputs are listed together as one output parameter.\nThe attribute num_scan_inputs indicates the number M of scan-inputs.\n\nThe behavior of\n\n Scan <\n num_scan_inputs = m,\n body = loop-body,\n scan_input_axes = [axis_1, ..., axis_m]\n > (init_1, ..., init_n, scan_1, ..., scan_m)\n\nis equivalent to the following pseudo-code:\n\n // scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i\n // scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j.\n sequence_length = scan_1.shape[axis_1];\n\n // initialize state-variables\n st_1 = init_1; ... st_n = init_n;\n // initialize scan-output variables: [] denotes an empty tensor\n scan_out_1 = []; ...; scan_out_k = [];\n // identify number of iterations:\n\n // execute loop\n for (int t = 0; t < sequence_length; ++t) {\n // generate the scan-input elements: the notation T[t] indicates the sub-tensor\n // of rank one less than T obtained by indexing T at position t along axis k.\n si_1 = scan_1[t];\n ... ;\n si_m = scan_m[t];\n // execute loop-body\n st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m)\n // accumulate the scan-output elements\n scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k);\n }\n\n return st_1, ..., st_n, scan_out_1, ..., scan_out_k;\n\n*Sample usage: Encoding RNN using a Scan*\n\nThe following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi,\nrecurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can\nbe encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes\n%Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these\nvalues are computed in the outer graph, they need to be passed in as extra state_variables.\n\n graph rnn-encoding {\n %H_0 = ... \n %X = ...\n %Y_h, %Y = Scan[body = , num_scan_inputs=1](%H_0, %X)\n return %Y, %Y_h\n }\n\n graph rnn-cell-1 (\n %H_tminus1[FLOAT, tensor]\n %X_t[FLOAT, tensor]\n ) {\n %Wi = ...\n %Ri = ...\n %Wbi = ...\n %Rbi = ...\n %t1 = X_t * (Wi^T)\n %t2 = H_tminus1*(Ri^T)\n %t3 = Add(%t1, %t2)\n %t4 = Add(%t3, %Wbi)\n %t5 = Add(%t4, %Rbi)\n %Ht = Tanh(%t5)\n %Accumulate = Identity(%Ht)\n return %Ht, %Accumulate\n }\n\n" +-- +input: "data" +input: "indices" +input: "updates" +output: "output" +name: "Scatter" +op_type: "Scatter" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "updates-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nThis operator is deprecated. Please use ScatterElements, which provides the same functionality.\n\nScatter takes three inputs `data`, `updates`, and `indices` of the same\nrank r >= 1 and an optional attribute axis that identifies an axis of `data`\n(by default, the outer-most axis, that is axis 0). The output of the operation\nis produced by creating a copy of the input `data`, and then updating its value\nto values specified by `updates` at specific index positions specified by\n`indices`. Its output shape is the same as the shape of `data`.\n\nFor each entry in `updates`, the target index in `data` is obtained by combining\nthe corresponding entry in `indices` with the index of the entry itself: the\nindex-value for dimension = axis is obtained from the value of the corresponding\nentry in `indices` and the index-value for dimension != axis is obtained from the\nindex of the entry itself.\n\nFor instance, in a 2-D tensor case, the update corresponding to the [i][j] entry\nis performed as below:\n```\n output[indices[i][j]][j] = updates[i][j] if axis = 0, \n output[i][indices[i][j]] = updates[i][j] if axis = 1,\n```\n\nThis operator is the inverse of GatherElements. It is similar to Torch\'s Scatter operation.\n\nExample 1:\n```\n data = [\n [0.0, 0.0, 0.0],\n [0.0, 0.0, 0.0],\n [0.0, 0.0, 0.0],\n ]\n indices = [\n [1, 0, 2],\n [0, 2, 1],\n ]\n updates = [\n [1.0, 1.1, 1.2],\n [2.0, 2.1, 2.2],\n ]\n output = [\n [2.0, 1.1, 0.0]\n [1.0, 0.0, 2.2]\n [0.0, 2.1, 1.2]\n ]\n```\nExample 2:\n```\n data = [[1.0, 2.0, 3.0, 4.0, 5.0]]\n indices = [[1, 3]]\n updates = [[1.1, 2.1]]\n axis = 1\n output = [[1.0, 1.1, 3.0, 2.1, 5.0]]\n```\n" +-- +input: "data" +input: "indices" +input: "updates" +output: "output" +name: "ScatterElements" +op_type: "ScatterElements" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "updates-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nScatterElements takes three inputs `data`, `updates`, and `indices` of the same\nrank r >= 1 and an optional attribute axis that identifies an axis of `data`\n(by default, the outer-most axis, that is axis 0). The output of the operation\nis produced by creating a copy of the input `data`, and then updating its value\nto values specified by `updates` at specific index positions specified by\n`indices`. Its output shape is the same as the shape of `data`.\n\nFor each entry in `updates`, the target index in `data` is obtained by combining\nthe corresponding entry in `indices` with the index of the entry itself: the\nindex-value for dimension = axis is obtained from the value of the corresponding\nentry in `indices` and the index-value for dimension != axis is obtained from the\nindex of the entry itself.\n\nFor instance, in a 2-D tensor case, the update corresponding to the [i][j] entry\nis performed as below:\n```\n output[indices[i][j]][j] = updates[i][j] if axis = 0, \n output[i][indices[i][j]] = updates[i][j] if axis = 1,\n```\n\nThis operator is the inverse of GatherElements. It is similar to Torch\'s Scatter operation.\n\nExample 1:\n```\n data = [\n [0.0, 0.0, 0.0],\n [0.0, 0.0, 0.0],\n [0.0, 0.0, 0.0],\n ]\n indices = [\n [1, 0, 2],\n [0, 2, 1],\n ]\n updates = [\n [1.0, 1.1, 1.2],\n [2.0, 2.1, 2.2],\n ]\n output = [\n [2.0, 1.1, 0.0]\n [1.0, 0.0, 2.2]\n [0.0, 2.1, 1.2]\n ]\n```\nExample 2:\n```\n data = [[1.0, 2.0, 3.0, 4.0, 5.0]]\n indices = [[1, 3]]\n updates = [[1.1, 2.1]]\n axis = 1\n output = [[1.0, 1.1, 3.0, 2.1, 5.0]]\n```\n" +-- +input: "data" +input: "indices" +input: "updates" +output: "output" +name: "ScatterND" +op_type: "ScatterND" +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "indices-types" + strings: "int64" + type: STRINGS +} +attribute { + name: "updates-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nScatterND takes three inputs `data` tensor of rank r >= 1, `indices` tensor of rank q >= 1,\nand `updates` tensor of rank q + r - indices.shape[-1] - 1. The output of the operation\nis produced by creating a copy of the input `data`, and then updating its value to values\nspecified by `updates` at specific index positions specified by `indices`. Its output shape\nis the same as the shape of `data`. Note that `indices` should not have duplicate entries.\nThat is, two or more `updates` for the same index-location is not supported.\n\n`indices` is an integer tensor. Let k denote indices.shape[-1], the last dimension in the shape of `indices`.\n `indices` is treated as a (q-1)-dimensional tensor of k-tuples, where each k-tuple is a partial-index into `data`.\nHence, k can be a value at most the rank of `data`. When k equals rank(data), each update entry specifies an\nupdate to a single element of the tensor. When k is less than rank(data) each update entry specifies an\nupdate to a slice of the tensor.\n\n`updates` is treated as a (q-1)-dimensional tensor of replacement-slice-values. Thus, the\nfirst (q-1) dimensions of updates.shape must match the first (q-1) dimensions of indices.shape.\nThe remaining dimensions of `updates` correspond to the dimensions of the\nreplacement-slice-values. Each replacement-slice-value is a (r-k) dimensional tensor,\ncorresponding to the trailing (r-k) dimensions of `data`. Thus, the shape of `updates`\nmust equal indices.shape[0:q-1] ++ data.shape[k:r-1], where ++ denotes the concatenation\nof shapes.\n\nThe `output` is calculated via the following equation:\n\n output = np.copy(data)\n update_indices = indices.shape[:-1]\n for idx in np.ndindex(update_indices):\n output[indices[idx]] = updates[idx]\n\nThe order of iteration in the above loop is not specified.\nIn particular, indices should not have duplicate entries: that is, if idx1 != idx2, then indices[idx1] != indices[idx2].\nThis ensures that the output value does not depend on the iteration order.\n\nThis operator is the inverse of GatherND.\n\nExample 1:\n```\n data = [1, 2, 3, 4, 5, 6, 7, 8]\n indices = [[4], [3], [1], [7]]\n updates = [9, 10, 11, 12]\n output = [1, 11, 3, 10, 9, 6, 7, 12]\n```\n\nExample 2:\n```\n data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],\n [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],\n [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]],\n [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]\n indices = [[0], [2]]\n updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],\n [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]]\n output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]],\n [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]],\n [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]],\n [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]]\n```\n" +-- +input: "X" +output: "Y" +name: "Selu" +op_type: "Selu" +attribute { + name: "alpha" + f: 1.6732632 + type: FLOAT +} +attribute { + name: "gamma" + f: 1.050701 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nSelu takes one input data (Tensor) and produces one output data\n(Tensor) where the scaled exponential linear unit function,\n`y = gamma * (alpha * e^x - alpha) for x <= 0`, `y = gamma * x for x > 0`,\nis applied to the tensor elementwise.\n" +-- +input: "input_sequence" +input: "position" +output: "tensor" +name: "SequenceAt" +op_type: "SequenceAt" +attribute { + name: "input_sequence-types" + strings: "seq(float" + strings: "seq(uint32" + strings: "seq(string" + strings: "seq(int64" + strings: "seq(double" + strings: "seq(int8" + strings: "seq(float16" + strings: "seq(bool" + strings: "seq(complex128" + strings: "seq(uint64" + strings: "seq(int16" + strings: "seq(int32" + strings: "seq(uint16" + strings: "seq(complex64" + strings: "seq(uint8" + type: STRINGS +} +attribute { + name: "position-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nOutputs a tensor copy from the tensor at \'position\' in \'input_sequence\'.\nAccepted range for \'position\' is in `[-n, n - 1]`, where `n` is the number of tensors in \'input_sequence\'.\nNegative value means counting positions from the back.\n" +-- +input: "inputs" +output: "output_sequence" +name: "SequenceConstruct" +op_type: "SequenceConstruct" +attribute { + name: "inputs-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nConstruct a tensor sequence containing \'inputs\' tensors.\nAll tensors in \'inputs\' must have the same data type.\n" +-- +output: "output" +name: "SequenceEmpty" +op_type: "SequenceEmpty" +attribute { + name: "dtype" + s: "" + type: INT +} +doc_string: "\nConstruct an empty tensor sequence, with given data type.\n" +-- +input: "input_sequence" +input: "position" +output: "output_sequence" +name: "SequenceErase" +op_type: "SequenceErase" +attribute { + name: "input_sequence-types" + strings: "seq(float" + strings: "seq(uint32" + strings: "seq(string" + strings: "seq(int64" + strings: "seq(double" + strings: "seq(int8" + strings: "seq(float16" + strings: "seq(bool" + strings: "seq(complex128" + strings: "seq(uint64" + strings: "seq(int16" + strings: "seq(int32" + strings: "seq(uint16" + strings: "seq(complex64" + strings: "seq(uint8" + type: STRINGS +} +attribute { + name: "position-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nOutputs a tensor sequence that removes the tensor at \'position\' from \'input_sequence\'.\nAccepted range for \'position\' is in `[-n, n - 1]`, where `n` is the number of tensors in \'input_sequence\'.\nNegative value means counting positions from the back.\n\'position\' is optional, by default it erases the last tensor from \'input_sequence\'.\n" +-- +input: "input_sequence" +input: "tensor" +input: "position" +output: "output_sequence" +name: "SequenceInsert" +op_type: "SequenceInsert" +attribute { + name: "input_sequence-types" + strings: "seq(float" + strings: "seq(uint32" + strings: "seq(string" + strings: "seq(int64" + strings: "seq(double" + strings: "seq(int8" + strings: "seq(float16" + strings: "seq(bool" + strings: "seq(complex128" + strings: "seq(uint64" + strings: "seq(int16" + strings: "seq(int32" + strings: "seq(uint16" + strings: "seq(complex64" + strings: "seq(uint8" + type: STRINGS +} +attribute { + name: "tensor-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "position-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nOutputs a tensor sequence that inserts \'tensor\' into \'input_sequence\' at \'position\'.\n\'tensor\' must have the same data type as \'input_sequence\'.\nAccepted range for \'position\' is in `[-n, n]`, where `n` is the number of tensors in \'input_sequence\'.\nNegative value means counting positions from the back.\n\'position\' is optional, by default it inserts \'tensor\' to the back of \'input_sequence\'.\n" +-- +input: "input_sequence" +output: "length" +name: "SequenceLength" +op_type: "SequenceLength" +attribute { + name: "input_sequence-types" + strings: "seq(float" + strings: "seq(uint32" + strings: "seq(string" + strings: "seq(int64" + strings: "seq(double" + strings: "seq(int8" + strings: "seq(float16" + strings: "seq(bool" + strings: "seq(complex128" + strings: "seq(uint64" + strings: "seq(int16" + strings: "seq(int32" + strings: "seq(uint16" + strings: "seq(complex64" + strings: "seq(uint8" + type: STRINGS +} +doc_string: "\nProduces a scalar(tensor of empty shape) containing the number of tensors in \'input_sequence\'.\n" +-- +input: "data" +output: "shape" +name: "Shape" +op_type: "Shape" +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nTakes a tensor as input and outputs an 1D int64 tensor containing the shape of the input tensor.\n" +-- +input: "input" +output: "output" +name: "Shrink" +op_type: "Shrink" +attribute { + name: "bias" + f: 0.0 + type: FLOAT +} +attribute { + name: "lambd" + f: 0.5 + type: FLOAT +} +attribute { + name: "input-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nShrink takes one input data (Tensor) and produces one Tensor output,\nhaving same datatype and shape with input. It has two attributes, lambd and\nbias. The formula of this operator is: If x < -lambd, y = x + bias;\nIf x > lambd, y = x - bias; Otherwise, y = 0.\n" +-- +input: "X" +output: "Y" +name: "Sigmoid" +op_type: "Sigmoid" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nSigmoid takes one input data (Tensor) and produces one output data\n(Tensor) where the sigmoid function, y = 1 / (1 + exp(-x)), is applied to the\ntensor elementwise.\n" +-- +input: "input" +output: "output" +name: "Sign" +op_type: "Sign" +attribute { + name: "input-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nCalculate the sign of the given input tensor element-wise.\nIf input > 0, output 1. if input < 0, output -1. if input == 0, output 0.\n" +-- +input: "input" +output: "output" +name: "Sin" +op_type: "Sin" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the sine of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Sinh" +op_type: "Sinh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic sine of the given input tensor element-wise.\n" +-- +input: "data" +output: "size" +name: "Size" +op_type: "Size" +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nTakes a tensor as input and outputs a int64 scalar that equals to the total number of elements of the input tensor.\n" +-- +input: "data" +input: "starts" +input: "ends" +input: "axes" +input: "steps" +output: "output" +name: "Slice" +op_type: "Slice" +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "starts-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "ends-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "axes-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "steps-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "\nProduces a slice of the input tensor along multiple axes. Similar to numpy:\nhttps://docs.scipy.org/doc/numpy/reference/arrays.indexing.html\nSlices uses `starts`, `ends`, `axes` and `steps` inputs to specify the start and end\ndimension and step for each axis in the list of axes, it uses this information to\nslice the input `data` tensor. If a negative value is passed for any of the\nstart or end indices, it represents number of elements before the end of that\ndimension. If the value passed to start or end is larger than the `n` (the\nnumber of elements in this dimension), it represents `n`. For slicing to the\nend of a dimension with unknown size, it is recommended to pass in `INT_MAX` \nwhen sclicing forward and \'INT_MIN\' when slicing backward.\nIf a negative value is passed for step, it represents slicing backward. \nHowever step value cannot be 0.\nIf `axes` are omitted, they are set to `[0, ..., ndim-1]`.\nIf `steps` are omitted, they are set to `[1, ..., 1]` of length `len(starts)`\nExample 1:\n data = [\n [1, 2, 3, 4],\n [5, 6, 7, 8],\n ]\n axes = [0, 1]\n starts = [1, 0]\n ends = [2, 3]\n steps = [1, 2]\n result = [\n [5, 7],\n ]\nExample 2:\n data = [\n [1, 2, 3, 4],\n [5, 6, 7, 8],\n ]\n starts = [0, 1]\n ends = [-1, 1000]\n result = [\n [2, 3, 4],\n ]\n" +-- +input: "input" +output: "output" +name: "Softmax" +op_type: "Softmax" +attribute { + name: "axis" + i: 1 + type: INT +} +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThe operator computes the softmax (normalized exponential) values for each layer in the batch\n of the given input.\n\nThe input does not need to explicitly be a 2D vector; rather, it will be\ncoerced into one. For an arbitrary n-dimensional tensor\ninput \\in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is\nthe axis provided, then input will be coerced into a 2-dimensional tensor with\ndimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default\ncase where axis=1, this means the input tensor will be coerced into a 2D tensor\nof dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size.\nIn this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D.\nEach of these dimensions must be matched correctly, or else the operator\nwill throw errors. The output tensor has the same shape\nand contains the softmax values of the corresponding input.\n" +-- +input: "scores" +input: "labels" +input: "weights" +output: "output" +output: "log_prob" +name: "SoftmaxCrossEntropyLoss" +op_type: "SoftmaxCrossEntropyLoss" +attribute { + name: "ignore_index" + s: "" + type: INT +} +attribute { + name: "reduction" + s: "mean" + type: STRING +} +attribute { + name: "scores-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +attribute { + name: "labels-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +attribute { + name: "weights-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "Loss function that measures the softmax cross entropy\nbetween \'scores\' and \'labels\'.\nThis operator first computes a loss tensor whose shape is identical to the labels input.\nIf the input is 2-D with shape (N, C), the loss tensor may be a N-element vector L = (l_1, l_2, ..., l_N).\nIf the input is N-D tensor with shape (N, C, D1, D2, ..., Dk),\nthe loss tensor L may have (N, D1, D2, ..., Dk) as its shape and L[i,][j_1][j_2]...[j_k] denotes a scalar element in L.\nAfter L is available, this operator can optionally do a reduction operator.\n\nshape(scores): (N, C) where C is the number of classes, or (N, C, D1, D2,..., Dk),\n with K >= 1 in case of K-dimensional loss.\nshape(labels): (N) where each value is 0 <= labels[i] <= C-1, or (N, D1, D2,..., Dk),\n with K >= 1 in case of K-dimensional loss.\n\nThe loss for one sample, l_i, can caculated as follows:\n l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk], where i is the index of classes.\nor\n l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk] * weights[c], if \'weights\' is provided.\n\nloss is zero for the case when label-value equals ignore_index.\n l[i][d1][d2]...[dk] = 0, when labels[n][d1][d2]...[dk] = ignore_index\n\nwhere:\n p = Softmax(scores)\n y = Log(p)\n c = labels[i][d1][d2]...[dk]\n\nFinally, L is optionally reduced:\nIf reduction = \'none\', the output is L with shape (N, D1, D2, ..., Dk).\nIf reduction = \'sum\', the output is scalar: Sum(L).\nIf reduction = \'mean\', the output is scalar: ReduceMean(L), or if weight is provided: ReduceSum(L) / ReduceSum(W),\nwhere tensor W is of shape (N, D1, D2, ..., Dk) and W[n][d1][d2]...[dk] = weights[labels[i][d1][d2]...[dk]].\n" +-- +input: "X" +output: "Y" +name: "Softplus" +op_type: "Softplus" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nSoftplus takes one input data (Tensor) and produces one output data\n(Tensor) where the softplus function, y = ln(exp(x) + 1), is applied to\nthe tensor elementwise.\n" +-- +input: "input" +output: "output" +name: "Softsign" +op_type: "Softsign" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the softsign (x/(1+|x|)) of the given input tensor element-wise.\n" +-- +input: "input" +output: "output" +name: "SpaceToDepth" +op_type: "SpaceToDepth" +attribute { + name: "blocksize" + s: "" + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "SpaceToDepth rearranges blocks of spatial data into depth. More specifically,\nthis op outputs a copy of the input tensor where values from the height and width dimensions\nare moved to the depth dimension.\n" +-- +input: "input" +output: "outputs" +name: "Split" +op_type: "Split" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "split" + s: "" + type: INTS +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "Split a tensor into a list of tensors, along the specified\n\'axis\'. Lengths of the parts can be specified using argument \'split\'.\nOtherwise, the tensor is split to equal sized parts.\n" +-- +input: "input" +input: "split" +output: "output_sequence" +name: "SplitToSequence" +op_type: "SplitToSequence" +attribute { + name: "axis" + i: 0 + type: INT +} +attribute { + name: "keepdims" + i: 1 + type: INT +} +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "split-types" + strings: "int32" + strings: "int64" + type: STRINGS +} +doc_string: "Split a tensor into a sequence of tensors, along the specified\n\'axis\'. Lengths of the parts can be specified using argument \'split\'.\n\'split\' must contain only positive numbers.\n\'split\' is either a scalar (tensor of empty shape), or a 1-D tensor.\nIf \'split\' is a scalar, then \'input\' will be split into equally sized chunks(if possible).\nLast chunk will be smaller if the \'input\' size along the given axis \'axis\' is not divisible\nby \'split\'.\nOtherwise, the tensor is split into \'size(split)\' chunks, with lengths of the parts on \'axis\'\nspecified in \'split\'. In this scenario, the sum of entries in \'split\' must be equal to the\ndimension size of input tensor on \'axis\'.\n" +-- +input: "X" +output: "Y" +name: "Sqrt" +op_type: "Sqrt" +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nSquare root takes one input data (Tensor) and produces one output data\n(Tensor) where the square root is, y = x^0.5, is applied to\nthe tensor elementwise. If x is negative, then it will return NaN.\n" +-- +input: "data" +output: "squeezed" +name: "Squeeze" +op_type: "Squeeze" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nRemove single-dimensional entries from the shape of a tensor.\nTakes a parameter `axes` with a list of axes to squeeze.\nIf `axes` is not provided, all the single dimensions will be removed from\nthe shape. If an axis is selected with shape entry not equal to one, an error is raised.\n" +-- +input: "X" +output: "Y" +name: "StringNormalizer" +op_type: "StringNormalizer" +attribute { + name: "case_change_action" + s: "NONE" + type: STRING +} +attribute { + name: "is_case_sensitive" + i: 0 + type: INT +} +attribute { + name: "locale" + s: "" + type: STRING +} +attribute { + name: "stopwords" + s: "" + type: STRINGS +} +attribute { + name: "X-types" + strings: "string" + type: STRINGS +} +doc_string: "\nStringNormalization performs string operations for basic cleaning.\nThis operator has only one input (denoted by X) and only one output\n(denoted by Y). This operator first examines the elements in the X,\nand removes elements specified in \"stopwords\" attribute.\nAfter removing stop words, the intermediate result can be further lowercased,\nuppercased, or just returned depending the \"case_change_action\" attribute.\nThis operator only accepts [C]- and [1, C]-tensor.\nIf all elements in X are dropped, the output will be the empty value of string tensor with shape [1]\nif input shape is [C] and shape [1, 1] if input shape is [1, C].\n" +-- +input: "A" +input: "B" +output: "C" +name: "Sub" +op_type: "Sub" +attribute { + name: "A-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +attribute { + name: "B-types" + strings: "int64" + strings: "double" + strings: "uint32" + strings: "float" + strings: "uint64" + strings: "float16" + strings: "int32" + type: STRINGS +} +doc_string: "\nPerforms element-wise binary subtraction (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "data_0" +output: "sum" +name: "Sum" +op_type: "Sum" +attribute { + name: "data_0-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nElement-wise sum of each of the input tensors (with Numpy-style broadcasting support).\nAll inputs and outputs must have the same data type.\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "input" +output: "output" +name: "Tan" +op_type: "Tan" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the tangent of the given input tensor, element-wise.\n" +-- +input: "input" +output: "output" +name: "Tanh" +op_type: "Tanh" +attribute { + name: "input-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nCalculates the hyperbolic tangent of the given input tensor element-wise.\n" +-- +input: "X" +output: "Y" +name: "TfIdfVectorizer" +op_type: "TfIdfVectorizer" +attribute { + name: "max_gram_length" + s: "" + type: INT +} +attribute { + name: "max_skip_count" + s: "" + type: INT +} +attribute { + name: "min_gram_length" + s: "" + type: INT +} +attribute { + name: "mode" + s: "" + type: STRING +} +attribute { + name: "ngram_counts" + s: "" + type: INTS +} +attribute { + name: "ngram_indexes" + s: "" + type: INTS +} +attribute { + name: "pool_int64s" + s: "" + type: INTS +} +attribute { + name: "pool_strings" + s: "" + type: STRINGS +} +attribute { + name: "weights" + s: "" + type: FLOATS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "string" + type: STRINGS +} +doc_string: "\nThis transform extracts n-grams from the input sequence and save them as a vector. Input can\nbe either a 1-D or 2-D tensor. For 1-D input, output is the n-gram representation of that input.\nFor 2-D input, the output is also a 2-D tensor whose i-th row is the n-gram representation of the i-th input row.\nMore specifically, if input shape is [C], the corresponding output shape would be [max(ngram_indexes) + 1].\nIf input shape is [N, C], this operator produces a [N, max(ngram_indexes) + 1]-tensor.\n\nIn contrast to standard n-gram extraction, here, the indexes of extracting an n-gram from the original\nsequence are not necessarily consecutive numbers. The discontinuity between indexes are controlled by the number of skips.\nIf the number of skips is 2, we should skip two tokens when scanning through the original sequence.\nLet\'s consider an example. Assume that input sequence is [94, 17, 36, 12, 28] and the number of skips is 2.\nThe associated 2-grams are [94, 12] and [17, 28] respectively indexed by [0, 3] and [1, 4].\nIf the number of skips becomes 0, the 2-grams generated are [94, 17], [17, 36], [36, 12], [12, 28]\nindexed by [0, 1], [1, 2], [2, 3], [3, 4], respectively.\n\nThe output vector (denoted by Y) stores the count of each n-gram;\nY[ngram_indexes[i]] indicates the times that the i-th n-gram is found. The attribute ngram_indexes is used to determine the mapping\nbetween index i and the corresponding n-gram\'s output coordinate. If pool_int64s is [94, 17, 17, 36], ngram_indexes is [1, 0],\nngram_counts=[0, 0], then the Y[0] (first element in Y) and Y[1] (second element in Y) are the counts of [17, 36] and [94, 17],\nrespectively. An n-gram which cannot be found in pool_strings/pool_int64s should be ignored and has no effect on the output.\nNote that we may consider all skips up to S when generating the n-grams.\n\nThe examples used above are true if mode is \"TF\". If mode is \"IDF\", all the counts larger than 1 would be truncated to 1 and\nthe i-th element in weights would be used to scale (by multiplication) the count of the i-th n-gram in pool. If mode is \"TFIDF\",\nthis operator first computes the counts of all n-grams and then scale them by the associated values in the weights attribute.\n\nOnly one of pool_strings and pool_int64s can be set. If pool_int64s is set, the input should be an integer tensor.\nIf pool_strings is set, the input must be a string tensor.\n" +-- +input: "X" +output: "Y" +name: "ThresholdedRelu" +op_type: "ThresholdedRelu" +attribute { + name: "alpha" + f: 1.0 + type: FLOAT +} +attribute { + name: "X-types" + strings: "double" + strings: "float" + strings: "float16" + type: STRINGS +} +doc_string: "\nThresholdedRelu takes one input data (Tensor) and produces one output data\n(Tensor) where the rectified linear function, y = x for x > alpha, y = 0 otherwise,\nis applied to the tensor elementwise.\n" +-- +input: "input" +input: "repeats" +output: "output" +name: "Tile" +op_type: "Tile" +attribute { + name: "input-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "repeats-types" + strings: "int64" + type: STRINGS +} +doc_string: "Constructs a tensor by tiling a given tensor.\nThis is the same as function `tile` in Numpy, but no broadcast.\nFor example A = [[1, 2], [3, 4]], B = [1, 2], tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]]\n" +-- +input: "X" +input: "K" +output: "Values" +output: "Indices" +name: "TopK" +op_type: "TopK" +attribute { + name: "axis" + i: -1 + type: INT +} +attribute { + name: "largest" + i: 1 + type: INT +} +attribute { + name: "sorted" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "uint16" + strings: "int64" + strings: "float" + strings: "uint32" + strings: "double" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "K-types" + strings: "int64" + type: STRINGS +} +doc_string: "\nRetrieve the top-K largest or smallest elements along a specified axis. Given an input tensor of\nshape [a_1, a_2, ..., a_n, r] and integer argument k, return two outputs:\n -Value tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n]\n which contains the values of the top k elements along the specified axis\n -Index tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] which\n contains the indices of the top k elements (original indices from the input\n tensor).\n\nIf \"largest\" is 1 (the default value) then the k largest elements are returned.\nIf \"sorted\" is 1 (the default value) then the resulting k elements will be sorted.\nIf \"sorted\" is 0, order of returned \'Values\' and \'Indices\' are undefined.\n\nGiven two equivalent values, this operator uses the indices along the axis as\n a tiebreaker. That is, the element with the lower index will appear first.\n" +-- +input: "data" +output: "transposed" +name: "Transpose" +op_type: "Transpose" +attribute { + name: "perm" + s: "" + type: INTS +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nTranspose the input tensor similar to numpy.transpose. For example, when\nperm=(1, 0, 2), given an input tensor of shape (1, 2, 3), the output shape\nwill be (2, 1, 3).\n" +-- +input: "X" +output: "Y" +output: "Z" +name: "TreeEnsembleClassifier" +op_type: "TreeEnsembleClassifier" +attribute { + name: "base_values" + s: "" + type: FLOATS +} +attribute { + name: "class_ids" + s: "" + type: INTS +} +attribute { + name: "class_nodeids" + s: "" + type: INTS +} +attribute { + name: "class_treeids" + s: "" + type: INTS +} +attribute { + name: "class_weights" + s: "" + type: FLOATS +} +attribute { + name: "classlabels_int64s" + s: "" + type: INTS +} +attribute { + name: "classlabels_strings" + s: "" + type: STRINGS +} +attribute { + name: "nodes_falsenodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_featureids" + s: "" + type: INTS +} +attribute { + name: "nodes_hitrates" + s: "" + type: FLOATS +} +attribute { + name: "nodes_missing_value_tracks_true" + s: "" + type: INTS +} +attribute { + name: "nodes_modes" + s: "" + type: STRINGS +} +attribute { + name: "nodes_nodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_treeids" + s: "" + type: INTS +} +attribute { + name: "nodes_truenodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_values" + s: "" + type: FLOATS +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Tree Ensemble classifier. Returns the top class for each of N inputs.
\n The attributes named \'nodes_X\' form a sequence of tuples, associated by \n index into the sequences, which must all be of equal length. These tuples\n define the nodes.
\n Similarly, all fields prefixed with \'class_\' are tuples of votes at the leaves.\n A leaf may have multiple votes, where each vote is weighted by\n the associated class_weights index.
\n One and only one of classlabels_strings or classlabels_int64s\n will be defined. The class_ids are indices into this list.\n" +-- +input: "X" +output: "Y" +name: "TreeEnsembleRegressor" +op_type: "TreeEnsembleRegressor" +attribute { + name: "aggregate_function" + s: "SUM" + type: STRING +} +attribute { + name: "base_values" + s: "" + type: FLOATS +} +attribute { + name: "n_targets" + s: "" + type: INT +} +attribute { + name: "nodes_falsenodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_featureids" + s: "" + type: INTS +} +attribute { + name: "nodes_hitrates" + s: "" + type: FLOATS +} +attribute { + name: "nodes_missing_value_tracks_true" + s: "" + type: INTS +} +attribute { + name: "nodes_modes" + s: "" + type: STRINGS +} +attribute { + name: "nodes_nodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_treeids" + s: "" + type: INTS +} +attribute { + name: "nodes_truenodeids" + s: "" + type: INTS +} +attribute { + name: "nodes_values" + s: "" + type: FLOATS +} +attribute { + name: "post_transform" + s: "NONE" + type: STRING +} +attribute { + name: "target_ids" + s: "" + type: INTS +} +attribute { + name: "target_nodeids" + s: "" + type: INTS +} +attribute { + name: "target_treeids" + s: "" + type: INTS +} +attribute { + name: "target_weights" + s: "" + type: FLOATS +} +attribute { + name: "X-types" + strings: "int32" + strings: "int64" + strings: "double" + strings: "float" + type: STRINGS +} +doc_string: "\n Tree Ensemble regressor. Returns the regressed values for each input in N.
\n All args with nodes_ are fields of a tuple of tree nodes, and\n it is assumed they are the same length, and an index i will decode the\n tuple across these inputs. Each node id can appear only once\n for each tree id.
\n All fields prefixed with target_ are tuples of votes at the leaves.
\n A leaf may have multiple votes, where each vote is weighted by\n the associated target_weights index.
\n All trees must have their node ids start at 0 and increment by 1.
\n Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF\n" +-- +input: "X" +output: "Y" +output: "indices" +output: "inverse_indices" +output: "counts" +name: "Unique" +op_type: "Unique" +attribute { + name: "axis" + s: "" + type: INT +} +attribute { + name: "sorted" + i: 1 + type: INT +} +attribute { + name: "X-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nFind the unique elements of a tensor. When an optional attribute \'axis\' is provided, unique subtensors sliced along the \'axis\' are returned. \nOtherwise the input tensor is flattened and unique values of the flattened tensor are returned. \n\nThis operator returns the unique values or sliced unique subtensors of the input tensor and three optional outputs. \nThe first output tensor \'Y\' contains all unique values or subtensors of the input. \nThe second optional output tensor \'indices\' contains indices of \'Y\' elements\' first occurance in \'X\'.. \nThe third optional output tensor \'inverse_indices\' contains, for elements of \'X\', its corresponding indices in \'Y\'. \". \nThe fourth optional output tensor \'counts\' contains the count of each element of \'Y\' in the input. \n\nOutputs are either sorted in ascending order or optionally in the order of the first occurrence of the values in the input. \n\nhttps://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html\n\nExample 1:\n input_X = [2, 1, 1, 3, 4, 3]\n attribute_sorted = 0\n attribute_axis = None\n output_Y = [2, 1, 3, 4]\n output_indices = [0, 1, 3, 4]\n output_inverse_indices = [0, 1, 1, 2, 3, 2]\n output_counts = [1, 2, 2, 1]\n\nExample 2:\n input_X = [[1, 3], [2, 3]]\n attribute_sorted = 1\n attribute_axis = None\n output_Y = [1, 2, 3]\n output_indices = [0, 2, 1]\n output_inverse_indices = [0, 2, 1, 2]\n output_counts = [1, 1, 2]\n\nExample 3:\n input_X = [[1, 0, 0], [1, 0, 0], [2, 3, 4]]\n attribute_sorted = 1\n attribute_axis = 0\n output_Y = [[1, 0, 0], [2, 3, 4]]\n output_indices = [0, 2]\n output_inverse_indices = [0, 0, 1]\n output_counts = [2, 1]\n\nExample 4:\n input_x = [[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], \n [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]]\n attribute_sorted = 1\n attribute_axis = 1\n\n intermediate data are presented below for better understanding: \n \n there are 4 subtensors sliced along axis 1 of input_x (shape = (2, 4, 2)):\n A: [[1, 1], [1, 1]], \n [[0, 1], [0, 1]], \n [[2, 1], [2, 1]], \n [[0, 1], [0, 1]].\n \n there are 3 unique subtensors: \n [[1, 1], [1, 1]], \n [[0, 1], [0, 1]], \n [[2, 1], [2, 1]].\n \n sorted unique subtensors:\n B: [[0, 1], [0, 1]], \n [[1, 1], [1, 1]], \n [[2, 1], [2, 1]].\n \n output_Y is constructed from B:\n [[[0. 1.], [1. 1.], [2. 1.]], \n [[0. 1.], [1. 1.], [2. 1.]]]\n\n output_indices is to map from B to A:\n [1, 0, 2]\n \n output_inverse_indices is to map from A to B:\n [1, 0, 2, 0]\n\n output_counts = [2 1 1]\n" +-- +input: "data" +output: "expanded" +name: "Unsqueeze" +op_type: "Unsqueeze" +attribute { + name: "axes" + s: "" + type: INTS +} +attribute { + name: "data-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\nInsert single-dimensional entries to the shape of an input tensor (`data`).\nTakes one required argument `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`).\n\nFor example:\n Given an input tensor (`data`) of shape [3, 4, 5], then\n Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1].\n\nThe attribute `axes` should not contain any duplicate entries. It is an error if it contains duplicates.\nThe rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`.\nEach value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. \nThe order of values in `axes` does not matter and can come in any order. \n\n" +-- +input: "X" +input: "scales" +output: "Y" +name: "Upsample" +op_type: "Upsample" +attribute { + name: "mode" + s: "nearest" + type: STRING +} +attribute { + name: "X-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "scales-types" + strings: "float" + type: STRINGS +} +doc_string: "\nUpsample the input tensor.\nEach dimension value of the output tensor is:\n output_dimension = floor(input_dimension * scale).\n" +-- +input: "condition" +input: "X" +input: "Y" +output: "output" +name: "Where" +op_type: "Where" +attribute { + name: "condition-types" + strings: "bool" + type: STRINGS +} +attribute { + name: "X-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +attribute { + name: "Y-types" + strings: "bool" + strings: "uint16" + strings: "int64" + strings: "string" + strings: "float" + strings: "uint32" + strings: "double" + strings: "complex64" + strings: "complex128" + strings: "uint64" + strings: "int16" + strings: "float16" + strings: "int32" + strings: "int8" + strings: "uint8" + type: STRINGS +} +doc_string: "\n Return elements, either from X or Y, depending on condition\n (with Numpy-style broadcasting support).\n Where behaves like numpy.where with three parameters:\n https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html\n" +-- +input: "A" +input: "B" +output: "C" +name: "Xor" +op_type: "Xor" +attribute { + name: "A-types" + strings: "bool" + type: STRINGS +} +attribute { + name: "B-types" + strings: "bool" + type: STRINGS +} +doc_string: "\nReturns the tensor resulted from performing the `xor` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n" +-- +input: "X" +output: "Z" +name: "ZipMap" +op_type: "ZipMap" +attribute { + name: "classlabels_int64s" + s: "" + type: INTS +} +attribute { + name: "classlabels_strings" + s: "" + type: STRINGS +} +attribute { + name: "X-types" + strings: "float" + type: STRINGS +} +doc_string: "\n Creates a map from the input and the attributes.
\n The values are provided by the input tensor, while the keys are specified by the attributes.\n Must provide keys in either classlabels_strings or classlabels_int64s (but not both).
\n The columns of the tensor correspond one-by-one to the keys specified by the attributes. There must be as many columns as keys.
\n" +-- diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-defs.pb b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-defs.pb new file mode 100644 index 000000000..023f31b24 Binary files /dev/null and b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/onnx-op-defs.pb differ diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-mapping-ruleset.pbtxt b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-mapping-ruleset.pbtxt new file mode 100644 index 000000000..2c711166c --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-mapping-ruleset.pbtxt @@ -0,0 +1,15919 @@ +mappings { + frameworkName: "tensorflow" + opName: "unique" + inputFrameworkOpName: "UniqueV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "UniqueV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "conv2d" + inputFrameworkOpName: "Conv2D" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "filter" + outputTensorName: "input" + outputTensorName: "weights" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "weights" + value: "filter" + } + ruleType: "tensor" + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "wFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 9 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kH" + int64Value: -1 + argType: INT64 + } + } + inputFrameworkOpName: "Conv2D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kW" + int64Value: -1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "Conv2D" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_poisson" + inputFrameworkOpName: "RandomPoisson" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + inputTensorName: "rate" + outputTensorName: "shape" + outputTensorName: "lambda" + inputToOutput { + key: "shape" + value: "shape" + } + inputToOutput { + key: "lambda" + value: "rate" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomPoisson" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "seed" + value: "seed" + } + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomPoisson" + } +} +mappings { + frameworkName: "tensorflow" + opName: "maxpool2d" + inputFrameworkOpName: "MaxPool" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + int64Value: 1 + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 10 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "kH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + inputFrameworkOpName: "MaxPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "kW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + inputFrameworkOpName: "MaxPool" + } +} +mappings { + frameworkName: "tensorflow" + opName: "size" + inputFrameworkOpName: "Size" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Size" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "out_type" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "out_type" + } + ruleType: "attribute" + inputFrameworkOpName: "Size" + } +} +mappings { + frameworkName: "tensorflow" + opName: "squaredsubtract" + inputFrameworkOpName: "SquaredDifference" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "SquaredDifference" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "SquaredDifference" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "SquaredDifference" + } +} +mappings { + frameworkName: "tensorflow" + opName: "randomuniform" + inputFrameworkOpName: "StatelessRandomUniform" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + outputTensorName: "shape" + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "StatelessRandomUniform" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "max" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "max" + doubleValue: 1.0 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "StatelessRandomUniform" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "min" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "min" + argType: DOUBLE + } + } + inputFrameworkOpName: "StatelessRandomUniform" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "seed" + inputToOutput { + key: "seed" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "StatelessRandomUniform" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "dtype" + inputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "StatelessRandomUniform" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "StatelessRandomUniform" + } +} +mappings { + frameworkName: "tensorflow" + opName: "shift_bits" + inputFrameworkOpName: "LeftShift" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "LeftShift" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LeftShift" + } +} +mappings { + frameworkName: "tensorflow" + opName: "isinf" + inputFrameworkOpName: "IsInf" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "IsInf" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "IsInf" + } +} +mappings { + frameworkName: "tensorflow" + opName: "digamma" + inputFrameworkOpName: "Digamma" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Digamma" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_shuffle" + inputFrameworkOpName: "RandomShuffle" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "value" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomShuffle" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seeds" + inputToOutput { + key: "seeds" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomShuffle" + } +} +mappings { + frameworkName: "tensorflow" + opName: "adjust_hue" + inputFrameworkOpName: "AdjustHue" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "delta" + outputTensorName: "input" + outputTensorName: "delta" + inputToOutput { + key: "input" + value: "images" + } + inputToOutput { + key: "delta" + value: "delta" + } + ruleType: "tensor" + inputFrameworkOpName: "AdjustHue" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimC" + int64Value: -1 + argType: INT64 + } + } + inputFrameworkOpName: "AdjustHue" + } +} +mappings { + frameworkName: "tensorflow" + opName: "Assert" + inputFrameworkOpName: "Assert" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "condition" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "condition" + } + ruleType: "tensor" + inputFrameworkOpName: "Assert" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_determinant" + inputFrameworkOpName: "MatrixDeterminant" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixDeterminant" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "MatrixDeterminant" + } +} +mappings { + frameworkName: "tensorflow" + opName: "adjust_saturation" + inputFrameworkOpName: "AdjustSaturation" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "scale" + outputTensorName: "input" + outputTensorName: "factor" + inputToOutput { + key: "input" + value: "images" + } + inputToOutput { + key: "factor" + value: "scale" + } + ruleType: "tensor" + inputFrameworkOpName: "AdjustSaturation" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimC" + int64Value: -1 + argType: INT64 + } + } + inputFrameworkOpName: "AdjustSaturation" + } +} +mappings { + frameworkName: "tensorflow" + opName: "ones_as" + inputFrameworkOpName: "OnesLike" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "OnesLike" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "dataType" + inputDataTypeName: "T" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "OnesLike" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_min" + inputFrameworkOpName: "TensorScatterMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "tensor" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "TensorScatterMin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "squeeze" + inputFrameworkOpName: "Squeeze" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Squeeze" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "_a" + inputToOutput { + key: "_a" + value: "squeeze_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Squeeze" + } +} +mappings { + frameworkName: "tensorflow" + opName: "stack" + inputFrameworkOpName: "Pack" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "values" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "values" + } + ruleType: "tensor" + inputFrameworkOpName: "Pack" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dimensions" + value: "axis" + } + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Pack" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unsorted_segment_prod" + inputFrameworkOpName: "UnsortedSegmentProd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + inputTensorName: "num_segments" + outputTensorName: "input" + outputTensorName: "idxSegments" + outputTensorName: "numSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "tensor" + inputFrameworkOpName: "UnsortedSegmentProd" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "numSegments" + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "attribute" + inputFrameworkOpName: "UnsortedSegmentProd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "subtract" + inputFrameworkOpName: "Sub" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Sub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sub" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sub" + } +} +mappings { + frameworkName: "tensorflow" + opName: "not_equals" + inputFrameworkOpName: "NotEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "NotEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "NotEqual" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "NotEqual" + } +} +mappings { + frameworkName: "tensorflow" + opName: "expm1" + inputFrameworkOpName: "Expm1" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Expm1" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Expm1" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Expm1" + } +} +mappings { + frameworkName: "tensorflow" + opName: "relu6" + inputFrameworkOpName: "Relu6" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Relu6" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Relu6" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "cutoff" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + transformerArgs { + name: "cutoff" + argType: DOUBLE + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + transformerArgs { + name: "cutoff" + argType: DOUBLE + } + } + inputFrameworkOpName: "Relu6" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reduce_sum" + inputFrameworkOpName: "Sum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Sum" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Sum" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Sum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "dynamic_stitch" + inputFrameworkOpName: "DynamicStitch" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "DynamicStitch" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "N" + outputIntName: "numPartitions" + inputToOutput { + key: "numPartitions" + value: "N" + } + ruleType: "attribute" + inputFrameworkOpName: "DynamicStitch" + } +} +mappings { + frameworkName: "tensorflow" + opName: "argmax" + inputFrameworkOpName: "ArgMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "dimension" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "dimension" + } + ruleType: "tensor" + inputFrameworkOpName: "ArgMax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "keepDims" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "keepDims" + argType: BOOL + } + } + inputFrameworkOpName: "ArgMax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "expand_dims" + inputFrameworkOpName: "ExpandDims" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "ExpandDims" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "dim" + } + ruleType: "attribute" + inputFrameworkOpName: "ExpandDims" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reduce_min" + inputFrameworkOpName: "Min" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Min" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Min" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Min" + } +} +mappings { + frameworkName: "tensorflow" + opName: "space_to_batch" + inputFrameworkOpName: "SpaceToBatch" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "paddings" + outputTensorName: "input" + outputTensorName: "padding" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "padding" + value: "paddings" + } + ruleType: "tensor" + inputFrameworkOpName: "SpaceToBatch" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "block_size" + outputIntName: "blockSize" + inputToOutput { + key: "blockSize" + value: "block_size" + } + ruleType: "attribute" + inputFrameworkOpName: "SpaceToBatch" + } +} +mappings { + frameworkName: "tensorflow" + opName: "bitwise_xor" + inputFrameworkOpName: "BitwiseXor" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "BitwiseXor" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BitwiseXor" + } +} +mappings { + frameworkName: "tensorflow" + opName: "concat" + inputFrameworkOpName: "ParallelConcat" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "values" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "values" + } + ruleType: "tensor" + inputFrameworkOpName: "ParallelConcat" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isDynamicAxis" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isDynamicAxis" + argType: BOOL + } + } + inputFrameworkOpName: "ParallelConcat" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "ParallelConcat" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "concatDimension" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "concatDimension" + argType: INT64 + } + } + inputFrameworkOpName: "ParallelConcat" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_list" + inputFrameworkOpName: "TensorArrayScatterV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayScatterV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayScatterV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_list" + inputFrameworkOpName: "TensorArrayScatterV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayScatterV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayScatterV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "Pow" + inputFrameworkOpName: "Pow" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Pow" + } +} +mappings { + frameworkName: "tensorflow" + opName: "split" + inputFrameworkOpName: "Split" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "split_dim" + inputTensorName: "value" + outputTensorName: "a" + outputTensorName: "b" + inputToOutput { + key: "a" + value: "split_dim" + } + inputToOutput { + key: "b" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "Split" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_split" + outputIntName: "numSplit" + inputToOutput { + key: "numSplit" + value: "num_split" + } + ruleType: "attribute" + inputFrameworkOpName: "Split" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "split_dim" + } + ruleType: "attribute" + inputFrameworkOpName: "Split" + } +} +mappings { + frameworkName: "tensorflow" + opName: "Where" + inputFrameworkOpName: "Where" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "condition" + inputToOutput { + key: "condition" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Where" + } +} +mappings { + frameworkName: "tensorflow" + opName: "svd" + inputFrameworkOpName: "Svd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Svd" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "fullUV" + inputBooleanName: "compute_uv" + inputBooleanName: "full_matrices" + outputBooleanName: "computeUv" + inputToOutput { + key: "computeUv" + value: "compute_uv" + } + inputToOutput { + key: "fullUV" + value: "full_matrices" + } + ruleType: "attribute" + inputFrameworkOpName: "Svd" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "calcUV" + outputIntName: "fullUV" + inputBooleanName: "compute_uv" + inputBooleanName: "full_matrices" + inputToOutput { + key: "calcUV" + value: "compute_uv" + } + inputToOutput { + key: "fullUV" + value: "full_matrices" + } + ruleType: "attribute" + inputFrameworkOpName: "Svd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "switchNum" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "switchNum" + int64Value: 16 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "Svd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "acosh" + inputFrameworkOpName: "Acosh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Acosh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Acosh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Acosh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "placeholder" + inputFrameworkOpName: "Placeholder" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "Placeholder" + } +} +mappings { + frameworkName: "tensorflow" + opName: "polygamma" + inputFrameworkOpName: "Polygamma" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "x" + outputTensorName: "n" + outputTensorName: "input" + inputToOutput { + key: "n" + value: "a" + } + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Polygamma" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_band_part" + inputFrameworkOpName: "MatrixBandPart" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "num_lower" + inputTensorName: "num_upper" + outputTensorName: "input" + outputTensorName: "minLowerT" + outputTensorName: "maxUpperT" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "minLowerT" + value: "num_lower" + } + inputToOutput { + key: "maxUpperT" + value: "num_upper" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixBandPart" + } +} +mappings { + frameworkName: "tensorflow" + opName: "equals" + inputFrameworkOpName: "ApproximateEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "ApproximateEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "ApproximateEqual" + } +} +mappings { + frameworkName: "tensorflow" + opName: "stop_gradient" + inputFrameworkOpName: "StopGradient" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "StopGradient" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "StopGradient" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_add" + inputFrameworkOpName: "TensorScatterAdd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "tensor" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "TensorScatterAdd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "lock" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "lock" + argType: BOOL + } + } + inputFrameworkOpName: "TensorScatterAdd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "TensorScatterAdd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "avgpool2d" + inputFrameworkOpName: "AvgPool" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "value" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 10 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "kH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "kW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + inputFrameworkOpName: "AvgPool" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + inputIntName: "pW" + inputIntName: "dW" + inputIntName: "dH" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "AvgPool" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unique_with_counts" + inputFrameworkOpName: "UniqueWithCountsV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "UniqueWithCountsV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "depthwise_conv2d" + inputFrameworkOpName: "DepthwiseConv2dNative" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "filter" + outputTensorName: "input" + outputTensorName: "weights" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "weights" + value: "filter" + } + ruleType: "tensor" + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 9 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "ndarraysizeat" + functionName: "ndarraysizeat" + outputIntName: "kH" + inputFloatName: "filter" + inputToOutput { + key: "kH" + value: "filter" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "filter" + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "ndarraysizeat" + functionName: "ndarraysizeat" + outputIntName: "kW" + inputFloatName: "filter" + inputToOutput { + key: "kW" + value: "filter" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "filter" + int64Value: 1 + argIndex: 1 + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + inputIntName: "pW" + inputIntName: "wFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + transformerArgs { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "DepthwiseConv2dNative" + } +} +mappings { + frameworkName: "tensorflow" + opName: "log_matrix_determinant" + inputFrameworkOpName: "LogMatrixDeterminant" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "LogMatrixDeterminant" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LogMatrixDeterminant" + } +} +mappings { + frameworkName: "tensorflow" + opName: "realdiv" + inputFrameworkOpName: "RealDiv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "RealDiv" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "RealDiv" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "RealDiv" + } +} +mappings { + frameworkName: "tensorflow" + opName: "abs" + inputFrameworkOpName: "Abs" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Abs" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Abs" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Abs" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "VariableV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "VariableV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "VariableV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "VariableV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_determinant" + inputFrameworkOpName: "BatchMatrixDeterminant" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchMatrixDeterminant" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "MatrixDeterminant" + } +} +mappings { + frameworkName: "tensorflow" + opName: "maxpool3dnew" + inputFrameworkOpName: "MaxPool3D" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pD" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pD" + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 8 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dD" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dD" + int64Value: 1 + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 11 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "isNCDHW" + inputToOutput { + key: "isNCDHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCDHW" + transformerArgs { + name: "data_format" + argType: STRING + argIndex: 14 + stringValue: "NDHWC" + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 12 + stringValue: "SAME" + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kH" + inputToOutput { + key: "kH" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kW" + inputToOutput { + key: "kW" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kD" + inputToOutput { + key: "kD" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sH" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sW" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "MaxPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sD" + inputToOutput { + key: "sD" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "MaxPool3D" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tensorarraywritev3" + inputFrameworkOpName: "TensorArrayWriteV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayWriteV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "softmax_cross_entropy_loss_with_logits" + inputFrameworkOpName: "SoftmaxCrossEntropyWithLogits" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "labels" + inputTensorName: "features" + outputTensorName: "labels" + outputTensorName: "logits" + inputToOutput { + key: "labels" + value: "labels" + } + inputToOutput { + key: "logits" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "SoftmaxCrossEntropyWithLogits" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "SoftmaxCrossEntropyWithLogits" + } +} +mappings { + frameworkName: "tensorflow" + opName: "segment_max" + inputFrameworkOpName: "SegmentMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + outputTensorName: "input" + outputTensorName: "idxSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + ruleType: "tensor" + inputFrameworkOpName: "SegmentMax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "conv3dnew" + inputFrameworkOpName: "Conv3D" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "filter" + outputTensorName: "input" + outputTensorName: "weights" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "weights" + value: "filter" + } + ruleType: "tensor" + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "isNCDHW" + inputToOutput { + key: "isNCDHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCDHW" + transformerArgs { + name: "data_format" + argType: STRING + argIndex: 13 + stringValue: "NDHWC" + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "paddingMode" + inputToOutput { + key: "paddingMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "paddingMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 12 + stringValue: "SAME" + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "ndarraysizeat" + functionName: "ndarraysizeat" + outputIntName: "kD" + inputFloatName: "filter" + inputToOutput { + key: "kD" + value: "filter" + } + ruleType: "attribute" + transformerArgs { + key: "kD" + transformerArgs { + name: "filter" + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "ndarraysizeat" + functionName: "ndarraysizeat" + outputIntName: "kH" + inputFloatName: "filter" + inputToOutput { + key: "kH" + value: "filter" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "filter" + int64Value: 1 + argIndex: 1 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "ndarraysizeat" + functionName: "ndarraysizeat" + outputIntName: "kW" + inputFloatName: "filter" + inputToOutput { + key: "kW" + value: "filter" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "filter" + int64Value: 2 + argIndex: 2 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sD" + inputToOutput { + key: "sD" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sH" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sW" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 8 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "dH" + inputToOutput { + key: "dH" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 11 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "dW" + inputToOutput { + key: "dW" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "Conv3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "dD" + inputToOutput { + key: "dD" + value: "dilations" + } + ruleType: "attribute" + transformerArgs { + key: "dD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "Conv3D" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_sub" + inputFrameworkOpName: "ScatterSub" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "ref" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "ref" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterSub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "lock" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "lock" + argType: BOOL + } + } + inputFrameworkOpName: "ScatterSub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "ScatterSub" + } +} +mappings { + frameworkName: "tensorflow" + opName: "loop_cond" + inputFrameworkOpName: "LoopCond" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "LoopCond" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reverse" + inputFrameworkOpName: "ReverseV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "tensor" + } + ruleType: "tensor" + inputFrameworkOpName: "ReverseV2" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "ReverseV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "rank" + inputFrameworkOpName: "Rank" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Rank" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Rank" + } +} +mappings { + frameworkName: "tensorflow" + opName: "erfc" + inputFrameworkOpName: "Erfc" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Erfc" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Erfc" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Erfc" + } +} +mappings { + frameworkName: "tensorflow" + opName: "divide" + inputFrameworkOpName: "Div" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Div" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Div" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Div" + } +} +mappings { + frameworkName: "tensorflow" + opName: "pad" + inputFrameworkOpName: "Pad" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "paddings" + outputTensorName: "input" + outputTensorName: "paddings" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "paddings" + value: "paddings" + } + ruleType: "tensor" + inputFrameworkOpName: "Pad" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "mode" + inputFloatName: "padValue" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "mode" + argType: INT64 + } + transformerArgs { + name: "padValue" + argType: DOUBLE + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "mode" + argType: INT64 + } + transformerArgs { + name: "padValue" + argType: DOUBLE + } + } + inputFrameworkOpName: "Pad" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sparse_softmax_cross_entropy_loss_with_logits" + inputFrameworkOpName: "SparseSoftmaxCrossEntropyWithLogits" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "labels" + inputTensorName: "features" + outputTensorName: "labels" + outputTensorName: "logits" + inputToOutput { + key: "labels" + value: "labels" + } + inputToOutput { + key: "logits" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "SparseSoftmaxCrossEntropyWithLogits" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "SparseSoftmaxCrossEntropyWithLogits" + } + indexOverrides { + key: 1 + value: 0 + } + indexOverrides { + key: 0 + value: 1 + } +} +mappings { + frameworkName: "tensorflow" + opName: "merge" + inputFrameworkOpName: "Merge" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "inputs" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "inputs" + } + ruleType: "tensor" + inputFrameworkOpName: "Merge" + } +} +mappings { + frameworkName: "tensorflow" + opName: "resize_nearest_neighbor" + inputFrameworkOpName: "ResizeNearestNeighbor" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "size" + outputTensorName: "image" + outputTensorName: "newImageSize" + inputToOutput { + key: "image" + value: "images" + } + inputToOutput { + key: "newImageSize" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "ResizeNearestNeighbor" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "align_corners" + inputBooleanName: "half_pixel_centers" + outputBooleanName: "alignCorners" + outputBooleanName: "halfPixelCenter" + inputToOutput { + key: "alignCorners" + value: "align_corners" + } + inputToOutput { + key: "halfPixelCenter" + value: "half_pixel_centers" + } + ruleType: "attribute" + inputFrameworkOpName: "ResizeNearestNeighbor" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_min" + inputFrameworkOpName: "ScatterMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "ref" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterMin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "check_numerics" + inputFrameworkOpName: "CheckNumericsV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "tensor" + } + ruleType: "tensor" + inputFrameworkOpName: "CheckNumericsV2" + } + rule { + ruleName: "convertinputstringtondarray" + functionName: "convertinputstringtondarray" + inputStringAttrName: "message" + inputToOutput { + key: "message" + value: "message" + } + ruleType: "attribute" + inputFrameworkOpName: "CheckNumericsV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "select" + inputFrameworkOpName: "Select" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "condition" + inputTensorName: "t" + inputTensorName: "e" + outputTensorName: "cond" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "cond" + value: "condition" + } + inputToOutput { + key: "input" + value: "t" + } + inputToOutput { + key: "y" + value: "e" + } + ruleType: "tensor" + inputFrameworkOpName: "Select" + } +} +mappings { + frameworkName: "tensorflow" + opName: "assign" + inputFrameworkOpName: "Assign" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "value" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "ref" + } + inputToOutput { + key: "y" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "Assign" + } +} +mappings { + frameworkName: "tensorflow" + opName: "size_list" + inputFrameworkOpName: "TensorArraySize" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySize" + } +} +mappings { + frameworkName: "tensorflow" + opName: "rint" + inputFrameworkOpName: "Rint" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Rint" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Rint" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Rint" + } +} +mappings { + frameworkName: "tensorflow" + opName: "dilation2d" + inputFrameworkOpName: "Dilation2D" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "filter" + outputTensorName: "input" + outputTensorName: "weights" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "weights" + value: "filter" + } + ruleType: "tensor" + inputFrameworkOpName: "Dilation2D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + stringValue: "SAME" + } + } + inputFrameworkOpName: "Dilation2D" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "rates" + inputToOutput { + key: "rates" + value: "rates" + } + ruleType: "attribute" + inputFrameworkOpName: "Dilation2D" + } + rule { + ruleName: "listnumbertolistnumber" + functionName: "listnumbertolistnumber" + outputIntName: "strides" + inputToOutput { + key: "strides" + value: "strides" + } + ruleType: "attribute" + inputFrameworkOpName: "Dilation2D" + } +} +mappings { + frameworkName: "tensorflow" + opName: "avgpool3dnew" + inputFrameworkOpName: "AvgPool3D" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 13 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pD" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pD" + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 8 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dD" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dD" + int64Value: 1 + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 11 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "isNCDHW" + inputToOutput { + key: "isNCDHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCDHW" + transformerArgs { + name: "data_format" + argType: STRING + argIndex: 14 + stringValue: "NDHWC" + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 12 + stringValue: "SAME" + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kH" + inputToOutput { + key: "kH" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kW" + inputToOutput { + key: "kW" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kD" + inputToOutput { + key: "kD" + value: "ksize" + } + ruleType: "attribute" + transformerArgs { + key: "kD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sH" + inputToOutput { + key: "sH" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "index" + int64Value: 3 + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sW" + inputToOutput { + key: "sW" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "AvgPool3D" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "sD" + inputToOutput { + key: "sD" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "sD" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "AvgPool3D" + } +} +mappings { + frameworkName: "tensorflow" + opName: "add" + inputFrameworkOpName: "Add" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Add" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Add" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Add" + } +} +mappings { + frameworkName: "tensorflow" + opName: "isfinite" + inputFrameworkOpName: "IsFinite" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "IsFinite" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "IsFinite" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_inverse" + inputFrameworkOpName: "BatchMatrixInverse" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchMatrixInverse" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "BatchMatrixInverse" + } +} +mappings { + frameworkName: "tensorflow" + opName: "rshift_bits" + inputFrameworkOpName: "RightShift" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "RightShift" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "RightShift" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "RightShift" + } +} +mappings { + frameworkName: "tensorflow" + opName: "elu" + inputFrameworkOpName: "Elu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Elu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "alpha" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "alpha" + doubleValue: 1.0 + argType: DOUBLE + } + } + inputFrameworkOpName: "Elu" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_diag" + inputFrameworkOpName: "MatrixDiag" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "diagonal" + outputTensorName: "diagonal" + inputToOutput { + key: "diagonal" + value: "diagonal" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixDiag" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "MatrixDiag" + } +} +mappings { + frameworkName: "tensorflow" + opName: "draw_bounding_boxes" + inputFrameworkOpName: "DrawBoundingBoxesV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "boxes" + inputTensorName: "colors" + outputTensorName: "images" + outputTensorName: "boxes" + outputTensorName: "colors" + inputToOutput { + key: "images" + value: "images" + } + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "colors" + value: "colors" + } + ruleType: "tensor" + inputFrameworkOpName: "DrawBoundingBoxesV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "igamma" + inputFrameworkOpName: "Igamma" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "x" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "a" + } + inputToOutput { + key: "y" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Igamma" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matmul" + inputFrameworkOpName: "MatMul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "b" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "a" + } + inputToOutput { + key: "y" + value: "b" + } + ruleType: "tensor" + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "alpha" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "alpha" + doubleValue: 1.0 + argType: DOUBLE + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "beta" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "beta" + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "transX" + outputIntName: "transY" + inputBooleanName: "transpose_a" + inputBooleanName: "transpose_b" + inputToOutput { + key: "transX" + value: "transpose_a" + } + inputToOutput { + key: "transY" + value: "transpose_b" + } + ruleType: "attribute" + inputFrameworkOpName: "MatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "transZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transZ" + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "MatMul" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sinh" + inputFrameworkOpName: "Sinh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Sinh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sinh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sinh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "softplus" + inputFrameworkOpName: "Softplus" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Softplus" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softplus" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "Const" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "Const" + } + rule { + ruleName: "ndarrayinputtondarray" + functionName: "ndarrayinputtondarray" + inputTensorName: "value" + inputToOutput { + key: "input" + value: "value" + } + ruleType: "attribute" + inputFrameworkOpName: "Const" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Const" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "Const" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cumsum" + inputFrameworkOpName: "Cumsum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "axis" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "tensor" + inputFrameworkOpName: "Cumsum" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "exclusive" + outputIntName: "reverse" + inputBooleanName: "exclusive" + inputBooleanName: "reverse" + inputToOutput { + key: "exclusive" + value: "exclusive" + } + inputToOutput { + key: "reverse" + value: "reverse" + } + ruleType: "attribute" + inputFrameworkOpName: "Cumsum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "zeroslike" + inputFrameworkOpName: "ZerosLike" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "ZerosLike" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "ZerosLike" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "dataType" + inputDataTypeName: "T" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "ZerosLike" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather" + inputFrameworkOpName: "Gather" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "params" + inputTensorName: "indices" + outputTensorName: "input" + outputTensorName: "indices" + inputToOutput { + key: "input" + value: "params" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Gather" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + ruleType: "attribute" + inputFrameworkOpName: "Gather" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Gather" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimensions" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimensions" + argType: INT64 + } + } + inputFrameworkOpName: "Gather" + } +} +mappings { + frameworkName: "tensorflow" + opName: "placeholder" + inputFrameworkOpName: "PlaceholderWithDefault" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "PlaceholderWithDefault" + } +} +mappings { + frameworkName: "tensorflow" + opName: "stack_list" + inputFrameworkOpName: "TensorArrayConcat" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayConcat" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayConcat" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_nd_add" + inputFrameworkOpName: "ScatterNdAdd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "ref" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "ref" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterNdAdd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "bitcast" + inputFrameworkOpName: "Bitcast" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Bitcast" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "newType" + inputDataTypeName: "type" + inputToOutput { + key: "newType" + value: "type" + } + ruleType: "attribute" + inputFrameworkOpName: "Bitcast" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "type" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "type" + } + ruleType: "attribute" + inputFrameworkOpName: "Bitcast" + } +} +mappings { + frameworkName: "tensorflow" + opName: "bitwise_or" + inputFrameworkOpName: "BitwiseOr" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "BitwiseOr" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BitwiseOr" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gruCell" + inputFrameworkOpName: "GRUBlockCell" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "h_prev" + inputTensorName: "w_ru" + inputTensorName: "w_c" + inputTensorName: "b_ru" + inputTensorName: "b_c" + outputTensorName: "input" + outputTensorName: "hLast" + outputTensorName: "Wru" + outputTensorName: "Wc" + outputTensorName: "bru" + outputTensorName: "bc" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "hLast" + value: "h_prev" + } + inputToOutput { + key: "Wru" + value: "w_ru" + } + inputToOutput { + key: "Wc" + value: "w_c" + } + inputToOutput { + key: "bru" + value: "b_ru" + } + inputToOutput { + key: "bc" + value: "b_c" + } + ruleType: "tensor" + inputFrameworkOpName: "GRUBlockCell" + } +} +mappings { + frameworkName: "tensorflow" + opName: "randomuniform" + inputFrameworkOpName: "RandomUniform" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + outputTensorName: "shape" + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomUniform" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "max" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "max" + doubleValue: 1.0 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "RandomUniform" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "min" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "min" + argType: DOUBLE + } + } + inputFrameworkOpName: "RandomUniform" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "dtype" + inputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniform" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputDataTypeName: "dtype" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "dtype" + } + inputToOutput { + key: "seed" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniform" + } +} +mappings { + frameworkName: "tensorflow" + opName: "bitwise_and" + inputFrameworkOpName: "BitwiseAnd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "BitwiseAnd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BitwiseAnd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "enter" + inputFrameworkOpName: "Enter" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Enter" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputStringAttrName: "frame_name" + outputStringAttrName: "frameName" + inputBooleanName: "is_constant" + outputBooleanName: "isConstant" + inputToOutput { + key: "isConstant" + value: "is_constant" + } + inputToOutput { + key: "frameName" + value: "frame_name" + } + ruleType: "attribute" + inputFrameworkOpName: "Enter" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sin" + inputFrameworkOpName: "Sin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Sin" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sin" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unique" + inputFrameworkOpName: "Unique" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Unique" + } +} +mappings { + frameworkName: "tensorflow" + opName: "roll" + inputFrameworkOpName: "Roll" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "axis" + inputTensorName: "shift" + outputTensorName: "input" + outputTensorName: "dimensions" + outputTensorName: "shiftsI" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "axis" + } + inputToOutput { + key: "shiftsI" + value: "shift" + } + ruleType: "tensor" + inputFrameworkOpName: "Roll" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "shift" + inputToOutput { + key: "shift" + value: "shift" + } + ruleType: "attribute" + inputFrameworkOpName: "Roll" + } +} +mappings { + frameworkName: "tensorflow" + opName: "in_top_k" + inputFrameworkOpName: "InTopK" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "targets" + inputTensorName: "predictions" + outputTensorName: "target" + outputTensorName: "predictions" + inputToOutput { + key: "target" + value: "targets" + } + inputToOutput { + key: "predictions" + value: "predictions" + } + ruleType: "tensor" + inputFrameworkOpName: "InTopK" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "k" + outputIntName: "k" + inputToOutput { + key: "k" + value: "k" + } + ruleType: "attribute" + inputFrameworkOpName: "InTopK" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "sorted" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sorted" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "InTopK" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reverse_sequence" + inputFrameworkOpName: "ReverseSequence" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "seq_lengths" + outputTensorName: "input" + outputTensorName: "seqLengths" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "seqLengths" + value: "seq_lengths" + } + ruleType: "tensor" + inputFrameworkOpName: "ReverseSequence" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "batch_dim" + inputIntName: "seq_dim" + outputIntName: "batchDim" + outputIntName: "seqDim" + inputToOutput { + key: "batchDim" + value: "batch_dim" + } + inputToOutput { + key: "seqDim" + value: "seq_dim" + } + ruleType: "attribute" + inputFrameworkOpName: "ReverseSequence" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unsorted_segment_min" + inputFrameworkOpName: "UnsortedSegmentMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + inputTensorName: "num_segments" + outputTensorName: "input" + outputTensorName: "idxSegments" + outputTensorName: "numSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "tensor" + inputFrameworkOpName: "UnsortedSegmentMin" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "numSegments" + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "attribute" + inputFrameworkOpName: "UnsortedSegmentMin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "rsqrt" + inputFrameworkOpName: "Rsqrt" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Rsqrt" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Rsqrt" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Rsqrt" + } +} +mappings { + frameworkName: "tensorflow" + opName: "split_list" + inputFrameworkOpName: "TensorArraySplit" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySplit" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArraySplit" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_nd_update" + inputFrameworkOpName: "ScatterNdUpdate" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "ref" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "ref" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterNdUpdate" + } +} +mappings { + frameworkName: "tensorflow" + opName: "rgb_to_hsv" + inputFrameworkOpName: "RGBToHSV" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "images" + } + ruleType: "tensor" + inputFrameworkOpName: "RGBToHSV" + } +} +mappings { + frameworkName: "tensorflow" + opName: "create" + inputFrameworkOpName: "Empty" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "Empty" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "outputType" + inputBooleanName: "init" + outputBooleanName: "init" + inputDataTypeName: "dtype" + inputToOutput { + key: "init" + value: "init" + } + inputToOutput { + key: "outputType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "Empty" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "outputType" + inputDataTypeName: "dtype" + inputToOutput { + key: "outputType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "Empty" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "order" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "order" + int64Value: 99 + argType: INT64 + } + } + inputFrameworkOpName: "Empty" + } +} +mappings { + frameworkName: "tensorflow" + opName: "zeta" + inputFrameworkOpName: "Zeta" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "q" + outputTensorName: "input" + outputTensorName: "q" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "q" + value: "q" + } + ruleType: "tensor" + inputFrameworkOpName: "Zeta" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Zeta" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lin_space" + inputFrameworkOpName: "LinSpace" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "start" + inputTensorName: "stop" + inputTensorName: "num" + outputTensorName: "start" + outputTensorName: "finish" + outputTensorName: "numOfElements" + inputToOutput { + key: "start" + value: "start" + } + inputToOutput { + key: "finish" + value: "stop" + } + inputToOutput { + key: "numOfElements" + value: "num" + } + ruleType: "tensor" + inputFrameworkOpName: "LinSpace" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "start" + outputDoubleName: "stop" + inputToOutput { + key: "start" + value: "start" + } + inputToOutput { + key: "stop" + value: "stop" + } + ruleType: "attribute" + inputFrameworkOpName: "LinSpace" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "dataType" + inputDataTypeName: "T" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "LinSpace" + } +} +mappings { + frameworkName: "tensorflow" + opName: "boolean_and" + inputFrameworkOpName: "LogicalAnd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "LogicalAnd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_gamma" + inputFrameworkOpName: "RandomGamma" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + inputTensorName: "alpha" + outputTensorName: "shape" + outputTensorName: "alpha" + inputToOutput { + key: "shape" + value: "shape" + } + inputToOutput { + key: "alpha" + value: "alpha" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomGamma" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputToOutput { + key: "seed" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomGamma" + } +} +mappings { + frameworkName: "tensorflow" + opName: "pad" + inputFrameworkOpName: "PadV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "paddings" + outputTensorName: "input" + outputTensorName: "paddings" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "paddings" + value: "paddings" + } + ruleType: "tensor" + inputFrameworkOpName: "PadV2" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "padValue" + inputToOutput { + key: "padValue" + value: "constant_values" + } + ruleType: "attribute" + inputFrameworkOpName: "PadV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "mode" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "mode" + argType: INT64 + } + } + inputFrameworkOpName: "PadV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unsorted_segment_sum" + inputFrameworkOpName: "UnsortedSegmentSum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + inputTensorName: "num_segments" + outputTensorName: "input" + outputTensorName: "idxSegments" + outputTensorName: "numSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "tensor" + inputFrameworkOpName: "UnsortedSegmentSum" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "numSegments" + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "attribute" + inputFrameworkOpName: "UnsortedSegmentSum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "log1p" + inputFrameworkOpName: "Log1p" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Log1p" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Log1p" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Log1p" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_set_diag" + inputFrameworkOpName: "MatrixSetDiag" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "diagonal" + outputTensorName: "input" + outputTensorName: "diagonal" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "diagonal" + value: "diagonal" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixSetDiag" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BatchMatrixSetDiag" + } +} +mappings { + frameworkName: "tensorflow" + opName: "dynamic_partition" + inputFrameworkOpName: "DynamicPartition" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "partitions" + outputTensorName: "input" + outputTensorName: "indices" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "indices" + value: "partitions" + } + ruleType: "tensor" + inputFrameworkOpName: "DynamicPartition" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_partitions" + outputIntName: "numPartitions" + inputToOutput { + key: "numPartitions" + value: "num_partitions" + } + ruleType: "attribute" + inputFrameworkOpName: "DynamicPartition" + } +} +mappings { + frameworkName: "tensorflow" + opName: "mod" + inputFrameworkOpName: "Mod" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Mod" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Mod" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Mod" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_mul" + inputFrameworkOpName: "ScatterMul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "ref" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "ref" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterMul" + } +} +mappings { + frameworkName: "tensorflow" + opName: "broadcast_to" + inputFrameworkOpName: "BroadcastTo" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "shape" + outputTensorName: "input" + outputTensorName: "shape" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "BroadcastTo" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_poisson" + inputFrameworkOpName: "RandomPoissonV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + inputTensorName: "rate" + outputTensorName: "shape" + outputTensorName: "lambda" + inputToOutput { + key: "shape" + value: "shape" + } + inputToOutput { + key: "lambda" + value: "rate" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomPoissonV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "seed" + value: "seed" + } + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomPoissonV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "asin" + inputFrameworkOpName: "Asin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Asin" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Asin" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Asin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "space_to_depth" + inputFrameworkOpName: "SpaceToDepth" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "SpaceToDepth" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "block_size" + outputIntName: "block_size" + inputToOutput { + key: "block_size" + value: "block_size" + } + ruleType: "attribute" + inputFrameworkOpName: "SpaceToDepth" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "isNHWC" + inputToOutput { + key: "isNHWC" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNHWC" + transformerArgs { + name: "data_format" + argType: STRING + argIndex: 1 + stringValue: "NHWC" + } + } + inputFrameworkOpName: "SpaceToDepth" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tile" + inputFrameworkOpName: "Tile" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "multiples" + outputTensorName: "input" + outputTensorName: "reps_vector" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "reps_vector" + value: "multiples" + } + ruleType: "tensor" + inputFrameworkOpName: "Tile" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimensions" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimensions" + argType: INT64 + } + } + inputFrameworkOpName: "Tile" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "is_static_reps" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "is_static_reps" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "Tile" + } +} +mappings { + frameworkName: "tensorflow" + opName: "depth_to_space" + inputFrameworkOpName: "DepthToSpace" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "DepthToSpace" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "block_size" + outputIntName: "block_size" + inputToOutput { + key: "block_size" + value: "block_size" + } + ruleType: "attribute" + inputFrameworkOpName: "DepthToSpace" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "isNHWC" + inputToOutput { + key: "isNHWC" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNHWC" + transformerArgs { + name: "data_format" + argType: STRING + argIndex: 1 + stringValue: "NHWC" + } + } + inputFrameworkOpName: "DepthToSpace" + } +} +mappings { + frameworkName: "tensorflow" + opName: "invert_permutation" + inputFrameworkOpName: "InvertPermutation" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "InvertPermutation" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "InvertPermutation" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "InvertPermutation" + } +} +mappings { + frameworkName: "tensorflow" + opName: "crop_and_resize" + inputFrameworkOpName: "CropAndResize" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "image" + inputTensorName: "boxes" + inputTensorName: "box_ind" + inputTensorName: "crop_size" + outputTensorName: "image" + outputTensorName: "boxes" + outputTensorName: "boxIndexes" + outputTensorName: "newImageSize" + inputToOutput { + key: "image" + value: "image" + } + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "boxIndexes" + value: "box_ind" + } + inputToOutput { + key: "newImageSize" + value: "crop_size" + } + ruleType: "tensor" + inputFrameworkOpName: "CropAndResize" + } + rule { + ruleName: "stringtoindex" + functionName: "stringtoindex" + inputStringAttrName: "method" + outputIntName: "method" + inputFloatName: "bilinear" + inputFloatName: "nearest" + inputToOutput { + key: "method" + value: "method" + } + ruleType: "attribute" + transformerArgs { + key: "method" + transformerArgs { + name: "bilinear" + stringValue: "bilinear" + } + transformerArgs { + name: "nearest" + stringValue: "nearest" + } + } + transformerArgs { + key: "method" + transformerArgs { + name: "bilinear" + stringValue: "bilinear" + } + transformerArgs { + name: "nearest" + stringValue: "nearest" + } + } + inputFrameworkOpName: "CropAndResize" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "extrapolation_value" + outputDoubleName: "extrapolationVal" + inputToOutput { + key: "extrapolationVal" + value: "extrapolation_value" + } + ruleType: "attribute" + inputFrameworkOpName: "CropAndResize" + } +} +mappings { + frameworkName: "tensorflow" + opName: "read_list" + inputFrameworkOpName: "TensorArrayRead" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayRead" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "importDataType" + inputToOutput { + key: "importDataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayRead" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_nd" + inputFrameworkOpName: "ScatterNd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "shape" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "shape" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterNd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "lock" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "lock" + argType: BOOL + } + } + inputFrameworkOpName: "ScatterNd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "ScatterNd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "strided_slice" + inputFrameworkOpName: "StridedSlice" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "begin" + inputTensorName: "end" + inputTensorName: "strides" + outputTensorName: "input" + outputTensorName: "v_begin" + outputTensorName: "v_end" + outputTensorName: "v_stride" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "v_begin" + value: "begin" + } + inputToOutput { + key: "v_end" + value: "end" + } + inputToOutput { + key: "v_stride" + value: "strides" + } + ruleType: "tensor" + inputFrameworkOpName: "StridedSlice" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "begin_mask" + inputIntName: "end_mask" + inputIntName: "ellipsis_mask" + inputIntName: "new_axis_mask" + inputIntName: "shrink_axis_mask" + outputIntName: "begin_mask" + outputIntName: "end_mask" + outputIntName: "ellipsis_mask" + outputIntName: "new_axis_mask" + outputIntName: "shrink_axis_mask" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "begin_mask" + value: "begin_mask" + } + inputToOutput { + key: "end_mask" + value: "end_mask" + } + inputToOutput { + key: "ellipsis_mask" + value: "ellipsis_mask" + } + inputToOutput { + key: "new_axis_mask" + value: "new_axis_mask" + } + inputToOutput { + key: "shrink_axis_mask" + value: "shrink_axis_mask" + } + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "StridedSlice" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_list" + inputFrameworkOpName: "TensorArrayScatter" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayScatter" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayScatter" + } +} +mappings { + frameworkName: "tensorflow" + opName: "size_list" + inputFrameworkOpName: "TensorArraySizeV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySizeV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "size_list" + inputFrameworkOpName: "TensorArraySizeV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySizeV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "next_iteration" + inputFrameworkOpName: "NextIteration" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "NextIteration" + } +} +mappings { + frameworkName: "tensorflow" + opName: "solve" + inputFrameworkOpName: "MatrixSolve" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "matrix" + inputTensorName: "rhs" + outputTensorName: "a" + outputTensorName: "b" + inputToOutput { + key: "a" + value: "matrix" + } + inputToOutput { + key: "b" + value: "rhs" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixSolve" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "adjoint" + outputBooleanName: "useAdjoint" + inputToOutput { + key: "useAdjoint" + value: "adjoint" + } + ruleType: "attribute" + inputFrameworkOpName: "MatrixSolve" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fused_batch_norm" + inputFrameworkOpName: "FusedBatchNorm" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "scale" + inputTensorName: "offset" + inputTensorName: "mean" + inputTensorName: "variance" + outputTensorName: "input" + outputTensorName: "scale" + outputTensorName: "offset" + outputTensorName: "mean" + outputTensorName: "variance" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "scale" + value: "scale" + } + inputToOutput { + key: "offset" + value: "offset" + } + inputToOutput { + key: "mean" + value: "mean" + } + inputToOutput { + key: "variance" + value: "variance" + } + ruleType: "tensor" + inputFrameworkOpName: "FusedBatchNorm" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "epsilon" + outputDoubleName: "epsilon" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "epsilon" + value: "epsilon" + } + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNorm" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "isTraining" + inputBooleanName: "is_training" + inputToOutput { + key: "isTraining" + value: "is_training" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNorm" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "dataFormat" + inputToOutput { + key: "dataFormat" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dataFormat" + transformerArgs { + name: "data_format" + argType: STRING + stringValue: "NCHW" + } + } + inputFrameworkOpName: "FusedBatchNorm" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_max" + inputFrameworkOpName: "TensorScatterMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "tensor" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "TensorScatterMax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "greater_equal" + inputFrameworkOpName: "GreaterEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "GreaterEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "GreaterEqual" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "GreaterEqual" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_nd_sub" + inputFrameworkOpName: "ScatterNdSub" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "ref" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "ref" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterNdSub" + } +} +mappings { + frameworkName: "tensorflow" + opName: "equals" + inputFrameworkOpName: "Equal" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Equal" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Equal" + } +} +mappings { + frameworkName: "tensorflow" + opName: "read_list" + inputFrameworkOpName: "TensorArrayReadV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayReadV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "importDataType" + inputToOutput { + key: "importDataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayReadV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "floormod" + inputFrameworkOpName: "FloorMod" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "FloorMod" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "FloorMod" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "FloorMod" + } +} +mappings { + frameworkName: "tensorflow" + opName: "read_list" + inputFrameworkOpName: "TensorArrayReadV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayReadV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "importDataType" + inputToOutput { + key: "importDataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayReadV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "biasadd" + inputFrameworkOpName: "BiasAdd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "value" + inputTensorName: "bias" + outputTensorName: "input" + outputTensorName: "bias" + inputToOutput { + key: "input" + value: "value" + } + inputToOutput { + key: "bias" + value: "bias" + } + ruleType: "tensor" + inputFrameworkOpName: "BiasAdd" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputBooleanName: "nchw" + inputToOutput { + key: "nchw" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "nchw" + transformerArgs { + name: "data_format" + argType: STRING + stringValue: "NCHW" + } + } + inputFrameworkOpName: "BiasAdd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "Identity" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Identity" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Identity" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Identity" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unstack" + inputFrameworkOpName: "Unpack" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "value" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "Unpack" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + inputIntName: "num" + outputIntName: "dimensions" + outputIntName: "num" + inputToOutput { + key: "dimensions" + value: "axis" + } + inputToOutput { + key: "num" + value: "num" + } + ruleType: "attribute" + inputFrameworkOpName: "Unpack" + } +} +mappings { + frameworkName: "tensorflow" + opName: "exit" + inputFrameworkOpName: "Exit" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "data" + } + ruleType: "tensor" + inputFrameworkOpName: "Exit" + } +} +mappings { + frameworkName: "tensorflow" + opName: "add" + inputFrameworkOpName: "AddV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "AddV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "AddV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "AddV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tanh" + inputFrameworkOpName: "Tanh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Tanh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Tanh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Tanh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "toggle_bits" + inputFrameworkOpName: "Invert" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Invert" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lstmBlockCell" + inputFrameworkOpName: "LSTMBlockCell" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "cs_prev" + inputTensorName: "h_prev" + inputTensorName: "w" + inputTensorName: "wci" + inputTensorName: "wcf" + inputTensorName: "wco" + inputTensorName: "b" + outputTensorName: "xt" + outputTensorName: "cLast" + outputTensorName: "yLast" + outputTensorName: "W" + outputTensorName: "Wci" + outputTensorName: "Wcf" + outputTensorName: "Wco" + outputTensorName: "b" + inputToOutput { + key: "xt" + value: "x" + } + inputToOutput { + key: "cLast" + value: "cs_prev" + } + inputToOutput { + key: "yLast" + value: "h_prev" + } + inputToOutput { + key: "W" + value: "w" + } + inputToOutput { + key: "Wci" + value: "wci" + } + inputToOutput { + key: "Wcf" + value: "wcf" + } + inputToOutput { + key: "Wco" + value: "wco" + } + inputToOutput { + key: "b" + value: "b" + } + ruleType: "tensor" + inputFrameworkOpName: "LSTMBlockCell" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "forget_bias" + inputFloatName: "cell_clip" + outputDoubleName: "forgetBias" + outputDoubleName: "clippingCellValue" + inputToOutput { + key: "forgetBias" + value: "forget_bias" + } + inputToOutput { + key: "clippingCellValue" + value: "cell_clip" + } + ruleType: "attribute" + inputFrameworkOpName: "LSTMBlockCell" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "peephole" + inputBooleanName: "use_peephole" + inputToOutput { + key: "peephole" + value: "use_peephole" + } + ruleType: "attribute" + inputFrameworkOpName: "LSTMBlockCell" + } +} +mappings { + frameworkName: "tensorflow" + opName: "log" + inputFrameworkOpName: "Log" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Log" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Log" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Log" + } +} +mappings { + frameworkName: "tensorflow" + opName: "non_max_suppression_v3" + inputFrameworkOpName: "NonMaxSuppressionV4" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "boxes" + inputTensorName: "scores" + inputTensorName: "max_output_size" + inputTensorName: "iou_threshold" + inputTensorName: "score_threshold" + outputTensorName: "boxes" + outputTensorName: "scales" + outputTensorName: "maxOutSize" + outputTensorName: "iouThreshold" + outputTensorName: "scoreThreshold" + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "maxOutSize" + value: "max_output_size" + } + inputToOutput { + key: "iouThreshold" + value: "iou_threshold" + } + inputToOutput { + key: "scoreThreshold" + value: "score_threshold" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppressionV4" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "maxOutputSize" + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppressionV4" + } +} +mappings { + frameworkName: "tensorflow" + opName: "less_equal" + inputFrameworkOpName: "LessEqual" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "LessEqual" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LessEqual" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "LessEqual" + } +} +mappings { + frameworkName: "tensorflow" + opName: "non_max_suppression" + inputFrameworkOpName: "NonMaxSuppressionV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "boxes" + inputTensorName: "scores" + inputTensorName: "iou_threshold" + inputTensorName: "max_output_size" + outputTensorName: "boxes" + outputTensorName: "scales" + outputTensorName: "iouThreshold" + outputTensorName: "maxOutputSize" + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "iouThreshold" + value: "iou_threshold" + } + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppressionV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "scoreThreshold" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "scoreThreshold" + doubleValue: 0.5 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "NonMaxSuppressionV2" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "maxOutputSize" + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppressionV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "non_max_suppression_v3" + inputFrameworkOpName: "NonMaxSuppressionV3" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "boxes" + inputTensorName: "scores" + inputTensorName: "max_output_size" + inputTensorName: "iou_threshold" + inputTensorName: "score_threshold" + outputTensorName: "boxes" + outputTensorName: "scales" + outputTensorName: "maxOutSize" + outputTensorName: "iouThreshold" + outputTensorName: "scoreThreshold" + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "maxOutSize" + value: "max_output_size" + } + inputToOutput { + key: "iouThreshold" + value: "iou_threshold" + } + inputToOutput { + key: "scoreThreshold" + value: "score_threshold" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppressionV3" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "maxOutputSize" + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppressionV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "onehot" + inputFrameworkOpName: "OneHot" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "OneHot" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "depth" + outputDoubleName: "on" + outputDoubleName: "off" + inputToOutput { + key: "on" + value: "on_value" + } + inputToOutput { + key: "off" + value: "off_value" + } + inputToOutput { + key: "depth" + value: "depth" + } + ruleType: "attribute" + inputFrameworkOpName: "OneHot" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "axis" + outputIntName: "dimensions" + outputIntName: "dataType" + inputDataTypeName: "T" + inputToOutput { + key: "dimensions" + value: "axis" + } + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "OneHot" + } +} +mappings { + frameworkName: "tensorflow" + opName: "transpose" + inputFrameworkOpName: "Transpose" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "perm" + outputTensorName: "input" + outputTensorName: "permuteDims" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "permuteDims" + value: "perm" + } + ruleType: "tensor" + inputFrameworkOpName: "Transpose" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Transpose" + } +} +mappings { + frameworkName: "tensorflow" + opName: "square" + inputFrameworkOpName: "Square" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Square" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Square" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Square" + } +} +mappings { + frameworkName: "tensorflow" + opName: "compare_and_bitpack" + inputFrameworkOpName: "CompareAndBitpack" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "threshold" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "y" + value: "threshold" + } + ruleType: "tensor" + inputFrameworkOpName: "CompareAndBitpack" + } +} +mappings { + frameworkName: "tensorflow" + opName: "segment_min" + inputFrameworkOpName: "SegmentMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + outputTensorName: "input" + outputTensorName: "idxSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + ruleType: "tensor" + inputFrameworkOpName: "SegmentMin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "switch" + inputFrameworkOpName: "Switch" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "pred" + outputTensorName: "input" + outputTensorName: "predicate" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "predicate" + value: "pred" + } + ruleType: "tensor" + inputFrameworkOpName: "Switch" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unsorted_segment_max" + inputFrameworkOpName: "UnsortedSegmentMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + inputTensorName: "num_segments" + outputTensorName: "input" + outputTensorName: "idxSegments" + outputTensorName: "numSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "tensor" + inputFrameworkOpName: "UnsortedSegmentMax" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "numSegments" + inputToOutput { + key: "numSegments" + value: "num_segments" + } + ruleType: "attribute" + inputFrameworkOpName: "UnsortedSegmentMax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "segment_sum" + inputFrameworkOpName: "SegmentSum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + outputTensorName: "input" + outputTensorName: "idxSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + ruleType: "tensor" + inputFrameworkOpName: "SegmentSum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "resize_bilinear" + inputFrameworkOpName: "ResizeBilinear" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "size" + outputTensorName: "image" + outputTensorName: "newImageSize" + inputToOutput { + key: "image" + value: "images" + } + inputToOutput { + key: "newImageSize" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "ResizeBilinear" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "align_corners" + inputBooleanName: "half_pixel_centers" + outputBooleanName: "alignCorners" + outputBooleanName: "halfPixelCenter" + inputToOutput { + key: "alignCorners" + value: "align_corners" + } + inputToOutput { + key: "halfPixelCenter" + value: "half_pixel_centers" + } + ruleType: "attribute" + inputFrameworkOpName: "ResizeBilinear" + } +} +mappings { + frameworkName: "tensorflow" + opName: "softmax" + inputFrameworkOpName: "Softmax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "logits" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "logits" + } + ruleType: "tensor" + inputFrameworkOpName: "Softmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dimension" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dimension" + int64Value: 1 + argType: INT64 + } + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + transformerArgs { + key: "value" + transformerArgs { + name: "dimension" + int64Value: 1 + argType: INT64 + } + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softmax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "split_list" + inputFrameworkOpName: "TensorArraySplitV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySplitV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArraySplitV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "erf" + inputFrameworkOpName: "Erf" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Erf" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Erf" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Erf" + } +} +mappings { + frameworkName: "tensorflow" + opName: "split_list" + inputFrameworkOpName: "TensorArraySplitV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArraySplitV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArraySplitV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "relu" + inputFrameworkOpName: "Relu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Relu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "cutoff" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "cutoff" + argType: DOUBLE + } + } + inputFrameworkOpName: "Relu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Relu" + } +} +mappings { + frameworkName: "tensorflow" + opName: "ceil" + inputFrameworkOpName: "Ceil" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Ceil" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Ceil" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Ceil" + } +} +mappings { + frameworkName: "tensorflow" + opName: "l2_loss" + inputFrameworkOpName: "L2Loss" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "t" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "t" + } + ruleType: "tensor" + inputFrameworkOpName: "L2Loss" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "L2Loss" + } +} +mappings { + frameworkName: "tensorflow" + opName: "switch" + inputFrameworkOpName: "If" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "cond" + outputTensorName: "input" + outputTensorName: "predicate" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "predicate" + value: "cond" + } + ruleType: "tensor" + inputFrameworkOpName: "If" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cast" + inputFrameworkOpName: "Cast" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Cast" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "DstT" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "DstT" + } + ruleType: "attribute" + inputFrameworkOpName: "Cast" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "dst" + inputDataTypeName: "DstT" + inputToOutput { + key: "dst" + value: "DstT" + } + ruleType: "attribute" + inputFrameworkOpName: "Cast" + } +} +mappings { + frameworkName: "tensorflow" + opName: "minimum" + inputFrameworkOpName: "Minimum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Minimum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "non_max_suppression" + inputFrameworkOpName: "NonMaxSuppression" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "boxes" + inputTensorName: "scores" + inputTensorName: "max_output_size" + outputTensorName: "boxes" + outputTensorName: "scales" + outputTensorName: "maxOutputSize" + inputToOutput { + key: "boxes" + value: "boxes" + } + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppression" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "scoreThreshold" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "scoreThreshold" + doubleValue: 0.5 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "NonMaxSuppression" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "iou_threshold" + inputToOutput { + key: "iouThreshold" + value: "iou_threshold" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppression" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "maxOutputSize" + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppression" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lstmBlock" + inputFrameworkOpName: "BlockLSTM" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "seq_len_max" + inputTensorName: "x" + inputTensorName: "cs_prev" + inputTensorName: "h_prev" + inputTensorName: "w" + inputTensorName: "wci" + inputTensorName: "wcf" + inputTensorName: "wco" + inputTensorName: "b" + outputTensorName: "maxTSLength" + outputTensorName: "input" + outputTensorName: "cLast" + outputTensorName: "yLast" + outputTensorName: "W" + outputTensorName: "Wci" + outputTensorName: "Wcf" + outputTensorName: "Wco" + outputTensorName: "b" + inputToOutput { + key: "maxTSLength" + value: "seq_len_max" + } + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "cLast" + value: "cs_prev" + } + inputToOutput { + key: "yLast" + value: "h_prev" + } + inputToOutput { + key: "W" + value: "w" + } + inputToOutput { + key: "Wci" + value: "wci" + } + inputToOutput { + key: "Wcf" + value: "wcf" + } + inputToOutput { + key: "Wco" + value: "wco" + } + inputToOutput { + key: "b" + value: "b" + } + ruleType: "tensor" + inputFrameworkOpName: "BlockLSTM" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "forget_bias" + inputFloatName: "cell_clip" + outputDoubleName: "forgetBias" + outputDoubleName: "clippingCellValue" + inputToOutput { + key: "forgetBias" + value: "forget_bias" + } + inputToOutput { + key: "clippingCellValue" + value: "cell_clip" + } + ruleType: "attribute" + inputFrameworkOpName: "BlockLSTM" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "peephole" + inputBooleanName: "use_peephole" + inputToOutput { + key: "peephole" + value: "use_peephole" + } + ruleType: "attribute" + inputFrameworkOpName: "BlockLSTM" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dataFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dataFormat" + argType: INT64 + } + } + inputFrameworkOpName: "BlockLSTM" + } +} +mappings { + frameworkName: "tensorflow" + opName: "shape_of" + inputFrameworkOpName: "Shape" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Shape" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Shape" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "out_type" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "out_type" + } + ruleType: "attribute" + inputFrameworkOpName: "Shape" + } +} +mappings { + frameworkName: "tensorflow" + opName: "check_numerics" + inputFrameworkOpName: "CheckNumerics" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "tensor" + } + ruleType: "tensor" + inputFrameworkOpName: "CheckNumerics" + } + rule { + ruleName: "convertinputstringtondarray" + functionName: "convertinputstringtondarray" + inputStringAttrName: "message" + inputToOutput { + key: "message" + value: "message" + } + ruleType: "attribute" + inputFrameworkOpName: "CheckNumerics" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reduce_max" + inputFrameworkOpName: "Max" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Max" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Max" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Max" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tensorarrayv3" + inputFrameworkOpName: "TensorArrayV3" + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "dataType" + inputDataTypeName: "dtype" + inputToOutput { + key: "dataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_max" + inputFrameworkOpName: "ScatterMax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "ref" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterMax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "isnan" + inputFrameworkOpName: "IsNan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "IsNan" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "IsNan" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather_list" + inputFrameworkOpName: "TensorArrayGather" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayGather" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayGather" + } +} +mappings { + frameworkName: "tensorflow" + opName: "bincount" + inputFrameworkOpName: "Bincount" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "weights" + inputTensorName: "arr" + inputTensorName: "size" + outputTensorName: "weights" + outputTensorName: "values" + outputTensorName: "min" + inputToOutput { + key: "weights" + value: "weights" + } + inputToOutput { + key: "values" + value: "arr" + } + inputToOutput { + key: "min" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "Bincount" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "outputType" + inputDataTypeName: "T" + inputToOutput { + key: "outputType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Bincount" + } +} +mappings { + frameworkName: "tensorflow" + opName: "space_to_batch_nd" + inputFrameworkOpName: "SpaceToBatchND" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "block_shape" + inputTensorName: "paddings" + outputTensorName: "input" + outputTensorName: "blockShape" + outputTensorName: "padding" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "blockShape" + value: "block_shape" + } + inputToOutput { + key: "padding" + value: "paddings" + } + ruleType: "tensor" + inputFrameworkOpName: "SpaceToBatchND" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "blocks" + inputToOutput { + key: "blocks" + value: "block_shape" + } + ruleType: "attribute" + inputFrameworkOpName: "SpaceToBatchND" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "SpaceToBatchND" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reduce_prod" + inputFrameworkOpName: "Prod" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Prod" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Prod" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Prod" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lgamma" + inputFrameworkOpName: "Lgamma" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Lgamma" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matmul" + inputFrameworkOpName: "BatchMatMulV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchMatMulV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "alpha" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "alpha" + doubleValue: 1.0 + argType: DOUBLE + } + } + inputFrameworkOpName: "BatchMatMulV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "beta" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "beta" + doubleValue: 1.0 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "BatchMatMulV2" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "transX" + outputIntName: "transY" + inputBooleanName: "adj_x" + inputBooleanName: "adj_y" + inputToOutput { + key: "transX" + value: "adj_x" + } + inputToOutput { + key: "transY" + value: "adj_y" + } + ruleType: "attribute" + inputFrameworkOpName: "BatchMatMulV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "transZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transZ" + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "BatchMatMulV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "unique_with_counts" + inputFrameworkOpName: "UniqueWithCounts" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "UniqueWithCounts" + } +} +mappings { + frameworkName: "tensorflow" + opName: "ctc_loss" + inputFrameworkOpName: "CTCLoss" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "inputs" + inputTensorName: "labels_values" + inputTensorName: "labels_indices" + inputTensorName: "sequence_length" + outputTensorName: "logitInput" + outputTensorName: "targetLabels" + outputTensorName: "targetLabelLengths" + outputTensorName: "logitInputLengths" + inputToOutput { + key: "logitInput" + value: "inputs" + } + inputToOutput { + key: "targetLabels" + value: "labels_values" + } + inputToOutput { + key: "targetLabelLengths" + value: "labels_indices" + } + inputToOutput { + key: "logitInputLengths" + value: "sequence_length" + } + ruleType: "tensor" + inputFrameworkOpName: "CTCLoss" + } +} +mappings { + frameworkName: "tensorflow" + opName: "randomuniform" + inputFrameworkOpName: "RandomUniformInt" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + outputTensorName: "shape" + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomUniformInt" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputToOutput { + key: "seed" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniformInt" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "min" + outputDoubleName: "max" + inputToOutput { + key: "min" + value: "minval" + } + inputToOutput { + key: "max" + value: "maxval" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniformInt" + } + rule { + ruleName: "datatypetoint" + functionName: "datatypetoint" + outputIntName: "dtype" + inputDataTypeName: "Tout" + inputToOutput { + key: "dtype" + value: "Tout" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniformInt" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "Tout" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "Tout" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomUniformInt" + } +} +mappings { + frameworkName: "tensorflow" + opName: "selu" + inputFrameworkOpName: "Selu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Selu" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Selu" + } +} +mappings { + frameworkName: "tensorflow" + opName: "argmin" + inputFrameworkOpName: "ArgMin" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "dimension" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "dimension" + } + ruleType: "tensor" + inputFrameworkOpName: "ArgMin" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "keepDims" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "keepDims" + argType: BOOL + } + } + inputFrameworkOpName: "ArgMin" + } +} +mappings { + frameworkName: "tensorflow" + opName: "resize_bicubic" + inputFrameworkOpName: "ResizeBicubic" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "size" + outputTensorName: "image" + outputTensorName: "size" + inputToOutput { + key: "image" + value: "images" + } + inputToOutput { + key: "size" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "ResizeBicubic" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "align_corners" + inputBooleanName: "half_pixel_centers" + outputBooleanName: "alignCorners" + outputBooleanName: "alignPixelCenters" + inputToOutput { + key: "alignCorners" + value: "align_corners" + } + inputToOutput { + key: "alignPixelCenters" + value: "half_pixel_centers" + } + ruleType: "attribute" + inputFrameworkOpName: "ResizeBicubic" + } +} +mappings { + frameworkName: "tensorflow" + opName: "atanh" + inputFrameworkOpName: "Atanh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Atanh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Atanh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Atanh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "split_v" + inputFrameworkOpName: "SplitV" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "value" + inputTensorName: "size_splits" + inputTensorName: "split_dim" + outputTensorName: "input" + outputTensorName: "sizes" + outputTensorName: "_a" + inputToOutput { + key: "input" + value: "value" + } + inputToOutput { + key: "sizes" + value: "size_splits" + } + inputToOutput { + key: "_a" + value: "split_dim" + } + ruleType: "tensor" + inputFrameworkOpName: "SplitV" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_split" + outputIntName: "numSplit" + inputToOutput { + key: "numSplit" + value: "num_split" + } + ruleType: "attribute" + inputFrameworkOpName: "SplitV" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "split_dim" + } + ruleType: "attribute" + inputFrameworkOpName: "SplitV" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "split_dim" + } + ruleType: "attribute" + inputFrameworkOpName: "SplitV" + } +} +mappings { + frameworkName: "tensorflow" + opName: "mirror_pad" + inputFrameworkOpName: "MirrorPad" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "paddings" + outputTensorName: "input" + outputTensorName: "paddings" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "paddings" + value: "paddings" + } + ruleType: "tensor" + inputFrameworkOpName: "MirrorPad" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "mode" + outputIntName: "mode" + inputFloatName: "mode" + inputToOutput { + key: "mode" + value: "mode" + } + ruleType: "attribute" + transformerArgs { + key: "mode" + transformerArgs { + name: "mode" + stringValue: "REFLECT" + } + } + inputFrameworkOpName: "MirrorPad" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isSymmetric" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isSymmetric" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "MirrorPad" + } +} +mappings { + frameworkName: "tensorflow" + opName: "shapes_of" + inputFrameworkOpName: "ShapeN" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "ShapeN" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "ShapeN" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cos" + inputFrameworkOpName: "Cos" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Cos" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Cos" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Cos" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sqrt" + inputFrameworkOpName: "Sqrt" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Sqrt" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sqrt" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sqrt" + } +} +mappings { + frameworkName: "tensorflow" + opName: "deconv2d_tf" + inputFrameworkOpName: "Conv2DBackpropInput" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input_sizes" + inputTensorName: "filter" + inputTensorName: "out_backprop" + outputTensorName: "gradIShape" + outputTensorName: "weights" + outputTensorName: "gradO" + inputToOutput { + key: "gradIShape" + value: "input_sizes" + } + inputToOutput { + key: "weights" + value: "filter" + } + inputToOutput { + key: "gradO" + value: "out_backprop" + } + ruleType: "tensor" + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "wFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "wFormat" + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 9 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + transformerArgs { + key: "dH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 6 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 6 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 6 + stringValue: "dilations" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "conditionalfieldvalueintindex" + functionName: "conditionalfieldvalueintindex" + inputStringAttrName: "data_format" + outputIntName: "dW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "dW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + transformerArgs { + key: "dW" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 7 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 7 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 7 + stringValue: "dilations" + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kH" + int64Value: -1 + argType: INT64 + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kW" + int64Value: -1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "Conv2DBackpropInput" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Conv2DBackpropInput" + } +} +mappings { + frameworkName: "tensorflow" + opName: "floordiv" + inputFrameworkOpName: "FloorDiv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "FloorDiv" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "FloorDiv" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "FloorDiv" + } +} +mappings { + frameworkName: "tensorflow" + opName: "stack_list" + inputFrameworkOpName: "TensorArrayConcatV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayConcatV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayConcatV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "stack_list" + inputFrameworkOpName: "TensorArrayConcatV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayConcatV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayConcatV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "CopyHost" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "CopyHost" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "CopyHost" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "CopyHost" + } +} +mappings { + frameworkName: "tensorflow" + opName: "neg" + inputFrameworkOpName: "Neg" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Neg" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Neg" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Neg" + } +} +mappings { + frameworkName: "tensorflow" + opName: "top_k" + inputFrameworkOpName: "TopKV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "TopKV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "sorted" + outputBooleanName: "needSort" + inputToOutput { + key: "needSort" + value: "sorted" + } + ruleType: "attribute" + inputFrameworkOpName: "TopKV2" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "k" + inputToOutput { + key: "k" + value: "k" + } + ruleType: "attribute" + inputFrameworkOpName: "TopKV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "resize_area" + inputFrameworkOpName: "ResizeArea" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "size" + outputTensorName: "image" + outputTensorName: "size" + inputToOutput { + key: "image" + value: "images" + } + inputToOutput { + key: "size" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "ResizeArea" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "align_corners" + outputBooleanName: "alignCorners" + inputToOutput { + key: "alignCorners" + value: "align_corners" + } + ruleType: "attribute" + inputFrameworkOpName: "ResizeArea" + } +} +mappings { + frameworkName: "tensorflow" + opName: "triangular_solve" + inputFrameworkOpName: "MatrixTriangularSolve" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "matrix" + inputTensorName: "rhs" + outputTensorName: "a" + outputTensorName: "b" + inputToOutput { + key: "a" + value: "matrix" + } + inputToOutput { + key: "b" + value: "rhs" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixTriangularSolve" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "adjoint" + inputBooleanName: "lower" + outputBooleanName: "useAdjoint" + outputBooleanName: "isLower" + inputToOutput { + key: "useAdjoint" + value: "adjoint" + } + inputToOutput { + key: "isLower" + value: "lower" + } + ruleType: "attribute" + inputFrameworkOpName: "MatrixTriangularSolve" + } +} +mappings { + frameworkName: "tensorflow" + opName: "softsign" + inputFrameworkOpName: "Softsign" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "Softsign" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Softsign" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather" + inputFrameworkOpName: "GatherV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "params" + inputTensorName: "indices" + outputTensorName: "input" + outputTensorName: "indices" + inputToOutput { + key: "input" + value: "params" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "GatherV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "GatherV2" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "GatherV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fake_quant_with_min_max_args" + inputFrameworkOpName: "FakeQuantWithMinMaxArgs" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "inputs" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "inputs" + } + ruleType: "tensor" + inputFrameworkOpName: "FakeQuantWithMinMaxArgs" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_bits" + outputIntName: "numBits" + inputFloatName: "min" + inputFloatName: "max" + outputDoubleName: "min" + outputDoubleName: "max" + inputBooleanName: "narrow_range" + outputBooleanName: "narrowRange" + inputToOutput { + key: "min" + value: "min" + } + inputToOutput { + key: "max" + value: "max" + } + inputToOutput { + key: "numBits" + value: "num_bits" + } + inputToOutput { + key: "narrowRange" + value: "narrow_range" + } + ruleType: "attribute" + inputFrameworkOpName: "FakeQuantWithMinMaxArgs" + } +} +mappings { + frameworkName: "tensorflow" + opName: "all" + inputFrameworkOpName: "All" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "All" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "All" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "All" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tan" + inputFrameworkOpName: "Tan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Tan" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Tan" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Tan" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fill" + inputFrameworkOpName: "Fill" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "dims" + inputTensorName: "value" + outputTensorName: "shape" + outputTensorName: "outputs" + inputToOutput { + key: "shape" + value: "dims" + } + inputToOutput { + key: "outputs" + value: "value" + } + ruleType: "tensor" + inputFrameworkOpName: "Fill" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "value" + inputToOutput { + key: "value" + value: "value" + } + ruleType: "attribute" + inputFrameworkOpName: "Fill" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + outputIntName: "dtype" + inputDataTypeName: "T" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Fill" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_add" + inputFrameworkOpName: "ScatterAdd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "ref" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterAdd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "lock" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "lock" + argType: BOOL + } + } + inputFrameworkOpName: "ScatterAdd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "ScatterAdd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "max_pool_with_argmax" + inputFrameworkOpName: "MaxPoolWithArgmax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kH" + int64Value: 1 + argType: INT64 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "kW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "kW" + int64Value: 1 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "sH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sH" + int64Value: 1 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "sW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sW" + int64Value: 1 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + int64Value: 1 + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + int64Value: 1 + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "isNHWC" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isNHWC" + int64Value: 1 + argType: INT64 + argIndex: 10 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "sameMode" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sameMode" + int64Value: 8 + argType: INT64 + argIndex: 8 + } + } + inputFrameworkOpName: "MaxPoolWithArgmax" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "Targmax" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "Targmax" + } + ruleType: "attribute" + inputFrameworkOpName: "MaxPoolWithArgmax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_diag_part" + inputFrameworkOpName: "MatrixDiagPart" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixDiagPart" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "MatrixDiagPart" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fused_batch_norm" + inputFrameworkOpName: "FusedBatchNormV3" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "scale" + inputTensorName: "offset" + inputTensorName: "mean" + inputTensorName: "variance" + outputTensorName: "input" + outputTensorName: "scale" + outputTensorName: "offset" + outputTensorName: "mean" + outputTensorName: "variance" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "scale" + value: "scale" + } + inputToOutput { + key: "offset" + value: "offset" + } + inputToOutput { + key: "mean" + value: "mean" + } + inputToOutput { + key: "variance" + value: "variance" + } + ruleType: "tensor" + inputFrameworkOpName: "FusedBatchNormV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "epsilon" + outputDoubleName: "epsilon" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "epsilon" + value: "epsilon" + } + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNormV3" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "isTraining" + inputBooleanName: "is_training" + inputToOutput { + key: "isTraining" + value: "is_training" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNormV3" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "dataFormat" + inputToOutput { + key: "dataFormat" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dataFormat" + transformerArgs { + name: "data_format" + argType: STRING + stringValue: "NCHW" + } + } + inputFrameworkOpName: "FusedBatchNormV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather_list" + inputFrameworkOpName: "TensorArrayGatherV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayGatherV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayGatherV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "noop" + inputFrameworkOpName: "NoOp" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "NoOp" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather_list" + inputFrameworkOpName: "TensorArrayGatherV3" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "TensorArrayGatherV3" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "TensorArrayGatherV3" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lrn" + inputFrameworkOpName: "LRN" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "LRN" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "depth_radius" + outputIntName: "depth" + inputFloatName: "alpha" + inputFloatName: "bias" + inputFloatName: "beta" + outputDoubleName: "alpha" + outputDoubleName: "bias" + outputDoubleName: "beta" + inputToOutput { + key: "depth" + value: "depth_radius" + } + inputToOutput { + key: "alpha" + value: "alpha" + } + inputToOutput { + key: "bias" + value: "bias" + } + inputToOutput { + key: "beta" + value: "beta" + } + ruleType: "attribute" + inputFrameworkOpName: "LRN" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "LRN" + } +} +mappings { + frameworkName: "tensorflow" + opName: "betainc" + inputFrameworkOpName: "Betainc" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "b" + inputTensorName: "x" + outputTensorName: "a" + outputTensorName: "b" + outputTensorName: "input" + inputToOutput { + key: "a" + value: "a" + } + inputToOutput { + key: "b" + value: "b" + } + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Betainc" + } +} +mappings { + frameworkName: "tensorflow" + opName: "diag_part" + inputFrameworkOpName: "DiagPart" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "DiagPart" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "DiagPart" + } +} +mappings { + frameworkName: "tensorflow" + opName: "concat" + inputFrameworkOpName: "Concat" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "values" + inputTensorName: "concat_dim" + outputTensorName: "input" + outputTensorName: "concatDimension" + inputToOutput { + key: "input" + value: "values" + } + inputToOutput { + key: "concatDimension" + value: "concat_dim" + } + ruleType: "tensor" + inputFrameworkOpName: "Concat" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "concatDimension" + inputToOutput { + key: "concatDimension" + value: "concat_dim" + } + ruleType: "attribute" + inputFrameworkOpName: "Concat" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isDynamicAxis" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isDynamicAxis" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "Concat" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Concat" + } +} +mappings { + frameworkName: "tensorflow" + opName: "segment_prod" + inputFrameworkOpName: "SegmentProd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + outputTensorName: "input" + outputTensorName: "idxSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + ruleType: "tensor" + inputFrameworkOpName: "SegmentProd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "top_k" + inputFrameworkOpName: "TopK" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "TopK" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "k" + outputIntName: "k" + inputBooleanName: "sorted" + outputBooleanName: "needSort" + inputToOutput { + key: "needSort" + value: "sorted" + } + inputToOutput { + key: "k" + value: "k" + } + ruleType: "attribute" + inputFrameworkOpName: "TopK" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fake_quant_with_min_max_vars_per_channel" + inputFrameworkOpName: "FakeQuantWithMinMaxVarsPerChannel" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "inputs" + inputTensorName: "min" + inputTensorName: "max" + outputTensorName: "input" + outputTensorName: "min" + outputTensorName: "max" + inputToOutput { + key: "input" + value: "inputs" + } + inputToOutput { + key: "min" + value: "min" + } + inputToOutput { + key: "max" + value: "max" + } + ruleType: "tensor" + inputFrameworkOpName: "FakeQuantWithMinMaxVarsPerChannel" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_bits" + outputIntName: "numBits" + inputBooleanName: "narrow_range" + outputBooleanName: "narrowed" + inputToOutput { + key: "numBits" + value: "num_bits" + } + inputToOutput { + key: "narrowed" + value: "narrow_range" + } + ruleType: "attribute" + inputFrameworkOpName: "FakeQuantWithMinMaxVarsPerChannel" + } +} +mappings { + frameworkName: "tensorflow" + opName: "maximum" + inputFrameworkOpName: "Maximum" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Maximum" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Maximum" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Maximum" + } +} +mappings { + frameworkName: "tensorflow" + opName: "mergeadd" + inputFrameworkOpName: "AccumulateNV2" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "inputs" + outputTensorName: "inArrs" + inputToOutput { + key: "inArrs" + value: "inputs" + } + ruleType: "tensor" + inputFrameworkOpName: "AccumulateNV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "AccumulateNV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "asinh" + inputFrameworkOpName: "Asinh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Asinh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Asinh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Asinh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fused_batch_norm" + inputFrameworkOpName: "FusedBatchNormV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "scale" + inputTensorName: "offset" + inputTensorName: "mean" + inputTensorName: "variance" + outputTensorName: "input" + outputTensorName: "scale" + outputTensorName: "offset" + outputTensorName: "mean" + outputTensorName: "variance" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "scale" + value: "scale" + } + inputToOutput { + key: "offset" + value: "offset" + } + inputToOutput { + key: "mean" + value: "mean" + } + inputToOutput { + key: "variance" + value: "variance" + } + ruleType: "tensor" + inputFrameworkOpName: "FusedBatchNormV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "epsilon" + outputDoubleName: "epsilon" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "epsilon" + value: "epsilon" + } + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNormV2" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "isTraining" + inputBooleanName: "is_training" + inputToOutput { + key: "isTraining" + value: "is_training" + } + ruleType: "attribute" + inputFrameworkOpName: "FusedBatchNormV2" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "data_format" + inputStringAttrName: "data_format" + outputIntName: "dataFormat" + inputToOutput { + key: "dataFormat" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "dataFormat" + transformerArgs { + name: "data_format" + argType: STRING + stringValue: "NCHW" + } + } + inputFrameworkOpName: "FusedBatchNormV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "Reciprocal" + inputFrameworkOpName: "Reciprocal" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Reciprocal" + } +} +mappings { + frameworkName: "tensorflow" + opName: "in_top_k" + inputFrameworkOpName: "InTopKV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "targets" + inputTensorName: "predictions" + outputTensorName: "target" + outputTensorName: "predictions" + inputToOutput { + key: "target" + value: "targets" + } + inputToOutput { + key: "predictions" + value: "predictions" + } + ruleType: "tensor" + inputFrameworkOpName: "InTopKV2" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "k" + inputToOutput { + key: "k" + value: "k" + } + ruleType: "attribute" + inputFrameworkOpName: "InTopKV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "sorted" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "sorted" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "InTopKV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "less" + inputFrameworkOpName: "Less" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Less" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Less" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Less" + } +} +mappings { + frameworkName: "tensorflow" + opName: "nth_element" + inputFrameworkOpName: "NthElement" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "n" + inputTensorName: "input" + outputTensorName: "n" + outputTensorName: "input" + inputToOutput { + key: "n" + value: "n" + } + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "NthElement" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "reverse" + inputBooleanName: "reverse" + inputToOutput { + key: "reverse" + value: "reverse" + } + ruleType: "attribute" + inputFrameworkOpName: "NthElement" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matmul" + inputFrameworkOpName: "BatchMatMul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchMatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "alpha" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "alpha" + doubleValue: 1.0 + argType: DOUBLE + } + } + inputFrameworkOpName: "BatchMatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "beta" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "beta" + doubleValue: 1.0 + argType: DOUBLE + argIndex: 1 + } + } + inputFrameworkOpName: "BatchMatMul" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "transX" + outputIntName: "transY" + inputBooleanName: "adj_x" + inputBooleanName: "adj_y" + inputToOutput { + key: "transX" + value: "adj_x" + } + inputToOutput { + key: "transY" + value: "adj_y" + } + ruleType: "attribute" + inputFrameworkOpName: "BatchMatMul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "transZ" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "transZ" + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "BatchMatMul" + } +} +mappings { + frameworkName: "tensorflow" + opName: "multiply" + inputFrameworkOpName: "Mul" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Mul" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Mul" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Mul" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity_n" + inputFrameworkOpName: "IdentityN" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "IdentityN" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lu" + inputFrameworkOpName: "Lu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Lu" + } +} +mappings { + frameworkName: "tensorflow" + opName: "diag" + inputFrameworkOpName: "Diag" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "diagonal" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "diagonal" + } + ruleType: "tensor" + inputFrameworkOpName: "Diag" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Diag" + } +} +mappings { + frameworkName: "tensorflow" + opName: "range" + inputFrameworkOpName: "Range" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "start" + inputTensorName: "limit" + inputTensorName: "delta" + outputTensorName: "from" + outputTensorName: "to" + outputTensorName: "step" + inputToOutput { + key: "from" + value: "start" + } + inputToOutput { + key: "to" + value: "limit" + } + inputToOutput { + key: "step" + value: "delta" + } + ruleType: "tensor" + inputFrameworkOpName: "Range" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "from" + outputIntName: "to" + outputIntName: "step" + inputToOutput { + key: "from" + value: "start" + } + inputToOutput { + key: "to" + value: "limit" + } + inputToOutput { + key: "step" + value: "delta" + } + ruleType: "attribute" + inputFrameworkOpName: "Range" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "Tidx" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "Tidx" + } + ruleType: "attribute" + inputFrameworkOpName: "Range" + } +} +mappings { + frameworkName: "tensorflow" + opName: "histogram_fixed_width" + inputFrameworkOpName: "HistogramFixedWidth" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "values" + inputTensorName: "value_range" + inputTensorName: "nbins" + outputTensorName: "input" + outputTensorName: "range" + outputTensorName: "numBins" + inputToOutput { + key: "input" + value: "values" + } + inputToOutput { + key: "range" + value: "value_range" + } + inputToOutput { + key: "numBins" + value: "nbins" + } + ruleType: "tensor" + inputFrameworkOpName: "HistogramFixedWidth" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "nbins" + inputToOutput { + key: "nbins" + value: "nbins" + } + ruleType: "attribute" + inputFrameworkOpName: "HistogramFixedWidth" + } +} +mappings { + frameworkName: "tensorflow" + opName: "divide_no_nan" + inputFrameworkOpName: "DivNoNan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "DivNoNan" + } +} +mappings { + frameworkName: "tensorflow" + opName: "broadcast_dynamic_shape" + inputFrameworkOpName: "BroadcastArgs" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "s0" + inputTensorName: "s1" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "s0" + } + inputToOutput { + key: "y" + value: "s1" + } + ruleType: "tensor" + inputFrameworkOpName: "BroadcastArgs" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_div" + inputFrameworkOpName: "ScatterDiv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "indices" + inputTensorName: "updates" + outputTensorName: "input" + outputTensorName: "indices" + outputTensorName: "updates" + inputToOutput { + key: "input" + value: "ref" + } + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterDiv" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reshape" + inputFrameworkOpName: "Reshape" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + inputTensorName: "shape" + outputTensorName: "input" + outputTensorName: "shape" + inputToOutput { + key: "input" + value: "tensor" + } + inputToOutput { + key: "shape" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "Reshape" + } +} +mappings { + frameworkName: "tensorflow" + opName: "copy" + inputFrameworkOpName: "Copy" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Copy" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Copy" + } +} +mappings { + frameworkName: "tensorflow" + opName: "slice" + inputFrameworkOpName: "Slice" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "begin" + inputTensorName: "size" + outputTensorName: "input" + outputTensorName: "b" + outputTensorName: "e" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "b" + value: "begin" + } + inputToOutput { + key: "e" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "Slice" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "size" + inputToOutput { + key: "size" + value: "size" + } + ruleType: "attribute" + inputFrameworkOpName: "Slice" + } +} +mappings { + frameworkName: "tensorflow" + opName: "leakyrelu" + inputFrameworkOpName: "LeakyRelu" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "features" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "features" + } + ruleType: "tensor" + inputFrameworkOpName: "LeakyRelu" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "alpha" + outputDoubleName: "alpha" + inputToOutput { + key: "alpha" + value: "alpha" + } + ruleType: "attribute" + inputFrameworkOpName: "LeakyRelu" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_inverse" + inputFrameworkOpName: "MatrixInverse" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MatrixInverse" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "BatchMatrixInverse" + } +} +mappings { + frameworkName: "tensorflow" + opName: "tf_atan2" + inputFrameworkOpName: "Atan2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Atan2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Atan2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Atan2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "batch_to_space" + inputFrameworkOpName: "BatchToSpace" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "crops" + outputTensorName: "input" + outputTensorName: "crop" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "crop" + value: "crops" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchToSpace" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "block_size" + outputIntName: "blockSize" + inputToOutput { + key: "blockSize" + value: "block_size" + } + ruleType: "attribute" + inputFrameworkOpName: "BatchToSpace" + } +} +mappings { + frameworkName: "tensorflow" + opName: "acos" + inputFrameworkOpName: "Acos" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Acos" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Acos" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Acos" + } +} +mappings { + frameworkName: "tensorflow" + opName: "gather_nd" + inputFrameworkOpName: "GatherNd" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "params" + inputTensorName: "indices" + outputTensorName: "input" + outputTensorName: "indices" + inputToOutput { + key: "input" + value: "params" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "GatherNd" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + ruleType: "attribute" + inputFrameworkOpName: "GatherNd" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + } + } + inputFrameworkOpName: "GatherNd" + } +} +mappings { + frameworkName: "tensorflow" + opName: "maxpool2d" + inputFrameworkOpName: "MaxPoolV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "extraParam0" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "extraParam0" + argType: INT64 + argIndex: 9 + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pH" + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "pW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "pW" + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dW" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dW" + int64Value: 1 + argType: INT64 + argIndex: 6 + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dH" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dH" + int64Value: 1 + argType: INT64 + argIndex: 7 + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "stringnotequalsadapterrule" + functionName: "stringnotequalsadapterrule" + inputStringAttrName: "data_format" + outputIntName: "isNCHW" + inputFloatName: "data_format" + inputToOutput { + key: "isNCHW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "isNCHW" + transformerArgs { + name: "data_format" + argIndex: 10 + stringValue: "NCHW" + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + argIndex: 8 + stringValue: "SAME" + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "conditionalfieldvalueintindexndarray" + functionName: "conditionalfieldvalueintindexndarray" + inputStringAttrName: "data_format" + outputIntName: "sH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + argIndex: 2 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + argIndex: 2 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + argIndex: 2 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + transformerArgs { + key: "sH" + transformerArgs { + name: "targetValue" + argIndex: 2 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + argIndex: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + argIndex: 2 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 2 + stringValue: "strides" + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "conditionalfieldvalueintindexndarray" + functionName: "conditionalfieldvalueintindexndarray" + inputStringAttrName: "data_format" + outputIntName: "sW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "sW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + argIndex: 3 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + argIndex: 3 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + argIndex: 3 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + transformerArgs { + key: "sW" + transformerArgs { + name: "targetValue" + argIndex: 3 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 3 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 3 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 3 + stringValue: "strides" + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "conditionalfieldvalueintindexndarray" + functionName: "conditionalfieldvalueintindexndarray" + inputStringAttrName: "data_format" + outputIntName: "kH" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kH" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + transformerArgs { + key: "kH" + transformerArgs { + name: "targetValue" + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 2 + } + transformerArgs { + name: "falseIndex" + int64Value: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + stringValue: "ksize" + } + } + inputFrameworkOpName: "MaxPoolV2" + } + rule { + ruleName: "conditionalfieldvalueintindexndarray" + functionName: "conditionalfieldvalueintindexndarray" + inputStringAttrName: "data_format" + outputIntName: "kW" + inputFloatName: "targetValue" + inputFloatName: "trueIndex" + inputFloatName: "falseIndex" + inputFloatName: "attributeNameOfListAttribute" + inputToOutput { + key: "kW" + value: "data_format" + } + ruleType: "attribute" + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + argIndex: 1 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + argIndex: 1 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + argIndex: 1 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + transformerArgs { + key: "kW" + transformerArgs { + name: "targetValue" + argIndex: 1 + stringValue: "NCHW" + } + transformerArgs { + name: "trueIndex" + int64Value: 3 + argIndex: 1 + } + transformerArgs { + name: "falseIndex" + int64Value: 2 + argIndex: 1 + } + transformerArgs { + name: "attributeNameOfListAttribute" + argIndex: 1 + stringValue: "ksize" + } + } + inputFrameworkOpName: "MaxPoolV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cholesky" + inputFrameworkOpName: "Cholesky" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "Cholesky" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_crop" + inputFrameworkOpName: "RandomCrop" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "image" + inputTensorName: "size" + outputTensorName: "input" + outputTensorName: "shape" + inputToOutput { + key: "input" + value: "image" + } + inputToOutput { + key: "shape" + value: "size" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomCrop" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "seed" + outputIntName: "seed" + inputToOutput { + key: "seed" + value: "seed" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomCrop" + } +} +mappings { + frameworkName: "tensorflow" + opName: "batch_to_space_nd" + inputFrameworkOpName: "BatchToSpaceND" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "crops" + inputTensorName: "block_shape" + outputTensorName: "input" + outputTensorName: "crop" + outputTensorName: "blockShape" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "crop" + value: "crops" + } + inputToOutput { + key: "blockShape" + value: "block_shape" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchToSpaceND" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "blocks" + inputToOutput { + key: "blocks" + value: "block_shape" + } + ruleType: "attribute" + inputFrameworkOpName: "BatchToSpaceND" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BatchToSpaceND" + } +} +mappings { + frameworkName: "tensorflow" + opName: "reduce_mean" + inputFrameworkOpName: "Mean" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Mean" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Mean" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Mean" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cosh" + inputFrameworkOpName: "Cosh" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Cosh" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Cosh" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Cosh" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "Variable" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + ruleType: "tensor" + inputFrameworkOpName: "Variable" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Variable" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "Variable" + } +} +mappings { + frameworkName: "tensorflow" + opName: "log_softmax" + inputFrameworkOpName: "LogSoftmax" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "logits" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "logits" + } + ruleType: "tensor" + inputFrameworkOpName: "LogSoftmax" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cross" + inputFrameworkOpName: "Cross" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "b" + outputTensorName: "a" + outputTensorName: "b" + inputToOutput { + key: "a" + value: "a" + } + inputToOutput { + key: "b" + value: "b" + } + ruleType: "tensor" + inputFrameworkOpName: "Cross" + } +} +mappings { + frameworkName: "tensorflow" + opName: "matrix_set_diag" + inputFrameworkOpName: "BatchMatrixSetDiag" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "diagonal" + outputTensorName: "input" + outputTensorName: "diagonal" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "diagonal" + value: "diagonal" + } + ruleType: "tensor" + inputFrameworkOpName: "BatchMatrixSetDiag" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "BatchMatrixSetDiag" + } +} +mappings { + frameworkName: "tensorflow" + opName: "non_max_suppression_overlaps" + inputFrameworkOpName: "NonMaxSuppressionWithOverlaps" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "scores" + inputTensorName: "overlaps" + outputTensorName: "scales" + outputTensorName: "boxes" + inputToOutput { + key: "scales" + value: "scores" + } + inputToOutput { + key: "boxes" + value: "overlaps" + } + ruleType: "tensor" + inputFrameworkOpName: "NonMaxSuppressionWithOverlaps" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "maxOutputSize" + outputDoubleName: "overlapThreshold" + outputDoubleName: "scoreThreshold" + inputToOutput { + key: "maxOutputSize" + value: "max_output_size" + } + inputToOutput { + key: "overlapThreshold" + value: "overlap_threshold" + } + inputToOutput { + key: "scoreThreshold" + value: "score_threshold" + } + ruleType: "attribute" + inputFrameworkOpName: "NonMaxSuppressionWithOverlaps" + } +} +mappings { + frameworkName: "tensorflow" + opName: "concat" + inputFrameworkOpName: "ConcatV2" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "ConcatV2" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputIntName: "concatDimension" + inputToOutput { + key: "concatDimension" + value: "axis" + } + ruleType: "attribute" + inputFrameworkOpName: "ConcatV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isDynamicAxis" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isDynamicAxis" + boolValue: true + argType: BOOL + } + } + inputFrameworkOpName: "ConcatV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "truncatediv" + inputFrameworkOpName: "TruncateDiv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "TruncateDiv" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "TruncateDiv" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "TruncateDiv" + } +} +mappings { + frameworkName: "tensorflow" + opName: "any" + inputFrameworkOpName: "Any" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + inputTensorName: "reduction_indices" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "input" + } + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "tensor" + inputFrameworkOpName: "Any" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputBooleanName: "keep_dims" + outputBooleanName: "keepDims" + inputToOutput { + key: "keepDims" + value: "keep_dims" + } + ruleType: "attribute" + inputFrameworkOpName: "Any" + } + rule { + ruleName: "ndarraytointattributevalue" + functionName: "ndarraytointattributevalue" + outputIntName: "dimensions" + inputToOutput { + key: "dimensions" + value: "reduction_indices" + } + ruleType: "attribute" + inputFrameworkOpName: "Any" + } +} +mappings { + frameworkName: "tensorflow" + opName: "boolean_or" + inputFrameworkOpName: "LogicalOr" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "LogicalOr" + } +} +mappings { + frameworkName: "tensorflow" + opName: "Reciprocal" + inputFrameworkOpName: "Inv" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Inv" + } +} +mappings { + frameworkName: "tensorflow" + opName: "boolean_not" + inputFrameworkOpName: "LogicalNot" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "LogicalNot" + } +} +mappings { + frameworkName: "tensorflow" + opName: "igammac" + inputFrameworkOpName: "Igammac" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "a" + inputTensorName: "x" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "a" + } + inputToOutput { + key: "y" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Igammac" + } +} +mappings { + frameworkName: "tensorflow" + opName: "extract_image_patches" + inputFrameworkOpName: "ExtractImagePatches" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "images" + } + ruleType: "tensor" + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "ksizeRows" + inputToOutput { + key: "ksizeRows" + value: "ksizes" + } + ruleType: "attribute" + transformerArgs { + key: "ksizeRows" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "ksizeCols" + inputToOutput { + key: "ksizeCols" + value: "ksizes" + } + ruleType: "attribute" + transformerArgs { + key: "ksizeCols" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 1 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kstrideRows" + inputToOutput { + key: "kstrideRows" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "kstrideRows" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 2 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "kstrideCols" + inputToOutput { + key: "kstrideCols" + value: "strides" + } + ruleType: "attribute" + transformerArgs { + key: "kstrideCols" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 3 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "krateRows" + inputToOutput { + key: "krateRows" + value: "rates" + } + ruleType: "attribute" + transformerArgs { + key: "krateRows" + transformerArgs { + name: "index" + int64Value: 1 + argType: INT64 + argIndex: 4 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "listattributevaluelookuptoindex" + functionName: "listattributevaluelookuptoindex" + inputIntName: "index" + outputIntName: "krateCols" + inputToOutput { + key: "krateCols" + value: "rates" + } + ruleType: "attribute" + transformerArgs { + key: "krateCols" + transformerArgs { + name: "index" + int64Value: 2 + argType: INT64 + argIndex: 5 + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "stringequals" + functionName: "stringequals" + inputStringAttrName: "padding" + inputStringAttrName: "padding" + outputIntName: "isSameMode" + inputToOutput { + key: "isSameMode" + value: "padding" + } + ruleType: "attribute" + transformerArgs { + key: "isSameMode" + transformerArgs { + name: "padding" + argType: STRING + stringValue: "SAME" + } + } + inputFrameworkOpName: "ExtractImagePatches" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "ExtractImagePatches" + } +} +mappings { + frameworkName: "tensorflow" + opName: "fake_quant_with_min_max_vars" + inputFrameworkOpName: "FakeQuantWithMinMaxVars" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "inputs" + inputTensorName: "min" + inputTensorName: "max" + outputTensorName: "input" + outputTensorName: "min" + outputTensorName: "max" + inputToOutput { + key: "input" + value: "inputs" + } + inputToOutput { + key: "min" + value: "min" + } + inputToOutput { + key: "max" + value: "max" + } + ruleType: "tensor" + inputFrameworkOpName: "FakeQuantWithMinMaxVars" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "num_bits" + outputIntName: "numBits" + inputBooleanName: "narrow_range" + outputBooleanName: "narrowed" + inputToOutput { + key: "numBits" + value: "num_bits" + } + inputToOutput { + key: "narrowed" + value: "narrow_range" + } + ruleType: "attribute" + inputFrameworkOpName: "FakeQuantWithMinMaxVars" + } +} +mappings { + frameworkName: "tensorflow" + opName: "round" + inputFrameworkOpName: "Round" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Round" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Round" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Round" + } +} +mappings { + frameworkName: "tensorflow" + opName: "dynamic_stitch" + inputFrameworkOpName: "ParallelDynamicStitch" + rule { + ruleName: "passthrough" + functionName: "passthrough" + ruleType: "tensor" + inputFrameworkOpName: "ParallelDynamicStitch" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputIntName: "N" + outputIntName: "numPartitions" + inputToOutput { + key: "numPartitions" + value: "N" + } + ruleType: "attribute" + inputFrameworkOpName: "ParallelDynamicStitch" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sigmoid" + inputFrameworkOpName: "Sigmoid" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Sigmoid" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sigmoid" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sigmoid" + } +} +mappings { + frameworkName: "tensorflow" + opName: "lstmBlock" + inputFrameworkOpName: "BlockLSTMV2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "seq_len_max" + inputTensorName: "x" + inputTensorName: "cs_prev" + inputTensorName: "h_prev" + inputTensorName: "w" + inputTensorName: "wci" + inputTensorName: "wcf" + inputTensorName: "wco" + inputTensorName: "b" + outputTensorName: "maxTSLength" + outputTensorName: "input" + outputTensorName: "cLast" + outputTensorName: "yLast" + outputTensorName: "W" + outputTensorName: "Wci" + outputTensorName: "Wcf" + outputTensorName: "Wco" + outputTensorName: "b" + inputToOutput { + key: "maxTSLength" + value: "seq_len_max" + } + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "cLast" + value: "cs_prev" + } + inputToOutput { + key: "yLast" + value: "h_prev" + } + inputToOutput { + key: "W" + value: "w" + } + inputToOutput { + key: "Wci" + value: "wci" + } + inputToOutput { + key: "Wcf" + value: "wcf" + } + inputToOutput { + key: "Wco" + value: "wco" + } + inputToOutput { + key: "b" + value: "b" + } + ruleType: "tensor" + inputFrameworkOpName: "BlockLSTMV2" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputFloatName: "cell_clip" + outputDoubleName: "clippingCellValue" + inputToOutput { + key: "clippingCellValue" + value: "cell_clip" + } + ruleType: "attribute" + inputFrameworkOpName: "BlockLSTMV2" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "peephole" + inputBooleanName: "use_peephole" + inputToOutput { + key: "peephole" + value: "use_peephole" + } + ruleType: "attribute" + inputFrameworkOpName: "BlockLSTMV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputFloatName: "forgetBias" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "forgetBias" + doubleValue: 3.0 + argType: DOUBLE + } + } + inputFrameworkOpName: "BlockLSTMV2" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputIntName: "dataFormat" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "dataFormat" + argType: INT64 + } + } + inputFrameworkOpName: "BlockLSTMV2" + } +} +mappings { + frameworkName: "tensorflow" + opName: "atan" + inputFrameworkOpName: "Atan" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Atan" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Atan" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Atan" + } +} +mappings { + frameworkName: "tensorflow" + opName: "ClipByValue" + inputFrameworkOpName: "ClipByValue" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "t" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "t" + } + ruleType: "tensor" + inputFrameworkOpName: "ClipByValue" + } + rule { + ruleName: "ndarrayinputtonumericalattribute" + functionName: "ndarrayinputtonumericalattribute" + outputDoubleName: "clipValueMin" + outputDoubleName: "clipValueMax" + inputToOutput { + key: "clipValueMin" + value: "clip_value_min" + } + inputToOutput { + key: "clipValueMax" + value: "clip_value_max" + } + ruleType: "attribute" + inputFrameworkOpName: "ClipByValue" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "ClipByValue" + } +} +mappings { + frameworkName: "tensorflow" + opName: "segment_mean" + inputFrameworkOpName: "SegmentMean" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "data" + inputTensorName: "segment_ids" + outputTensorName: "input" + outputTensorName: "idxSegments" + inputToOutput { + key: "input" + value: "data" + } + inputToOutput { + key: "idxSegments" + value: "segment_ids" + } + ruleType: "tensor" + inputFrameworkOpName: "SegmentMean" + } +} +mappings { + frameworkName: "tensorflow" + opName: "floor" + inputFrameworkOpName: "Floor" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Floor" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Floor" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Floor" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_update" + inputFrameworkOpName: "ScatterUpdate" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "ref" + inputTensorName: "updates" + inputTensorName: "indices" + outputTensorName: "operand" + outputTensorName: "updates" + outputTensorName: "indices" + inputToOutput { + key: "operand" + value: "ref" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "ScatterUpdate" + } +} +mappings { + frameworkName: "tensorflow" + opName: "identity" + inputFrameworkOpName: "DeepCopy" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "DeepCopy" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "DeepCopy" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "DeepCopy" + } +} +mappings { + frameworkName: "tensorflow" + opName: "hsv_to_rgb" + inputFrameworkOpName: "HSVToRGB" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "images" + } + ruleType: "tensor" + inputFrameworkOpName: "HSVToRGB" + } +} +mappings { + frameworkName: "tensorflow" + opName: "listdiff" + inputFrameworkOpName: "ListDiff" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "values" + outputTensorName: "keep" + inputToOutput { + key: "values" + value: "x" + } + inputToOutput { + key: "keep" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "ListDiff" + } +} +mappings { + frameworkName: "tensorflow" + opName: "While" + inputFrameworkOpName: "While" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "input" + outputTensorName: "condition" + inputToOutput { + key: "condition" + value: "input" + } + ruleType: "tensor" + inputFrameworkOpName: "While" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "isConstant" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "isConstant" + argType: BOOL + } + } + inputFrameworkOpName: "While" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_update" + inputFrameworkOpName: "TensorScatterUpdate" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "tensor" + inputTensorName: "updates" + inputTensorName: "indices" + outputTensorName: "operand" + outputTensorName: "updates" + outputTensorName: "indices" + inputToOutput { + key: "operand" + value: "tensor" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "indices" + value: "indices" + } + ruleType: "tensor" + inputFrameworkOpName: "TensorScatterUpdate" + } +} +mappings { + frameworkName: "tensorflow" + opName: "scatter_sub" + inputFrameworkOpName: "TensorScatterSub" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "indices" + inputTensorName: "updates" + inputTensorName: "tensor" + outputTensorName: "indices" + outputTensorName: "updates" + outputTensorName: "input" + inputToOutput { + key: "indices" + value: "indices" + } + inputToOutput { + key: "updates" + value: "updates" + } + inputToOutput { + key: "input" + value: "tensor" + } + ruleType: "tensor" + inputFrameworkOpName: "TensorScatterSub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "lock" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "lock" + argType: BOOL + } + } + inputFrameworkOpName: "TensorScatterSub" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "checkIndices" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "checkIndices" + argType: BOOL + argIndex: 1 + } + } + inputFrameworkOpName: "TensorScatterSub" + } +} +mappings { + frameworkName: "tensorflow" + opName: "cumprod" + inputFrameworkOpName: "Cumprod" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "axis" + outputTensorName: "input" + outputTensorName: "dimensions" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "dimensions" + value: "axis" + } + ruleType: "tensor" + inputFrameworkOpName: "Cumprod" + } + rule { + ruleName: "invertbooleannumber" + functionName: "invertbooleannumber" + outputIntName: "exclusive" + outputIntName: "reverse" + inputBooleanName: "exclusive" + inputBooleanName: "reverse" + inputToOutput { + key: "exclusive" + value: "exclusive" + } + inputToOutput { + key: "reverse" + value: "reverse" + } + ruleType: "attribute" + inputFrameworkOpName: "Cumprod" + } +} +mappings { + frameworkName: "tensorflow" + opName: "mergesum" + inputFrameworkOpName: "AddN" + rule { + ruleName: "multiinputindex" + functionName: "multiinputindex" + inputTensorName: "inputs" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "inputs" + } + ruleType: "tensor" + inputFrameworkOpName: "AddN" + } +} +mappings { + frameworkName: "tensorflow" + opName: "random_normal" + inputFrameworkOpName: "RandomStandardNormal" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "shape" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "shape" + } + ruleType: "tensor" + inputFrameworkOpName: "RandomStandardNormal" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "dtype" + outputDataTypeName: "dtype" + inputToOutput { + key: "dtype" + value: "dtype" + } + ruleType: "attribute" + inputFrameworkOpName: "RandomStandardNormal" + } +} +mappings { + frameworkName: "tensorflow" + opName: "sign" + inputFrameworkOpName: "Sign" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Sign" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Sign" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Sign" + } +} +mappings { + frameworkName: "tensorflow" + opName: "greater" + inputFrameworkOpName: "Greater" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + inputTensorName: "y" + outputTensorName: "input" + outputTensorName: "y" + inputToOutput { + key: "input" + value: "x" + } + inputToOutput { + key: "y" + value: "y" + } + ruleType: "tensor" + inputFrameworkOpName: "Greater" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Greater" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Greater" + } +} +mappings { + frameworkName: "tensorflow" + opName: "exp" + inputFrameworkOpName: "Exp" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "x" + outputTensorName: "input" + inputToOutput { + key: "input" + value: "x" + } + ruleType: "tensor" + inputFrameworkOpName: "Exp" + } + rule { + ruleName: "valuemapping" + functionName: "valuemapping" + inputDataTypeName: "T" + outputDataTypeName: "dataType" + inputToOutput { + key: "dataType" + value: "T" + } + ruleType: "attribute" + inputFrameworkOpName: "Exp" + } + rule { + ruleName: "argdescriptorconstant" + functionName: "argdescriptorconstant" + inputBooleanName: "inPlace" + ruleType: "attribute" + transformerArgs { + key: "value" + transformerArgs { + name: "inPlace" + argType: BOOL + } + } + inputFrameworkOpName: "Exp" + } +} +mappings { + frameworkName: "tensorflow" + opName: "adjust_contrast_v2" + inputFrameworkOpName: "AdjustContrastv2" + rule { + ruleName: "ndarraymapping" + functionName: "ndarraymapping" + inputTensorName: "images" + inputTensorName: "contrast_factor" + outputTensorName: "input" + outputTensorName: "factor" + inputToOutput { + key: "input" + value: "images" + } + inputToOutput { + key: "factor" + value: "contrast_factor" + } + ruleType: "tensor" + inputFrameworkOpName: "AdjustContrastv2" + } +} diff --git a/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-op-def.pbtxt b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-op-def.pbtxt new file mode 100644 index 000000000..5f449903a --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/src/test/resources/tensorflow-op-def.pbtxt @@ -0,0 +1,58323 @@ +op { + name: "Abort" + attr { + name: "error_msg" + type: "string" + default_value { + s: "" + } + } + attr { + name: "exit_without_error" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Abs" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AccumulateNV2" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "sum" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + is_aggregate: true + is_commutative: true +} +op { + name: "AccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "AccumulatorNumAccumulated" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "num_accumulated" + type: DT_INT32 + } +} +op { + name: "AccumulatorSetGlobalStep" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "new_global_step" + type: DT_INT64 + } +} +op { + name: "AccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "average" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Acos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Acosh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Add" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "AddManySparseToTensorsMap" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_handles" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "AddN" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "sum" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_VARIANT + } + } + } + is_aggregate: true + is_commutative: true +} +op { + name: "AddSparseToTensorsMap" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_handle" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "AddV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_UINT32 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_aggregate: true + is_commutative: true +} +op { + name: "AdjustContrast" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "contrast_factor" + type: DT_FLOAT + } + input_arg { + name: "min_value" + type: DT_FLOAT + } + input_arg { + name: "max_value" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 2 + explanation: "Use AdjustContrastv2 instead" + } +} +op { + name: "AdjustContrastv2" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "contrast_factor" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "AdjustHue" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "delta" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "AdjustSaturation" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "All" + input_arg { + name: "input" + type: DT_BOOL + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AllCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "AllToAll" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_assignment" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "concat_dimension" + type: "int" + } + attr { + name: "split_dimension" + type: "int" + } + attr { + name: "split_count" + type: "int" + } +} +op { + name: "Angle" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AnonymousIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousIteratorV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousMemoryCache" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "AnonymousMultiDeviceIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "devices" + type: "list(string)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "AnonymousRandomSeedGenerator" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "AnonymousSeedGenerator" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "reshuffle" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "Any" + input_arg { + name: "input" + type: DT_BOOL + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ApplyAdaMax" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "v" + type_attr: "T" + is_ref: true + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdadelta" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum_update" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ApplyAdagradDA" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_squared_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAdagradV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ApplyAdam" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "v" + type_attr: "T" + is_ref: true + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyAddSign" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyCenteredRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mg" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyFtrl" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyFtrlV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyMomentum" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyPowerSign" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "m" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "logbase" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyProximalAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyProximalGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApplyRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ApproximateEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "tolerance" + type: "float" + default_value { + f: 1e-05 + } + } + is_commutative: true +} +op { + name: "ArgMax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dimension" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "output_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ArgMin" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dimension" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "output_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "AsString" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BOOL + type: DT_VARIANT + } + } + } + attr { + name: "precision" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "scientific" + type: "bool" + default_value { + b: false + } + } + attr { + name: "shortest" + type: "bool" + default_value { + b: false + } + } + attr { + name: "width" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "fill" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Asin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Asinh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Assert" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } + is_stateful: true +} +op { + name: "AssertCardinalityDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "cardinality" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "AssertNextDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "transformations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Assign" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "validate_shape" + type: "bool" + default_value { + b: true + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + allows_uninitialized_input: true +} +op { + name: "AssignAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AssignAddVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "AssignSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AssignSubVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "AssignVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "Atan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Atan2" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Atanh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "AudioSpectrogram" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "spectrogram" + type: DT_FLOAT + } + attr { + name: "window_size" + type: "int" + } + attr { + name: "stride" + type: "int" + } + attr { + name: "magnitude_squared" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "AudioSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "sample_rate" + type: "float" + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + deprecation { + version: 15 + explanation: "Use AudioSummaryV2." + } +} +op { + name: "AudioSummaryV2" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_FLOAT + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } +} +op { + name: "AutoShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_workers" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "auto_shard_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "num_replicas" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "AvgPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPool3D" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPool3DGrad" + input_arg { + name: "orig_input_shape" + type: DT_INT32 + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "AvgPoolGrad" + input_arg { + name: "orig_input_shape" + type: DT_INT32 + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BandedTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Barrier" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BarrierClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BarrierIncompleteSize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "BarrierInsertMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "component_index" + type: "int" + } +} +op { + name: "BarrierReadySize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "BarrierTakeMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "allow_small_batch" + type: "bool" + default_value { + b: false + } + } + attr { + name: "wait_for_incomplete" + type: "bool" + default_value { + b: false + } + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "Batch" + input_arg { + name: "in_tensors" + type_list_attr: "T" + } + output_arg { + name: "batched_tensors" + type_list_attr: "T" + } + output_arg { + name: "batch_index" + type: DT_INT64 + } + output_arg { + name: "id" + type: DT_INT64 + } + attr { + name: "num_batch_threads" + type: "int" + } + attr { + name: "max_batch_size" + type: "int" + } + attr { + name: "max_enqueued_batches" + type: "int" + default_value { + i: 10 + } + } + attr { + name: "batch_timeout_micros" + type: "int" + } + attr { + name: "allowed_batch_sizes" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "grad_timeout_micros" + type: "int" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "batching_queue" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchCholesky" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use Cholesky instead." + } +} +op { + name: "BatchCholeskyGrad" + input_arg { + name: "l" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 13 + explanation: "Use CholeskyGrad instead." + } +} +op { + name: "BatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "parallel_copy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "BatchFFT" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT" + } +} +op { + name: "BatchFFT2D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT2D" + } +} +op { + name: "BatchFFT3D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use FFT3D" + } +} +op { + name: "BatchFunction" + input_arg { + name: "in_tensors" + type_list_attr: "Tin" + } + input_arg { + name: "captured_tensors" + type_list_attr: "Tcaptured" + } + output_arg { + name: "out_tensors" + type_list_attr: "Tout" + } + attr { + name: "f" + type: "func" + } + attr { + name: "num_batch_threads" + type: "int" + } + attr { + name: "max_batch_size" + type: "int" + } + attr { + name: "batch_timeout_micros" + type: "int" + } + attr { + name: "max_enqueued_batches" + type: "int" + default_value { + i: 10 + } + } + attr { + name: "allowed_batch_sizes" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "batching_queue" + type: "string" + default_value { + s: "" + } + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tcaptured" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "enable_large_batch_splitting" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchIFFT" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT" + } +} +op { + name: "BatchIFFT2D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT2D" + } +} +op { + name: "BatchIFFT3D" + input_arg { + name: "input" + type: DT_COMPLEX64 + } + output_arg { + name: "output" + type: DT_COMPLEX64 + } + deprecation { + version: 15 + explanation: "Use IFFT3D" + } +} +op { + name: "BatchMatMul" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "adj_x" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adj_y" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchMatMulV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "adj_x" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adj_y" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "BatchMatrixBandPart" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "num_lower" + type: DT_INT64 + } + input_arg { + name: "num_upper" + type: DT_INT64 + } + output_arg { + name: "band" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixBandPart" + } +} +op { + name: "BatchMatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixDeterminant instead." + } +} +op { + name: "BatchMatrixDiag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixDiag" + } +} +op { + name: "BatchMatrixDiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixDiagPart" + } +} +op { + name: "BatchMatrixInverse" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixInverse instead." + } +} +op { + name: "BatchMatrixSetDiag" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 14 + explanation: "Use MatrixSetDiag" + } +} +op { + name: "BatchMatrixSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixSolve instead." + } +} +op { + name: "BatchMatrixSolveLs" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + input_arg { + name: "l2_regularizer" + type: DT_DOUBLE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + attr { + name: "fast" + type: "bool" + default_value { + b: true + } + } + deprecation { + version: 13 + explanation: "Use MatrixSolveLs instead." + } +} +op { + name: "BatchMatrixTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use MatrixTriangularSolve instead." + } +} +op { + name: "BatchNormWithGlobalNormalization" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "m" + type_attr: "T" + } + input_arg { + name: "v" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "gamma" + type_attr: "T" + } + output_arg { + name: "result" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } + deprecation { + version: 9 + explanation: "Use tf.nn.batch_normalization()" + } +} +op { + name: "BatchNormWithGlobalNormalizationGrad" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "m" + type_attr: "T" + } + input_arg { + name: "v" + type_attr: "T" + } + input_arg { + name: "gamma" + type_attr: "T" + } + input_arg { + name: "backprop" + type_attr: "T" + } + output_arg { + name: "dx" + type_attr: "T" + } + output_arg { + name: "dm" + type_attr: "T" + } + output_arg { + name: "dv" + type_attr: "T" + } + output_arg { + name: "db" + type_attr: "T" + } + output_arg { + name: "dg" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } + deprecation { + version: 9 + explanation: "Use tf.nn.batch_normalization()" + } +} +op { + name: "BatchSelfAdjointEig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 11 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "BatchSelfAdjointEigV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } + deprecation { + version: 13 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "BatchSvd" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "s" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_uv" + type: "bool" + default_value { + b: true + } + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 13 + explanation: "Use Svd instead." + } +} +op { + name: "BatchToSpace" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "crops" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BatchToSpaceND" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "block_shape" + type_attr: "Tblock_shape" + } + input_arg { + name: "crops" + type_attr: "Tcrops" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tblock_shape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tcrops" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BesselI0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI0e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselI1e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselJ0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselJ1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK0e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselK1e" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselY0" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BesselY1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Betainc" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "BiasAdd" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "bias" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } +} +op { + name: "BiasAddGrad" + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } +} +op { + name: "BiasAddV1" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "bias" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Bincount" + input_arg { + name: "arr" + type: DT_INT32 + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "bins" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Bitcast" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT64 + type: DT_INT32 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_INT8 + type: DT_INT16 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT16 + type: DT_QUINT16 + type: DT_QINT32 + } + } + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT64 + type: DT_INT32 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_INT8 + type: DT_INT16 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT16 + type: DT_QUINT16 + type: DT_QINT32 + } + } + } +} +op { + name: "BitwiseAnd" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BitwiseOr" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BitwiseXor" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_commutative: true +} +op { + name: "BlockLSTM" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "forget_bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 3 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMGrad" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "h" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "x_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "h_prev_grad" + type_attr: "T" + } + output_arg { + name: "w_grad" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + output_arg { + name: "b_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMGradV2" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "h" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "x_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "h_prev_grad" + type_attr: "T" + } + output_arg { + name: "w_grad" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + output_arg { + name: "b_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BlockLSTMV2" + input_arg { + name: "seq_len_max" + type: DT_INT64 + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "BoostedTreesAggregateStats" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "feature" + type: DT_INT32 + } + output_arg { + name: "stats_summary" + type: DT_FLOAT + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesBucketize" + input_arg { + name: "float_values" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "buckets" + type: DT_INT32 + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } +} +op { + name: "BoostedTreesCalculateBestFeatureSplit" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary" + type: DT_FLOAT + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "split_type" + type: "string" + default_value { + s: "inequality" + } + allowed_values { + list { + s: "inequality" + s: "equality" + } + } + } +} +op { + name: "BoostedTreesCalculateBestFeatureSplitV2" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summaries_list" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "split_types" + type: DT_STRING + } + input_arg { + name: "candidate_feature_ids" + type: DT_INT32 + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_ids" + type: DT_INT32 + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesCalculateBestGainsPerFeature" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary_list" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "gains_list" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "thresholds_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "left_node_contribs_list" + type: DT_FLOAT + number_attr: "num_features" + } + output_arg { + name: "right_node_contribs_list" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesCenterBias" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "mean_gradients" + type: DT_FLOAT + } + input_arg { + name: "mean_hessians" + type: DT_FLOAT + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + output_arg { + name: "continue_centering" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "BoostedTreesCreateEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "stamp_token" + type: DT_INT64 + } + input_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesCreateQuantileStreamResource" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "epsilon" + type: DT_FLOAT + } + input_arg { + name: "num_streams" + type: DT_INT64 + } + attr { + name: "max_elements" + type: "int" + default_value { + i: 1099511627776 + } + } + is_stateful: true +} +op { + name: "BoostedTreesDeserializeEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "stamp_token" + type: DT_INT64 + } + input_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesEnsembleResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BoostedTreesExampleDebugOutputs" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "examples_debug_outputs_serialized" + type: DT_STRING + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesFlushQuantileSummaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesGetEnsembleStates" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "stamp_token" + type: DT_INT64 + } + output_arg { + name: "num_trees" + type: DT_INT32 + } + output_arg { + name: "num_finalized_trees" + type: DT_INT32 + } + output_arg { + name: "num_attempted_layers" + type: DT_INT32 + } + output_arg { + name: "last_layer_nodes_range" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "BoostedTreesMakeQuantileSummaries" + input_arg { + name: "float_values" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "epsilon" + type: DT_FLOAT + } + output_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } +} +op { + name: "BoostedTreesMakeStatsSummary" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "bucketized_features_list" + type: DT_INT32 + number_attr: "num_features" + } + output_arg { + name: "stats_summary" + type: DT_FLOAT + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesPredict" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "logits" + type: DT_FLOAT + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceAddSummaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "summaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceDeserialize" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_streams" + } + attr { + name: "num_streams" + type: "int" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceFlush" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "num_buckets" + type: DT_INT64 + } + attr { + name: "generate_quantiles" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceGetBucketBoundaries" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "bucket_boundaries" + type: DT_FLOAT + number_attr: "num_features" + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesQuantileStreamResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "BoostedTreesSerializeEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "stamp_token" + type: DT_INT64 + } + output_arg { + name: "tree_ensemble_serialized" + type: DT_STRING + } + is_stateful: true +} +op { + name: "BoostedTreesSparseAggregateStats" + input_arg { + name: "node_ids" + type: DT_INT32 + } + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "hessians" + type: DT_FLOAT + } + input_arg { + name: "feature_indices" + type: DT_INT32 + } + input_arg { + name: "feature_values" + type: DT_INT32 + } + input_arg { + name: "feature_shape" + type: DT_INT32 + } + output_arg { + name: "stats_summary_indices" + type: DT_INT32 + } + output_arg { + name: "stats_summary_values" + type: DT_FLOAT + } + output_arg { + name: "stats_summary_shape" + type: DT_INT32 + } + attr { + name: "max_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "BoostedTreesSparseCalculateBestFeatureSplit" + input_arg { + name: "node_id_range" + type: DT_INT32 + } + input_arg { + name: "stats_summary_indices" + type: DT_INT32 + } + input_arg { + name: "stats_summary_values" + type: DT_FLOAT + } + input_arg { + name: "stats_summary_shape" + type: DT_INT32 + } + input_arg { + name: "l1" + type: DT_FLOAT + } + input_arg { + name: "l2" + type: DT_FLOAT + } + input_arg { + name: "tree_complexity" + type: DT_FLOAT + } + input_arg { + name: "min_node_weight" + type: DT_FLOAT + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + output_arg { + name: "gains" + type: DT_FLOAT + } + output_arg { + name: "feature_dimensions" + type: DT_INT32 + } + output_arg { + name: "thresholds" + type: DT_INT32 + } + output_arg { + name: "left_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "right_node_contribs" + type: DT_FLOAT + } + output_arg { + name: "split_with_default_directions" + type: DT_STRING + } + attr { + name: "logits_dimension" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "split_type" + type: "string" + default_value { + s: "inequality" + } + allowed_values { + list { + s: "inequality" + } + } + } +} +op { + name: "BoostedTreesTrainingPredict" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "cached_tree_ids" + type: DT_INT32 + } + input_arg { + name: "cached_node_ids" + type: DT_INT32 + } + input_arg { + name: "bucketized_features" + type: DT_INT32 + number_attr: "num_bucketized_features" + } + output_arg { + name: "partial_logits" + type: DT_FLOAT + } + output_arg { + name: "tree_ids" + type: DT_INT32 + } + output_arg { + name: "node_ids" + type: DT_INT32 + } + attr { + name: "num_bucketized_features" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "BoostedTreesUpdateEnsemble" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "feature_ids" + type: DT_INT32 + } + input_arg { + name: "node_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "gains" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "thresholds" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "left_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "right_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "max_depth" + type: DT_INT32 + } + input_arg { + name: "learning_rate" + type: DT_FLOAT + } + attr { + name: "pruning_mode" + type: "int" + has_minimum: true + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "BoostedTreesUpdateEnsembleV2" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + input_arg { + name: "feature_ids" + type: DT_INT32 + number_attr: "num_groups" + } + input_arg { + name: "dimension_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "node_ids" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "gains" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "thresholds" + type: DT_INT32 + number_attr: "num_features" + } + input_arg { + name: "left_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "right_node_contribs" + type: DT_FLOAT + number_attr: "num_features" + } + input_arg { + name: "split_types" + type: DT_STRING + number_attr: "num_features" + } + input_arg { + name: "max_depth" + type: DT_INT32 + } + input_arg { + name: "learning_rate" + type: DT_FLOAT + } + input_arg { + name: "pruning_mode" + type: DT_INT32 + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + attr { + name: "logits_dimension" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "num_groups" + type: "int" + default_value { + i: 1 + } + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "BroadcastArgs" + input_arg { + name: "s0" + type_attr: "T" + } + input_arg { + name: "s1" + type_attr: "T" + } + output_arg { + name: "r0" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BroadcastGradientArgs" + input_arg { + name: "s0" + type_attr: "T" + } + input_arg { + name: "s1" + type_attr: "T" + } + output_arg { + name: "r0" + type_attr: "T" + } + output_arg { + name: "r1" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "BroadcastTo" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Bucketize" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "boundaries" + type: "list(float)" + } +} +op { + name: "BytesProducedStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "CSRSparseMatrixComponents" + input_arg { + name: "csr_sparse_matrix" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + output_arg { + name: "row_ptrs" + type: DT_INT32 + } + output_arg { + name: "col_inds" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "type" + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSRSparseMatrixToDense" + input_arg { + name: "sparse_input" + type: DT_VARIANT + } + output_arg { + name: "dense_output" + type_attr: "type" + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSRSparseMatrixToSparseTensor" + input_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type_attr: "type" + } + output_arg { + name: "dense_shape" + type: DT_INT64 + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CSVDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "CSVDatasetV2" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + input_arg { + name: "exclude_cols" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "CTCBeamSearchDecoder" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "decoded_indices" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "decoded_values" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "decoded_shape" + type: DT_INT64 + number_attr: "top_paths" + } + output_arg { + name: "log_probability" + type_attr: "T" + } + attr { + name: "beam_width" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "top_paths" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCGreedyDecoder" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "decoded_indices" + type: DT_INT64 + } + output_arg { + name: "decoded_values" + type: DT_INT64 + } + output_arg { + name: "decoded_shape" + type: DT_INT64 + } + output_arg { + name: "log_probability" + type_attr: "T" + } + attr { + name: "merge_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCLoss" + input_arg { + name: "inputs" + type_attr: "T" + } + input_arg { + name: "labels_indices" + type: DT_INT64 + } + input_arg { + name: "labels_values" + type: DT_INT32 + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "gradient" + type_attr: "T" + } + attr { + name: "preprocess_collapse_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ctc_merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "ignore_longer_outputs_than_inputs" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CTCLossV2" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "labels_indices" + type: DT_INT64 + } + input_arg { + name: "labels_values" + type: DT_INT32 + } + input_arg { + name: "sequence_length" + type: DT_INT32 + } + output_arg { + name: "loss" + type: DT_FLOAT + } + output_arg { + name: "gradient" + type: DT_FLOAT + } + attr { + name: "preprocess_collapse_repeated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ctc_merge_repeated" + type: "bool" + default_value { + b: true + } + } + attr { + name: "ignore_longer_outputs_than_inputs" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "CacheDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "CacheDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "cache" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Case" + input_arg { + name: "branch_index" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "Cast" + input_arg { + name: "x" + type_attr: "SrcT" + } + output_arg { + name: "y" + type_attr: "DstT" + } + attr { + name: "SrcT" + type: "type" + } + attr { + name: "DstT" + type: "type" + } + attr { + name: "Truncate" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Ceil" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CheckNumerics" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "message" + type: "string" + } + is_stateful: true +} +op { + name: "CheckNumericsV2" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "message" + type: "string" + } + is_stateful: true +} +op { + name: "Cholesky" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CholeskyGrad" + input_arg { + name: "l" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ChooseFastestBranchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "ratio_numerator" + type: DT_INT64 + } + input_arg { + name: "ratio_denominator" + type: DT_INT64 + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "num_elements_per_branch" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "other_arguments_lengths" + type: "list(int)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ChooseFastestDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "num_experiments" + type: "int" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ClipByValue" + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "clip_value_min" + type_attr: "T" + } + input_arg { + name: "clip_value_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CloseSummaryWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "CollectiveBcastRecv" + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveBcastRecvV2" + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveBcastSend" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveBcastSendV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveGather" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveGatherV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + input_arg { + name: "ordering_token" + type: DT_RESOURCE + number_attr: "Nordering_token" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "Nordering_token" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + is_stateful: true +} +op { + name: "CollectivePermute" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "source_target_pairs" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CollectiveReduce" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "group_size" + type: "int" + } + attr { + name: "group_key" + type: "int" + } + attr { + name: "instance_key" + type: "int" + } + attr { + name: "merge_op" + type: "string" + allowed_values { + list { + s: "Min" + s: "Max" + s: "Mul" + s: "Add" + } + } + } + attr { + name: "final_op" + type: "string" + allowed_values { + list { + s: "Id" + s: "Div" + } + } + } + attr { + name: "subdiv_offsets" + type: "list(int)" + } + attr { + name: "wait_for" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + is_stateful: true +} +op { + name: "CollectiveReduceV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_size" + type: DT_INT32 + } + input_arg { + name: "group_key" + type: DT_INT32 + } + input_arg { + name: "instance_key" + type: DT_INT32 + } + input_arg { + name: "ordering_token" + type: DT_RESOURCE + number_attr: "Nordering_token" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "merge_op" + type: "string" + allowed_values { + list { + s: "Min" + s: "Max" + s: "Mul" + s: "Add" + } + } + } + attr { + name: "final_op" + type: "string" + allowed_values { + list { + s: "Id" + s: "Div" + } + } + } + attr { + name: "communication_hint" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "timeout_seconds" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "Nordering_token" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + is_stateful: true +} +op { + name: "CombinedNonMaxSuppression" + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size_per_class" + type: DT_INT32 + } + input_arg { + name: "max_total_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type: DT_FLOAT + } + input_arg { + name: "score_threshold" + type: DT_FLOAT + } + output_arg { + name: "nmsed_boxes" + type: DT_FLOAT + } + output_arg { + name: "nmsed_scores" + type: DT_FLOAT + } + output_arg { + name: "nmsed_classes" + type: DT_FLOAT + } + output_arg { + name: "valid_detections" + type: DT_INT32 + } + attr { + name: "pad_per_class" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clip_boxes" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "CompareAndBitpack" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "threshold" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BOOL + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Complex" + input_arg { + name: "real" + type_attr: "T" + } + input_arg { + name: "imag" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ComplexAbs" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "CompressElement" + input_arg { + name: "components" + type_list_attr: "input_types" + } + output_arg { + name: "compressed" + type: DT_VARIANT + } + attr { + name: "input_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ComputeAccidentalHits" + input_arg { + name: "true_classes" + type: DT_INT64 + } + input_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "ids" + type: DT_INT64 + } + output_arg { + name: "weights" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "ComputeBatchSize" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "batch_size" + type: DT_INT64 + } +} +op { + name: "Concat" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ConcatOffset" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "shape" + type: DT_INT32 + number_attr: "N" + } + output_arg { + name: "offset" + type: DT_INT32 + number_attr: "N" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } +} +op { + name: "ConcatV2" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ConcatenateDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "another_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ConditionalAccumulator" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "ConfigureDistributedTPU" + output_arg { + name: "topology" + type: DT_STRING + } + attr { + name: "embedding_config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tpu_embedding_config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "is_global_init" + type: "bool" + default_value { + b: false + } + } + attr { + name: "enable_whole_mesh_compilations" + type: "bool" + default_value { + b: false + } + } + attr { + name: "compilation_failure_closes_chips" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ConfigureTPUEmbedding" + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "Conj" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_VARIANT + } + } + } +} +op { + name: "ConjugateTranspose" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "perm" + type_attr: "Tperm" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tperm" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Const" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "value" + type: "tensor" + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "ConsumeMutexLock" + input_arg { + name: "mutex_lock" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "ControlTrigger" +} +op { + name: "Conv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv2DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv2DBackpropInput" + input_arg { + name: "input_sizes" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "use_cudnn_on_gpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + deprecation { + version: 10 + explanation: "Use Conv3DBackpropFilterV2" + } +} +op { + name: "Conv3DBackpropFilterV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Conv3DBackpropInput" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + deprecation { + version: 10 + explanation: "Use Conv3DBackpropInputV2" + } +} +op { + name: "Conv3DBackpropInputV2" + input_arg { + name: "input_sizes" + type_attr: "Tshape" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Copy" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_ops_spec" + type: "list(string)" + default_value { + list { + } + } + } + allows_uninitialized_input: true +} +op { + name: "CopyHost" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_ops_spec" + type: "list(string)" + default_value { + list { + } + } + } + allows_uninitialized_input: true +} +op { + name: "Cos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Cosh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "CountUpTo" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "limit" + type: "int" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "CreateSummaryDbWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "db_uri" + type: DT_STRING + } + input_arg { + name: "experiment_name" + type: DT_STRING + } + input_arg { + name: "run_name" + type: DT_STRING + } + input_arg { + name: "user_name" + type: DT_STRING + } + is_stateful: true +} +op { + name: "CreateSummaryFileWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "logdir" + type: DT_STRING + } + input_arg { + name: "max_queue" + type: DT_INT32 + } + input_arg { + name: "flush_millis" + type: DT_INT32 + } + input_arg { + name: "filename_suffix" + type: DT_STRING + } + is_stateful: true +} +op { + name: "CropAndResize" + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + input_arg { + name: "crop_size" + type: DT_INT32 + } + output_arg { + name: "crops" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + s: "nearest" + } + } + } + attr { + name: "extrapolation_value" + type: "float" + default_value { + f: 0 + } + } +} +op { + name: "CropAndResizeGradBoxes" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + } + } + } +} +op { + name: "CropAndResizeGradImage" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "box_ind" + type: DT_INT32 + } + input_arg { + name: "image_size" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "method" + type: "string" + default_value { + s: "bilinear" + } + allowed_values { + list { + s: "bilinear" + s: "nearest" + } + } + } +} +op { + name: "Cross" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "CrossReplicaSum" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "group_assignment" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_INT32 + type: DT_UINT32 + } + } + } +} +op { + name: "CudnnRNN" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackprop" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackpropV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + input_arg { + name: "host_reserved" + type: DT_INT8 + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "CudnnRNNBackpropV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "sequence_lengths" + type: DT_INT32 + } + input_arg { + name: "output" + type_attr: "T" + } + input_arg { + name: "output_h" + type_attr: "T" + } + input_arg { + name: "output_c" + type_attr: "T" + } + input_arg { + name: "output_backprop" + type_attr: "T" + } + input_arg { + name: "output_h_backprop" + type_attr: "T" + } + input_arg { + name: "output_c_backprop" + type_attr: "T" + } + input_arg { + name: "reserve_space" + type_attr: "T" + } + input_arg { + name: "host_reserved" + type: DT_INT8 + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_h_backprop" + type_attr: "T" + } + output_arg { + name: "input_c_backprop" + type_attr: "T" + } + output_arg { + name: "params_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "time_major" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNCanonicalToParams" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params" + } + input_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params" + } + output_arg { + name: "params" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNCanonicalToParamsV2" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params_weights" + } + input_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params_biases" + } + output_arg { + name: "params" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params_weights" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_params_biases" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsSize" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + output_arg { + name: "params_size" + type_attr: "S" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsToCanonical" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params" + } + output_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNParamsToCanonicalV2" + input_arg { + name: "num_layers" + type: DT_INT32 + } + input_arg { + name: "num_units" + type: DT_INT32 + } + input_arg { + name: "input_size" + type: DT_INT32 + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "weights" + type_attr: "T" + number_attr: "num_params_weights" + } + output_arg { + name: "biases" + type_attr: "T" + number_attr: "num_params_biases" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "num_params_weights" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_params_biases" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "CudnnRNNV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "host_reserved" + type: DT_INT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "CudnnRNNV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_h" + type_attr: "T" + } + input_arg { + name: "input_c" + type_attr: "T" + } + input_arg { + name: "params" + type_attr: "T" + } + input_arg { + name: "sequence_lengths" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_h" + type_attr: "T" + } + output_arg { + name: "output_c" + type_attr: "T" + } + output_arg { + name: "reserve_space" + type_attr: "T" + } + output_arg { + name: "host_reserved" + type: DT_INT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "rnn_mode" + type: "string" + default_value { + s: "lstm" + } + allowed_values { + list { + s: "rnn_relu" + s: "rnn_tanh" + s: "lstm" + s: "gru" + } + } + } + attr { + name: "input_mode" + type: "string" + default_value { + s: "linear_input" + } + allowed_values { + list { + s: "linear_input" + s: "skip_input" + s: "auto_select" + } + } + } + attr { + name: "direction" + type: "string" + default_value { + s: "unidirectional" + } + allowed_values { + list { + s: "unidirectional" + s: "bidirectional" + } + } + } + attr { + name: "dropout" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_proj" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } + attr { + name: "time_major" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "Cumprod" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Cumsum" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "CumulativeLogsumexp" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "out" + type_attr: "T" + } + attr { + name: "exclusive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "DataFormatDimMap" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "src_format" + type: "string" + default_value { + s: "NHWC" + } + } + attr { + name: "dst_format" + type: "string" + default_value { + s: "NCHW" + } + } +} +op { + name: "DataFormatVecPermute" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "src_format" + type: "string" + default_value { + s: "NHWC" + } + } + attr { + name: "dst_format" + type: "string" + default_value { + s: "NCHW" + } + } +} +op { + name: "DataServiceDataset" + input_arg { + name: "dataset_id" + type: DT_INT64 + } + input_arg { + name: "processing_mode" + type: DT_STRING + } + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "protocol" + type: DT_STRING + } + input_arg { + name: "job_name" + type: DT_STRING + } + input_arg { + name: "max_outstanding_requests" + type: DT_INT64 + } + input_arg { + name: "iteration_counter" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "task_refresh_interval_hint_ms" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "DatasetCardinality" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "cardinality" + type: DT_INT64 + } +} +op { + name: "DatasetFromGraph" + input_arg { + name: "graph_def" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } +} +op { + name: "DatasetToGraph" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "graph" + type: DT_STRING + } + attr { + name: "stateful_whitelist" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "allow_stateful" + type: "bool" + default_value { + b: false + } + } + attr { + name: "strip_device_assignment" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DatasetToGraphV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "graph" + type: DT_STRING + } + attr { + name: "external_state_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "strip_device_assignment" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DatasetToSingleElement" + input_arg { + name: "dataset" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "DatasetToTFRecord" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Dawsn" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "DebugGradientIdentity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "DebugGradientRefIdentity" + input_arg { + name: "input" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "DebugIdentity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugIdentityV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tfdbg_context_id" + type: "string" + default_value { + s: "" + } + } + attr { + name: "op_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "output_slot" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "tensor_debug_mode" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "circular_buffer_size" + type: "int" + default_value { + i: 1000 + } + } + attr { + name: "tfdbg_run_id" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "DebugNanCount" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugNumericSummary" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_DOUBLE + } + attr { + name: "T" + type: "type" + } + attr { + name: "device_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "tensor_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "debug_urls" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "lower_bound" + type: "float" + default_value { + f: -inf + } + } + attr { + name: "upper_bound" + type: "float" + default_value { + f: inf + } + } + attr { + name: "mute_if_healthy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "gated_grpc" + type: "bool" + default_value { + b: false + } + } + allows_uninitialized_input: true +} +op { + name: "DebugNumericSummaryV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_debug_mode" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "tensor_id" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "DecodeAndCropJpeg" + input_arg { + name: "contents" + type: DT_STRING + } + input_arg { + name: "crop_window" + type: DT_INT32 + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ratio" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "fancy_upscaling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "try_recover_truncated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "acceptable_fraction" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "dct_method" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodeBase64" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "DecodeBmp" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "DecodeCSV" + input_arg { + name: "records" + type: DT_STRING + } + input_arg { + name: "record_defaults" + type_list_attr: "OUT_TYPE" + } + output_arg { + name: "output" + type_list_attr: "OUT_TYPE" + } + attr { + name: "OUT_TYPE" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "field_delim" + type: "string" + default_value { + s: "," + } + } + attr { + name: "use_quote_delim" + type: "bool" + default_value { + b: true + } + } + attr { + name: "na_value" + type: "string" + default_value { + s: "" + } + } + attr { + name: "select_cols" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "DecodeCompressed" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodeGif" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } +} +op { + name: "DecodeImage" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type_attr: "dtype" + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + type: DT_FLOAT + } + } + } + attr { + name: "expand_animations" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodeJSONExample" + input_arg { + name: "json_examples" + type: DT_STRING + } + output_arg { + name: "binary_examples" + type: DT_STRING + } +} +op { + name: "DecodeJpeg" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type: DT_UINT8 + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ratio" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "fancy_upscaling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "try_recover_truncated" + type: "bool" + default_value { + b: false + } + } + attr { + name: "acceptable_fraction" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "dct_method" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "DecodePaddedRaw" + input_arg { + name: "input_bytes" + type: DT_STRING + } + input_arg { + name: "fixed_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT16 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + } + } + } + attr { + name: "little_endian" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodePng" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image" + type_attr: "dtype" + } + attr { + name: "channels" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + } + } + } +} +op { + name: "DecodeProtoV2" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "sizes" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "output_types" + } + attr { + name: "message_type" + type: "string" + } + attr { + name: "field_names" + type: "list(string)" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + } + attr { + name: "descriptor_source" + type: "string" + default_value { + s: "local://" + } + } + attr { + name: "message_format" + type: "string" + default_value { + s: "binary" + } + } + attr { + name: "sanitize" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DecodeRaw" + input_arg { + name: "bytes" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT16 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } + attr { + name: "little_endian" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "DecodeWav" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "audio" + type: DT_FLOAT + } + output_arg { + name: "sample_rate" + type: DT_INT32 + } + attr { + name: "desired_channels" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "desired_samples" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "DeepCopy" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "DeleteIterator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteMemoryCache" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteMultiDeviceIterator" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "iterators" + type: DT_RESOURCE + number_attr: "N" + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + } + is_stateful: true +} +op { + name: "DeleteRandomSeedGenerator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteSeedGenerator" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "deleter" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeleteSessionTensor" + input_arg { + name: "handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "DenseBincount" + input_arg { + name: "input" + type_attr: "Tidx" + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "DenseCountSparseOutput" + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "DenseToCSRSparseMatrix" + input_arg { + name: "dense_input" + type_attr: "T" + } + input_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "sparse_output" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DenseToDenseSetOperation" + input_arg { + name: "set1" + type_attr: "T" + } + input_arg { + name: "set2" + type_attr: "T" + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "DenseToSparseBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "row_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "DenseToSparseSetOperation" + input_arg { + name: "set1" + type_attr: "T" + } + input_arg { + name: "set2_indices" + type: DT_INT64 + } + input_arg { + name: "set2_values" + type_attr: "T" + } + input_arg { + name: "set2_shape" + type: DT_INT64 + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "DepthToSpace" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "DepthwiseConv2dNative" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "DepthwiseConv2dNativeBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter_sizes" + type: DT_INT32 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "DepthwiseConv2dNativeBackpropInput" + input_arg { + name: "input_sizes" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "Dequantize" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_range" + type: DT_FLOAT + } + input_arg { + name: "max_range" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "MIN_COMBINED" + } + allowed_values { + list { + s: "MIN_COMBINED" + s: "MIN_FIRST" + s: "SCALED" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "DeserializeIterator" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + input_arg { + name: "serialized" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "DeserializeManySparse" + input_arg { + name: "serialized_sparse" + type: DT_STRING + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "DeserializeSparse" + input_arg { + name: "serialized_sparse" + type_attr: "Tserialized" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tserialized" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "DestroyResourceOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "ignore_lookup_error" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "DestroyTemporaryVariable" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + output_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "var_name" + type: "string" + } +} +op { + name: "DeviceIndex" + output_arg { + name: "index" + type: DT_INT32 + } + attr { + name: "device_names" + type: "list(string)" + } +} +op { + name: "Diag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Digamma" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Dilation2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "Dilation2DBackpropFilter" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "filter_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "Dilation2DBackpropInput" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + output_arg { + name: "in_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "DirectedInterleaveDataset" + input_arg { + name: "selector_input_dataset" + type: DT_VARIANT + } + input_arg { + name: "data_input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "Div" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DivNoNan" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "DrawBoundingBoxes" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + } + } + } +} +op { + name: "DrawBoundingBoxesV2" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "colors" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_HALF + } + } + } +} +op { + name: "DummyIterationCounter" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DummyMemoryCache" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DummySeedGenerator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "DynamicPartition" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "partitions" + type: DT_INT32 + } + output_arg { + name: "outputs" + type_attr: "T" + number_attr: "num_partitions" + } + attr { + name: "num_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "DynamicStitch" + input_arg { + name: "indices" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "data" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "merged" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "EagerPyFunc" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "is_async" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "EditDistance" + input_arg { + name: "hypothesis_indices" + type: DT_INT64 + } + input_arg { + name: "hypothesis_values" + type_attr: "T" + } + input_arg { + name: "hypothesis_shape" + type: DT_INT64 + } + input_arg { + name: "truth_indices" + type: DT_INT64 + } + input_arg { + name: "truth_values" + type_attr: "T" + } + input_arg { + name: "truth_shape" + type: DT_INT64 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "normalize" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Eig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "Tout" + } + output_arg { + name: "v" + type_attr: "Tout" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Einsum" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "equation" + type: "string" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Elu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "EluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "outputs" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Empty" + input_arg { + name: "shape" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "init" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "EmptyTensorList" + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "max_num_elements" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "EmptyTensorMap" + output_arg { + name: "handle" + type: DT_VARIANT + } +} +op { + name: "EncodeBase64" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "pad" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "EncodeJpeg" + input_arg { + name: "image" + type: DT_UINT8 + } + output_arg { + name: "contents" + type: DT_STRING + } + attr { + name: "format" + type: "string" + default_value { + s: "" + } + allowed_values { + list { + s: "" + s: "grayscale" + s: "rgb" + } + } + } + attr { + name: "quality" + type: "int" + default_value { + i: 95 + } + } + attr { + name: "progressive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "optimize_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "chroma_downsampling" + type: "bool" + default_value { + b: true + } + } + attr { + name: "density_unit" + type: "string" + default_value { + s: "in" + } + allowed_values { + list { + s: "in" + s: "cm" + } + } + } + attr { + name: "x_density" + type: "int" + default_value { + i: 300 + } + } + attr { + name: "y_density" + type: "int" + default_value { + i: 300 + } + } + attr { + name: "xmp_metadata" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "EncodeJpegVariableQuality" + input_arg { + name: "images" + type: DT_UINT8 + } + input_arg { + name: "quality" + type: DT_INT32 + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "EncodePng" + input_arg { + name: "image" + type_attr: "T" + } + output_arg { + name: "contents" + type: DT_STRING + } + attr { + name: "compression" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_UINT8 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_UINT16 + } + } + } +} +op { + name: "EncodeProto" + input_arg { + name: "sizes" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "Tinput_types" + } + output_arg { + name: "bytes" + type: DT_STRING + } + attr { + name: "field_names" + type: "list(string)" + } + attr { + name: "message_type" + type: "string" + } + attr { + name: "descriptor_source" + type: "string" + default_value { + s: "local://" + } + } + attr { + name: "Tinput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "EncodeWav" + input_arg { + name: "audio" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_INT32 + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "EnqueueTPUEmbeddingIntegerBatch" + input_arg { + name: "batch" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingRaggedTensorBatch" + input_arg { + name: "sample_splits" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "table_ids" + type: "list(int)" + } + attr { + name: "max_sequence_lengths" + type: "list(int)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingSparseBatch" + input_arg { + name: "sample_indices" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnqueueTPUEmbeddingSparseTensorBatch" + input_arg { + name: "sample_indices" + type_attr: "T1" + number_attr: "N" + } + input_arg { + name: "embedding_indices" + type_attr: "T2" + number_attr: "N" + } + input_arg { + name: "aggregation_weights" + type_attr: "T3" + number_attr: "N" + } + input_arg { + name: "mode_override" + type: DT_STRING + } + attr { + name: "T1" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T2" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T3" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "combiners" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "table_ids" + type: "list(int)" + } + attr { + name: "max_sequence_lengths" + type: "list(int)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "EnsureShape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Enter" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "frame_name" + type: "string" + } + attr { + name: "is_constant" + type: "bool" + default_value { + b: false + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "Equal" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } + attr { + name: "incompatible_shape_error" + type: "bool" + default_value { + b: true + } + } + is_commutative: true +} +op { + name: "Erf" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Erfc" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Erfinv" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "EuclideanNorm" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Exit" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Exp" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ExpandDims" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "dim" + type_attr: "Tdim" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tdim" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ExperimentalAssertNextDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "transformations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalAutoShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_workers" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "auto_shard_policy" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalBytesProducedStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalCSVDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "header" + type: DT_BOOL + } + input_arg { + name: "field_delim" + type: DT_STRING + } + input_arg { + name: "use_quote_delim" + type: DT_BOOL + } + input_arg { + name: "na_value" + type: DT_STRING + } + input_arg { + name: "select_cols" + type: DT_INT64 + } + input_arg { + name: "record_defaults" + type_list_attr: "output_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalChooseFastestDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "num_experiments" + type: "int" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalDatasetCardinality" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "cardinality" + type: DT_INT64 + } +} +op { + name: "ExperimentalDatasetToTFRecord" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalDenseToSparseBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "row_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalDirectedInterleaveDataset" + input_arg { + name: "selector_input_dataset" + type: DT_VARIANT + } + input_arg { + name: "data_input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalGroupByReducerDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "init_func_other_arguments" + type_list_attr: "Tinit_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "finalize_func_other_arguments" + type_list_attr: "Tfinalize_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tinit_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalGroupByWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "window_size_func_other_arguments" + type_list_attr: "Twindow_size_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "window_size_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Twindow_size_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalIgnoreErrorsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "log_warning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalIteratorGetDevice" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "device" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalLMDBDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalLatencyStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalMapAndBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalMatchingFilesDataset" + input_arg { + name: "patterns" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "ExperimentalMaxIntraOpParallelismDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "max_intra_op_parallelism" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalNonSerializableDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalParallelInterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "sloppy" + type: DT_BOOL + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalParseExampleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalPrivateThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_threads" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalRandomDataset" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalRebatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_replicas" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_fallback" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ExperimentalScanDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ExperimentalSetStatsAggregatorDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "counter_prefix" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalSleepDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "sleep_microseconds" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalSlidingWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "window_size" + type: DT_INT64 + } + input_arg { + name: "window_shift" + type: DT_INT64 + } + input_arg { + name: "window_stride" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalSqlDataset" + input_arg { + name: "driver_name" + type: DT_STRING + } + input_arg { + name: "data_source_name" + type: DT_STRING + } + input_arg { + name: "query" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalStatsAggregatorHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ExperimentalStatsAggregatorSummary" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "summary" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ExperimentalTakeWhileDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "thread_pool" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ExperimentalThreadPoolHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "num_threads" + type: "int" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "display_name" + type: "string" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ExperimentalUnbatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ExperimentalUniqueDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Expint" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Expm1" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ExtractGlimpse" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "offsets" + type: DT_FLOAT + } + output_arg { + name: "glimpse" + type: DT_FLOAT + } + attr { + name: "centered" + type: "bool" + default_value { + b: true + } + } + attr { + name: "normalized" + type: "bool" + default_value { + b: true + } + } + attr { + name: "uniform_noise" + type: "bool" + default_value { + b: true + } + } + attr { + name: "noise" + type: "string" + default_value { + s: "uniform" + } + } +} +op { + name: "ExtractGlimpseV2" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "offsets" + type: DT_FLOAT + } + output_arg { + name: "glimpse" + type: DT_FLOAT + } + attr { + name: "centered" + type: "bool" + default_value { + b: true + } + } + attr { + name: "normalized" + type: "bool" + default_value { + b: true + } + } + attr { + name: "uniform_noise" + type: "bool" + default_value { + b: true + } + } + attr { + name: "noise" + type: "string" + default_value { + s: "uniform" + } + } +} +op { + name: "ExtractImagePatches" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "patches" + type_attr: "T" + } + attr { + name: "ksizes" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "rates" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "ExtractJpegShape" + input_arg { + name: "contents" + type: DT_STRING + } + output_arg { + name: "image_shape" + type_attr: "output_type" + } + attr { + name: "output_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ExtractVolumePatches" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "patches" + type_attr: "T" + } + attr { + name: "ksizes" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "FFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FIFOQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "FIFOQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Fact" + output_arg { + name: "fact" + type: DT_STRING + } +} +op { + name: "FakeParam" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "FakeQuantWithMinMaxArgs" + input_arg { + name: "inputs" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "min" + type: "float" + default_value { + f: -6 + } + } + attr { + name: "max" + type: "float" + default_value { + f: 6 + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxArgsGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + output_arg { + name: "backprops" + type: DT_FLOAT + } + attr { + name: "min" + type: "float" + default_value { + f: -6 + } + } + attr { + name: "max" + type: "float" + default_value { + f: 6 + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVars" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "backprops_wrt_input" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_min" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_max" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsPerChannel" + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "outputs" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQuantWithMinMaxVarsPerChannelGradient" + input_arg { + name: "gradients" + type: DT_FLOAT + } + input_arg { + name: "inputs" + type: DT_FLOAT + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "backprops_wrt_input" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_min" + type: DT_FLOAT + } + output_arg { + name: "backprop_wrt_max" + type: DT_FLOAT + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "FakeQueue" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + is_stateful: true +} +op { + name: "Fill" + input_arg { + name: "dims" + type_attr: "index_type" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "index_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FilterByLastComponentDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "FilterDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Fingerprint" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "method" + type: DT_STRING + } + output_arg { + name: "fingerprint" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "FixedLengthRecordDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "header_bytes" + type: DT_INT64 + } + input_arg { + name: "record_bytes" + type: DT_INT64 + } + input_arg { + name: "footer_bytes" + type: DT_INT64 + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "FixedLengthRecordDatasetV2" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "header_bytes" + type: DT_INT64 + } + input_arg { + name: "record_bytes" + type: DT_INT64 + } + input_arg { + name: "footer_bytes" + type: DT_INT64 + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "compression_type" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "FixedLengthRecordReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "header_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "record_bytes" + type: "int" + } + attr { + name: "footer_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "hop_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use FixedLengthRecordReaderV2" + } + is_stateful: true +} +op { + name: "FixedLengthRecordReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "header_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "record_bytes" + type: "int" + } + attr { + name: "footer_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "hop_bytes" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "FixedUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "vocab_file" + type: "string" + default_value { + s: "" + } + } + attr { + name: "distortion" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "num_reserved_ids" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "num_shards" + type: "int" + default_value { + i: 1 + } + has_minimum: true + minimum: 1 + } + attr { + name: "shard" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "unigrams" + type: "list(float)" + default_value { + list { + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "FlatMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Floor" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FloorDiv" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "FloorMod" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FlushSummaryWriter" + input_arg { + name: "writer" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "For" + input_arg { + name: "start" + type: DT_INT32 + } + input_arg { + name: "limit" + type: DT_INT32 + } + input_arg { + name: "delta" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "body" + type: "func" + } +} +op { + name: "FractionalAvgPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + attr { + name: "pooling_ratio" + type: "list(float)" + has_minimum: true + minimum: 4 + } + attr { + name: "pseudo_random" + type: "bool" + default_value { + b: false + } + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "deterministic" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalAvgPoolGrad" + input_arg { + name: "orig_input_tensor_shape" + type: DT_INT64 + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + input_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + input_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalMaxPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + attr { + name: "pooling_ratio" + type: "list(float)" + has_minimum: true + minimum: 4 + } + attr { + name: "pseudo_random" + type: "bool" + default_value { + b: false + } + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "deterministic" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FractionalMaxPoolGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "out_backprop" + type_attr: "T" + } + input_arg { + name: "row_pooling_sequence" + type: DT_INT64 + } + input_arg { + name: "col_pooling_sequence" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "overlapping" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "FresnelCos" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FresnelSin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "FusedBatchNorm" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "T" + } + input_arg { + name: "offset" + type_attr: "T" + } + input_arg { + name: "mean" + type_attr: "T" + } + input_arg { + name: "variance" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "T" + } + output_arg { + name: "batch_variance" + type_attr: "T" + } + output_arg { + name: "reserve_space_1" + type_attr: "T" + } + output_arg { + name: "reserve_space_2" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGrad" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "T" + } + input_arg { + name: "reserve_space_1" + type_attr: "T" + } + input_arg { + name: "reserve_space_2" + type_attr: "T" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "T" + } + output_arg { + name: "offset_backprop" + type_attr: "T" + } + output_arg { + name: "reserve_space_3" + type_attr: "T" + } + output_arg { + name: "reserve_space_4" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGradV2" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "reserve_space_1" + type_attr: "U" + } + input_arg { + name: "reserve_space_2" + type_attr: "U" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "U" + } + output_arg { + name: "offset_backprop" + type_attr: "U" + } + output_arg { + name: "reserve_space_3" + type_attr: "U" + } + output_arg { + name: "reserve_space_4" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormGradV3" + input_arg { + name: "y_backprop" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "reserve_space_1" + type_attr: "U" + } + input_arg { + name: "reserve_space_2" + type_attr: "U" + } + input_arg { + name: "reserve_space_3" + type_attr: "U" + } + output_arg { + name: "x_backprop" + type_attr: "T" + } + output_arg { + name: "scale_backprop" + type_attr: "U" + } + output_arg { + name: "offset_backprop" + type_attr: "U" + } + output_arg { + name: "reserve_space_4" + type_attr: "U" + } + output_arg { + name: "reserve_space_5" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "U" + } + input_arg { + name: "offset" + type_attr: "U" + } + input_arg { + name: "mean" + type_attr: "U" + } + input_arg { + name: "variance" + type_attr: "U" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "U" + } + output_arg { + name: "batch_variance" + type_attr: "U" + } + output_arg { + name: "reserve_space_1" + type_attr: "U" + } + output_arg { + name: "reserve_space_2" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedBatchNormV3" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "scale" + type_attr: "U" + } + input_arg { + name: "offset" + type_attr: "U" + } + input_arg { + name: "mean" + type_attr: "U" + } + input_arg { + name: "variance" + type_attr: "U" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "batch_mean" + type_attr: "U" + } + output_arg { + name: "batch_variance" + type_attr: "U" + } + output_arg { + name: "reserve_space_1" + type_attr: "U" + } + output_arg { + name: "reserve_space_2" + type_attr: "U" + } + output_arg { + name: "reserve_space_3" + type_attr: "U" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "U" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "epsilon" + type: "float" + default_value { + f: 0.0001 + } + } + attr { + name: "exponential_avg_factor" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "is_training" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "FusedPadConv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "FusedResizeAndPadConv2D" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "paddings" + type: DT_INT32 + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "resize_align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "GRUBlockCell" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w_ru" + type_attr: "T" + } + input_arg { + name: "w_c" + type_attr: "T" + } + input_arg { + name: "b_ru" + type_attr: "T" + } + input_arg { + name: "b_c" + type_attr: "T" + } + output_arg { + name: "r" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "c" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } +} +op { + name: "GRUBlockCellGrad" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w_ru" + type_attr: "T" + } + input_arg { + name: "w_c" + type_attr: "T" + } + input_arg { + name: "b_ru" + type_attr: "T" + } + input_arg { + name: "b_c" + type_attr: "T" + } + input_arg { + name: "r" + type_attr: "T" + } + input_arg { + name: "u" + type_attr: "T" + } + input_arg { + name: "c" + type_attr: "T" + } + input_arg { + name: "d_h" + type_attr: "T" + } + output_arg { + name: "d_x" + type_attr: "T" + } + output_arg { + name: "d_h_prev" + type_attr: "T" + } + output_arg { + name: "d_c_bar" + type_attr: "T" + } + output_arg { + name: "d_r_bar_u_bar" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } +} +op { + name: "Gather" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GatherNd" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GatherV2" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "batch_dims" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Taxis" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "GenerateBoundingBoxProposals" + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "bbox_deltas" + type: DT_FLOAT + } + input_arg { + name: "image_info" + type: DT_FLOAT + } + input_arg { + name: "anchors" + type: DT_FLOAT + } + input_arg { + name: "nms_threshold" + type: DT_FLOAT + } + input_arg { + name: "pre_nms_topn" + type: DT_INT32 + } + input_arg { + name: "min_size" + type: DT_FLOAT + } + output_arg { + name: "rois" + type: DT_FLOAT + } + output_arg { + name: "roi_probabilities" + type: DT_FLOAT + } + attr { + name: "post_nms_topn" + type: "int" + default_value { + i: 300 + } + } +} +op { + name: "GenerateVocabRemapping" + input_arg { + name: "new_vocab_file" + type: DT_STRING + } + input_arg { + name: "old_vocab_file" + type: DT_STRING + } + output_arg { + name: "remapping" + type: DT_INT64 + } + output_arg { + name: "num_present" + type: DT_INT32 + } + attr { + name: "new_vocab_offset" + type: "int" + has_minimum: true + } + attr { + name: "num_new_vocab" + type: "int" + has_minimum: true + } + attr { + name: "old_vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } +} +op { + name: "GeneratorDataset" + input_arg { + name: "init_func_other_args" + type_list_attr: "Tinit_func_args" + } + input_arg { + name: "next_func_other_args" + type_list_attr: "Tnext_func_args" + } + input_arg { + name: "finalize_func_other_args" + type_list_attr: "Tfinalize_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "next_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tinit_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tnext_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "GetSessionHandle" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "handle" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "GetSessionHandleV2" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "GetSessionTensor" + input_arg { + name: "handle" + type: DT_STRING + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "Greater" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "GreaterEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "GroupByReducerDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "init_func_other_arguments" + type_list_attr: "Tinit_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "finalize_func_other_arguments" + type_list_attr: "Tfinalize_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "init_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "finalize_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tinit_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tfinalize_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "GroupByWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "key_func_other_arguments" + type_list_attr: "Tkey_func_other_arguments" + } + input_arg { + name: "reduce_func_other_arguments" + type_list_attr: "Treduce_func_other_arguments" + } + input_arg { + name: "window_size_func_other_arguments" + type_list_attr: "Twindow_size_func_other_arguments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "key_func" + type: "func" + } + attr { + name: "reduce_func" + type: "func" + } + attr { + name: "window_size_func" + type: "func" + } + attr { + name: "Tkey_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Treduce_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "Twindow_size_func_other_arguments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "GuaranteeConst" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "HSVToRGB" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "HashTable" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "HashTableV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "HistogramFixedWidth" + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "value_range" + type_attr: "T" + } + input_arg { + name: "nbins" + type: DT_INT32 + } + output_arg { + name: "out" + type_attr: "dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "HistogramSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "HostConst" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "value" + type: "tensor" + } + attr { + name: "dtype" + type: "type" + } +} +op { + name: "IFFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IFFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IFFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT2D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "IRFFT3D" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Treal" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Identity" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "IdentityN" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "IdentityReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use IdentityReaderV2" + } + is_stateful: true +} +op { + name: "IdentityReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "If" + input_arg { + name: "cond" + type_attr: "Tcond" + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tcond" + type: "type" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + + + + } + is_stateful: true +} +op { + name: "Igamma" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IgammaGradA" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Igammac" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IgnoreErrorsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "log_warning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "Imag" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ImageProjectiveTransformV2" + input_arg { + name: "images" + type_attr: "dtype" + } + input_arg { + name: "transforms" + type: DT_FLOAT + } + input_arg { + name: "output_shape" + type: DT_INT32 + } + output_arg { + name: "transformed_images" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "interpolation" + type: "string" + } + attr { + name: "fill_mode" + type: "string" + default_value { + s: "CONSTANT" + } + } +} +op { + name: "ImageProjectiveTransformV3" + input_arg { + name: "images" + type_attr: "dtype" + } + input_arg { + name: "transforms" + type: DT_FLOAT + } + input_arg { + name: "output_shape" + type: DT_INT32 + } + input_arg { + name: "fill_value" + type: DT_FLOAT + } + output_arg { + name: "transformed_images" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "interpolation" + type: "string" + } + attr { + name: "fill_mode" + type: "string" + default_value { + s: "CONSTANT" + } + } +} +op { + name: "ImageSummary" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "max_images" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_UINT8 + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "bad_color" + type: "tensor" + default_value { + tensor { + dtype: DT_UINT8 + tensor_shape { + dim { + size: 4 + } + } + int_val: 255 + int_val: 0 + int_val: 0 + int_val: 255 + } + } + } +} +op { + name: "ImmutableConst" + output_arg { + name: "tensor" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "memory_region_name" + type: "string" + } +} +op { + name: "ImportEvent" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "event" + type: DT_STRING + } + is_stateful: true +} +op { + name: "InTopK" + input_arg { + name: "predictions" + type: DT_FLOAT + } + input_arg { + name: "targets" + type_attr: "T" + } + output_arg { + name: "precision" + type: DT_BOOL + } + attr { + name: "k" + type: "int" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "InTopKV2" + input_arg { + name: "predictions" + type: DT_FLOAT + } + input_arg { + name: "targets" + type_attr: "T" + } + input_arg { + name: "k" + type_attr: "T" + } + output_arg { + name: "precision" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "InfeedDequeue" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "InfeedDequeueTuple" + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + is_stateful: true +} +op { + name: "InfeedEnqueue" + input_arg { + name: "input" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "layout" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "InfeedEnqueuePrelinearizedBuffer" + input_arg { + name: "input" + type: DT_VARIANT + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "InfeedEnqueueTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "layouts" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "InitializeTable" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tkey" + } + input_arg { + name: "values" + type_attr: "Tval" + } + attr { + name: "Tkey" + type: "type" + } + attr { + name: "Tval" + type: "type" + } +} +op { + name: "InitializeTableFromDataset" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "dataset" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "InitializeTableFromTextFile" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "filename" + type: DT_STRING + } + attr { + name: "key_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "value_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "delimiter" + type: "string" + default_value { + s: "\t" + } + } +} +op { + name: "InitializeTableFromTextFileV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "filename" + type: DT_STRING + } + attr { + name: "key_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "value_index" + type: "int" + has_minimum: true + minimum: -2 + } + attr { + name: "vocab_size" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "delimiter" + type: "string" + default_value { + s: "\t" + } + } + is_stateful: true +} +op { + name: "InitializeTableV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tkey" + } + input_arg { + name: "values" + type_attr: "Tval" + } + attr { + name: "Tkey" + type: "type" + } + attr { + name: "Tval" + type: "type" + } + is_stateful: true +} +op { + name: "InplaceAdd" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InplaceSub" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InplaceUpdate" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "i" + type: DT_INT32 + } + input_arg { + name: "v" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "InterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Inv" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "InvGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Invert" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "InvertPermutation" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "IsBoostedTreesEnsembleInitialized" + input_arg { + name: "tree_ensemble_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "IsBoostedTreesQuantileStreamResourceInitialized" + input_arg { + name: "quantile_stream_resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "IsFinite" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsInf" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsNan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "IsVariableInitialized" + input_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + attr { + name: "dtype" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "IsotonicRegression" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + output_arg { + name: "segments" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Iterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorFromStringHandle" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "resource_handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "IteratorFromStringHandleV2" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "resource_handle" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "IteratorGetDevice" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "device" + type: DT_STRING + } + is_stateful: true +} +op { + name: "IteratorGetNext" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorGetNextAsOptional" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "optional" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorGetNextSync" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "IteratorToStringHandle" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "string_handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "IteratorV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "KMC2ChainInitialization" + input_arg { + name: "distances" + type: DT_FLOAT + } + input_arg { + name: "seed" + type: DT_INT64 + } + output_arg { + name: "index" + type: DT_INT64 + } +} +op { + name: "KmeansPlusPlusInitialization" + input_arg { + name: "points" + type: DT_FLOAT + } + input_arg { + name: "num_to_sample" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "num_retries_per_sample" + type: DT_INT64 + } + output_arg { + name: "samples" + type: DT_FLOAT + } +} +op { + name: "KthOrderStatistic" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "k" + type: "int" + } +} +op { + name: "L2Loss" + input_arg { + name: "t" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LMDBDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "LMDBReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LRN" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "depth_radius" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "alpha" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "beta" + type: "float" + default_value { + f: 0.5 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "LRNGrad" + input_arg { + name: "input_grads" + type_attr: "T" + } + input_arg { + name: "input_image" + type_attr: "T" + } + input_arg { + name: "output_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "depth_radius" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "alpha" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "beta" + type: "float" + default_value { + f: 0.5 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "LSTMBlockCell" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "i" + type_attr: "T" + } + output_arg { + name: "cs" + type_attr: "T" + } + output_arg { + name: "f" + type_attr: "T" + } + output_arg { + name: "o" + type_attr: "T" + } + output_arg { + name: "ci" + type_attr: "T" + } + output_arg { + name: "co" + type_attr: "T" + } + output_arg { + name: "h" + type_attr: "T" + } + attr { + name: "forget_bias" + type: "float" + default_value { + f: 1 + } + } + attr { + name: "cell_clip" + type: "float" + default_value { + f: 3 + } + } + attr { + name: "use_peephole" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "LSTMBlockCellGrad" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "cs_prev" + type_attr: "T" + } + input_arg { + name: "h_prev" + type_attr: "T" + } + input_arg { + name: "w" + type_attr: "T" + } + input_arg { + name: "wci" + type_attr: "T" + } + input_arg { + name: "wcf" + type_attr: "T" + } + input_arg { + name: "wco" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + input_arg { + name: "i" + type_attr: "T" + } + input_arg { + name: "cs" + type_attr: "T" + } + input_arg { + name: "f" + type_attr: "T" + } + input_arg { + name: "o" + type_attr: "T" + } + input_arg { + name: "ci" + type_attr: "T" + } + input_arg { + name: "co" + type_attr: "T" + } + input_arg { + name: "cs_grad" + type_attr: "T" + } + input_arg { + name: "h_grad" + type_attr: "T" + } + output_arg { + name: "cs_prev_grad" + type_attr: "T" + } + output_arg { + name: "dicfo" + type_attr: "T" + } + output_arg { + name: "wci_grad" + type_attr: "T" + } + output_arg { + name: "wcf_grad" + type_attr: "T" + } + output_arg { + name: "wco_grad" + type_attr: "T" + } + attr { + name: "use_peephole" + type: "bool" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "LatencyStatsDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "tag" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "LeakyRelu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "alpha" + type: "float" + default_value { + f: 0.2 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LeakyReluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "alpha" + type: "float" + default_value { + f: 0.2 + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LearnedUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "LeftShift" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "LegacyParallelInterleaveDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Less" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "LessEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Lgamma" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LinSpace" + input_arg { + name: "start" + type_attr: "T" + } + input_arg { + name: "stop" + type_attr: "T" + } + input_arg { + name: "num" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ListDiff" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "LoadAndRemapMatrix" + input_arg { + name: "ckpt_path" + type: DT_STRING + } + input_arg { + name: "old_tensor_name" + type: DT_STRING + } + input_arg { + name: "row_remapping" + type: DT_INT64 + } + input_arg { + name: "col_remapping" + type: DT_INT64 + } + input_arg { + name: "initializing_values" + type: DT_FLOAT + } + output_arg { + name: "output_matrix" + type: DT_FLOAT + } + attr { + name: "num_rows" + type: "int" + has_minimum: true + } + attr { + name: "num_cols" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "max_rows_in_memory" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "LoadDataset" + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "reader_func_other_args" + type_list_attr: "Treader_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_func" + type: "func" + } + attr { + name: "Treader_func_args" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingADAMParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "velocities" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingADAMParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "velocities" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdadeltaParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "updates" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdadeltaParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "updates" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdagradParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingAdagradParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingCenteredRMSPropParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + input_arg { + name: "mg" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFTRLParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "linears" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFTRLParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "linears" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFrequencyEstimatorParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "last_hit_step" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "last_hit_step" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMDLAdagradLightParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "weights" + type: DT_FLOAT + } + input_arg { + name: "benefits" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMomentumParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingMomentumParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "momenta" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalAdagradParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "accumulators" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalYogiParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "v" + type: DT_FLOAT + } + input_arg { + name: "m" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingProximalYogiParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "v" + type: DT_FLOAT + } + input_arg { + name: "m" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingRMSPropParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingRMSPropParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "ms" + type: DT_FLOAT + } + input_arg { + name: "mom" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingStochasticGradientDescentParameters" + input_arg { + name: "parameters" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug" + input_arg { + name: "parameters" + type: DT_FLOAT + } + input_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Log" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Log1p" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "LogMatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "sign" + type_attr: "T" + } + output_arg { + name: "log_abs_determinant" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "LogSoftmax" + input_arg { + name: "logits" + type_attr: "T" + } + output_arg { + name: "logsoftmax" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "LogUniformCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "LogicalAnd" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } + is_commutative: true +} +op { + name: "LogicalNot" + input_arg { + name: "x" + type: DT_BOOL + } + output_arg { + name: "y" + type: DT_BOOL + } +} +op { + name: "LogicalOr" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } + is_commutative: true +} +op { + name: "LookupTableExport" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "keys" + type_attr: "Tkeys" + } + output_arg { + name: "values" + type_attr: "Tvalues" + } + attr { + name: "Tkeys" + type: "type" + } + attr { + name: "Tvalues" + type: "type" + } +} +op { + name: "LookupTableExportV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + output_arg { + name: "keys" + type_attr: "Tkeys" + } + output_arg { + name: "values" + type_attr: "Tvalues" + } + attr { + name: "Tkeys" + type: "type" + } + attr { + name: "Tvalues" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableFind" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "default_value" + type_attr: "Tout" + } + output_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableFindV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "default_value" + type_attr: "Tout" + } + output_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableImport" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableImportV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableInsert" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } +} +op { + name: "LookupTableInsertV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + input_arg { + name: "values" + type_attr: "Tout" + } + attr { + name: "Tin" + type: "type" + } + attr { + name: "Tout" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableRemoveV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + input_arg { + name: "keys" + type_attr: "Tin" + } + attr { + name: "Tin" + type: "type" + } + is_stateful: true +} +op { + name: "LookupTableSize" + input_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT64 + } +} +op { + name: "LookupTableSizeV2" + input_arg { + name: "table_handle" + type: DT_RESOURCE + } + output_arg { + name: "size" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "LoopCond" + input_arg { + name: "input" + type: DT_BOOL + } + output_arg { + name: "output" + type: DT_BOOL + } +} +op { + name: "LowerBound" + input_arg { + name: "sorted_inputs" + type_attr: "T" + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Lu" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "lu" + type_attr: "T" + } + output_arg { + name: "p" + type_attr: "output_idx_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "output_idx_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MakeIterator" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "iterator" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "MakeUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } +} +op { + name: "MapAndBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "MapClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "MapDefun" + input_arg { + name: "arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "captured_inputs" + type_list_attr: "Tcaptured" + } + output_arg { + name: "output" + type_list_attr: "output_types" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tcaptured" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } +} +op { + name: "MapIncompleteSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapPeek" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapStage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "fake_dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "fake_dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapUnstage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MapUnstageNoKey" + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "key" + type: DT_INT64 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "MatMul" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatchingFiles" + input_arg { + name: "pattern" + type: DT_STRING + } + output_arg { + name: "filenames" + type: DT_STRING + } +} +op { + name: "MatchingFilesDataset" + input_arg { + name: "patterns" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "MatrixBandPart" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "num_lower" + type_attr: "Tindex" + } + input_arg { + name: "num_upper" + type_attr: "Tindex" + } + output_arg { + name: "band" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindex" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MatrixDeterminant" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixDiag" + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPart" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPartV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagPartV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "diagonal" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixDiagV2" + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "num_rows" + type: DT_INT32 + } + input_arg { + name: "num_cols" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixDiagV3" + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + input_arg { + name: "num_rows" + type: DT_INT32 + } + input_arg { + name: "num_cols" + type: DT_INT32 + } + input_arg { + name: "padding_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixExponential" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + deprecation { + version: 27 + explanation: "Use Python implementation tf.linalg.matrix_exponential instead." + } +} +op { + name: "MatrixInverse" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixLogarithm" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixSetDiag" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixSetDiagV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "MatrixSetDiagV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "diagonal" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "align" + type: "string" + default_value { + s: "RIGHT_LEFT" + } + allowed_values { + list { + s: "LEFT_RIGHT" + s: "RIGHT_LEFT" + s: "LEFT_LEFT" + s: "RIGHT_RIGHT" + } + } + } +} +op { + name: "MatrixSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixSolveLs" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + input_arg { + name: "l2_regularizer" + type: DT_DOUBLE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "fast" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "MatrixSquareRoot" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MatrixTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Max" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MaxIntraOpParallelismDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "max_intra_op_parallelism" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "MaxPool" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_UINT16 + type: DT_QINT8 + } + } + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "MaxPool3D" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "MaxPool3DGrad" + input_arg { + name: "orig_input" + type_attr: "TInput" + } + input_arg { + name: "orig_output" + type_attr: "TInput" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } + attr { + name: "TInput" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + } + } + } +} +op { + name: "MaxPool3DGradGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 5 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NDHWC" + } + allowed_values { + list { + s: "NDHWC" + s: "NCDHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + s: "EXPLICIT" + } + } + } + attr { + name: "explicit_paddings" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGrad" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGradV2" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradGradWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "argmax" + type_attr: "Targmax" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Targmax" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradV2" + input_arg { + name: "orig_input" + type_attr: "T" + } + input_arg { + name: "orig_output" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolGradWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "argmax" + type_attr: "Targmax" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Targmax" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "MaxPoolV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "ksize" + type: DT_INT32 + } + input_arg { + name: "strides" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_UINT16 + type: DT_QINT8 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "MaxPoolWithArgmax" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "argmax" + type_attr: "Targmax" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "Targmax" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "include_batch_in_index" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Maximum" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Mean" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Merge" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "value_index" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "MergeSummary" + input_arg { + name: "inputs" + type: DT_STRING + number_attr: "N" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "MergeV2Checkpoints" + input_arg { + name: "checkpoint_prefixes" + type: DT_STRING + } + input_arg { + name: "destination_prefix" + type: DT_STRING + } + attr { + name: "delete_old_dirs" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "Mfcc" + input_arg { + name: "spectrogram" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "upper_frequency_limit" + type: "float" + default_value { + f: 4000 + } + } + attr { + name: "lower_frequency_limit" + type: "float" + default_value { + f: 20 + } + } + attr { + name: "filterbank_channel_count" + type: "int" + default_value { + i: 40 + } + } + attr { + name: "dct_coefficient_count" + type: "int" + default_value { + i: 13 + } + } +} +op { + name: "Min" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Minimum" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "MirrorPad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } +} +op { + name: "MirrorPadGrad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "mode" + type: "string" + allowed_values { + list { + s: "REFLECT" + s: "SYMMETRIC" + } + } + } +} +op { + name: "MlirPassthroughOp" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "mlir_module" + type: "string" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } +} +op { + name: "Mod" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ModelDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "algorithm" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "cpu_budget" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ram_budget" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Mul" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_commutative: true +} +op { + name: "MulNoNan" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "MultiDeviceIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "devices" + type: "list(string)" + has_minimum: true + minimum: 1 + } + attr { + name: "shared_name" + type: "string" + } + attr { + name: "container" + type: "string" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorFromStringHandle" + input_arg { + name: "string_handle" + type: DT_STRING + } + output_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + attr { + name: "output_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorGetNextFromShard" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "shard_num" + type: DT_INT32 + } + input_arg { + name: "incarnation_id" + type: DT_INT64 + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorInit" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + input_arg { + name: "max_buffer_size" + type: DT_INT64 + } + output_arg { + name: "incarnation_id" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "MultiDeviceIteratorToStringHandle" + input_arg { + name: "multi_device_iterator" + type: DT_RESOURCE + } + output_arg { + name: "string_handle" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Multinomial" + input_arg { + name: "logits" + type_attr: "T" + } + input_arg { + name: "num_samples" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "MutableDenseHashTable" + input_arg { + name: "empty_key" + type_attr: "key_dtype" + } + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "initial_num_buckets" + type: "int" + default_value { + i: 131072 + } + } + attr { + name: "max_load_factor" + type: "float" + default_value { + f: 0.8 + } + } + is_stateful: true +} +op { + name: "MutableDenseHashTableV2" + input_arg { + name: "empty_key" + type_attr: "key_dtype" + } + input_arg { + name: "deleted_key" + type_attr: "key_dtype" + } + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "initial_num_buckets" + type: "int" + default_value { + i: 131072 + } + } + attr { + name: "max_load_factor" + type: "float" + default_value { + f: 0.8 + } + } + is_stateful: true +} +op { + name: "MutableHashTable" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "MutableHashTableOfTensors" + output_arg { + name: "table_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + is_stateful: true +} +op { + name: "MutableHashTableOfTensorsV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + attr { + name: "value_shape" + type: "shape" + default_value { + shape { + } + } + } + is_stateful: true +} +op { + name: "MutableHashTableV2" + output_arg { + name: "table_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_node_name_sharing" + type: "bool" + default_value { + b: false + } + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } + is_stateful: true +} +op { + name: "MutexLock" + input_arg { + name: "mutex" + type: DT_RESOURCE + } + output_arg { + name: "mutex_lock" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "MutexV2" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "NcclAllReduce" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "reduction" + type: "string" + allowed_values { + list { + s: "min" + s: "max" + s: "prod" + s: "sum" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "num_devices" + type: "int" + } + attr { + name: "shared_name" + type: "string" + } + is_stateful: true +} +op { + name: "NcclBroadcast" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "NcclReduce" + input_arg { + name: "input" + type_attr: "T" + number_attr: "num_devices" + } + output_arg { + name: "data" + type_attr: "T" + } + attr { + name: "reduction" + type: "string" + allowed_values { + list { + s: "min" + s: "max" + s: "prod" + s: "sum" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "num_devices" + type: "int" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Ndtri" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "NearestNeighbors" + input_arg { + name: "points" + type: DT_FLOAT + } + input_arg { + name: "centers" + type: DT_FLOAT + } + input_arg { + name: "k" + type: DT_INT64 + } + output_arg { + name: "nearest_center_indices" + type: DT_INT64 + } + output_arg { + name: "nearest_center_distances" + type: DT_FLOAT + } +} +op { + name: "Neg" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "NegTrain" + input_arg { + name: "w_in" + type: DT_FLOAT + is_ref: true + } + input_arg { + name: "w_out" + type: DT_FLOAT + is_ref: true + } + input_arg { + name: "examples" + type: DT_INT32 + } + input_arg { + name: "labels" + type: DT_INT32 + } + input_arg { + name: "lr" + type: DT_FLOAT + } + attr { + name: "vocab_count" + type: "list(int)" + } + attr { + name: "num_negative_samples" + type: "int" + } + deprecation { + version: 19 + explanation: "Moving word2vec into tensorflow_models/tutorials and deprecating its ops here as a result" + } + is_stateful: true +} +op { + name: "NextAfter" + input_arg { + name: "x1" + type_attr: "T" + } + input_arg { + name: "x2" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + } + } + } +} +op { + name: "NextIteration" + input_arg { + name: "data" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "NoOp" +} +op { + name: "NonDeterministicInts" + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "NonMaxSuppression" + input_arg { + name: "boxes" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "iou_threshold" + type: "float" + default_value { + f: 0.5 + } + } +} +op { + name: "NonMaxSuppressionV2" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "NonMaxSuppressionV3" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + input_arg { + name: "score_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } +} +op { + name: "NonMaxSuppressionV4" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T_threshold" + } + input_arg { + name: "score_threshold" + type_attr: "T_threshold" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + output_arg { + name: "valid_outputs" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "T_threshold" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "pad_to_max_output_size" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "NonMaxSuppressionV5" + input_arg { + name: "boxes" + type_attr: "T" + } + input_arg { + name: "scores" + type_attr: "T" + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "iou_threshold" + type_attr: "T" + } + input_arg { + name: "score_threshold" + type_attr: "T" + } + input_arg { + name: "soft_nms_sigma" + type_attr: "T" + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } + output_arg { + name: "selected_scores" + type_attr: "T" + } + output_arg { + name: "valid_outputs" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + } + } + } + attr { + name: "pad_to_max_output_size" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "NonMaxSuppressionWithOverlaps" + input_arg { + name: "overlaps" + type: DT_FLOAT + } + input_arg { + name: "scores" + type: DT_FLOAT + } + input_arg { + name: "max_output_size" + type: DT_INT32 + } + input_arg { + name: "overlap_threshold" + type: DT_FLOAT + } + input_arg { + name: "score_threshold" + type: DT_FLOAT + } + output_arg { + name: "selected_indices" + type: DT_INT32 + } +} +op { + name: "NonSerializableDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "NotEqual" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } + attr { + name: "incompatible_shape_error" + type: "bool" + default_value { + b: true + } + } + is_commutative: true +} +op { + name: "NthElement" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "T" + } + attr { + name: "reverse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "OneHot" + input_arg { + name: "indices" + type_attr: "TI" + } + input_arg { + name: "depth" + type: DT_INT32 + } + input_arg { + name: "on_value" + type_attr: "T" + } + input_arg { + name: "off_value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "TI" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_UINT8 + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "OneShotIterator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "dataset_factory" + type: "func" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OnesLike" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_BOOL + } + } + } +} +op { + name: "OptimizeDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "optimizations" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "optimization_configs" + type: "list(string)" + default_value { + list { + } + } + } +} +op { + name: "OptimizeDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "optimizations_enabled" + type: DT_STRING + } + input_arg { + name: "optimizations_disabled" + type: DT_STRING + } + input_arg { + name: "optimizations_default" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "optimization_configs" + type: "list(string)" + default_value { + list { + } + } + } +} +op { + name: "OptionalFromValue" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "optional" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } +} +op { + name: "OptionalGetValue" + input_arg { + name: "optional" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "OptionalHasValue" + input_arg { + name: "optional" + type: DT_VARIANT + } + output_arg { + name: "has_value" + type: DT_BOOL + } +} +op { + name: "OptionalNone" + output_arg { + name: "optional" + type: DT_VARIANT + } +} +op { + name: "OrderedMapClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapIncompleteSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapPeek" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapStage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "values" + type_list_attr: "fake_dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "fake_dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapUnstage" + input_arg { + name: "key" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OrderedMapUnstageNoKey" + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "key" + type: DT_INT64 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "OutfeedDequeue" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "OutfeedDequeueTuple" + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "device_ordinal" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "OutfeedDequeueTupleV2" + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "outputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + is_stateful: true +} +op { + name: "OutfeedDequeueV2" + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + is_stateful: true +} +op { + name: "OutfeedEnqueue" + input_arg { + name: "input" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "OutfeedEnqueueTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Pack" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "axis" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "Pad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PadV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + input_arg { + name: "constant_values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PaddedBatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "padded_shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "padding_values" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "PaddedBatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_size" + type: DT_INT64 + } + input_arg { + name: "padded_shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "padding_values" + type_list_attr: "Toutput_types" + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "parallel_copy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "PaddingFIFOQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PaddingFIFOQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ParallelConcat" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "ParallelDynamicStitch" + input_arg { + name: "indices" + type: DT_INT32 + number_attr: "N" + } + input_arg { + name: "data" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "merged" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ParallelInterleaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "sloppy" + type: DT_BOOL + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelInterleaveDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParallelInterleaveDatasetV3" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelInterleaveDatasetV4" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "cycle_length" + type: DT_INT64 + } + input_arg { + name: "block_length" + type: DT_INT64 + } + input_arg { + name: "buffer_output_elements" + type: DT_INT64 + } + input_arg { + name: "prefetch_input_elements" + type: DT_INT64 + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ParallelMapDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "num_parallel_calls" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParallelMapDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ParameterizedTruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "means" + type_attr: "dtype" + } + input_arg { + name: "stdevs" + type_attr: "dtype" + } + input_arg { + name: "minvals" + type_attr: "dtype" + } + input_arg { + name: "maxvals" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ParseExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "names" + type: DT_STRING + } + input_arg { + name: "sparse_keys" + type: DT_STRING + number_attr: "Nsparse" + } + input_arg { + name: "dense_keys" + type: DT_STRING + number_attr: "Ndense" + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "Nsparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "Nsparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + attr { + name: "Nsparse" + type: "int" + has_minimum: true + } + attr { + name: "Ndense" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseExampleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "sloppy" + type: "bool" + default_value { + b: false + } + } + attr { + name: "ragged_keys" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ParseExampleDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_parallel_calls" + type: DT_INT64 + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "deterministic" + type: "string" + default_value { + s: "default" + } + } + attr { + name: "ragged_keys" + type: "list(string)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ParseExampleV2" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "names" + type: DT_STRING + } + input_arg { + name: "sparse_keys" + type: DT_STRING + } + input_arg { + name: "dense_keys" + type: DT_STRING + } + input_arg { + name: "ragged_keys" + type: DT_STRING + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + output_arg { + name: "ragged_values" + type_list_attr: "ragged_value_types" + } + output_arg { + name: "ragged_row_splits" + type_list_attr: "ragged_split_types" + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "num_sparse" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_value_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_split_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseSequenceExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "debug_name" + type: DT_STRING + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + output_arg { + name: "feature_list_dense_lengths" + type: DT_INT64 + number_attr: "Nfeature_list_dense" + } + attr { + name: "feature_list_dense_missing_assumed_empty" + type: "list(string)" + has_minimum: true + } + attr { + name: "context_sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "context_dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "feature_list_sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "feature_list_dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Ncontext_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseSequenceExampleV2" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "debug_name" + type: DT_STRING + } + input_arg { + name: "context_sparse_keys" + type: DT_STRING + } + input_arg { + name: "context_dense_keys" + type: DT_STRING + } + input_arg { + name: "context_ragged_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_sparse_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_ragged_keys" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_missing_assumed_empty" + type: DT_BOOL + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "context_ragged_values" + type_list_attr: "context_ragged_value_types" + } + output_arg { + name: "context_ragged_row_splits" + type_list_attr: "context_ragged_split_types" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + output_arg { + name: "feature_list_dense_lengths" + type: DT_INT64 + number_attr: "Nfeature_list_dense" + } + output_arg { + name: "feature_list_ragged_values" + type_list_attr: "feature_list_ragged_value_types" + } + output_arg { + name: "feature_list_ragged_outer_splits" + type_list_attr: "feature_list_ragged_split_types" + } + output_arg { + name: "feature_list_ragged_inner_splits" + type_list_attr: "feature_list_ragged_split_types" + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_ragged_value_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_ragged_split_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseSingleExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "dense_defaults" + type_list_attr: "Tdense" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "sparse_values" + type_list_attr: "sparse_types" + } + output_arg { + name: "sparse_shapes" + type: DT_INT64 + number_attr: "num_sparse" + } + output_arg { + name: "dense_values" + type_list_attr: "Tdense" + } + attr { + name: "num_sparse" + type: "int" + has_minimum: true + } + attr { + name: "sparse_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "dense_keys" + type: "list(string)" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tdense" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_shapes" + type: "list(shape)" + has_minimum: true + } +} +op { + name: "ParseSingleSequenceExample" + input_arg { + name: "serialized" + type: DT_STRING + } + input_arg { + name: "feature_list_dense_missing_assumed_empty" + type: DT_STRING + } + input_arg { + name: "context_sparse_keys" + type: DT_STRING + number_attr: "Ncontext_sparse" + } + input_arg { + name: "context_dense_keys" + type: DT_STRING + number_attr: "Ncontext_dense" + } + input_arg { + name: "feature_list_sparse_keys" + type: DT_STRING + number_attr: "Nfeature_list_sparse" + } + input_arg { + name: "feature_list_dense_keys" + type: DT_STRING + number_attr: "Nfeature_list_dense" + } + input_arg { + name: "context_dense_defaults" + type_list_attr: "Tcontext_dense" + } + input_arg { + name: "debug_name" + type: DT_STRING + } + output_arg { + name: "context_sparse_indices" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_sparse_values" + type_list_attr: "context_sparse_types" + } + output_arg { + name: "context_sparse_shapes" + type: DT_INT64 + number_attr: "Ncontext_sparse" + } + output_arg { + name: "context_dense_values" + type_list_attr: "Tcontext_dense" + } + output_arg { + name: "feature_list_sparse_indices" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_sparse_values" + type_list_attr: "feature_list_sparse_types" + } + output_arg { + name: "feature_list_sparse_shapes" + type: DT_INT64 + number_attr: "Nfeature_list_sparse" + } + output_arg { + name: "feature_list_dense_values" + type_list_attr: "feature_list_dense_types" + } + attr { + name: "Ncontext_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Ncontext_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_sparse" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "Nfeature_list_dense" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "context_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "Tcontext_dense" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "context_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "feature_list_sparse_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + allowed_values { + list { + type: DT_FLOAT + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "feature_list_dense_shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "ParseTensor" + input_arg { + name: "serialized" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + } +} +op { + name: "PartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "config_proto" + type: "string" + default_value { + s: "" + } + } + attr { + name: "executor_type" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Placeholder" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "PlaceholderV2" + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + deprecation { + version: 23 + explanation: "Placeholder now behaves the same as PlaceholderV2." + } +} +op { + name: "PlaceholderWithDefault" + input_arg { + name: "input" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } +} +op { + name: "Polygamma" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "PopulationCount" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_UINT8 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Pow" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_HALF + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "PrefetchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "slack_period" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "legacy_autotune" + type: "bool" + default_value { + b: true + } + } + attr { + name: "buffer_size_min" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "Prelinearize" + input_arg { + name: "input" + type_attr: "dtype" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + default_value { + shape { + } + } + } + attr { + name: "layout" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "PrelinearizeTuple" + input_arg { + name: "inputs" + type_list_attr: "dtypes" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + } + attr { + name: "layouts" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "PreventGradient" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "message" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Print" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "data" + type_list_attr: "U" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "U" + type: "list(type)" + has_minimum: true + } + attr { + name: "message" + type: "string" + default_value { + s: "" + } + } + attr { + name: "first_n" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } + is_stateful: true +} +op { + name: "PrintV2" + input_arg { + name: "input" + type: DT_STRING + } + attr { + name: "output_stream" + type: "string" + default_value { + s: "stderr" + } + } + attr { + name: "end" + type: "string" + default_value { + s: "\n" + } + } + is_stateful: true +} +op { + name: "PriorityQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PriorityQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "PrivateThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_threads" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Prod" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "PyFunc" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "PyFuncStateless" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "token" + type: "string" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } +} +op { + name: "Qr" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "q" + type_attr: "T" + } + output_arg { + name: "r" + type_attr: "T" + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "QuantizeAndDequantize" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_min" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "input_max" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 22 + explanation: "Replaced by QuantizeAndDequantizeV2" + } +} +op { + name: "QuantizeAndDequantizeV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_TO_EVEN" + } + allowed_values { + list { + s: "HALF_TO_EVEN" + s: "HALF_UP" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV3" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + input_arg { + name: "num_bits" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV4" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "signed_input" + type: "bool" + default_value { + b: true + } + } + attr { + name: "num_bits" + type: "int" + default_value { + i: 8 + } + } + attr { + name: "range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_TO_EVEN" + } + allowed_values { + list { + s: "HALF_TO_EVEN" + s: "HALF_UP" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeAndDequantizeV4Grad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type_attr: "T" + } + input_arg { + name: "input_max" + type_attr: "T" + } + output_arg { + name: "input_backprop" + type_attr: "T" + } + output_arg { + name: "input_min_backprop" + type_attr: "T" + } + output_arg { + name: "input_max_backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QuantizeDownAndShrinkRange" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizeV2" + input_arg { + name: "input" + type: DT_FLOAT + } + input_arg { + name: "min_range" + type: DT_FLOAT + } + input_arg { + name: "max_range" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "MIN_COMBINED" + } + allowed_values { + list { + s: "MIN_COMBINED" + s: "MIN_FIRST" + s: "SCALED" + } + } + } + attr { + name: "round_mode" + type: "string" + default_value { + s: "HALF_AWAY_FROM_ZERO" + } + allowed_values { + list { + s: "HALF_AWAY_FROM_ZERO" + s: "HALF_TO_EVEN" + } + } + } + attr { + name: "narrow_range" + type: "bool" + default_value { + b: false + } + } + attr { + name: "axis" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "ensure_minimum_range" + type: "float" + default_value { + f: 0.01 + } + } +} +op { + name: "QuantizedAdd" + input_arg { + name: "x" + type_attr: "T1" + } + input_arg { + name: "y" + type_attr: "T2" + } + input_arg { + name: "min_x" + type: DT_FLOAT + } + input_arg { + name: "max_x" + type: DT_FLOAT + } + input_arg { + name: "min_y" + type: DT_FLOAT + } + input_arg { + name: "max_y" + type: DT_FLOAT + } + output_arg { + name: "z" + type_attr: "Toutput" + } + output_arg { + name: "min_z" + type: DT_FLOAT + } + output_arg { + name: "max_z" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedAvgPool" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "ksize" + type: "list(int)" + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "QuantizedBatchNormWithGlobalNormalization" + input_arg { + name: "t" + type_attr: "Tinput" + } + input_arg { + name: "t_min" + type: DT_FLOAT + } + input_arg { + name: "t_max" + type: DT_FLOAT + } + input_arg { + name: "m" + type_attr: "Tinput" + } + input_arg { + name: "m_min" + type: DT_FLOAT + } + input_arg { + name: "m_max" + type: DT_FLOAT + } + input_arg { + name: "v" + type_attr: "Tinput" + } + input_arg { + name: "v_min" + type: DT_FLOAT + } + input_arg { + name: "v_max" + type: DT_FLOAT + } + input_arg { + name: "beta" + type_attr: "Tinput" + } + input_arg { + name: "beta_min" + type: DT_FLOAT + } + input_arg { + name: "beta_max" + type: DT_FLOAT + } + input_arg { + name: "gamma" + type_attr: "Tinput" + } + input_arg { + name: "gamma_min" + type: DT_FLOAT + } + input_arg { + name: "gamma_max" + type: DT_FLOAT + } + output_arg { + name: "result" + type_attr: "out_type" + } + output_arg { + name: "result_min" + type: DT_FLOAT + } + output_arg { + name: "result_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "variance_epsilon" + type: "float" + } + attr { + name: "scale_after_normalization" + type: "bool" + } +} +op { + name: "QuantizedBiasAdd" + input_arg { + name: "input" + type_attr: "T1" + } + input_arg { + name: "bias" + type_attr: "T2" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_bias" + type: DT_FLOAT + } + input_arg { + name: "max_bias" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedConcat" + input_arg { + name: "concat_dim" + type: DT_INT32 + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "input_mins" + type: DT_FLOAT + number_attr: "N" + } + input_arg { + name: "input_maxes" + type: DT_FLOAT + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "QuantizedConv2D" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedConv2DAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DPerChannel" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedConv2DWithBias" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSignedSumAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "summand" + type_attr: "Tsummand" + } + input_arg { + name: "min_summand" + type: DT_FLOAT + } + input_arg { + name: "max_summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Tsummand" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSumAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedConv2DWithBiasSumAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "summand" + type_attr: "Tsummand" + } + input_arg { + name: "min_summand" + type: DT_FLOAT + } + input_arg { + name: "max_summand" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Tsummand" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedDepthwiseConv2D" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBias" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBiasAndRelu" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "filter" + type_attr: "Tfilter" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + input_arg { + name: "min_filter" + type: DT_FLOAT + } + input_arg { + name: "max_filter" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tfilter" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } + attr { + name: "padding_list" + type: "list(int)" + default_value { + list { + } + } + } +} +op { + name: "QuantizedInstanceNorm" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "x_min" + type: DT_FLOAT + } + input_arg { + name: "x_max" + type: DT_FLOAT + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "y_min" + type: DT_FLOAT + } + output_arg { + name: "y_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "output_range_given" + type: "bool" + default_value { + b: false + } + } + attr { + name: "given_y_min" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "given_y_max" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "variance_epsilon" + type: "float" + default_value { + f: 1e-05 + } + } + attr { + name: "min_separation" + type: "float" + default_value { + f: 0.001 + } + } +} +op { + name: "QuantizedMatMul" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tactivation" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedMatMulWithBias" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndDequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndRelu" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type: DT_FLOAT + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndReluAndRequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMatMulWithBiasAndRequantize" + input_arg { + name: "a" + type_attr: "T1" + } + input_arg { + name: "b" + type_attr: "T2" + } + input_arg { + name: "bias" + type_attr: "Tbias" + } + input_arg { + name: "min_a" + type: DT_FLOAT + } + input_arg { + name: "max_a" + type: DT_FLOAT + } + input_arg { + name: "min_b" + type: DT_FLOAT + } + input_arg { + name: "max_b" + type: DT_FLOAT + } + input_arg { + name: "min_freezed_output" + type: DT_FLOAT + } + input_arg { + name: "max_freezed_output" + type: DT_FLOAT + } + output_arg { + name: "out" + type_attr: "Toutput" + } + output_arg { + name: "min_out" + type: DT_FLOAT + } + output_arg { + name: "max_out" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Tbias" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_QINT32 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "input_quant_mode" + type: "string" + default_value { + s: "MIN_FIRST" + } + allowed_values { + list { + s: "MIN_FIRST" + s: "SCALED" + } + } + } +} +op { + name: "QuantizedMaxPool" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "min_input" + type: DT_FLOAT + } + input_arg { + name: "max_input" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "min_output" + type: DT_FLOAT + } + output_arg { + name: "max_output" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "ksize" + type: "list(int)" + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "padding" + type: "string" + allowed_values { + list { + s: "SAME" + s: "VALID" + } + } + } +} +op { + name: "QuantizedMul" + input_arg { + name: "x" + type_attr: "T1" + } + input_arg { + name: "y" + type_attr: "T2" + } + input_arg { + name: "min_x" + type: DT_FLOAT + } + input_arg { + name: "max_x" + type: DT_FLOAT + } + input_arg { + name: "min_y" + type: DT_FLOAT + } + input_arg { + name: "max_y" + type: DT_FLOAT + } + output_arg { + name: "z" + type_attr: "Toutput" + } + output_arg { + name: "min_z" + type: DT_FLOAT + } + output_arg { + name: "max_z" + type: DT_FLOAT + } + attr { + name: "T1" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "T2" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "Toutput" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedRelu" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedRelu6" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedReluX" + input_arg { + name: "features" + type_attr: "Tinput" + } + input_arg { + name: "max_value" + type: DT_FLOAT + } + input_arg { + name: "min_features" + type: DT_FLOAT + } + input_arg { + name: "max_features" + type: DT_FLOAT + } + output_arg { + name: "activations" + type_attr: "out_type" + } + output_arg { + name: "min_activations" + type: DT_FLOAT + } + output_arg { + name: "max_activations" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "QuantizedReshape" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "QuantizedResizeBilinear" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "min" + type: DT_FLOAT + } + input_arg { + name: "max" + type: DT_FLOAT + } + output_arg { + name: "resized_images" + type_attr: "T" + } + output_arg { + name: "out_min" + type: DT_FLOAT + } + output_arg { + name: "out_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_QUINT8 + type: DT_QINT32 + type: DT_FLOAT + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "QueueClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "QueueCloseV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "cancel_pending_enqueues" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "QueueDequeue" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueManyV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueDequeueUpTo" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueDequeueUpToV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "n" + type: DT_INT32 + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueDequeueV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "components" + type_list_attr: "component_types" + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueEnqueue" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueEnqueueMany" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "QueueEnqueueManyV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueEnqueueV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "components" + type_list_attr: "Tcomponents" + } + attr { + name: "Tcomponents" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "timeout_ms" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "QueueIsClosed" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "is_closed" + type: DT_BOOL + } +} +op { + name: "QueueIsClosedV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "is_closed" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "QueueSize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "QueueSizeV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "RFFT" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RFFT2D" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RFFT3D" + input_arg { + name: "input" + type_attr: "Treal" + } + input_arg { + name: "fft_length" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Treal" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RGBToHSV" + input_arg { + name: "images" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RaggedBincount" + input_arg { + name: "splits" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tidx" + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "RaggedCountSparseOutput" + input_arg { + name: "splits" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RaggedCross" + input_arg { + name: "ragged_values" + type_list_attr: "ragged_values_types" + } + input_arg { + name: "ragged_row_splits" + type_list_attr: "ragged_splits_types" + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "Nsparse" + } + input_arg { + name: "sparse_values" + type_list_attr: "sparse_values_types" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + number_attr: "Nsparse" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + output_arg { + name: "output_values" + type_attr: "out_values_type" + } + output_arg { + name: "output_row_splits" + type_attr: "out_row_splits_type" + } + attr { + name: "Nsparse" + type: "int" + has_minimum: true + } + attr { + name: "input_order" + type: "string" + } + attr { + name: "hashed_output" + type: "bool" + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + } + attr { + name: "hash_key" + type: "int" + } + attr { + name: "ragged_values_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "ragged_splits_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "sparse_values_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_values_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_row_splits_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedGather" + input_arg { + name: "params_nested_splits" + type_attr: "Tsplits" + number_attr: "PARAMS_RAGGED_RANK" + } + input_arg { + name: "params_dense_values" + type_attr: "Tvalues" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output_nested_splits" + type_attr: "Tsplits" + number_attr: "OUTPUT_RAGGED_RANK" + } + output_arg { + name: "output_dense_values" + type_attr: "Tvalues" + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "PARAMS_RAGGED_RANK" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "OUTPUT_RAGGED_RANK" + type: "int" + has_minimum: true + } +} +op { + name: "RaggedRange" + input_arg { + name: "starts" + type_attr: "T" + } + input_arg { + name: "limits" + type_attr: "T" + } + input_arg { + name: "deltas" + type_attr: "T" + } + output_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + } + output_arg { + name: "rt_dense_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorFromVariant" + input_arg { + name: "encoded_ragged" + type: DT_VARIANT + } + output_arg { + name: "output_nested_splits" + type_attr: "Tsplits" + number_attr: "output_ragged_rank" + } + output_arg { + name: "output_dense_values" + type_attr: "Tvalues" + } + attr { + name: "input_ragged_rank" + type: "int" + has_minimum: true + minimum: -1 + } + attr { + name: "output_ragged_rank" + type: "int" + has_minimum: true + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorToSparse" + input_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + number_attr: "RAGGED_RANK" + } + input_arg { + name: "rt_dense_values" + type_attr: "T" + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "T" + } + output_arg { + name: "sparse_dense_shape" + type: DT_INT64 + } + attr { + name: "RAGGED_RANK" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RaggedTensorToTensor" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "default_value" + type_attr: "T" + } + input_arg { + name: "row_partition_tensors" + type_attr: "Tindex" + number_attr: "num_row_partition_tensors" + } + output_arg { + name: "result" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindex" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_INT32 + } + } + } + attr { + name: "Tshape" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_INT32 + } + } + } + attr { + name: "num_row_partition_tensors" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "row_partition_types" + type: "list(string)" + } +} +op { + name: "RaggedTensorToVariant" + input_arg { + name: "rt_nested_splits" + type_attr: "Tsplits" + number_attr: "RAGGED_RANK" + } + input_arg { + name: "rt_dense_values" + type_attr: "Tvalues" + } + output_arg { + name: "encoded_ragged" + type: DT_VARIANT + } + attr { + name: "RAGGED_RANK" + type: "int" + has_minimum: true + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "batched_input" + type: "bool" + } +} +op { + name: "RaggedTensorToVariantGradient" + input_arg { + name: "encoded_ragged_grad" + type: DT_VARIANT + } + input_arg { + name: "row_splits" + type_attr: "Tsplits" + } + input_arg { + name: "dense_values_shape" + type: DT_INT32 + } + output_arg { + name: "dense_values_grad" + type_attr: "Tvalues" + } + attr { + name: "Tvalues" + type: "type" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RandomCrop" + input_arg { + name: "image" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + deprecation { + version: 8 + explanation: "Random crop is now pure Python" + } + is_stateful: true +} +op { + name: "RandomDataset" + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "RandomGamma" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "alpha" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + is_stateful: true +} +op { + name: "RandomGammaGrad" + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sample" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RandomPoisson" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "rate" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + deprecation { + version: 25 + explanation: "Replaced by RandomPoissonV2" + } + is_stateful: true +} +op { + name: "RandomPoissonV2" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "rate" + type_attr: "R" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "R" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomShuffle" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "RandomShuffleQueue" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "min_after_dequeue" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RandomShuffleQueueV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "component_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "shapes" + type: "list(shape)" + default_value { + list { + } + } + has_minimum: true + } + attr { + name: "capacity" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "min_after_dequeue" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RandomStandardNormal" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomUniform" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "RandomUniformInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "minval" + type_attr: "Tout" + } + input_arg { + name: "maxval" + type_attr: "Tout" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "Tout" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "Range" + input_arg { + name: "start" + type_attr: "Tidx" + } + input_arg { + name: "limit" + type_attr: "Tidx" + } + input_arg { + name: "delta" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "Tidx" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RangeDataset" + input_arg { + name: "start" + type: DT_INT64 + } + input_arg { + name: "stop" + type: DT_INT64 + } + input_arg { + name: "step" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Rank" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "ReadFile" + input_arg { + name: "filename" + type: DT_STRING + } + output_arg { + name: "contents" + type: DT_STRING + } +} +op { + name: "ReadVariableOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "ReaderNumRecordsProduced" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "records_produced" + type: DT_INT64 + } +} +op { + name: "ReaderNumRecordsProducedV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "records_produced" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ReaderNumWorkUnitsCompleted" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "units_completed" + type: DT_INT64 + } +} +op { + name: "ReaderNumWorkUnitsCompletedV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "units_completed" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ReaderRead" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "queue_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "value" + type: DT_STRING + } +} +op { + name: "ReaderReadUpTo" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "queue_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_records" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type: DT_STRING + } +} +op { + name: "ReaderReadUpToV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "queue_handle" + type: DT_RESOURCE + } + input_arg { + name: "num_records" + type: DT_INT64 + } + output_arg { + name: "keys" + type: DT_STRING + } + output_arg { + name: "values" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderReadV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "queue_handle" + type: DT_RESOURCE + } + output_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "value" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderReset" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } +} +op { + name: "ReaderResetV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "ReaderRestoreState" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "state" + type: DT_STRING + } +} +op { + name: "ReaderRestoreStateV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + input_arg { + name: "state" + type: DT_STRING + } + is_stateful: true +} +op { + name: "ReaderSerializeState" + input_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "state" + type: DT_STRING + } +} +op { + name: "ReaderSerializeStateV2" + input_arg { + name: "reader_handle" + type: DT_RESOURCE + } + output_arg { + name: "state" + type: DT_STRING + } + is_stateful: true +} +op { + name: "Real" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "Tout" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "Tout" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RealDiv" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RebatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_replicas" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_fallback" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "RebatchDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "batch_sizes" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Reciprocal" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ReciprocalGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RecordInput" + output_arg { + name: "records" + type: DT_STRING + } + attr { + name: "file_pattern" + type: "string" + } + attr { + name: "file_random_seed" + type: "int" + default_value { + i: 301 + } + } + attr { + name: "file_shuffle_shift_ratio" + type: "float" + default_value { + f: 0 + } + } + attr { + name: "file_buffer_size" + type: "int" + default_value { + i: 10000 + } + } + attr { + name: "file_parallelism" + type: "int" + default_value { + i: 16 + } + } + attr { + name: "batch_size" + type: "int" + default_value { + i: 32 + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Recv" + output_arg { + name: "tensor" + type_attr: "tensor_type" + } + attr { + name: "tensor_type" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + } + attr { + name: "send_device" + type: "string" + } + attr { + name: "send_device_incarnation" + type: "int" + } + attr { + name: "recv_device" + type: "string" + } + attr { + name: "client_terminated" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "RecvTPUEmbeddingActivations" + output_arg { + name: "outputs" + type: DT_FLOAT + number_attr: "num_outputs" + } + attr { + name: "num_outputs" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "ReduceDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "use_inter_op_parallelism" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ReduceJoin" + input_arg { + name: "inputs" + type: DT_STRING + } + input_arg { + name: "reduction_indices" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "RefEnter" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "frame_name" + type: "string" + } + attr { + name: "is_constant" + type: "bool" + default_value { + b: false + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "RefExit" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } +} +op { + name: "RefIdentity" + input_arg { + name: "input" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "RefMerge" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + output_arg { + name: "value_index" + type: DT_INT32 + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "RefNextIteration" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } +} +op { + name: "RefSelect" + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + is_ref: true + } + output_arg { + name: "output" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "RefSwitch" + input_arg { + name: "data" + type_attr: "T" + is_ref: true + } + input_arg { + name: "pred" + type: DT_BOOL + } + output_arg { + name: "output_false" + type_attr: "T" + is_ref: true + } + output_arg { + name: "output_true" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + allows_uninitialized_input: true +} +op { + name: "RegexFullMatch" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pattern" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_BOOL + } +} +op { + name: "RegexReplace" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pattern" + type: DT_STRING + } + input_arg { + name: "rewrite" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "replace_global" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "RegisterDataset" + input_arg { + name: "dataset" + type: DT_VARIANT + } + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "protocol" + type: DT_STRING + } + output_arg { + name: "dataset_id" + type: DT_INT64 + } + attr { + name: "external_state_policy" + type: "int" + } +} +op { + name: "Relu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_QINT8 + } + } + } +} +op { + name: "Relu6" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Relu6Grad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "ReluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "RemoteCall" + input_arg { + name: "target" + type: DT_STRING + } + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } + is_stateful: true +} +op { + name: "RemoteFusedGraphExecute" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "serialized_remote_fused_graph_execute_info" + type: "string" + } +} +op { + name: "RepeatDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "RequantizationRange" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "RequantizationRangePerChannel" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "clip_value_max" + type: "float" + } +} +op { + name: "Requantize" + input_arg { + name: "input" + type_attr: "Tinput" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + input_arg { + name: "requested_output_min" + type: DT_FLOAT + } + input_arg { + name: "requested_output_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "Tinput" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "RequantizePerChannel" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "input_min" + type: DT_FLOAT + } + input_arg { + name: "input_max" + type: DT_FLOAT + } + input_arg { + name: "requested_output_min" + type: DT_FLOAT + } + input_arg { + name: "requested_output_max" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "out_type" + } + output_arg { + name: "output_min" + type: DT_FLOAT + } + output_arg { + name: "output_max" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + default_value { + type: DT_QINT32 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_QUINT8 + } + allowed_values { + list { + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_QINT16 + type: DT_QUINT16 + } + } + } +} +op { + name: "Reshape" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ResizeArea" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBicubic" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBicubicGrad" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "original_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBilinear" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeBilinearGrad" + input_arg { + name: "grads" + type: DT_FLOAT + } + input_arg { + name: "original_image" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + type: DT_HALF + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeNearestNeighbor" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "resized_images" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_BFLOAT16 + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResizeNearestNeighborGrad" + input_arg { + name: "grads" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT32 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "align_corners" + type: "bool" + default_value { + b: false + } + } + attr { + name: "half_pixel_centers" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ResourceAccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceAccumulatorNumAccumulated" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "num_accumulated" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "ResourceAccumulatorSetGlobalStep" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "new_global_step" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "ResourceAccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "average" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdaMax" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdadelta" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "accum_update" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagradDA" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "gradient_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "gradient_squared_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdagradV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdam" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAdamWithAmsgrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "v" + type: DT_RESOURCE + } + input_arg { + name: "vhat" + type: DT_RESOURCE + } + input_arg { + name: "beta1_power" + type_attr: "T" + } + input_arg { + name: "beta2_power" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "beta1" + type_attr: "T" + } + input_arg { + name: "beta2" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyAddSign" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyCenteredRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "mg" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyFtrl" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyFtrlV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyKerasMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyPowerSign" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "m" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "logbase" + type_attr: "T" + } + input_arg { + name: "sign_decay" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyProximalAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyProximalGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "delta" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceApplyRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceConditionalAccumulator" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "ResourceCountUpTo" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "limit" + type: "int" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceGather" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "batch_dims" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceGatherNd" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterAdd" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterDiv" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMax" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMin" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterMul" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdAdd" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdMax" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdMin" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdSub" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterNdUpdate" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceScatterSub" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceScatterUpdate" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdadelta" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "accum_update" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagradDA" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "gradient_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "gradient_squared_accumulator" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyAdagradV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyCenteredRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "mg" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyFtrl" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyFtrlV2" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "linear" + type: DT_RESOURCE + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyKerasMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyMomentum" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyProximalAdagrad" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "accum" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyProximalGradientDescent" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceSparseApplyRMSProp" + input_arg { + name: "var" + type: DT_RESOURCE + } + input_arg { + name: "ms" + type: DT_RESOURCE + } + input_arg { + name: "mom" + type: DT_RESOURCE + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "ResourceStridedSliceAssign" + input_arg { + name: "ref" + type: DT_RESOURCE + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Restore" + input_arg { + name: "file_pattern" + type: DT_STRING + } + input_arg { + name: "tensor_name" + type: DT_STRING + } + output_arg { + name: "tensor" + type_attr: "dt" + } + attr { + name: "dt" + type: "type" + } + attr { + name: "preferred_shard" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "RestoreSlice" + input_arg { + name: "file_pattern" + type: DT_STRING + } + input_arg { + name: "tensor_name" + type: DT_STRING + } + input_arg { + name: "shape_and_slice" + type: DT_STRING + } + output_arg { + name: "tensor" + type_attr: "dt" + } + attr { + name: "dt" + type: "type" + } + attr { + name: "preferred_shard" + type: "int" + default_value { + i: -1 + } + } + is_stateful: true +} +op { + name: "RestoreV2" + input_arg { + name: "prefix" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shape_and_slices" + type: DT_STRING + } + output_arg { + name: "tensors" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingADAMParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "velocities" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingADAMParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "velocities" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdadeltaParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "updates" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "updates" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdagradParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingAdagradParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingCenteredRMSPropParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + output_arg { + name: "mg" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFTRLParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "linears" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFTRLParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "linears" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFrequencyEstimatorParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "last_hit_step" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "last_hit_step" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMDLAdagradLightParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "weights" + type: DT_FLOAT + } + output_arg { + name: "benefits" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMomentumParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingMomentumParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "momenta" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalAdagradParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "accumulators" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalYogiParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "v" + type: DT_FLOAT + } + output_arg { + name: "m" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "v" + type: DT_FLOAT + } + output_arg { + name: "m" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingRMSPropParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "ms" + type: DT_FLOAT + } + output_arg { + name: "mom" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingStochasticGradientDescentParameters" + output_arg { + name: "parameters" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug" + output_arg { + name: "parameters" + type: DT_FLOAT + } + output_arg { + name: "gradient_accumulators" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "table_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "num_shards" + type: "int" + } + attr { + name: "shard_id" + type: "int" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Reverse" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "dims" + type: DT_BOOL + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BOOL + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "ReverseSequence" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "seq_lengths" + type_attr: "Tlen" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "seq_dim" + type: "int" + } + attr { + name: "batch_dim" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tlen" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ReverseV2" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BOOL + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_STRING + } + } + } +} +op { + name: "RightShift" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "Rint" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscAdd" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + is_aggregate: true + is_commutative: true +} +op { + name: "RiscBinaryArithmetic" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "op_type" + type: "string" + allowed_values { + list { + s: "ADD" + s: "SUB" + s: "MUL" + s: "DIV" + s: "REM" + s: "MIN" + s: "POW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscBinaryComparison" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type: DT_BOOL + } + attr { + name: "op_type" + type: "string" + allowed_values { + list { + s: "EQ" + s: "NE" + s: "GE" + s: "GT" + s: "LE" + s: "LT" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscBitcast" + input_arg { + name: "x" + type_attr: "SrcT" + } + output_arg { + name: "y" + type_attr: "DstT" + } + attr { + name: "SrcT" + type: "type" + } + attr { + name: "DstT" + type: "type" + } +} +op { + name: "RiscBroadcast" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscCast" + input_arg { + name: "x" + type_attr: "SrcT" + } + output_arg { + name: "y" + type_attr: "DstT" + } + attr { + name: "SrcT" + type: "type" + } + attr { + name: "DstT" + type: "type" + } +} +op { + name: "RiscCholesky" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscConcat" + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscCondition" + input_arg { + name: "pred" + type: DT_BOOL + } + input_arg { + name: "input_true" + type_attr: "SrcT" + } + input_arg { + name: "input_false" + type_attr: "SrcT" + } + output_arg { + name: "output" + type_attr: "DstT" + } + attr { + name: "func_true" + type: "func" + } + attr { + name: "func_false" + type: "func" + } + attr { + name: "SrcT" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "DstT" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscConv" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "filter" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "strides" + type: "list(int)" + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "dilations" + type: "list(int)" + default_value { + list { + i: 1 + i: 1 + i: 1 + i: 1 + } + } + } +} +op { + name: "RiscDot" + input_arg { + name: "a" + type_attr: "T" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscFft" + input_arg { + name: "input" + type_attr: "Tcomplex" + } + output_arg { + name: "output" + type_attr: "Tcomplex" + } + attr { + name: "Tcomplex" + type: "type" + default_value { + type: DT_COMPLEX64 + } + allowed_values { + list { + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RiscGather" + input_arg { + name: "params" + type_attr: "Tparams" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "output" + type_attr: "Tparams" + } + attr { + name: "batch_dims" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "Tparams" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Taxis" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscIsFinite" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscLogicalAnd" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } +} +op { + name: "RiscLogicalNot" + input_arg { + name: "x" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } +} +op { + name: "RiscLogicalOr" + input_arg { + name: "x" + type: DT_BOOL + } + input_arg { + name: "y" + type: DT_BOOL + } + output_arg { + name: "z" + type: DT_BOOL + } +} +op { + name: "RiscMax" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "max" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscPad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + input_arg { + name: "constant_values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscPool" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "ksize" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "strides" + type: "list(int)" + has_minimum: true + minimum: 4 + } + attr { + name: "pooling_type" + type: "string" + allowed_values { + list { + s: "AVG" + s: "MAX" + } + } + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscRandomUniform" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscReduce" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "reduce_type" + type: "string" + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + attr { + name: "Index" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscReshape" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tshape" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscReverse" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscScatter" + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscShape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscSlice" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "size" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscSort" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Index" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "direction" + type: "string" + allowed_values { + list { + s: "ASCENDING" + s: "DESCENDING" + } + } + } +} +op { + name: "RiscSqueeze" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "squeeze_dims" + type: "list(int)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "RiscTranspose" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "perm" + type_attr: "Tperm" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tperm" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "RiscTriangularSolve" + input_arg { + name: "matrix" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "lower" + type: "bool" + default_value { + b: true + } + } + attr { + name: "adjoint" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscUnary" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "op_type" + type: "string" + allowed_values { + list { + s: "ABL" + s: "CEIL" + s: "COS" + s: "EXP" + s: "FLOOR" + s: "IMAG" + s: "LOG" + s: "NEG" + s: "REAL" + s: "SIGN" + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "RiscWhile" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + } + attr { + name: "body" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } + is_stateful: true +} +op { + name: "RngReadAndSkip" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "alg" + type: DT_INT32 + } + input_arg { + name: "delta" + type: DT_UINT64 + } + output_arg { + name: "value" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "RngSkip" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "delta" + type: DT_INT64 + } + is_stateful: true +} +op { + name: "Roll" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "shift" + type_attr: "Tshift" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tshift" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Taxis" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Round" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Rpc" + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "method" + type: DT_STRING + } + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + attr { + name: "protocol" + type: "string" + default_value { + s: "" + } + } + attr { + name: "fail_fast" + type: "bool" + default_value { + b: true + } + } + attr { + name: "timeout_in_ms" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Rsqrt" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "RsqrtGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SampleDistortedBoundingBox" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "min_object_covered" + type: "float" + default_value { + f: 0.1 + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SampleDistortedBoundingBoxV2" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + input_arg { + name: "min_object_covered" + type: DT_FLOAT + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SamplingDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "rate" + type: DT_FLOAT + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Save" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "SaveDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "shard_func_other_args" + type_list_attr: "Tshard_func_args" + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shard_func" + type: "func" + } + attr { + name: "use_shard_func" + type: "bool" + default_value { + b: true + } + } + attr { + name: "Tshard_func_args" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "SaveSlices" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shapes_and_slices" + type: DT_STRING + } + input_arg { + name: "data" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "SaveV2" + input_arg { + name: "prefix" + type: DT_STRING + } + input_arg { + name: "tensor_names" + type: DT_STRING + } + input_arg { + name: "shape_and_slices" + type: DT_STRING + } + input_arg { + name: "tensors" + type_list_attr: "dtypes" + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ScalarSummary" + input_arg { + name: "tags" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "ScaleAndTranslate" + input_arg { + name: "images" + type_attr: "T" + } + input_arg { + name: "size" + type: DT_INT32 + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "translation" + type: DT_FLOAT + } + output_arg { + name: "resized_images" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_UINT8 + type: DT_INT16 + type: DT_UINT16 + type: DT_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "kernel_type" + type: "string" + default_value { + s: "lanczos3" + } + } + attr { + name: "antialias" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScaleAndTranslateGrad" + input_arg { + name: "grads" + type_attr: "T" + } + input_arg { + name: "original_image" + type_attr: "T" + } + input_arg { + name: "scale" + type: DT_FLOAT + } + input_arg { + name: "translation" + type: DT_FLOAT + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + } + } + } + attr { + name: "kernel_type" + type: "string" + default_value { + s: "lanczos3" + } + } + attr { + name: "antialias" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScanDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "initial_state" + type_list_attr: "Tstate" + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "f" + type: "func" + } + attr { + name: "Tstate" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "preserve_cardinality" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_default_device" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScatterAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterDiv" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMax" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMin" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterMul" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNd" + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + input_arg { + name: "shape" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ScatterNdAdd" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdMax" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdMin" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdNonAliasingAdd" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ScatterNdSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterNdUpdate" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ScatterSub" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "ScatterUpdate" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SdcaFprint" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } +} +op { + name: "SdcaOptimizer" + input_arg { + name: "sparse_example_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_values" + type: DT_FLOAT + number_attr: "num_sparse_features_with_values" + } + input_arg { + name: "dense_features" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "example_labels" + type: DT_FLOAT + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + input_arg { + name: "dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_delta_sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + output_arg { + name: "out_delta_dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + attr { + name: "loss_type" + type: "string" + allowed_values { + list { + s: "logistic_loss" + s: "squared_loss" + s: "hinge_loss" + s: "smooth_hinge_loss" + s: "poisson_loss" + } + } + } + attr { + name: "adaptative" + type: "bool" + default_value { + b: false + } + } + attr { + name: "num_sparse_features" + type: "int" + has_minimum: true + } + attr { + name: "num_sparse_features_with_values" + type: "int" + has_minimum: true + } + attr { + name: "num_dense_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } + attr { + name: "num_loss_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_inner_iterations" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "SdcaOptimizerV2" + input_arg { + name: "sparse_example_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_feature_values" + type: DT_FLOAT + number_attr: "num_sparse_features_with_values" + } + input_arg { + name: "dense_features" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_weights" + type: DT_FLOAT + } + input_arg { + name: "example_labels" + type: DT_FLOAT + } + input_arg { + name: "sparse_indices" + type: DT_INT64 + number_attr: "num_sparse_features" + } + input_arg { + name: "sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + input_arg { + name: "dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + input_arg { + name: "example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_example_state_data" + type: DT_FLOAT + } + output_arg { + name: "out_delta_sparse_weights" + type: DT_FLOAT + number_attr: "num_sparse_features" + } + output_arg { + name: "out_delta_dense_weights" + type: DT_FLOAT + number_attr: "num_dense_features" + } + attr { + name: "loss_type" + type: "string" + allowed_values { + list { + s: "logistic_loss" + s: "squared_loss" + s: "hinge_loss" + s: "smooth_hinge_loss" + s: "poisson_loss" + } + } + } + attr { + name: "adaptive" + type: "bool" + default_value { + b: false + } + } + attr { + name: "num_sparse_features" + type: "int" + has_minimum: true + } + attr { + name: "num_sparse_features_with_values" + type: "int" + has_minimum: true + } + attr { + name: "num_dense_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } + attr { + name: "num_loss_partitions" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_inner_iterations" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "SdcaShrinkL1" + input_arg { + name: "weights" + type: DT_FLOAT + number_attr: "num_features" + is_ref: true + } + attr { + name: "num_features" + type: "int" + has_minimum: true + } + attr { + name: "l1" + type: "float" + } + attr { + name: "l2" + type: "float" + } +} +op { + name: "SegmentMax" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentMean" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentMin" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentProd" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Select" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SelectV2" + input_arg { + name: "condition" + type: DT_BOOL + } + input_arg { + name: "t" + type_attr: "T" + } + input_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SelfAdjointEig" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + } + } + } + deprecation { + version: 11 + explanation: "Use SelfAdjointEigV2 instead." + } +} +op { + name: "SelfAdjointEigV2" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "e" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_v" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Selu" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SeluGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "outputs" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Send" + input_arg { + name: "tensor" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "tensor_name" + type: "string" + } + attr { + name: "send_device" + type: "string" + } + attr { + name: "send_device_incarnation" + type: "int" + } + attr { + name: "recv_device" + type: "string" + } + attr { + name: "client_terminated" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "SendTPUEmbeddingGradients" + input_arg { + name: "inputs" + type: DT_FLOAT + number_attr: "N" + } + input_arg { + name: "learning_rates" + type: DT_FLOAT + number_attr: "NN" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "NN" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "config" + type: "string" + } + is_stateful: true +} +op { + name: "SerializeIterator" + input_arg { + name: "resource_handle" + type: DT_RESOURCE + } + output_arg { + name: "serialized" + type: DT_VARIANT + } + attr { + name: "external_state_policy" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "SerializeManySparse" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "serialized_sparse" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "SerializeSparse" + input_arg { + name: "sparse_indices" + type: DT_INT64 + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "sparse_shape" + type: DT_INT64 + } + output_arg { + name: "serialized_sparse" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_STRING + } + allowed_values { + list { + type: DT_STRING + type: DT_VARIANT + } + } + } +} +op { + name: "SerializeTensor" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "serialized" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SetSize" + input_arg { + name: "set_indices" + type: DT_INT64 + } + input_arg { + name: "set_values" + type_attr: "T" + } + input_arg { + name: "set_shape" + type: DT_INT64 + } + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "SetStatsAggregatorDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "counter_prefix" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Shape" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ShapeN" + input_arg { + name: "input" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "out_type" + number_attr: "N" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "ShardDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "num_shards" + type: DT_INT64 + } + input_arg { + name: "index" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "require_non_empty" + type: "bool" + default_value { + b: false + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ShardedFilename" + input_arg { + name: "basename" + type: DT_STRING + } + input_arg { + name: "shard" + type: DT_INT32 + } + input_arg { + name: "num_shards" + type: DT_INT32 + } + output_arg { + name: "filename" + type: DT_STRING + } +} +op { + name: "ShardedFilespec" + input_arg { + name: "basename" + type: DT_STRING + } + input_arg { + name: "num_shards" + type: DT_INT32 + } + output_arg { + name: "filename" + type: DT_STRING + } +} +op { + name: "ShuffleAndRepeatDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "ShuffleAndRepeatDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "count" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShuffleDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "ShuffleDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShuffleDatasetV3" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + input_arg { + name: "seed" + type: DT_INT64 + } + input_arg { + name: "seed2" + type: DT_INT64 + } + input_arg { + name: "seed_generator" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "reshuffle_each_iteration" + type: "bool" + default_value { + b: true + } + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ShutdownDistributedTPU" + is_stateful: true +} +op { + name: "Sigmoid" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SigmoidGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sign" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sin" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Sinh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Size" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SkipDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Skipgram" + output_arg { + name: "vocab_word" + type: DT_STRING + } + output_arg { + name: "vocab_freq" + type: DT_INT32 + } + output_arg { + name: "words_per_epoch" + type: DT_INT64 + } + output_arg { + name: "current_epoch" + type: DT_INT32 + } + output_arg { + name: "total_words_processed" + type: DT_INT64 + } + output_arg { + name: "examples" + type: DT_INT32 + } + output_arg { + name: "labels" + type: DT_INT32 + } + attr { + name: "filename" + type: "string" + } + attr { + name: "batch_size" + type: "int" + } + attr { + name: "window_size" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "min_count" + type: "int" + default_value { + i: 5 + } + } + attr { + name: "subsample" + type: "float" + default_value { + f: 0.001 + } + } + deprecation { + version: 19 + explanation: "Moving word2vec into tensorflow_models/tutorials and deprecating its ops here as a result" + } + is_stateful: true +} +op { + name: "SleepDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "sleep_microseconds" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Slice" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "size" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SlidingWindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "window_size" + type: DT_INT64 + } + input_arg { + name: "window_shift" + type: DT_INT64 + } + input_arg { + name: "window_stride" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Snapshot" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SnapshotDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_path_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "writer_path_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shard_size_bytes" + type: "int" + default_value { + i: 10737418240 + } + } + attr { + name: "pending_snapshot_expiry_seconds" + type: "int" + default_value { + i: 86400 + } + } + attr { + name: "num_reader_threads" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "reader_buffer_size" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "num_writer_threads" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "writer_buffer_size" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "shuffle_on_read" + type: "bool" + default_value { + b: false + } + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "mode" + type: "string" + default_value { + s: "auto" + } + } + attr { + name: "snapshot_name" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "SnapshotDatasetV2" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "path" + type: DT_STRING + } + input_arg { + name: "reader_func_other_args" + type_list_attr: "Treader_func_args" + } + input_arg { + name: "shard_func_other_args" + type_list_attr: "Tshard_func_args" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "compression" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reader_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "writer_prefix" + type: "string" + default_value { + s: "" + } + } + attr { + name: "hash_valid" + type: "bool" + default_value { + b: false + } + } + attr { + name: "hash" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "reader_func" + type: "func" + } + attr { + name: "shard_func" + type: "func" + } + attr { + name: "Treader_func_args" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tshard_func_args" + type: "list(type)" + has_minimum: true + } +} +op { + name: "SobolSample" + input_arg { + name: "dim" + type: DT_INT32 + } + input_arg { + name: "num_results" + type: DT_INT32 + } + input_arg { + name: "skip" + type: DT_INT32 + } + output_arg { + name: "samples" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softmax" + input_arg { + name: "logits" + type_attr: "T" + } + output_arg { + name: "softmax" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftmaxCrossEntropyWithLogits" + input_arg { + name: "features" + type_attr: "T" + } + input_arg { + name: "labels" + type_attr: "T" + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softplus" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftplusGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Softsign" + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "activations" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SoftsignGrad" + input_arg { + name: "gradients" + type_attr: "T" + } + input_arg { + name: "features" + type_attr: "T" + } + output_arg { + name: "backprops" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SpaceToBatch" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } +} +op { + name: "SpaceToBatchND" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "block_shape" + type_attr: "Tblock_shape" + } + input_arg { + name: "paddings" + type_attr: "Tpaddings" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tblock_shape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tpaddings" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SpaceToDepth" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "block_size" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "data_format" + type: "string" + default_value { + s: "NHWC" + } + allowed_values { + list { + s: "NHWC" + s: "NCHW" + s: "NCHW_VECT_C" + } + } + } +} +op { + name: "SparseAccumulatorApplyGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "local_step" + type: DT_INT64 + } + input_arg { + name: "gradient_indices" + type: DT_INT64 + } + input_arg { + name: "gradient_values" + type_attr: "dtype" + } + input_arg { + name: "gradient_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "has_known_shape" + type: "bool" + } +} +op { + name: "SparseAccumulatorTakeGradient" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "num_required" + type: DT_INT32 + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type_attr: "dtype" + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseAdd" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + input_arg { + name: "thresh" + type_attr: "Treal" + } + output_arg { + name: "sum_indices" + type: DT_INT64 + } + output_arg { + name: "sum_values" + type_attr: "T" + } + output_arg { + name: "sum_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Treal" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseAddGrad" + input_arg { + name: "backprop_val_grad" + type_attr: "T" + } + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "sum_indices" + type: DT_INT64 + } + output_arg { + name: "a_val_grad" + type_attr: "T" + } + output_arg { + name: "b_val_grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseApplyAdadelta" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum_update" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SparseApplyAdagradDA" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "gradient_squared_accumulator" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "global_step" + type: DT_INT64 + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyAdagradV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "update_slots" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "SparseApplyCenteredRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mg" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyFtrl" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyFtrlV2" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "linear" + type_attr: "T" + is_ref: true + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "l2_shrinkage" + type_attr: "T" + } + input_arg { + name: "lr_power" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "multiply_linear_by_lr" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyMomentum" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "momentum" + type_attr: "T" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_nesterov" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyProximalAdagrad" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "accum" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyProximalGradientDescent" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "l1" + type_attr: "T" + } + input_arg { + name: "l2" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseApplyRMSProp" + input_arg { + name: "var" + type_attr: "T" + is_ref: true + } + input_arg { + name: "ms" + type_attr: "T" + is_ref: true + } + input_arg { + name: "mom" + type_attr: "T" + is_ref: true + } + input_arg { + name: "lr" + type_attr: "T" + } + input_arg { + name: "rho" + type_attr: "T" + } + input_arg { + name: "momentum" + type_attr: "T" + } + input_arg { + name: "epsilon" + type_attr: "T" + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + output_arg { + name: "out" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "use_locking" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseBincount" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tidx" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "size" + type_attr: "Tidx" + } + input_arg { + name: "weights" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "Tidx" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "binary_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseConcat" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_attr: "T" + number_attr: "N" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "concat_dim" + type: "int" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 2 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseConditionalAccumulator" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "reduction_type" + type: "string" + default_value { + s: "MEAN" + } + allowed_values { + list { + s: "MEAN" + s: "SUM" + } + } + } + is_stateful: true +} +op { + name: "SparseCountSparseOutput" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "weights" + type_attr: "output_type" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "output_type" + } + output_arg { + name: "output_dense_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "minlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "maxlength" + type: "int" + default_value { + i: -1 + } + has_minimum: true + minimum: -1 + } + attr { + name: "binary_output" + type: "bool" + } + attr { + name: "output_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseCross" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "out_type" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "hashed_output" + type: "bool" + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + } + attr { + name: "hash_key" + type: "int" + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "out_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "internal_type" + type: "type" + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseCrossHashed" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + input_arg { + name: "num_buckets" + type: DT_INT64 + } + input_arg { + name: "strong_hash" + type: DT_BOOL + } + input_arg { + name: "salt" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type: DT_INT64 + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseCrossV2" + input_arg { + name: "indices" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "values" + type_list_attr: "sparse_types" + } + input_arg { + name: "shapes" + type: DT_INT64 + number_attr: "N" + } + input_arg { + name: "dense_inputs" + type_list_attr: "dense_types" + } + input_arg { + name: "sep" + type: DT_STRING + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type: DT_STRING + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "N" + type: "int" + has_minimum: true + } + attr { + name: "sparse_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } + attr { + name: "dense_types" + type: "list(type)" + has_minimum: true + allowed_values { + list { + type: DT_INT64 + type: DT_STRING + } + } + } +} +op { + name: "SparseDenseCwiseAdd" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseDenseCwiseDiv" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseDenseCwiseMul" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + input_arg { + name: "dense" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseFillEmptyRows" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + input_arg { + name: "default_value" + type_attr: "T" + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "empty_row_indicator" + type: DT_BOOL + } + output_arg { + name: "reverse_index_map" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseFillEmptyRowsGrad" + input_arg { + name: "reverse_index_map" + type: DT_INT64 + } + input_arg { + name: "grad_values" + type_attr: "T" + } + output_arg { + name: "d_values" + type_attr: "T" + } + output_arg { + name: "d_default_value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseMatMul" + input_arg { + name: "a" + type_attr: "Ta" + } + input_arg { + name: "b" + type_attr: "Tb" + } + output_arg { + name: "product" + type: DT_FLOAT + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "a_is_sparse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "b_is_sparse" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Ta" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + } + } + } + attr { + name: "Tb" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_BFLOAT16 + } + } + } +} +op { + name: "SparseMatrixAdd" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type: DT_VARIANT + } + input_arg { + name: "alpha" + type_attr: "T" + } + input_arg { + name: "beta" + type_attr: "T" + } + output_arg { + name: "c" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixMatMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_output" + type: "bool" + default_value { + b: false + } + } + attr { + name: "conjugate_output" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseMatrixMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseMatrixNNZ" + input_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + output_arg { + name: "nnz" + type: DT_INT32 + } +} +op { + name: "SparseMatrixOrderingAMD" + input_arg { + name: "input" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_INT32 + } +} +op { + name: "SparseMatrixSoftmax" + input_arg { + name: "logits" + type: DT_VARIANT + } + output_arg { + name: "softmax" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseMatrixSoftmaxGrad" + input_arg { + name: "softmax" + type: DT_VARIANT + } + input_arg { + name: "grad_softmax" + type: DT_VARIANT + } + output_arg { + name: "gradient" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseMatrixSparseCholesky" + input_arg { + name: "input" + type: DT_VARIANT + } + input_arg { + name: "permutation" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixSparseMatMul" + input_arg { + name: "a" + type: DT_VARIANT + } + input_arg { + name: "b" + type: DT_VARIANT + } + output_arg { + name: "c" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + attr { + name: "transpose_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "transpose_b" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseMatrixTranspose" + input_arg { + name: "input" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "conjugate" + type: "bool" + default_value { + b: false + } + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseMatrixZeros" + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + attr { + name: "type" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseReduceMax" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceMaxSparse" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceSum" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReduceSumSparse" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "reduction_axes" + type: DT_INT32 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseReorder" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_values" + type_attr: "T" + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseReshape" + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_shape" + type: DT_INT64 + } + input_arg { + name: "new_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_shape" + type: DT_INT64 + } +} +op { + name: "SparseSegmentMean" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentMeanGrad" + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "output_dim0" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentMeanWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtN" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtNGrad" + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "output_dim0" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSqrtNWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSegmentSumWithNumSegments" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "segment_ids" + type_attr: "Tsegmentids" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tsegmentids" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSlice" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "shape" + type: DT_INT64 + } + input_arg { + name: "start" + type: DT_INT64 + } + input_arg { + name: "size" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + output_arg { + name: "output_shape" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseSliceGrad" + input_arg { + name: "backprop_val_grad" + type_attr: "T" + } + input_arg { + name: "input_indices" + type: DT_INT64 + } + input_arg { + name: "input_start" + type: DT_INT64 + } + input_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "val_grad" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSoftmax" + input_arg { + name: "sp_indices" + type: DT_INT64 + } + input_arg { + name: "sp_values" + type_attr: "T" + } + input_arg { + name: "sp_shape" + type: DT_INT64 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "SparseSoftmaxCrossEntropyWithLogits" + input_arg { + name: "features" + type_attr: "T" + } + input_arg { + name: "labels" + type_attr: "Tlabels" + } + output_arg { + name: "loss" + type_attr: "T" + } + output_arg { + name: "backprop" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tlabels" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseSparseMaximum" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSparseMinimum" + input_arg { + name: "a_indices" + type: DT_INT64 + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b_indices" + type: DT_INT64 + } + input_arg { + name: "b_values" + type_attr: "T" + } + input_arg { + name: "b_shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + } + output_arg { + name: "output_values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "SparseSplit" + input_arg { + name: "split_dim" + type: DT_INT64 + } + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "shape" + type: DT_INT64 + } + output_arg { + name: "output_indices" + type: DT_INT64 + number_attr: "num_split" + } + output_arg { + name: "output_values" + type_attr: "T" + number_attr: "num_split" + } + output_arg { + name: "output_shape" + type: DT_INT64 + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SparseTensorDenseAdd" + input_arg { + name: "a_indices" + type_attr: "Tindices" + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type_attr: "Tindices" + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseTensorDenseMatMul" + input_arg { + name: "a_indices" + type_attr: "Tindices" + } + input_arg { + name: "a_values" + type_attr: "T" + } + input_arg { + name: "a_shape" + type: DT_INT64 + } + input_arg { + name: "b" + type_attr: "T" + } + output_arg { + name: "product" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "adjoint_a" + type: "bool" + default_value { + b: false + } + } + attr { + name: "adjoint_b" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "SparseTensorSliceDataset" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "Tvalues" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Tvalues" + type: "type" + } + is_stateful: true +} +op { + name: "SparseTensorToCSRSparseMatrix" + input_arg { + name: "indices" + type: DT_INT64 + } + input_arg { + name: "values" + type_attr: "T" + } + input_arg { + name: "dense_shape" + type: DT_INT64 + } + output_arg { + name: "sparse_matrix" + type: DT_VARIANT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SparseToDense" + input_arg { + name: "sparse_indices" + type_attr: "Tindices" + } + input_arg { + name: "output_shape" + type_attr: "Tindices" + } + input_arg { + name: "sparse_values" + type_attr: "T" + } + input_arg { + name: "default_value" + type_attr: "T" + } + output_arg { + name: "dense" + type_attr: "T" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SparseToSparseSetOperation" + input_arg { + name: "set1_indices" + type: DT_INT64 + } + input_arg { + name: "set1_values" + type_attr: "T" + } + input_arg { + name: "set1_shape" + type: DT_INT64 + } + input_arg { + name: "set2_indices" + type: DT_INT64 + } + input_arg { + name: "set2_values" + type_attr: "T" + } + input_arg { + name: "set2_shape" + type: DT_INT64 + } + output_arg { + name: "result_indices" + type: DT_INT64 + } + output_arg { + name: "result_values" + type_attr: "T" + } + output_arg { + name: "result_shape" + type: DT_INT64 + } + attr { + name: "set_operation" + type: "string" + } + attr { + name: "validate_indices" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_UINT8 + type: DT_UINT16 + type: DT_STRING + } + } + } +} +op { + name: "Spence" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "Split" + input_arg { + name: "split_dim" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SplitV" + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "size_splits" + type_attr: "Tlen" + } + input_arg { + name: "split_dim" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_split" + } + attr { + name: "num_split" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tlen" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SqlDataset" + input_arg { + name: "driver_name" + type: DT_STRING + } + input_arg { + name: "data_source_name" + type: DT_STRING + } + input_arg { + name: "query" + type: DT_STRING + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "Sqrt" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SqrtGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Square" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "SquaredDifference" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } + is_commutative: true +} +op { + name: "Squeeze" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "squeeze_dims" + type: "list(int)" + default_value { + list { + } + } + has_minimum: true + } +} +op { + name: "Stack" + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "elem_type" + type: "type" + } + attr { + name: "stack_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StackClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } +} +op { + name: "StackCloseV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "StackPop" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + output_arg { + name: "elem" + type_attr: "elem_type" + } + attr { + name: "elem_type" + type: "type" + } +} +op { + name: "StackPopV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "elem" + type_attr: "elem_type" + } + attr { + name: "elem_type" + type: "type" + } + is_stateful: true +} +op { + name: "StackPush" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "elem" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "swap_memory" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "StackPushV2" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "elem" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "swap_memory" + type: "bool" + default_value { + b: false + } + } + is_stateful: true +} +op { + name: "StackV2" + input_arg { + name: "max_size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "elem_type" + type: "type" + } + attr { + name: "stack_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Stage" + input_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StageClear" + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StagePeek" + input_arg { + name: "index" + type: DT_INT32 + } + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StageSize" + output_arg { + name: "size" + type: DT_INT32 + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatefulPartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "config" + type: "string" + default_value { + s: "" + } + } + attr { + name: "config_proto" + type: "string" + default_value { + s: "" + } + } + attr { + name: "executor_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatefulRandomBinomial" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "counts" + type_attr: "T" + } + input_arg { + name: "probs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "StatefulStandardNormal" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + deprecation { + version: 29 + explanation: "Use StatefulStandardNormalV2 instead" + } + is_stateful: true +} +op { + name: "StatefulStandardNormalV2" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulTruncatedNormal" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniform" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniformFullInt" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatefulUniformInt" + input_arg { + name: "resource" + type: DT_RESOURCE + } + input_arg { + name: "algorithm" + type: DT_INT64 + } + input_arg { + name: "shape" + type_attr: "shape_dtype" + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + attr { + name: "shape_dtype" + type: "type" + default_value { + type: DT_INT64 + } + } + is_stateful: true +} +op { + name: "StatelessCase" + input_arg { + name: "branch_index" + type: DT_INT32 + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "branches" + type: "list(func)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } +} +op { + name: "StatelessIf" + input_arg { + name: "cond" + type_attr: "Tcond" + } + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tcond" + type: "type" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "then_branch" + type: "func" + } + attr { + name: "else_branch" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } +} +op { + name: "StatelessMultinomial" + input_arg { + name: "logits" + type_attr: "T" + } + input_arg { + name: "num_samples" + type: DT_INT32 + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "output_dtype" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "output_dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessParameterizedTruncatedNormal" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "means" + type_attr: "dtype" + } + input_arg { + name: "stddevs" + type_attr: "dtype" + } + input_arg { + name: "minvals" + type_attr: "dtype" + } + input_arg { + name: "maxvals" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "StatelessRandomBinomial" + input_arg { + name: "shape" + type_attr: "S" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "counts" + type_attr: "T" + } + input_arg { + name: "probs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "S" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_DOUBLE + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomGammaV2" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "alpha" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomGetAlg" + output_arg { + name: "alg" + type: DT_INT32 + } +} +op { + name: "StatelessRandomGetKeyCounter" + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "key" + type: DT_UINT64 + } + output_arg { + name: "counter" + type: DT_UINT64 + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomGetKeyCounterAlg" + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "key" + type: DT_UINT64 + } + output_arg { + name: "counter" + type: DT_UINT64 + } + output_arg { + name: "alg" + type: DT_INT32 + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomNormalV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomPoisson" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "lam" + type_attr: "Rtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "Rtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniform" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformFullInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "StatelessRandomUniformFullIntV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_UINT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformInt" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformIntV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + input_arg { + name: "minval" + type_attr: "dtype" + } + input_arg { + name: "maxval" + type_attr: "dtype" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessRandomUniformV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessSampleDistortedBoundingBox" + input_arg { + name: "image_size" + type_attr: "T" + } + input_arg { + name: "bounding_boxes" + type: DT_FLOAT + } + input_arg { + name: "min_object_covered" + type: DT_FLOAT + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "begin" + type_attr: "T" + } + output_arg { + name: "size" + type_attr: "T" + } + output_arg { + name: "bboxes" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_UINT8 + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "aspect_ratio_range" + type: "list(float)" + default_value { + list { + f: 0.75 + f: 1.33 + } + } + } + attr { + name: "area_range" + type: "list(float)" + default_value { + list { + f: 0.05 + f: 1 + } + } + } + attr { + name: "max_attempts" + type: "int" + default_value { + i: 100 + } + } + attr { + name: "use_image_if_no_bounding_boxes" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "StatelessTruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + input_arg { + name: "seed" + type_attr: "Tseed" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tseed" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessTruncatedNormalV2" + input_arg { + name: "shape" + type_attr: "Tshape" + } + input_arg { + name: "key" + type: DT_UINT64 + } + input_arg { + name: "counter" + type: DT_UINT64 + } + input_arg { + name: "alg" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "Tshape" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StatelessWhile" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + } + attr { + name: "body" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } +} +op { + name: "StaticRegexFullMatch" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "pattern" + type: "string" + } +} +op { + name: "StaticRegexReplace" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "pattern" + type: "string" + } + attr { + name: "rewrite" + type: "string" + } + attr { + name: "replace_global" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "StatsAggregatorHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatsAggregatorHandleV2" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "StatsAggregatorSetSummaryWriter" + input_arg { + name: "stats_aggregator" + type: DT_RESOURCE + } + input_arg { + name: "summary" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "StatsAggregatorSummary" + input_arg { + name: "iterator" + type: DT_RESOURCE + } + output_arg { + name: "summary" + type: DT_STRING + } + is_stateful: true +} +op { + name: "StopGradient" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "StridedSlice" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StridedSliceAssign" + input_arg { + name: "ref" + type_attr: "T" + is_ref: true + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output_ref" + type_attr: "T" + is_ref: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StridedSliceGrad" + input_arg { + name: "shape" + type_attr: "Index" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "StringFormat" + input_arg { + name: "inputs" + type_list_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "template" + type: "string" + default_value { + s: "%s" + } + } + attr { + name: "placeholder" + type: "string" + default_value { + s: "%s" + } + } + attr { + name: "summarize" + type: "int" + default_value { + i: 3 + } + } +} +op { + name: "StringJoin" + input_arg { + name: "inputs" + type: DT_STRING + number_attr: "N" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "StringLength" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT32 + } + attr { + name: "unit" + type: "string" + default_value { + s: "BYTE" + } + allowed_values { + list { + s: "BYTE" + s: "UTF8_CHAR" + } + } + } +} +op { + name: "StringLower" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "StringNGrams" + input_arg { + name: "data" + type: DT_STRING + } + input_arg { + name: "data_splits" + type_attr: "Tsplits" + } + output_arg { + name: "ngrams" + type: DT_STRING + } + output_arg { + name: "ngrams_splits" + type_attr: "Tsplits" + } + attr { + name: "separator" + type: "string" + } + attr { + name: "ngram_widths" + type: "list(int)" + has_minimum: true + } + attr { + name: "left_pad" + type: "string" + } + attr { + name: "right_pad" + type: "string" + } + attr { + name: "pad_width" + type: "int" + } + attr { + name: "preserve_short_sequences" + type: "bool" + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StringSplit" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "delimiter" + type: DT_STRING + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type: DT_STRING + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "skip_empty" + type: "bool" + default_value { + b: true + } + } +} +op { + name: "StringSplitV2" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "sep" + type: DT_STRING + } + output_arg { + name: "indices" + type: DT_INT64 + } + output_arg { + name: "values" + type: DT_STRING + } + output_arg { + name: "shape" + type: DT_INT64 + } + attr { + name: "maxsplit" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "StringStrip" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "StringToHashBucket" + input_arg { + name: "string_tensor" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "StringToHashBucketFast" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } +} +op { + name: "StringToHashBucketStrong" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_INT64 + } + attr { + name: "num_buckets" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "key" + type: "list(int)" + } +} +op { + name: "StringToNumber" + input_arg { + name: "string_tensor" + type: DT_STRING + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "StringUpper" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "encoding" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "Sub" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + type: DT_UINT32 + } + } + } +} +op { + name: "Substr" + input_arg { + name: "input" + type: DT_STRING + } + input_arg { + name: "pos" + type_attr: "T" + } + input_arg { + name: "len" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "unit" + type: "string" + default_value { + s: "BYTE" + } + allowed_values { + list { + s: "BYTE" + s: "UTF8_CHAR" + } + } + } +} +op { + name: "Sum" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "reduction_indices" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "keep_dims" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "SummaryWriter" + output_arg { + name: "writer" + type: DT_RESOURCE + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Svd" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "s" + type_attr: "T" + } + output_arg { + name: "u" + type_attr: "T" + } + output_arg { + name: "v" + type_attr: "T" + } + attr { + name: "compute_uv" + type: "bool" + default_value { + b: true + } + } + attr { + name: "full_matrices" + type: "bool" + default_value { + b: false + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_HALF + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Switch" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "pred" + type: DT_BOOL + } + output_arg { + name: "output_false" + type_attr: "T" + } + output_arg { + name: "output_true" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "SymbolicGradient" + input_arg { + name: "input" + type_list_attr: "Tin" + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "f" + type: "func" + } +} +op { + name: "TFRecordDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "TFRecordReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TFRecordReaderV2" + } + is_stateful: true +} +op { + name: "TFRecordReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "compression_type" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TPUCompilationResult" + output_arg { + name: "output" + type: DT_STRING + } +} +op { + name: "TPUCompile" + input_arg { + name: "dynamic_shapes" + type: DT_INT64 + number_attr: "NumDynamicShapes" + } + input_arg { + name: "guaranteed_constants" + type_list_attr: "Tguaranteed_constants" + } + output_arg { + name: "compilation_status" + type: DT_STRING + } + output_arg { + name: "program" + type: DT_STRING + number_attr: "num_computations" + } + output_arg { + name: "may_modify_variables" + type: DT_BOOL + number_attr: "num_computations" + } + attr { + name: "num_computations" + type: "int" + has_minimum: true + } + attr { + name: "function" + type: "func" + } + attr { + name: "metadata" + type: "string" + } + attr { + name: "NumDynamicShapes" + type: "int" + has_minimum: true + } + attr { + name: "Tguaranteed_constants" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUCompileSucceededAssert" + input_arg { + name: "compilation_status" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TPUEmbeddingActivations" + input_arg { + name: "embedding_variable" + type: DT_FLOAT + } + input_arg { + name: "sliced_activations" + type: DT_FLOAT + } + output_arg { + name: "output" + type: DT_FLOAT + } + attr { + name: "table_id" + type: "int" + has_minimum: true + } + attr { + name: "lookup_id" + type: "int" + has_minimum: true + } +} +op { + name: "TPUExecute" + input_arg { + name: "args" + type_list_attr: "Targs" + } + input_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "results" + type_list_attr: "Tresults" + } + attr { + name: "Targs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tresults" + type: "list(type)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUExecuteAndUpdateVariables" + input_arg { + name: "args" + type_list_attr: "Targs" + } + input_arg { + name: "key" + type: DT_STRING + } + output_arg { + name: "results" + type_list_attr: "Tresults" + } + attr { + name: "Targs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tresults" + type: "list(type)" + has_minimum: true + } + attr { + name: "device_var_reads_indices" + type: "list(int)" + has_minimum: true + } + attr { + name: "device_var_updates_indices" + type: "list(int)" + has_minimum: true + } + is_stateful: true +} +op { + name: "TPUOrdinalSelector" + output_arg { + name: "device_ordinals" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TPUPartitionedCall" + input_arg { + name: "args" + type_list_attr: "Tin" + } + input_arg { + name: "device_ordinal" + type: DT_INT32 + } + output_arg { + name: "output" + type_list_attr: "Tout" + } + attr { + name: "Tin" + type: "list(type)" + has_minimum: true + } + attr { + name: "Tout" + type: "list(type)" + has_minimum: true + } + attr { + name: "f" + type: "func" + } + attr { + name: "autotuner_thresh" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUPartitionedInput" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "partition_dim" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUPartitionedOutput" + input_arg { + name: "inputs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num_splits" + } + attr { + name: "T" + type: "type" + } + attr { + name: "num_splits" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "partition_dim" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TPUReplicateMetadata" + attr { + name: "num_replicas" + type: "int" + has_minimum: true + } + attr { + name: "num_cores_per_replica" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "topology" + type: "string" + default_value { + s: "" + } + } + attr { + name: "use_tpu" + type: "bool" + default_value { + b: true + } + } + attr { + name: "device_assignment" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "computation_shape" + type: "list(int)" + default_value { + list { + } + } + } + attr { + name: "host_compute_core" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "padding_map" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "step_marker_location" + type: "string" + default_value { + s: "STEP_MARK_AT_ENTRY" + } + } + attr { + name: "allow_soft_placement" + type: "bool" + default_value { + b: false + } + } + attr { + name: "use_spmd_for_xla_partitioning" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "TPUReplicatedInput" + input_arg { + name: "inputs" + type_attr: "T" + number_attr: "N" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } + attr { + name: "is_mirrored_variable" + type: "bool" + default_value { + b: false + } + } + attr { + name: "index" + type: "int" + default_value { + i: -1 + } + } + attr { + name: "is_packed" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "TPUReplicatedOutput" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "outputs" + type_attr: "T" + number_attr: "num_replicas" + } + attr { + name: "num_replicas" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TakeDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "count" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "TakeManySparseFromTensorsMap" + input_arg { + name: "sparse_handles" + type: DT_INT64 + } + output_arg { + name: "sparse_indices" + type: DT_INT64 + } + output_arg { + name: "sparse_values" + type_attr: "dtype" + } + output_arg { + name: "sparse_shape" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TakeWhileDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "other_arguments" + type_list_attr: "Targuments" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "predicate" + type: "func" + } + attr { + name: "Targuments" + type: "list(type)" + has_minimum: true + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "Tan" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT8 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Tanh" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TanhGrad" + input_arg { + name: "y" + type_attr: "T" + } + input_arg { + name: "dy" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TemporaryVariable" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "var_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorArray" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayV3" + } + is_stateful: true +} +op { + name: "TensorArrayClose" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + deprecation { + version: 16 + explanation: "Use TensorArrayCloseV3" + } +} +op { + name: "TensorArrayCloseV2" + input_arg { + name: "handle" + type: DT_STRING + } + deprecation { + version: 26 + explanation: "Use TensorArrayCloseV3" + } +} +op { + name: "TensorArrayCloseV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + is_stateful: true +} +op { + name: "TensorArrayConcat" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGradV3" + } +} +op { + name: "TensorArrayConcatV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "TensorArrayConcatV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape_except0" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + is_stateful: true +} +op { + name: "TensorArrayGather" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGatherV3" + } +} +op { + name: "TensorArrayGatherV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 26 + explanation: "Use TensorArrayGatherV3" + } +} +op { + name: "TensorArrayGatherV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + is_stateful: true +} +op { + name: "TensorArrayGrad" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "source" + type: "string" + } + deprecation { + version: 16 + explanation: "Use TensorArrayGradV3" + } + is_stateful: true +} +op { + name: "TensorArrayGradV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_STRING + } + attr { + name: "source" + type: "string" + } + deprecation { + version: 26 + explanation: "Use TensorArrayGradV3" + } + is_stateful: true +} +op { + name: "TensorArrayGradV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "grad_handle" + type: DT_RESOURCE + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "source" + type: "string" + } + is_stateful: true +} +op { + name: "TensorArrayGradWithShape" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + input_arg { + name: "shape_to_prepend" + type: DT_INT32 + } + output_arg { + name: "grad_handle" + type: DT_RESOURCE + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "source" + type: "string" + } + is_stateful: true +} +op { + name: "TensorArrayPack" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + deprecation { + version: 16 + explanation: "Use TensorArrayGatherV3 with RangeOp" + } +} +op { + name: "TensorArrayRead" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArrayReadV3" + } +} +op { + name: "TensorArrayReadV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayReadV3" + } +} +op { + name: "TensorArrayReadV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "value" + type_attr: "dtype" + } + attr { + name: "dtype" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArrayScatter" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 19 + explanation: "Use TensorArrayGradV3" + } +} +op { + name: "TensorArrayScatterV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayScatterV3" + } +} +op { + name: "TensorArrayScatterV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArraySize" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + deprecation { + version: 16 + explanation: "Use TensorArraySizeV3" + } +} +op { + name: "TensorArraySizeV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + deprecation { + version: 26 + explanation: "Use TensorArraySizeV3" + } +} +op { + name: "TensorArraySizeV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TensorArraySplit" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArraySplitV3" + } +} +op { + name: "TensorArraySplitV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArraySplitV3" + } +} +op { + name: "TensorArraySplitV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorArrayUnpack" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 20 + explanation: "Use TensorArrayScatterV3 with RangeOp" + } +} +op { + name: "TensorArrayV2" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_STRING + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TensorArrayV3" + } + is_stateful: true +} +op { + name: "TensorArrayV3" + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_RESOURCE + } + output_arg { + name: "flow" + type: DT_FLOAT + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } + attr { + name: "dynamic_size" + type: "bool" + default_value { + b: false + } + } + attr { + name: "clear_after_read" + type: "bool" + default_value { + b: true + } + } + attr { + name: "identical_element_shapes" + type: "bool" + default_value { + b: false + } + } + attr { + name: "tensor_array_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorArrayWrite" + input_arg { + name: "handle" + type: DT_STRING + is_ref: true + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 16 + explanation: "Use TensorArrayWriteV3" + } +} +op { + name: "TensorArrayWriteV2" + input_arg { + name: "handle" + type: DT_STRING + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 26 + explanation: "Use TensorArrayWriteV3" + } +} +op { + name: "TensorArrayWriteV3" + input_arg { + name: "handle" + type: DT_RESOURCE + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "value" + type_attr: "T" + } + input_arg { + name: "flow_in" + type: DT_FLOAT + } + output_arg { + name: "flow_out" + type: DT_FLOAT + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "TensorDataset" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "TensorForestCreateTreeVariable" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeDeserialize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeIsInitializedOp" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "TensorForestTreePredict" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + input_arg { + name: "dense_features" + type: DT_FLOAT + } + output_arg { + name: "logits" + type: DT_FLOAT + } + attr { + name: "logits_dimension" + type: "int" + } + is_stateful: true +} +op { + name: "TensorForestTreeResourceHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "TensorForestTreeSerialize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "tree_config" + type: DT_STRING + } + is_stateful: true +} +op { + name: "TensorForestTreeSize" + input_arg { + name: "tree_handle" + type: DT_RESOURCE + } + output_arg { + name: "tree_size" + type: DT_INT32 + } + is_stateful: true +} +op { + name: "TensorListConcat" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "element_shape" + type: "shape" + default_value { + shape { + unknown_rank: true + } + } + } +} +op { + name: "TensorListConcatLists" + input_arg { + name: "input_a" + type: DT_VARIANT + } + input_arg { + name: "input_b" + type: DT_VARIANT + } + output_arg { + name: "output" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListConcatV2" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "leading_dims" + type: DT_INT64 + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "lengths" + type: DT_INT64 + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListElementShape" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "element_shape" + type_attr: "shape_type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListFromTensor" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListGather" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListGetItem" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "item" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListLength" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "length" + type: DT_INT32 + } +} +op { + name: "TensorListPopBack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListPushBack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListPushBackBatch" + input_arg { + name: "input_handles" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + output_arg { + name: "output_handles" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListReserve" + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListResize" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "size" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "TensorListScatter" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListScatterIntoExistingList" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListScatterV2" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "indices" + type: DT_INT32 + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "num_elements" + type: DT_INT32 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListSetItem" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "index" + type: DT_INT32 + } + input_arg { + name: "item" + type_attr: "element_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } +} +op { + name: "TensorListSplit" + input_arg { + name: "tensor" + type_attr: "element_dtype" + } + input_arg { + name: "element_shape" + type_attr: "shape_type" + } + input_arg { + name: "lengths" + type: DT_INT64 + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "shape_type" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorListStack" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "element_shape" + type: DT_INT32 + } + output_arg { + name: "tensor" + type_attr: "element_dtype" + } + attr { + name: "element_dtype" + type: "type" + } + attr { + name: "num_elements" + type: "int" + default_value { + i: -1 + } + } +} +op { + name: "TensorMapErase" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapHasKey" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "has_key" + type: DT_BOOL + } + attr { + name: "key_dtype" + type: "type" + } +} +op { + name: "TensorMapInsert" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + input_arg { + name: "value" + type_attr: "value_dtype" + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapLookup" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + input_arg { + name: "key" + type_attr: "key_dtype" + } + output_arg { + name: "value" + type_attr: "value_dtype" + } + attr { + name: "key_dtype" + type: "type" + } + attr { + name: "value_dtype" + type: "type" + } +} +op { + name: "TensorMapSize" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "size" + type: DT_INT32 + } +} +op { + name: "TensorMapStackKeys" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "keys" + type_attr: "key_dtype" + } + attr { + name: "key_dtype" + type: "type" + } +} +op { + name: "TensorScatterAdd" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterMax" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterMin" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterSub" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorScatterUpdate" + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "indices" + type_attr: "Tindices" + } + input_arg { + name: "updates" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TensorSliceDataset" + input_arg { + name: "components" + type_list_attr: "Toutput_types" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "Toutput_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "TensorStridedSliceUpdate" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "begin" + type_attr: "Index" + } + input_arg { + name: "end" + type_attr: "Index" + } + input_arg { + name: "strides" + type_attr: "Index" + } + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Index" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "begin_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "end_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "ellipsis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "new_axis_mask" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "shrink_axis_mask" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "TensorSummary" + input_arg { + name: "tensor" + type_attr: "T" + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + attr { + name: "description" + type: "string" + default_value { + s: "" + } + } + attr { + name: "labels" + type: "list(string)" + default_value { + list { + } + } + } + attr { + name: "display_name" + type: "string" + default_value { + s: "" + } + } +} +op { + name: "TensorSummaryV2" + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "serialized_summary_metadata" + type: DT_STRING + } + output_arg { + name: "summary" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TextLineDataset" + input_arg { + name: "filenames" + type: DT_STRING + } + input_arg { + name: "compression_type" + type: DT_STRING + } + input_arg { + name: "buffer_size" + type: DT_INT64 + } + output_arg { + name: "handle" + type: DT_VARIANT + } + is_stateful: true +} +op { + name: "TextLineReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "skip_header_lines" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + deprecation { + version: 26 + explanation: "Use TextLineReaderV2" + } + is_stateful: true +} +op { + name: "TextLineReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "skip_header_lines" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ThreadPoolDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "thread_pool" + type: DT_RESOURCE + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "ThreadPoolHandle" + output_arg { + name: "handle" + type: DT_RESOURCE + } + attr { + name: "num_threads" + type: "int" + } + attr { + name: "max_intra_op_parallelism" + type: "int" + default_value { + i: 1 + } + } + attr { + name: "display_name" + type: "string" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "ThreadUnsafeUnigramCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Tile" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "multiples" + type_attr: "Tmultiples" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tmultiples" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TileGrad" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "multiples" + type: DT_INT32 + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + deprecation { + version: 3 + explanation: "TileGrad has been replaced with reduce_sum" + } +} +op { + name: "Timestamp" + output_arg { + name: "ts" + type: DT_DOUBLE + } + is_stateful: true +} +op { + name: "ToBool" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "output" + type: DT_BOOL + } + attr { + name: "T" + type: "type" + } +} +op { + name: "TopK" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + has_minimum: true + } + attr { + name: "sorted" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + deprecation { + version: 7 + explanation: "Use TopKV2 instead" + } +} +op { + name: "TopKUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "topk" + type: DT_FLOAT + } + output_arg { + name: "topk_indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + } +} +op { + name: "TopKV2" + input_arg { + name: "input" + type_attr: "T" + } + input_arg { + name: "k" + type: DT_INT32 + } + output_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "indices" + type: DT_INT32 + } + attr { + name: "sorted" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } +} +op { + name: "TopKWithUnique" + input_arg { + name: "input" + type: DT_FLOAT + } + output_arg { + name: "topk" + type: DT_FLOAT + } + output_arg { + name: "topk_indices" + type: DT_INT32 + } + attr { + name: "k" + type: "int" + } +} +op { + name: "Transpose" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "perm" + type_attr: "Tperm" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Tperm" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "TridiagonalMatMul" + input_arg { + name: "superdiag" + type_attr: "T" + } + input_arg { + name: "maindiag" + type_attr: "T" + } + input_arg { + name: "subdiag" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TridiagonalSolve" + input_arg { + name: "diagonals" + type_attr: "T" + } + input_arg { + name: "rhs" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "partial_pivoting" + type: "bool" + default_value { + b: true + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_DOUBLE + type: DT_FLOAT + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TruncateDiv" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_UINT8 + type: DT_INT8 + type: DT_UINT16 + type: DT_INT16 + type: DT_INT32 + type: DT_INT64 + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "TruncateMod" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "TruncatedNormal" + input_arg { + name: "shape" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "dtype" + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "dtype" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_BFLOAT16 + type: DT_FLOAT + type: DT_DOUBLE + } + } + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "TryRpc" + input_arg { + name: "address" + type: DT_STRING + } + input_arg { + name: "method" + type: DT_STRING + } + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + output_arg { + name: "status_code" + type: DT_INT32 + } + output_arg { + name: "status_message" + type: DT_STRING + } + attr { + name: "protocol" + type: "string" + default_value { + s: "" + } + } + attr { + name: "fail_fast" + type: "bool" + default_value { + b: true + } + } + attr { + name: "timeout_in_ms" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Unbatch" + input_arg { + name: "batched_tensor" + type_attr: "T" + } + input_arg { + name: "batch_index" + type: DT_INT64 + } + input_arg { + name: "id" + type: DT_INT64 + } + output_arg { + name: "unbatched_tensor" + type_attr: "T" + } + attr { + name: "timeout_micros" + type: "int" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "UnbatchDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UnbatchGrad" + input_arg { + name: "original_input" + type_attr: "T" + } + input_arg { + name: "batch_index" + type: DT_INT64 + } + input_arg { + name: "grad" + type_attr: "T" + } + input_arg { + name: "id" + type: DT_INT64 + } + output_arg { + name: "batched_grad" + type_attr: "T" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "T" + type: "type" + } +} +op { + name: "UncompressElement" + input_arg { + name: "compressed" + type: DT_VARIANT + } + output_arg { + name: "components" + type_list_attr: "output_types" + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UnicodeDecode" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "row_splits" + type_attr: "Tsplits" + } + output_arg { + name: "char_values" + type: DT_INT32 + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeDecodeWithOffsets" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "row_splits" + type_attr: "Tsplits" + } + output_arg { + name: "char_values" + type: DT_INT32 + } + output_arg { + name: "char_to_byte_starts" + type: DT_INT64 + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeEncode" + input_arg { + name: "input_values" + type: DT_INT32 + } + input_arg { + name: "input_splits" + type_attr: "Tsplits" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "ignore" + s: "replace" + s: "strict" + } + } + } + attr { + name: "output_encoding" + type: "string" + allowed_values { + list { + s: "UTF-8" + s: "UTF-16-BE" + s: "UTF-32-BE" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "Tsplits" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnicodeScript" + input_arg { + name: "input" + type: DT_INT32 + } + output_arg { + name: "output" + type: DT_INT32 + } +} +op { + name: "UnicodeTranscode" + input_arg { + name: "input" + type: DT_STRING + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "input_encoding" + type: "string" + } + attr { + name: "output_encoding" + type: "string" + allowed_values { + list { + s: "UTF-8" + s: "UTF-16-BE" + s: "UTF-32-BE" + } + } + } + attr { + name: "errors" + type: "string" + default_value { + s: "replace" + } + allowed_values { + list { + s: "strict" + s: "replace" + s: "ignore" + } + } + } + attr { + name: "replacement_char" + type: "int" + default_value { + i: 65533 + } + } + attr { + name: "replace_control_characters" + type: "bool" + default_value { + b: false + } + } +} +op { + name: "UniformCandidateSampler" + input_arg { + name: "true_classes" + type: DT_INT64 + } + output_arg { + name: "sampled_candidates" + type: DT_INT64 + } + output_arg { + name: "true_expected_count" + type: DT_FLOAT + } + output_arg { + name: "sampled_expected_count" + type: DT_FLOAT + } + attr { + name: "num_true" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "num_sampled" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "unique" + type: "bool" + } + attr { + name: "range_max" + type: "int" + has_minimum: true + minimum: 1 + } + attr { + name: "seed" + type: "int" + default_value { + i: 0 + } + } + attr { + name: "seed2" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "Unique" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "UniqueV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Taxis" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueWithCounts" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + output_arg { + name: "count" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UniqueWithCountsV2" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "axis" + type_attr: "Taxis" + } + output_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "idx" + type_attr: "out_idx" + } + output_arg { + name: "count" + type_attr: "out_idx" + } + attr { + name: "T" + type: "type" + } + attr { + name: "Taxis" + type: "type" + default_value { + type: DT_INT64 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "out_idx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Unpack" + input_arg { + name: "value" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "T" + number_attr: "num" + } + attr { + name: "num" + type: "int" + has_minimum: true + } + attr { + name: "T" + type: "type" + } + attr { + name: "axis" + type: "int" + default_value { + i: 0 + } + } +} +op { + name: "UnravelIndex" + input_arg { + name: "indices" + type_attr: "Tidx" + } + input_arg { + name: "dims" + type_attr: "Tidx" + } + output_arg { + name: "output" + type_attr: "Tidx" + } + attr { + name: "Tidx" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentJoin" + input_arg { + name: "inputs" + type: DT_STRING + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type: DT_STRING + } + attr { + name: "separator" + type: "string" + default_value { + s: "" + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentMax" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentMin" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentProd" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "UnsortedSegmentSum" + input_arg { + name: "data" + type_attr: "T" + } + input_arg { + name: "segment_ids" + type_attr: "Tindices" + } + input_arg { + name: "num_segments" + type_attr: "Tnumsegments" + } + output_arg { + name: "output" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + attr { + name: "Tindices" + type: "type" + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + attr { + name: "Tnumsegments" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "Unstage" + output_arg { + name: "values" + type_list_attr: "dtypes" + } + attr { + name: "capacity" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "memory_limit" + type: "int" + default_value { + i: 0 + } + has_minimum: true + } + attr { + name: "dtypes" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "UnwrapDatasetVariant" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "UpperBound" + input_arg { + name: "sorted_inputs" + type_attr: "T" + } + input_arg { + name: "values" + type_attr: "T" + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "T" + type: "type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } +} +op { + name: "VarHandleOp" + output_arg { + name: "resource" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "allowed_devices" + type: "list(string)" + default_value { + list { + } + } + } + is_stateful: true +} +op { + name: "VarIsInitializedOp" + input_arg { + name: "resource" + type: DT_RESOURCE + } + output_arg { + name: "is_initialized" + type: DT_BOOL + } + is_stateful: true +} +op { + name: "Variable" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "VariableShape" + input_arg { + name: "input" + type: DT_RESOURCE + } + output_arg { + name: "output" + type_attr: "out_type" + } + attr { + name: "out_type" + type: "type" + default_value { + type: DT_INT32 + } + allowed_values { + list { + type: DT_INT32 + type: DT_INT64 + } + } + } + is_stateful: true +} +op { + name: "VariableV2" + output_arg { + name: "ref" + type_attr: "dtype" + is_ref: true + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "dtype" + type: "type" + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "Where" + input_arg { + name: "input" + type_attr: "T" + } + output_arg { + name: "index" + type: DT_INT64 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_BOOL + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_COMPLEX64 + type: DT_INT64 + type: DT_QINT8 + type: DT_QUINT8 + type: DT_QINT32 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_COMPLEX128 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + type: DT_BOOL + } + } + } +} +op { + name: "While" + input_arg { + name: "input" + type_list_attr: "T" + } + output_arg { + name: "output" + type_list_attr: "T" + } + attr { + name: "T" + type: "list(type)" + has_minimum: true + } + attr { + name: "cond" + type: "func" + } + attr { + name: "body" + type: "func" + } + attr { + name: "output_shapes" + type: "list(shape)" + default_value { + list { + } + } + } + attr { + name: "parallel_iterations" + type: "int" + default_value { + i: 10 + } + } + is_stateful: true +} +op { + name: "WholeFileReader" + output_arg { + name: "reader_handle" + type: DT_STRING + is_ref: true + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "WholeFileReaderV2" + output_arg { + name: "reader_handle" + type: DT_RESOURCE + } + attr { + name: "container" + type: "string" + default_value { + s: "" + } + } + attr { + name: "shared_name" + type: "string" + default_value { + s: "" + } + } + is_stateful: true +} +op { + name: "WindowDataset" + input_arg { + name: "input_dataset" + type: DT_VARIANT + } + input_arg { + name: "size" + type: DT_INT64 + } + input_arg { + name: "shift" + type: DT_INT64 + } + input_arg { + name: "stride" + type: DT_INT64 + } + input_arg { + name: "drop_remainder" + type: DT_BOOL + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } +} +op { + name: "WorkerHeartbeat" + input_arg { + name: "request" + type: DT_STRING + } + output_arg { + name: "response" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WrapDatasetVariant" + input_arg { + name: "input_handle" + type: DT_VARIANT + } + output_arg { + name: "output_handle" + type: DT_VARIANT + } +} +op { + name: "WriteAudioSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type: DT_FLOAT + } + input_arg { + name: "sample_rate" + type: DT_FLOAT + } + attr { + name: "max_outputs" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + is_stateful: true +} +op { + name: "WriteFile" + input_arg { + name: "filename" + type: DT_STRING + } + input_arg { + name: "contents" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteGraphSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteHistogramSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "values" + type_attr: "T" + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "WriteImageSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "bad_color" + type: DT_UINT8 + } + attr { + name: "max_images" + type: "int" + default_value { + i: 3 + } + has_minimum: true + minimum: 1 + } + attr { + name: "T" + type: "type" + default_value { + type: DT_FLOAT + } + allowed_values { + list { + type: DT_UINT8 + type: DT_FLOAT + type: DT_HALF + } + } + } + is_stateful: true +} +op { + name: "WriteRawProtoSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type: DT_STRING + } + is_stateful: true +} +op { + name: "WriteScalarSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "value" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + type: DT_INT32 + type: DT_UINT8 + type: DT_INT16 + type: DT_INT8 + type: DT_INT64 + type: DT_BFLOAT16 + type: DT_UINT16 + type: DT_HALF + type: DT_UINT32 + type: DT_UINT64 + } + } + } + is_stateful: true +} +op { + name: "WriteSummary" + input_arg { + name: "writer" + type: DT_RESOURCE + } + input_arg { + name: "step" + type: DT_INT64 + } + input_arg { + name: "tensor" + type_attr: "T" + } + input_arg { + name: "tag" + type: DT_STRING + } + input_arg { + name: "summary_metadata" + type: DT_STRING + } + attr { + name: "T" + type: "type" + } + is_stateful: true +} +op { + name: "Xdivy" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "XlaHostCompute" + input_arg { + name: "inputs" + type_list_attr: "Tinputs" + } + output_arg { + name: "outputs" + type_list_attr: "Toutputs" + } + attr { + name: "Tinputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "Toutputs" + type: "list(type)" + has_minimum: true + } + attr { + name: "ancestors" + type: "list(string)" + has_minimum: true + } + attr { + name: "shapes" + type: "list(shape)" + has_minimum: true + } + attr { + name: "shape_inference_graph" + type: "func" + } + attr { + name: "key" + type: "string" + } + attr { + name: "cost_estimate_ns" + type: "int" + default_value { + i: 1000000 + } + } + attr { + name: "tpu_core" + type: "int" + default_value { + i: 0 + } + } + is_stateful: true +} +op { + name: "XlaRecvFromHost" + output_arg { + name: "output" + type_attr: "Toutput" + } + attr { + name: "Toutput" + type: "type" + } + attr { + name: "shape" + type: "shape" + } + attr { + name: "key" + type: "string" + } + is_stateful: true +} +op { + name: "XlaSendToHost" + input_arg { + name: "input" + type_attr: "Tinput" + } + attr { + name: "Tinput" + type: "type" + } + attr { + name: "key" + type: "string" + } + is_stateful: true +} +op { + name: "Xlog1py" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "Xlogy" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "y" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_HALF + type: DT_FLOAT + type: DT_DOUBLE + type: DT_COMPLEX64 + type: DT_COMPLEX128 + } + } + } +} +op { + name: "ZerosLike" + input_arg { + name: "x" + type_attr: "T" + } + output_arg { + name: "y" + type_attr: "T" + } + attr { + name: "T" + type: "type" + } +} +op { + name: "Zeta" + input_arg { + name: "x" + type_attr: "T" + } + input_arg { + name: "q" + type_attr: "T" + } + output_arg { + name: "z" + type_attr: "T" + } + attr { + name: "T" + type: "type" + allowed_values { + list { + type: DT_FLOAT + type: DT_DOUBLE + } + } + } +} +op { + name: "ZipDataset" + input_arg { + name: "input_datasets" + type: DT_VARIANT + number_attr: "N" + } + output_arg { + name: "handle" + type: DT_VARIANT + } + attr { + name: "output_types" + type: "list(type)" + has_minimum: true + minimum: 1 + } + attr { + name: "output_shapes" + type: "list(shape)" + has_minimum: true + minimum: 1 + } + attr { + name: "N" + type: "int" + has_minimum: true + minimum: 1 + } +} diff --git a/nd4j/nd4j-backends/nd4j-tests/variables-added-new.txt b/nd4j/nd4j-backends/nd4j-tests/variables-added-new.txt new file mode 100644 index 000000000..bed880a64 --- /dev/null +++ b/nd4j/nd4j-backends/nd4j-tests/variables-added-new.txt @@ -0,0 +1,18 @@ +in_0/read,in_0/read +while/Enter,while/Enter +while/Enter_1,while/Enter_1 +while/Merge,while/Merge +while/Merge_1,while/Merge_1 +while/Less,while/Less +while/LoopCond,while/LoopCond +while/Switch,while/Switch +while/Switch:1,while/Switch +while/Switch_1,while/Switch_1 +while/Switch_1:1,while/Switch_1 +while/Identity,while/Identity +while/Exit,while/Exit +while/Identity_1,while/Identity_1 +while/Exit_1,while/Exit_1 +while/add,while/add +while/NextIteration_1,while/NextIteration_1 +while/NextIteration,while/NextIteration diff --git a/nd4j/nd4j-common-tests/src/main/java/org/nd4j/common/tests/tags/TagNames.java b/nd4j/nd4j-common-tests/src/main/java/org/nd4j/common/tests/tags/TagNames.java index a103523aa..55cce0209 100644 --- a/nd4j/nd4j-common-tests/src/main/java/org/nd4j/common/tests/tags/TagNames.java +++ b/nd4j/nd4j-common-tests/src/main/java/org/nd4j/common/tests/tags/TagNames.java @@ -48,4 +48,6 @@ public class TagNames { public final static String SOLR = "solr"; public final static String KERAS = "keras"; public final static String PYTHON = "python"; + public final static String LONG_TEST = "long-running-test"; + public final static String NEEDS_VERIFY = "needs-verify"; //tests that need verification of issue } diff --git a/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/pom.xml b/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/pom.xml index d2c370aaf..3beb6c814 100644 --- a/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/pom.xml +++ b/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/pom.xml @@ -106,6 +106,11 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false + + 1 + src/test/java *.java @@ -135,6 +140,8 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false -Xmx8g diff --git a/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server/pom.xml b/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server/pom.xml index 147366e5e..04f05c1d6 100644 --- a/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server/pom.xml +++ b/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server/pom.xml @@ -98,6 +98,8 @@ org.apache.maven.plugins maven-surefire-plugin + ${cpu.core.count} + false src/test/java *.java diff --git a/nd4j/nd4j-serde/nd4j-aeron/src/main/java/org/nd4j/aeron/util/BufferUtil.java b/nd4j/nd4j-serde/nd4j-aeron/src/main/java/org/nd4j/aeron/util/BufferUtil.java index 0ea6770e9..8306f4604 100644 --- a/nd4j/nd4j-serde/nd4j-aeron/src/main/java/org/nd4j/aeron/util/BufferUtil.java +++ b/nd4j/nd4j-serde/nd4j-aeron/src/main/java/org/nd4j/aeron/util/BufferUtil.java @@ -21,6 +21,7 @@ package org.nd4j.aeron.util; +import java.nio.Buffer; import java.nio.ByteBuffer; /** @@ -65,7 +66,8 @@ public class BufferUtil { all.put(curr); } - all.flip(); + Buffer buffer = (Buffer) all; + buffer.flip(); return all; } diff --git a/nd4j/samediff-import/samediff-import-tensorflow/src/test/resources/junit-platform.properties b/nd4j/samediff-import/samediff-import-tensorflow/src/test/resources/junit-platform.properties new file mode 100644 index 000000000..8ec0fbcee --- /dev/null +++ b/nd4j/samediff-import/samediff-import-tensorflow/src/test/resources/junit-platform.properties @@ -0,0 +1,25 @@ +# +# /* +# * ****************************************************************************** +# * * +# * * +# * * This program and the accompanying materials are made available under the +# * * terms of the Apache License, Version 2.0 which is available at +# * * https://www.apache.org/licenses/LICENSE-2.0. +# * * +# * * See the NOTICE file distributed with this work for additional +# * * information regarding copyright ownership. +# * * Unless required by applicable law or agreed to in writing, software +# * * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# * * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# * * License for the specific language governing permissions and limitations +# * * under the License. +# * * +# * * SPDX-License-Identifier: Apache-2.0 +# * ***************************************************************************** +# */ +# +# + +junit.jupiter.execution.parallel.enabled = true +junit.jupiter.execution.parallel.mode.default = concurrent \ No newline at end of file diff --git a/pom.xml b/pom.xml index f9d8831ff..1d1ba57cf 100644 --- a/pom.xml +++ b/pom.xml @@ -473,6 +473,11 @@ + ${cpu.core.count} + false + + 1 + org.junit:junit com.google.android:android @@ -625,6 +630,15 @@ + + get-cpu-count + + cpu-count + + + cpu.core.count + + @@ -943,6 +957,15 @@ + + get-cpu-count + + cpu-count + + + system.numCores + + @@ -1163,10 +1186,16 @@ ${maven-surefire-plugin.version} true + ${cpu.core.count} + false + + 1 true -Xmx8g + ${cpu.core.count} + false diff --git a/rl4j/rl4j-gym/pom.xml b/rl4j/rl4j-gym/pom.xml index 1177f3bdc..fdd3fe66f 100644 --- a/rl4j/rl4j-gym/pom.xml +++ b/rl4j/rl4j-gym/pom.xml @@ -37,12 +37,6 @@ rl4j-gym - - org.nd4j - nd4j-common-tests - ${project.version} - test - org.deeplearning4j rl4j-api @@ -56,7 +50,7 @@ org.nd4j nd4j-common-tests - 1.0.0-SNAPSHOT + ${project.version} test