Home | History | Annotate | Download | only in compat
      1 op {
      2   name: "Abort"
      3   attr {
      4     name: "error_msg"
      5     type: "string"
      6     default_value {
      7       s: ""
      8     }
      9   }
     10 }
     11 op {
     12   name: "Abort"
     13   attr {
     14     name: "error_msg"
     15     type: "string"
     16     default_value {
     17       s: ""
     18     }
     19   }
     20   attr {
     21     name: "exit_without_error"
     22     type: "bool"
     23     default_value {
     24       b: false
     25     }
     26   }
     27 }
     28 op {
     29   name: "Abs"
     30   input_arg {
     31     name: "x"
     32     type_attr: "T"
     33   }
     34   output_arg {
     35     name: "y"
     36     type_attr: "T"
     37   }
     38   attr {
     39     name: "T"
     40     type: "type"
     41     allowed_values {
     42       list {
     43         type: DT_FLOAT
     44         type: DT_DOUBLE
     45         type: DT_INT32
     46         type: DT_INT64
     47       }
     48     }
     49   }
     50 }
     51 op {
     52   name: "Abs"
     53   input_arg {
     54     name: "x"
     55     type_attr: "T"
     56   }
     57   output_arg {
     58     name: "y"
     59     type_attr: "T"
     60   }
     61   attr {
     62     name: "T"
     63     type: "type"
     64     allowed_values {
     65       list {
     66         type: DT_HALF
     67         type: DT_FLOAT
     68         type: DT_DOUBLE
     69         type: DT_INT32
     70         type: DT_INT64
     71       }
     72     }
     73   }
     74 }
     75 op {
     76   name: "AccumulatorApplyGradient"
     77   input_arg {
     78     name: "handle"
     79     type: DT_STRING
     80     is_ref: true
     81   }
     82   input_arg {
     83     name: "local_step"
     84     type: DT_INT64
     85   }
     86   input_arg {
     87     name: "gradient"
     88     type_attr: "dtype"
     89   }
     90   attr {
     91     name: "dtype"
     92     type: "type"
     93     allowed_values {
     94       list {
     95         type: DT_FLOAT
     96         type: DT_DOUBLE
     97         type: DT_INT64
     98         type: DT_INT32
     99         type: DT_UINT8
    100         type: DT_UINT16
    101         type: DT_INT16
    102         type: DT_INT8
    103         type: DT_COMPLEX64
    104         type: DT_COMPLEX128
    105         type: DT_QINT8
    106         type: DT_QUINT8
    107         type: DT_QINT32
    108         type: DT_HALF
    109       }
    110     }
    111   }
    112 }
    113 op {
    114   name: "AccumulatorNumAccumulated"
    115   input_arg {
    116     name: "handle"
    117     type: DT_STRING
    118     is_ref: true
    119   }
    120   output_arg {
    121     name: "num_accumulated"
    122     type: DT_INT32
    123   }
    124 }
    125 op {
    126   name: "AccumulatorSetGlobalStep"
    127   input_arg {
    128     name: "handle"
    129     type: DT_STRING
    130     is_ref: true
    131   }
    132   input_arg {
    133     name: "new_global_step"
    134     type: DT_INT64
    135   }
    136 }
    137 op {
    138   name: "AccumulatorTakeGradient"
    139   input_arg {
    140     name: "handle"
    141     type: DT_STRING
    142     is_ref: true
    143   }
    144   input_arg {
    145     name: "num_required"
    146     type: DT_INT32
    147   }
    148   output_arg {
    149     name: "average"
    150     type_attr: "dtype"
    151   }
    152   attr {
    153     name: "dtype"
    154     type: "type"
    155     allowed_values {
    156       list {
    157         type: DT_FLOAT
    158         type: DT_DOUBLE
    159         type: DT_INT64
    160         type: DT_INT32
    161         type: DT_UINT8
    162         type: DT_UINT16
    163         type: DT_INT16
    164         type: DT_INT8
    165         type: DT_COMPLEX64
    166         type: DT_COMPLEX128
    167         type: DT_QINT8
    168         type: DT_QUINT8
    169         type: DT_QINT32
    170         type: DT_HALF
    171       }
    172     }
    173   }
    174 }
    175 op {
    176   name: "Acos"
    177   input_arg {
    178     name: "x"
    179     type_attr: "T"
    180   }
    181   output_arg {
    182     name: "y"
    183     type_attr: "T"
    184   }
    185   attr {
    186     name: "T"
    187     type: "type"
    188     allowed_values {
    189       list {
    190         type: DT_HALF
    191         type: DT_FLOAT
    192         type: DT_DOUBLE
    193         type: DT_INT32
    194         type: DT_INT64
    195         type: DT_COMPLEX64
    196         type: DT_COMPLEX128
    197       }
    198     }
    199   }
    200 }
    201 op {
    202   name: "Add"
    203   input_arg {
    204     name: "x"
    205     type_attr: "T"
    206   }
    207   input_arg {
    208     name: "y"
    209     type_attr: "T"
    210   }
    211   output_arg {
    212     name: "z"
    213     type_attr: "T"
    214   }
    215   attr {
    216     name: "T"
    217     type: "type"
    218     allowed_values {
    219       list {
    220         type: DT_FLOAT
    221         type: DT_DOUBLE
    222         type: DT_INT8
    223         type: DT_INT16
    224         type: DT_INT32
    225         type: DT_COMPLEX64
    226         type: DT_INT64
    227       }
    228     }
    229   }
    230   is_commutative: true
    231 }
    232 op {
    233   name: "Add"
    234   input_arg {
    235     name: "x"
    236     type_attr: "T"
    237   }
    238   input_arg {
    239     name: "y"
    240     type_attr: "T"
    241   }
    242   output_arg {
    243     name: "z"
    244     type_attr: "T"
    245   }
    246   attr {
    247     name: "T"
    248     type: "type"
    249     allowed_values {
    250       list {
    251         type: DT_FLOAT
    252         type: DT_DOUBLE
    253         type: DT_UINT8
    254         type: DT_INT8
    255         type: DT_INT16
    256         type: DT_INT32
    257         type: DT_INT64
    258         type: DT_COMPLEX64
    259       }
    260     }
    261   }
    262   is_commutative: true
    263 }
    264 op {
    265   name: "Add"
    266   input_arg {
    267     name: "x"
    268     type_attr: "T"
    269   }
    270   input_arg {
    271     name: "y"
    272     type_attr: "T"
    273   }
    274   output_arg {
    275     name: "z"
    276     type_attr: "T"
    277   }
    278   attr {
    279     name: "T"
    280     type: "type"
    281     allowed_values {
    282       list {
    283         type: DT_FLOAT
    284         type: DT_DOUBLE
    285         type: DT_UINT8
    286         type: DT_INT8
    287         type: DT_INT16
    288         type: DT_INT32
    289         type: DT_INT64
    290         type: DT_COMPLEX64
    291         type: DT_STRING
    292       }
    293     }
    294   }
    295 }
    296 op {
    297   name: "Add"
    298   input_arg {
    299     name: "x"
    300     type_attr: "T"
    301   }
    302   input_arg {
    303     name: "y"
    304     type_attr: "T"
    305   }
    306   output_arg {
    307     name: "z"
    308     type_attr: "T"
    309   }
    310   attr {
    311     name: "T"
    312     type: "type"
    313     allowed_values {
    314       list {
    315         type: DT_HALF
    316         type: DT_FLOAT
    317         type: DT_DOUBLE
    318         type: DT_UINT8
    319         type: DT_INT8
    320         type: DT_INT16
    321         type: DT_INT32
    322         type: DT_INT64
    323         type: DT_COMPLEX64
    324         type: DT_STRING
    325       }
    326     }
    327   }
    328 }
    329 op {
    330   name: "Add"
    331   input_arg {
    332     name: "x"
    333     type_attr: "T"
    334   }
    335   input_arg {
    336     name: "y"
    337     type_attr: "T"
    338   }
    339   output_arg {
    340     name: "z"
    341     type_attr: "T"
    342   }
    343   attr {
    344     name: "T"
    345     type: "type"
    346     allowed_values {
    347       list {
    348         type: DT_HALF
    349         type: DT_FLOAT
    350         type: DT_DOUBLE
    351         type: DT_UINT8
    352         type: DT_INT8
    353         type: DT_INT16
    354         type: DT_INT32
    355         type: DT_INT64
    356         type: DT_COMPLEX64
    357         type: DT_COMPLEX128
    358         type: DT_STRING
    359       }
    360     }
    361   }
    362 }
    363 op {
    364   name: "AddManySparseToTensorsMap"
    365   input_arg {
    366     name: "sparse_indices"
    367     type: DT_INT64
    368   }
    369   input_arg {
    370     name: "sparse_values"
    371     type_attr: "T"
    372   }
    373   input_arg {
    374     name: "sparse_shape"
    375     type: DT_INT64
    376   }
    377   output_arg {
    378     name: "sparse_handles"
    379     type: DT_INT64
    380   }
    381   attr {
    382     name: "T"
    383     type: "type"
    384   }
    385   attr {
    386     name: "container"
    387     type: "string"
    388     default_value {
    389       s: ""
    390     }
    391   }
    392   attr {
    393     name: "shared_name"
    394     type: "string"
    395     default_value {
    396       s: ""
    397     }
    398   }
    399   is_stateful: true
    400 }
    401 op {
    402   name: "AddN"
    403   input_arg {
    404     name: "inputs"
    405     type_attr: "T"
    406     number_attr: "N"
    407   }
    408   output_arg {
    409     name: "sum"
    410     type_attr: "T"
    411   }
    412   attr {
    413     name: "N"
    414     type: "int"
    415     has_minimum: true
    416     minimum: 1
    417   }
    418   attr {
    419     name: "T"
    420     type: "type"
    421     allowed_values {
    422       list {
    423         type: DT_FLOAT
    424         type: DT_DOUBLE
    425         type: DT_INT64
    426         type: DT_INT32
    427         type: DT_UINT8
    428         type: DT_INT16
    429         type: DT_INT8
    430         type: DT_COMPLEX64
    431         type: DT_QINT8
    432         type: DT_QUINT8
    433         type: DT_QINT32
    434       }
    435     }
    436   }
    437   is_aggregate: true
    438   is_commutative: true
    439 }
    440 op {
    441   name: "AddN"
    442   input_arg {
    443     name: "inputs"
    444     type_attr: "T"
    445     number_attr: "N"
    446   }
    447   output_arg {
    448     name: "sum"
    449     type_attr: "T"
    450   }
    451   attr {
    452     name: "N"
    453     type: "int"
    454     has_minimum: true
    455     minimum: 1
    456   }
    457   attr {
    458     name: "T"
    459     type: "type"
    460     allowed_values {
    461       list {
    462         type: DT_FLOAT
    463         type: DT_DOUBLE
    464         type: DT_INT64
    465         type: DT_INT32
    466         type: DT_UINT8
    467         type: DT_UINT16
    468         type: DT_INT16
    469         type: DT_INT8
    470         type: DT_COMPLEX64
    471         type: DT_QINT8
    472         type: DT_QUINT8
    473         type: DT_QINT32
    474       }
    475     }
    476   }
    477   is_aggregate: true
    478   is_commutative: true
    479 }
    480 op {
    481   name: "AddN"
    482   input_arg {
    483     name: "inputs"
    484     type_attr: "T"
    485     number_attr: "N"
    486   }
    487   output_arg {
    488     name: "sum"
    489     type_attr: "T"
    490   }
    491   attr {
    492     name: "N"
    493     type: "int"
    494     has_minimum: true
    495     minimum: 1
    496   }
    497   attr {
    498     name: "T"
    499     type: "type"
    500     allowed_values {
    501       list {
    502         type: DT_FLOAT
    503         type: DT_DOUBLE
    504         type: DT_INT64
    505         type: DT_INT32
    506         type: DT_UINT8
    507         type: DT_UINT16
    508         type: DT_INT16
    509         type: DT_INT8
    510         type: DT_COMPLEX64
    511         type: DT_COMPLEX128
    512         type: DT_QINT8
    513         type: DT_QUINT8
    514         type: DT_QINT32
    515       }
    516     }
    517   }
    518   is_aggregate: true
    519   is_commutative: true
    520 }
    521 op {
    522   name: "AddN"
    523   input_arg {
    524     name: "inputs"
    525     type_attr: "T"
    526     number_attr: "N"
    527   }
    528   output_arg {
    529     name: "sum"
    530     type_attr: "T"
    531   }
    532   attr {
    533     name: "N"
    534     type: "int"
    535     has_minimum: true
    536     minimum: 1
    537   }
    538   attr {
    539     name: "T"
    540     type: "type"
    541     allowed_values {
    542       list {
    543         type: DT_FLOAT
    544         type: DT_DOUBLE
    545         type: DT_INT64
    546         type: DT_INT32
    547         type: DT_UINT8
    548         type: DT_UINT16
    549         type: DT_INT16
    550         type: DT_INT8
    551         type: DT_COMPLEX64
    552         type: DT_COMPLEX128
    553         type: DT_QINT8
    554         type: DT_QUINT8
    555         type: DT_QINT32
    556         type: DT_HALF
    557       }
    558     }
    559   }
    560   is_aggregate: true
    561   is_commutative: true
    562 }
    563 op {
    564   name: "AddSparseToTensorsMap"
    565   input_arg {
    566     name: "sparse_indices"
    567     type: DT_INT64
    568   }
    569   input_arg {
    570     name: "sparse_values"
    571     type_attr: "T"
    572   }
    573   input_arg {
    574     name: "sparse_shape"
    575     type: DT_INT64
    576   }
    577   output_arg {
    578     name: "sparse_handle"
    579     type: DT_INT64
    580   }
    581   attr {
    582     name: "T"
    583     type: "type"
    584   }
    585   attr {
    586     name: "container"
    587     type: "string"
    588     default_value {
    589       s: ""
    590     }
    591   }
    592   attr {
    593     name: "shared_name"
    594     type: "string"
    595     default_value {
    596       s: ""
    597     }
    598   }
    599   is_stateful: true
    600 }
    601 op {
    602   name: "AdjustContrast"
    603   input_arg {
    604     name: "images"
    605     type_attr: "T"
    606   }
    607   input_arg {
    608     name: "contrast_factor"
    609     type: DT_FLOAT
    610   }
    611   input_arg {
    612     name: "min_value"
    613     type: DT_FLOAT
    614   }
    615   input_arg {
    616     name: "max_value"
    617     type: DT_FLOAT
    618   }
    619   output_arg {
    620     name: "output"
    621     type: DT_FLOAT
    622   }
    623   attr {
    624     name: "T"
    625     type: "type"
    626     allowed_values {
    627       list {
    628         type: DT_UINT8
    629         type: DT_INT8
    630         type: DT_INT16
    631         type: DT_INT32
    632         type: DT_INT64
    633         type: DT_FLOAT
    634         type: DT_DOUBLE
    635       }
    636     }
    637   }
    638 }
    639 op {
    640   name: "AdjustContrast"
    641   input_arg {
    642     name: "images"
    643     type_attr: "T"
    644   }
    645   input_arg {
    646     name: "contrast_factor"
    647     type: DT_FLOAT
    648   }
    649   input_arg {
    650     name: "min_value"
    651     type: DT_FLOAT
    652   }
    653   input_arg {
    654     name: "max_value"
    655     type: DT_FLOAT
    656   }
    657   output_arg {
    658     name: "output"
    659     type: DT_FLOAT
    660   }
    661   attr {
    662     name: "T"
    663     type: "type"
    664     allowed_values {
    665       list {
    666         type: DT_UINT8
    667         type: DT_INT8
    668         type: DT_INT16
    669         type: DT_INT32
    670         type: DT_INT64
    671         type: DT_FLOAT
    672         type: DT_DOUBLE
    673       }
    674     }
    675   }
    676   deprecation {
    677     version: 2
    678   }
    679 }
    680 op {
    681   name: "AdjustContrastv2"
    682   input_arg {
    683     name: "images"
    684     type: DT_FLOAT
    685   }
    686   input_arg {
    687     name: "contrast_factor"
    688     type: DT_FLOAT
    689   }
    690   output_arg {
    691     name: "output"
    692     type: DT_FLOAT
    693   }
    694 }
    695 op {
    696   name: "AdjustHue"
    697   input_arg {
    698     name: "images"
    699     type: DT_FLOAT
    700   }
    701   input_arg {
    702     name: "delta"
    703     type: DT_FLOAT
    704   }
    705   output_arg {
    706     name: "output"
    707     type: DT_FLOAT
    708   }
    709 }
    710 op {
    711   name: "AdjustSaturation"
    712   input_arg {
    713     name: "images"
    714     type: DT_FLOAT
    715   }
    716   input_arg {
    717     name: "scale"
    718     type: DT_FLOAT
    719   }
    720   output_arg {
    721     name: "output"
    722     type: DT_FLOAT
    723   }
    724 }
    725 op {
    726   name: "All"
    727   input_arg {
    728     name: "input"
    729     type: DT_BOOL
    730   }
    731   input_arg {
    732     name: "reduction_indices"
    733     type: DT_INT32
    734   }
    735   output_arg {
    736     name: "output"
    737     type: DT_BOOL
    738   }
    739   attr {
    740     name: "keep_dims"
    741     type: "bool"
    742     default_value {
    743       b: false
    744     }
    745   }
    746 }
    747 op {
    748   name: "All"
    749   input_arg {
    750     name: "input"
    751     type: DT_BOOL
    752   }
    753   input_arg {
    754     name: "reduction_indices"
    755     type_attr: "Tidx"
    756   }
    757   output_arg {
    758     name: "output"
    759     type: DT_BOOL
    760   }
    761   attr {
    762     name: "keep_dims"
    763     type: "bool"
    764     default_value {
    765       b: false
    766     }
    767   }
    768   attr {
    769     name: "Tidx"
    770     type: "type"
    771     default_value {
    772       type: DT_INT32
    773     }
    774     allowed_values {
    775       list {
    776         type: DT_INT32
    777         type: DT_INT64
    778       }
    779     }
    780   }
    781 }
    782 op {
    783   name: "AllCandidateSampler"
    784   input_arg {
    785     name: "true_classes"
    786     type: DT_INT64
    787   }
    788   output_arg {
    789     name: "sampled_candidates"
    790     type: DT_INT64
    791   }
    792   output_arg {
    793     name: "true_expected_count"
    794     type: DT_FLOAT
    795   }
    796   output_arg {
    797     name: "sampled_expected_count"
    798     type: DT_FLOAT
    799   }
    800   attr {
    801     name: "num_true"
    802     type: "int"
    803     has_minimum: true
    804     minimum: 1
    805   }
    806   attr {
    807     name: "num_sampled"
    808     type: "int"
    809     has_minimum: true
    810     minimum: 1
    811   }
    812   attr {
    813     name: "unique"
    814     type: "bool"
    815   }
    816   attr {
    817     name: "seed"
    818     type: "int"
    819     default_value {
    820       i: 0
    821     }
    822   }
    823   attr {
    824     name: "seed2"
    825     type: "int"
    826     default_value {
    827       i: 0
    828     }
    829   }
    830 }
    831 op {
    832   name: "Any"
    833   input_arg {
    834     name: "input"
    835     type: DT_BOOL
    836   }
    837   input_arg {
    838     name: "reduction_indices"
    839     type: DT_INT32
    840   }
    841   output_arg {
    842     name: "output"
    843     type: DT_BOOL
    844   }
    845   attr {
    846     name: "keep_dims"
    847     type: "bool"
    848     default_value {
    849       b: false
    850     }
    851   }
    852 }
    853 op {
    854   name: "Any"
    855   input_arg {
    856     name: "input"
    857     type: DT_BOOL
    858   }
    859   input_arg {
    860     name: "reduction_indices"
    861     type_attr: "Tidx"
    862   }
    863   output_arg {
    864     name: "output"
    865     type: DT_BOOL
    866   }
    867   attr {
    868     name: "keep_dims"
    869     type: "bool"
    870     default_value {
    871       b: false
    872     }
    873   }
    874   attr {
    875     name: "Tidx"
    876     type: "type"
    877     default_value {
    878       type: DT_INT32
    879     }
    880     allowed_values {
    881       list {
    882         type: DT_INT32
    883         type: DT_INT64
    884       }
    885     }
    886   }
    887 }
    888 op {
    889   name: "ApplyAdadelta"
    890   input_arg {
    891     name: "var"
    892     type_attr: "T"
    893     is_ref: true
    894   }
    895   input_arg {
    896     name: "accum"
    897     type_attr: "T"
    898     is_ref: true
    899   }
    900   input_arg {
    901     name: "accum_update"
    902     type_attr: "T"
    903     is_ref: true
    904   }
    905   input_arg {
    906     name: "lr"
    907     type_attr: "T"
    908   }
    909   input_arg {
    910     name: "rho"
    911     type_attr: "T"
    912   }
    913   input_arg {
    914     name: "epsilon"
    915     type_attr: "T"
    916   }
    917   input_arg {
    918     name: "grad"
    919     type_attr: "T"
    920   }
    921   output_arg {
    922     name: "out"
    923     type_attr: "T"
    924     is_ref: true
    925   }
    926   attr {
    927     name: "T"
    928     type: "type"
    929     allowed_values {
    930       list {
    931         type: DT_FLOAT
    932         type: DT_DOUBLE
    933         type: DT_INT64
    934         type: DT_INT32
    935         type: DT_UINT8
    936         type: DT_UINT16
    937         type: DT_INT16
    938         type: DT_INT8
    939         type: DT_COMPLEX64
    940         type: DT_COMPLEX128
    941         type: DT_QINT8
    942         type: DT_QUINT8
    943         type: DT_QINT32
    944         type: DT_HALF
    945       }
    946     }
    947   }
    948   attr {
    949     name: "use_locking"
    950     type: "bool"
    951     default_value {
    952       b: false
    953     }
    954   }
    955 }
    956 op {
    957   name: "ApplyAdagrad"
    958   input_arg {
    959     name: "var"
    960     type_attr: "T"
    961     is_ref: true
    962   }
    963   input_arg {
    964     name: "accum"
    965     type_attr: "T"
    966     is_ref: true
    967   }
    968   input_arg {
    969     name: "lr"
    970     type_attr: "T"
    971   }
    972   input_arg {
    973     name: "grad"
    974     type_attr: "T"
    975   }
    976   output_arg {
    977     name: "out"
    978     type_attr: "T"
    979     is_ref: true
    980   }
    981   attr {
    982     name: "T"
    983     type: "type"
    984     allowed_values {
    985       list {
    986         type: DT_FLOAT
    987         type: DT_DOUBLE
    988         type: DT_INT64
    989         type: DT_INT32
    990         type: DT_UINT8
    991         type: DT_INT16
    992         type: DT_INT8
    993         type: DT_COMPLEX64
    994         type: DT_QINT8
    995         type: DT_QUINT8
    996         type: DT_QINT32
    997       }
    998     }
    999   }
   1000   attr {
   1001     name: "use_locking"
   1002     type: "bool"
   1003     default_value {
   1004       b: false
   1005     }
   1006   }
   1007 }
   1008 op {
   1009   name: "ApplyAdagrad"
   1010   input_arg {
   1011     name: "var"
   1012     type_attr: "T"
   1013     is_ref: true
   1014   }
   1015   input_arg {
   1016     name: "accum"
   1017     type_attr: "T"
   1018     is_ref: true
   1019   }
   1020   input_arg {
   1021     name: "lr"
   1022     type_attr: "T"
   1023   }
   1024   input_arg {
   1025     name: "grad"
   1026     type_attr: "T"
   1027   }
   1028   output_arg {
   1029     name: "out"
   1030     type_attr: "T"
   1031     is_ref: true
   1032   }
   1033   attr {
   1034     name: "T"
   1035     type: "type"
   1036     allowed_values {
   1037       list {
   1038         type: DT_FLOAT
   1039         type: DT_DOUBLE
   1040         type: DT_INT64
   1041         type: DT_INT32
   1042         type: DT_UINT8
   1043         type: DT_UINT16
   1044         type: DT_INT16
   1045         type: DT_INT8
   1046         type: DT_COMPLEX64
   1047         type: DT_QINT8
   1048         type: DT_QUINT8
   1049         type: DT_QINT32
   1050       }
   1051     }
   1052   }
   1053   attr {
   1054     name: "use_locking"
   1055     type: "bool"
   1056     default_value {
   1057       b: false
   1058     }
   1059   }
   1060 }
   1061 op {
   1062   name: "ApplyAdagrad"
   1063   input_arg {
   1064     name: "var"
   1065     type_attr: "T"
   1066     is_ref: true
   1067   }
   1068   input_arg {
   1069     name: "accum"
   1070     type_attr: "T"
   1071     is_ref: true
   1072   }
   1073   input_arg {
   1074     name: "lr"
   1075     type_attr: "T"
   1076   }
   1077   input_arg {
   1078     name: "grad"
   1079     type_attr: "T"
   1080   }
   1081   output_arg {
   1082     name: "out"
   1083     type_attr: "T"
   1084     is_ref: true
   1085   }
   1086   attr {
   1087     name: "T"
   1088     type: "type"
   1089     allowed_values {
   1090       list {
   1091         type: DT_FLOAT
   1092         type: DT_DOUBLE
   1093         type: DT_INT64
   1094         type: DT_INT32
   1095         type: DT_UINT8
   1096         type: DT_UINT16
   1097         type: DT_INT16
   1098         type: DT_INT8
   1099         type: DT_COMPLEX64
   1100         type: DT_COMPLEX128
   1101         type: DT_QINT8
   1102         type: DT_QUINT8
   1103         type: DT_QINT32
   1104       }
   1105     }
   1106   }
   1107   attr {
   1108     name: "use_locking"
   1109     type: "bool"
   1110     default_value {
   1111       b: false
   1112     }
   1113   }
   1114 }
   1115 op {
   1116   name: "ApplyAdagrad"
   1117   input_arg {
   1118     name: "var"
   1119     type_attr: "T"
   1120     is_ref: true
   1121   }
   1122   input_arg {
   1123     name: "accum"
   1124     type_attr: "T"
   1125     is_ref: true
   1126   }
   1127   input_arg {
   1128     name: "lr"
   1129     type_attr: "T"
   1130   }
   1131   input_arg {
   1132     name: "grad"
   1133     type_attr: "T"
   1134   }
   1135   output_arg {
   1136     name: "out"
   1137     type_attr: "T"
   1138     is_ref: true
   1139   }
   1140   attr {
   1141     name: "T"
   1142     type: "type"
   1143     allowed_values {
   1144       list {
   1145         type: DT_FLOAT
   1146         type: DT_DOUBLE
   1147         type: DT_INT64
   1148         type: DT_INT32
   1149         type: DT_UINT8
   1150         type: DT_UINT16
   1151         type: DT_INT16
   1152         type: DT_INT8
   1153         type: DT_COMPLEX64
   1154         type: DT_COMPLEX128
   1155         type: DT_QINT8
   1156         type: DT_QUINT8
   1157         type: DT_QINT32
   1158         type: DT_HALF
   1159       }
   1160     }
   1161   }
   1162   attr {
   1163     name: "use_locking"
   1164     type: "bool"
   1165     default_value {
   1166       b: false
   1167     }
   1168   }
   1169 }
   1170 op {
   1171   name: "ApplyAdagradDA"
   1172   input_arg {
   1173     name: "var"
   1174     type_attr: "T"
   1175     is_ref: true
   1176   }
   1177   input_arg {
   1178     name: "gradient_accumulator"
   1179     type_attr: "T"
   1180     is_ref: true
   1181   }
   1182   input_arg {
   1183     name: "gradient_squared_accumulator"
   1184     type_attr: "T"
   1185     is_ref: true
   1186   }
   1187   input_arg {
   1188     name: "grad"
   1189     type_attr: "T"
   1190   }
   1191   input_arg {
   1192     name: "lr"
   1193     type_attr: "T"
   1194   }
   1195   input_arg {
   1196     name: "l1"
   1197     type_attr: "T"
   1198   }
   1199   input_arg {
   1200     name: "l2"
   1201     type_attr: "T"
   1202   }
   1203   input_arg {
   1204     name: "global_step"
   1205     type: DT_INT64
   1206   }
   1207   output_arg {
   1208     name: "out"
   1209     type_attr: "T"
   1210     is_ref: true
   1211   }
   1212   attr {
   1213     name: "T"
   1214     type: "type"
   1215     allowed_values {
   1216       list {
   1217         type: DT_FLOAT
   1218         type: DT_DOUBLE
   1219         type: DT_INT64
   1220         type: DT_INT32
   1221         type: DT_UINT8
   1222         type: DT_UINT16
   1223         type: DT_INT16
   1224         type: DT_INT8
   1225         type: DT_COMPLEX64
   1226         type: DT_COMPLEX128
   1227         type: DT_QINT8
   1228         type: DT_QUINT8
   1229         type: DT_QINT32
   1230         type: DT_HALF
   1231       }
   1232     }
   1233   }
   1234   attr {
   1235     name: "use_locking"
   1236     type: "bool"
   1237     default_value {
   1238       b: false
   1239     }
   1240   }
   1241 }
   1242 op {
   1243   name: "ApplyAdam"
   1244   input_arg {
   1245     name: "var"
   1246     type_attr: "T"
   1247     is_ref: true
   1248   }
   1249   input_arg {
   1250     name: "m"
   1251     type_attr: "T"
   1252     is_ref: true
   1253   }
   1254   input_arg {
   1255     name: "v"
   1256     type_attr: "T"
   1257     is_ref: true
   1258   }
   1259   input_arg {
   1260     name: "beta1_power"
   1261     type_attr: "T"
   1262   }
   1263   input_arg {
   1264     name: "beta2_power"
   1265     type_attr: "T"
   1266   }
   1267   input_arg {
   1268     name: "lr"
   1269     type_attr: "T"
   1270   }
   1271   input_arg {
   1272     name: "beta1"
   1273     type_attr: "T"
   1274   }
   1275   input_arg {
   1276     name: "beta2"
   1277     type_attr: "T"
   1278   }
   1279   input_arg {
   1280     name: "epsilon"
   1281     type_attr: "T"
   1282   }
   1283   input_arg {
   1284     name: "grad"
   1285     type_attr: "T"
   1286   }
   1287   output_arg {
   1288     name: "out"
   1289     type_attr: "T"
   1290     is_ref: true
   1291   }
   1292   attr {
   1293     name: "T"
   1294     type: "type"
   1295     allowed_values {
   1296       list {
   1297         type: DT_FLOAT
   1298         type: DT_DOUBLE
   1299         type: DT_INT64
   1300         type: DT_INT32
   1301         type: DT_UINT8
   1302         type: DT_INT16
   1303         type: DT_INT8
   1304         type: DT_COMPLEX64
   1305         type: DT_QINT8
   1306         type: DT_QUINT8
   1307         type: DT_QINT32
   1308       }
   1309     }
   1310   }
   1311   attr {
   1312     name: "use_locking"
   1313     type: "bool"
   1314     default_value {
   1315       b: false
   1316     }
   1317   }
   1318 }
   1319 op {
   1320   name: "ApplyAdam"
   1321   input_arg {
   1322     name: "var"
   1323     type_attr: "T"
   1324     is_ref: true
   1325   }
   1326   input_arg {
   1327     name: "m"
   1328     type_attr: "T"
   1329     is_ref: true
   1330   }
   1331   input_arg {
   1332     name: "v"
   1333     type_attr: "T"
   1334     is_ref: true
   1335   }
   1336   input_arg {
   1337     name: "beta1_power"
   1338     type_attr: "T"
   1339   }
   1340   input_arg {
   1341     name: "beta2_power"
   1342     type_attr: "T"
   1343   }
   1344   input_arg {
   1345     name: "lr"
   1346     type_attr: "T"
   1347   }
   1348   input_arg {
   1349     name: "beta1"
   1350     type_attr: "T"
   1351   }
   1352   input_arg {
   1353     name: "beta2"
   1354     type_attr: "T"
   1355   }
   1356   input_arg {
   1357     name: "epsilon"
   1358     type_attr: "T"
   1359   }
   1360   input_arg {
   1361     name: "grad"
   1362     type_attr: "T"
   1363   }
   1364   output_arg {
   1365     name: "out"
   1366     type_attr: "T"
   1367     is_ref: true
   1368   }
   1369   attr {
   1370     name: "T"
   1371     type: "type"
   1372     allowed_values {
   1373       list {
   1374         type: DT_FLOAT
   1375         type: DT_DOUBLE
   1376         type: DT_INT64
   1377         type: DT_INT32
   1378         type: DT_UINT8
   1379         type: DT_UINT16
   1380         type: DT_INT16
   1381         type: DT_INT8
   1382         type: DT_COMPLEX64
   1383         type: DT_QINT8
   1384         type: DT_QUINT8
   1385         type: DT_QINT32
   1386       }
   1387     }
   1388   }
   1389   attr {
   1390     name: "use_locking"
   1391     type: "bool"
   1392     default_value {
   1393       b: false
   1394     }
   1395   }
   1396 }
   1397 op {
   1398   name: "ApplyAdam"
   1399   input_arg {
   1400     name: "var"
   1401     type_attr: "T"
   1402     is_ref: true
   1403   }
   1404   input_arg {
   1405     name: "m"
   1406     type_attr: "T"
   1407     is_ref: true
   1408   }
   1409   input_arg {
   1410     name: "v"
   1411     type_attr: "T"
   1412     is_ref: true
   1413   }
   1414   input_arg {
   1415     name: "beta1_power"
   1416     type_attr: "T"
   1417   }
   1418   input_arg {
   1419     name: "beta2_power"
   1420     type_attr: "T"
   1421   }
   1422   input_arg {
   1423     name: "lr"
   1424     type_attr: "T"
   1425   }
   1426   input_arg {
   1427     name: "beta1"
   1428     type_attr: "T"
   1429   }
   1430   input_arg {
   1431     name: "beta2"
   1432     type_attr: "T"
   1433   }
   1434   input_arg {
   1435     name: "epsilon"
   1436     type_attr: "T"
   1437   }
   1438   input_arg {
   1439     name: "grad"
   1440     type_attr: "T"
   1441   }
   1442   output_arg {
   1443     name: "out"
   1444     type_attr: "T"
   1445     is_ref: true
   1446   }
   1447   attr {
   1448     name: "T"
   1449     type: "type"
   1450     allowed_values {
   1451       list {
   1452         type: DT_FLOAT
   1453         type: DT_DOUBLE
   1454         type: DT_INT64
   1455         type: DT_INT32
   1456         type: DT_UINT8
   1457         type: DT_UINT16
   1458         type: DT_INT16
   1459         type: DT_INT8
   1460         type: DT_COMPLEX64
   1461         type: DT_COMPLEX128
   1462         type: DT_QINT8
   1463         type: DT_QUINT8
   1464         type: DT_QINT32
   1465       }
   1466     }
   1467   }
   1468   attr {
   1469     name: "use_locking"
   1470     type: "bool"
   1471     default_value {
   1472       b: false
   1473     }
   1474   }
   1475 }
   1476 op {
   1477   name: "ApplyAdam"
   1478   input_arg {
   1479     name: "var"
   1480     type_attr: "T"
   1481     is_ref: true
   1482   }
   1483   input_arg {
   1484     name: "m"
   1485     type_attr: "T"
   1486     is_ref: true
   1487   }
   1488   input_arg {
   1489     name: "v"
   1490     type_attr: "T"
   1491     is_ref: true
   1492   }
   1493   input_arg {
   1494     name: "beta1_power"
   1495     type_attr: "T"
   1496   }
   1497   input_arg {
   1498     name: "beta2_power"
   1499     type_attr: "T"
   1500   }
   1501   input_arg {
   1502     name: "lr"
   1503     type_attr: "T"
   1504   }
   1505   input_arg {
   1506     name: "beta1"
   1507     type_attr: "T"
   1508   }
   1509   input_arg {
   1510     name: "beta2"
   1511     type_attr: "T"
   1512   }
   1513   input_arg {
   1514     name: "epsilon"
   1515     type_attr: "T"
   1516   }
   1517   input_arg {
   1518     name: "grad"
   1519     type_attr: "T"
   1520   }
   1521   output_arg {
   1522     name: "out"
   1523     type_attr: "T"
   1524     is_ref: true
   1525   }
   1526   attr {
   1527     name: "T"
   1528     type: "type"
   1529     allowed_values {
   1530       list {
   1531         type: DT_FLOAT
   1532         type: DT_DOUBLE
   1533         type: DT_INT64
   1534         type: DT_INT32
   1535         type: DT_UINT8
   1536         type: DT_UINT16
   1537         type: DT_INT16
   1538         type: DT_INT8
   1539         type: DT_COMPLEX64
   1540         type: DT_COMPLEX128
   1541         type: DT_QINT8
   1542         type: DT_QUINT8
   1543         type: DT_QINT32
   1544         type: DT_HALF
   1545       }
   1546     }
   1547   }
   1548   attr {
   1549     name: "use_locking"
   1550     type: "bool"
   1551     default_value {
   1552       b: false
   1553     }
   1554   }
   1555 }
   1556 op {
   1557   name: "ApplyCenteredRMSProp"
   1558   input_arg {
   1559     name: "var"
   1560     type_attr: "T"
   1561     is_ref: true
   1562   }
   1563   input_arg {
   1564     name: "mg"
   1565     type_attr: "T"
   1566     is_ref: true
   1567   }
   1568   input_arg {
   1569     name: "ms"
   1570     type_attr: "T"
   1571     is_ref: true
   1572   }
   1573   input_arg {
   1574     name: "mom"
   1575     type_attr: "T"
   1576     is_ref: true
   1577   }
   1578   input_arg {
   1579     name: "lr"
   1580     type_attr: "T"
   1581   }
   1582   input_arg {
   1583     name: "rho"
   1584     type_attr: "T"
   1585   }
   1586   input_arg {
   1587     name: "momentum"
   1588     type_attr: "T"
   1589   }
   1590   input_arg {
   1591     name: "epsilon"
   1592     type_attr: "T"
   1593   }
   1594   input_arg {
   1595     name: "grad"
   1596     type_attr: "T"
   1597   }
   1598   output_arg {
   1599     name: "out"
   1600     type_attr: "T"
   1601     is_ref: true
   1602   }
   1603   attr {
   1604     name: "T"
   1605     type: "type"
   1606     allowed_values {
   1607       list {
   1608         type: DT_FLOAT
   1609         type: DT_DOUBLE
   1610         type: DT_INT64
   1611         type: DT_INT32
   1612         type: DT_UINT8
   1613         type: DT_UINT16
   1614         type: DT_INT16
   1615         type: DT_INT8
   1616         type: DT_COMPLEX64
   1617         type: DT_COMPLEX128
   1618         type: DT_QINT8
   1619         type: DT_QUINT8
   1620         type: DT_QINT32
   1621         type: DT_HALF
   1622       }
   1623     }
   1624   }
   1625   attr {
   1626     name: "use_locking"
   1627     type: "bool"
   1628     default_value {
   1629       b: false
   1630     }
   1631   }
   1632 }
   1633 op {
   1634   name: "ApplyFtrl"
   1635   input_arg {
   1636     name: "var"
   1637     type_attr: "T"
   1638     is_ref: true
   1639   }
   1640   input_arg {
   1641     name: "accum"
   1642     type_attr: "T"
   1643     is_ref: true
   1644   }
   1645   input_arg {
   1646     name: "linear"
   1647     type_attr: "T"
   1648     is_ref: true
   1649   }
   1650   input_arg {
   1651     name: "grad"
   1652     type_attr: "T"
   1653   }
   1654   input_arg {
   1655     name: "lr"
   1656     type_attr: "T"
   1657   }
   1658   input_arg {
   1659     name: "l1"
   1660     type_attr: "T"
   1661   }
   1662   input_arg {
   1663     name: "l2"
   1664     type_attr: "T"
   1665   }
   1666   input_arg {
   1667     name: "lr_power"
   1668     type_attr: "T"
   1669   }
   1670   output_arg {
   1671     name: "out"
   1672     type_attr: "T"
   1673     is_ref: true
   1674   }
   1675   attr {
   1676     name: "T"
   1677     type: "type"
   1678     allowed_values {
   1679       list {
   1680         type: DT_FLOAT
   1681         type: DT_DOUBLE
   1682         type: DT_INT64
   1683         type: DT_INT32
   1684         type: DT_UINT8
   1685         type: DT_UINT16
   1686         type: DT_INT16
   1687         type: DT_INT8
   1688         type: DT_COMPLEX64
   1689         type: DT_QINT8
   1690         type: DT_QUINT8
   1691         type: DT_QINT32
   1692       }
   1693     }
   1694   }
   1695   attr {
   1696     name: "use_locking"
   1697     type: "bool"
   1698     default_value {
   1699       b: false
   1700     }
   1701   }
   1702 }
   1703 op {
   1704   name: "ApplyFtrl"
   1705   input_arg {
   1706     name: "var"
   1707     type_attr: "T"
   1708     is_ref: true
   1709   }
   1710   input_arg {
   1711     name: "accum"
   1712     type_attr: "T"
   1713     is_ref: true
   1714   }
   1715   input_arg {
   1716     name: "linear"
   1717     type_attr: "T"
   1718     is_ref: true
   1719   }
   1720   input_arg {
   1721     name: "grad"
   1722     type_attr: "T"
   1723   }
   1724   input_arg {
   1725     name: "lr"
   1726     type_attr: "T"
   1727   }
   1728   input_arg {
   1729     name: "l1"
   1730     type_attr: "T"
   1731   }
   1732   input_arg {
   1733     name: "l2"
   1734     type_attr: "T"
   1735   }
   1736   input_arg {
   1737     name: "lr_power"
   1738     type_attr: "T"
   1739   }
   1740   output_arg {
   1741     name: "out"
   1742     type_attr: "T"
   1743     is_ref: true
   1744   }
   1745   attr {
   1746     name: "T"
   1747     type: "type"
   1748     allowed_values {
   1749       list {
   1750         type: DT_FLOAT
   1751         type: DT_DOUBLE
   1752         type: DT_INT64
   1753         type: DT_INT32
   1754         type: DT_UINT8
   1755         type: DT_UINT16
   1756         type: DT_INT16
   1757         type: DT_INT8
   1758         type: DT_COMPLEX64
   1759         type: DT_COMPLEX128
   1760         type: DT_QINT8
   1761         type: DT_QUINT8
   1762         type: DT_QINT32
   1763       }
   1764     }
   1765   }
   1766   attr {
   1767     name: "use_locking"
   1768     type: "bool"
   1769     default_value {
   1770       b: false
   1771     }
   1772   }
   1773 }
   1774 op {
   1775   name: "ApplyFtrl"
   1776   input_arg {
   1777     name: "var"
   1778     type_attr: "T"
   1779     is_ref: true
   1780   }
   1781   input_arg {
   1782     name: "accum"
   1783     type_attr: "T"
   1784     is_ref: true
   1785   }
   1786   input_arg {
   1787     name: "linear"
   1788     type_attr: "T"
   1789     is_ref: true
   1790   }
   1791   input_arg {
   1792     name: "grad"
   1793     type_attr: "T"
   1794   }
   1795   input_arg {
   1796     name: "lr"
   1797     type_attr: "T"
   1798   }
   1799   input_arg {
   1800     name: "l1"
   1801     type_attr: "T"
   1802   }
   1803   input_arg {
   1804     name: "l2"
   1805     type_attr: "T"
   1806   }
   1807   input_arg {
   1808     name: "lr_power"
   1809     type_attr: "T"
   1810   }
   1811   output_arg {
   1812     name: "out"
   1813     type_attr: "T"
   1814     is_ref: true
   1815   }
   1816   attr {
   1817     name: "T"
   1818     type: "type"
   1819     allowed_values {
   1820       list {
   1821         type: DT_FLOAT
   1822         type: DT_DOUBLE
   1823         type: DT_INT64
   1824         type: DT_INT32
   1825         type: DT_UINT8
   1826         type: DT_UINT16
   1827         type: DT_INT16
   1828         type: DT_INT8
   1829         type: DT_COMPLEX64
   1830         type: DT_COMPLEX128
   1831         type: DT_QINT8
   1832         type: DT_QUINT8
   1833         type: DT_QINT32
   1834         type: DT_HALF
   1835       }
   1836     }
   1837   }
   1838   attr {
   1839     name: "use_locking"
   1840     type: "bool"
   1841     default_value {
   1842       b: false
   1843     }
   1844   }
   1845 }
   1846 op {
   1847   name: "ApplyGradientDescent"
   1848   input_arg {
   1849     name: "var"
   1850     type_attr: "T"
   1851     is_ref: true
   1852   }
   1853   input_arg {
   1854     name: "alpha"
   1855     type_attr: "T"
   1856   }
   1857   input_arg {
   1858     name: "delta"
   1859     type_attr: "T"
   1860   }
   1861   output_arg {
   1862     name: "out"
   1863     type_attr: "T"
   1864     is_ref: true
   1865   }
   1866   attr {
   1867     name: "T"
   1868     type: "type"
   1869     allowed_values {
   1870       list {
   1871         type: DT_FLOAT
   1872         type: DT_DOUBLE
   1873         type: DT_INT64
   1874         type: DT_INT32
   1875         type: DT_UINT8
   1876         type: DT_INT16
   1877         type: DT_INT8
   1878         type: DT_COMPLEX64
   1879         type: DT_QINT8
   1880         type: DT_QUINT8
   1881         type: DT_QINT32
   1882       }
   1883     }
   1884   }
   1885   attr {
   1886     name: "use_locking"
   1887     type: "bool"
   1888     default_value {
   1889       b: false
   1890     }
   1891   }
   1892 }
   1893 op {
   1894   name: "ApplyGradientDescent"
   1895   input_arg {
   1896     name: "var"
   1897     type_attr: "T"
   1898     is_ref: true
   1899   }
   1900   input_arg {
   1901     name: "alpha"
   1902     type_attr: "T"
   1903   }
   1904   input_arg {
   1905     name: "delta"
   1906     type_attr: "T"
   1907   }
   1908   output_arg {
   1909     name: "out"
   1910     type_attr: "T"
   1911     is_ref: true
   1912   }
   1913   attr {
   1914     name: "T"
   1915     type: "type"
   1916     allowed_values {
   1917       list {
   1918         type: DT_FLOAT
   1919         type: DT_DOUBLE
   1920         type: DT_INT64
   1921         type: DT_INT32
   1922         type: DT_UINT8
   1923         type: DT_UINT16
   1924         type: DT_INT16
   1925         type: DT_INT8
   1926         type: DT_COMPLEX64
   1927         type: DT_QINT8
   1928         type: DT_QUINT8
   1929         type: DT_QINT32
   1930       }
   1931     }
   1932   }
   1933   attr {
   1934     name: "use_locking"
   1935     type: "bool"
   1936     default_value {
   1937       b: false
   1938     }
   1939   }
   1940 }
   1941 op {
   1942   name: "ApplyGradientDescent"
   1943   input_arg {
   1944     name: "var"
   1945     type_attr: "T"
   1946     is_ref: true
   1947   }
   1948   input_arg {
   1949     name: "alpha"
   1950     type_attr: "T"
   1951   }
   1952   input_arg {
   1953     name: "delta"
   1954     type_attr: "T"
   1955   }
   1956   output_arg {
   1957     name: "out"
   1958     type_attr: "T"
   1959     is_ref: true
   1960   }
   1961   attr {
   1962     name: "T"
   1963     type: "type"
   1964     allowed_values {
   1965       list {
   1966         type: DT_FLOAT
   1967         type: DT_DOUBLE
   1968         type: DT_INT64
   1969         type: DT_INT32
   1970         type: DT_UINT8
   1971         type: DT_UINT16
   1972         type: DT_INT16
   1973         type: DT_INT8
   1974         type: DT_COMPLEX64
   1975         type: DT_COMPLEX128
   1976         type: DT_QINT8
   1977         type: DT_QUINT8
   1978         type: DT_QINT32
   1979       }
   1980     }
   1981   }
   1982   attr {
   1983     name: "use_locking"
   1984     type: "bool"
   1985     default_value {
   1986       b: false
   1987     }
   1988   }
   1989 }
   1990 op {
   1991   name: "ApplyGradientDescent"
   1992   input_arg {
   1993     name: "var"
   1994     type_attr: "T"
   1995     is_ref: true
   1996   }
   1997   input_arg {
   1998     name: "alpha"
   1999     type_attr: "T"
   2000   }
   2001   input_arg {
   2002     name: "delta"
   2003     type_attr: "T"
   2004   }
   2005   output_arg {
   2006     name: "out"
   2007     type_attr: "T"
   2008     is_ref: true
   2009   }
   2010   attr {
   2011     name: "T"
   2012     type: "type"
   2013     allowed_values {
   2014       list {
   2015         type: DT_FLOAT
   2016         type: DT_DOUBLE
   2017         type: DT_INT64
   2018         type: DT_INT32
   2019         type: DT_UINT8
   2020         type: DT_UINT16
   2021         type: DT_INT16
   2022         type: DT_INT8
   2023         type: DT_COMPLEX64
   2024         type: DT_COMPLEX128
   2025         type: DT_QINT8
   2026         type: DT_QUINT8
   2027         type: DT_QINT32
   2028         type: DT_HALF
   2029       }
   2030     }
   2031   }
   2032   attr {
   2033     name: "use_locking"
   2034     type: "bool"
   2035     default_value {
   2036       b: false
   2037     }
   2038   }
   2039 }
   2040 op {
   2041   name: "ApplyMomentum"
   2042   input_arg {
   2043     name: "var"
   2044     type_attr: "T"
   2045     is_ref: true
   2046   }
   2047   input_arg {
   2048     name: "accum"
   2049     type_attr: "T"
   2050     is_ref: true
   2051   }
   2052   input_arg {
   2053     name: "lr"
   2054     type_attr: "T"
   2055   }
   2056   input_arg {
   2057     name: "grad"
   2058     type_attr: "T"
   2059   }
   2060   input_arg {
   2061     name: "momentum"
   2062     type_attr: "T"
   2063   }
   2064   output_arg {
   2065     name: "out"
   2066     type_attr: "T"
   2067     is_ref: true
   2068   }
   2069   attr {
   2070     name: "T"
   2071     type: "type"
   2072     allowed_values {
   2073       list {
   2074         type: DT_FLOAT
   2075         type: DT_DOUBLE
   2076         type: DT_INT64
   2077         type: DT_INT32
   2078         type: DT_UINT8
   2079         type: DT_INT16
   2080         type: DT_INT8
   2081         type: DT_COMPLEX64
   2082         type: DT_QINT8
   2083         type: DT_QUINT8
   2084         type: DT_QINT32
   2085       }
   2086     }
   2087   }
   2088   attr {
   2089     name: "use_locking"
   2090     type: "bool"
   2091     default_value {
   2092       b: false
   2093     }
   2094   }
   2095 }
   2096 op {
   2097   name: "ApplyMomentum"
   2098   input_arg {
   2099     name: "var"
   2100     type_attr: "T"
   2101     is_ref: true
   2102   }
   2103   input_arg {
   2104     name: "accum"
   2105     type_attr: "T"
   2106     is_ref: true
   2107   }
   2108   input_arg {
   2109     name: "lr"
   2110     type_attr: "T"
   2111   }
   2112   input_arg {
   2113     name: "grad"
   2114     type_attr: "T"
   2115   }
   2116   input_arg {
   2117     name: "momentum"
   2118     type_attr: "T"
   2119   }
   2120   output_arg {
   2121     name: "out"
   2122     type_attr: "T"
   2123     is_ref: true
   2124   }
   2125   attr {
   2126     name: "T"
   2127     type: "type"
   2128     allowed_values {
   2129       list {
   2130         type: DT_FLOAT
   2131         type: DT_DOUBLE
   2132         type: DT_INT64
   2133         type: DT_INT32
   2134         type: DT_UINT8
   2135         type: DT_UINT16
   2136         type: DT_INT16
   2137         type: DT_INT8
   2138         type: DT_COMPLEX64
   2139         type: DT_QINT8
   2140         type: DT_QUINT8
   2141         type: DT_QINT32
   2142       }
   2143     }
   2144   }
   2145   attr {
   2146     name: "use_locking"
   2147     type: "bool"
   2148     default_value {
   2149       b: false
   2150     }
   2151   }
   2152 }
   2153 op {
   2154   name: "ApplyMomentum"
   2155   input_arg {
   2156     name: "var"
   2157     type_attr: "T"
   2158     is_ref: true
   2159   }
   2160   input_arg {
   2161     name: "accum"
   2162     type_attr: "T"
   2163     is_ref: true
   2164   }
   2165   input_arg {
   2166     name: "lr"
   2167     type_attr: "T"
   2168   }
   2169   input_arg {
   2170     name: "grad"
   2171     type_attr: "T"
   2172   }
   2173   input_arg {
   2174     name: "momentum"
   2175     type_attr: "T"
   2176   }
   2177   output_arg {
   2178     name: "out"
   2179     type_attr: "T"
   2180     is_ref: true
   2181   }
   2182   attr {
   2183     name: "T"
   2184     type: "type"
   2185     allowed_values {
   2186       list {
   2187         type: DT_FLOAT
   2188         type: DT_DOUBLE
   2189         type: DT_INT64
   2190         type: DT_INT32
   2191         type: DT_UINT8
   2192         type: DT_UINT16
   2193         type: DT_INT16
   2194         type: DT_INT8
   2195         type: DT_COMPLEX64
   2196         type: DT_COMPLEX128
   2197         type: DT_QINT8
   2198         type: DT_QUINT8
   2199         type: DT_QINT32
   2200       }
   2201     }
   2202   }
   2203   attr {
   2204     name: "use_locking"
   2205     type: "bool"
   2206     default_value {
   2207       b: false
   2208     }
   2209   }
   2210 }
   2211 op {
   2212   name: "ApplyMomentum"
   2213   input_arg {
   2214     name: "var"
   2215     type_attr: "T"
   2216     is_ref: true
   2217   }
   2218   input_arg {
   2219     name: "accum"
   2220     type_attr: "T"
   2221     is_ref: true
   2222   }
   2223   input_arg {
   2224     name: "lr"
   2225     type_attr: "T"
   2226   }
   2227   input_arg {
   2228     name: "grad"
   2229     type_attr: "T"
   2230   }
   2231   input_arg {
   2232     name: "momentum"
   2233     type_attr: "T"
   2234   }
   2235   output_arg {
   2236     name: "out"
   2237     type_attr: "T"
   2238     is_ref: true
   2239   }
   2240   attr {
   2241     name: "T"
   2242     type: "type"
   2243     allowed_values {
   2244       list {
   2245         type: DT_FLOAT
   2246         type: DT_DOUBLE
   2247         type: DT_INT64
   2248         type: DT_INT32
   2249         type: DT_UINT8
   2250         type: DT_UINT16
   2251         type: DT_INT16
   2252         type: DT_INT8
   2253         type: DT_COMPLEX64
   2254         type: DT_COMPLEX128
   2255         type: DT_QINT8
   2256         type: DT_QUINT8
   2257         type: DT_QINT32
   2258         type: DT_HALF
   2259       }
   2260     }
   2261   }
   2262   attr {
   2263     name: "use_locking"
   2264     type: "bool"
   2265     default_value {
   2266       b: false
   2267     }
   2268   }
   2269 }
   2270 op {
   2271   name: "ApplyMomentum"
   2272   input_arg {
   2273     name: "var"
   2274     type_attr: "T"
   2275     is_ref: true
   2276   }
   2277   input_arg {
   2278     name: "accum"
   2279     type_attr: "T"
   2280     is_ref: true
   2281   }
   2282   input_arg {
   2283     name: "lr"
   2284     type_attr: "T"
   2285   }
   2286   input_arg {
   2287     name: "grad"
   2288     type_attr: "T"
   2289   }
   2290   input_arg {
   2291     name: "momentum"
   2292     type_attr: "T"
   2293   }
   2294   output_arg {
   2295     name: "out"
   2296     type_attr: "T"
   2297     is_ref: true
   2298   }
   2299   attr {
   2300     name: "T"
   2301     type: "type"
   2302     allowed_values {
   2303       list {
   2304         type: DT_FLOAT
   2305         type: DT_DOUBLE
   2306         type: DT_INT64
   2307         type: DT_INT32
   2308         type: DT_UINT8
   2309         type: DT_UINT16
   2310         type: DT_INT16
   2311         type: DT_INT8
   2312         type: DT_COMPLEX64
   2313         type: DT_COMPLEX128
   2314         type: DT_QINT8
   2315         type: DT_QUINT8
   2316         type: DT_QINT32
   2317         type: DT_HALF
   2318       }
   2319     }
   2320   }
   2321   attr {
   2322     name: "use_locking"
   2323     type: "bool"
   2324     default_value {
   2325       b: false
   2326     }
   2327   }
   2328   attr {
   2329     name: "use_nesterov"
   2330     type: "bool"
   2331     default_value {
   2332       b: false
   2333     }
   2334   }
   2335 }
   2336 op {
   2337   name: "ApplyProximalAdagrad"
   2338   input_arg {
   2339     name: "var"
   2340     type_attr: "T"
   2341     is_ref: true
   2342   }
   2343   input_arg {
   2344     name: "accum"
   2345     type_attr: "T"
   2346     is_ref: true
   2347   }
   2348   input_arg {
   2349     name: "lr"
   2350     type_attr: "T"
   2351   }
   2352   input_arg {
   2353     name: "l1"
   2354     type_attr: "T"
   2355   }
   2356   input_arg {
   2357     name: "l2"
   2358     type_attr: "T"
   2359   }
   2360   input_arg {
   2361     name: "grad"
   2362     type_attr: "T"
   2363   }
   2364   output_arg {
   2365     name: "out"
   2366     type_attr: "T"
   2367     is_ref: true
   2368   }
   2369   attr {
   2370     name: "T"
   2371     type: "type"
   2372     allowed_values {
   2373       list {
   2374         type: DT_FLOAT
   2375         type: DT_DOUBLE
   2376         type: DT_INT64
   2377         type: DT_INT32
   2378         type: DT_UINT8
   2379         type: DT_UINT16
   2380         type: DT_INT16
   2381         type: DT_INT8
   2382         type: DT_COMPLEX64
   2383         type: DT_COMPLEX128
   2384         type: DT_QINT8
   2385         type: DT_QUINT8
   2386         type: DT_QINT32
   2387         type: DT_HALF
   2388       }
   2389     }
   2390   }
   2391   attr {
   2392     name: "use_locking"
   2393     type: "bool"
   2394     default_value {
   2395       b: false
   2396     }
   2397   }
   2398 }
   2399 op {
   2400   name: "ApplyProximalGradientDescent"
   2401   input_arg {
   2402     name: "var"
   2403     type_attr: "T"
   2404     is_ref: true
   2405   }
   2406   input_arg {
   2407     name: "alpha"
   2408     type_attr: "T"
   2409   }
   2410   input_arg {
   2411     name: "l1"
   2412     type_attr: "T"
   2413   }
   2414   input_arg {
   2415     name: "l2"
   2416     type_attr: "T"
   2417   }
   2418   input_arg {
   2419     name: "delta"
   2420     type_attr: "T"
   2421   }
   2422   output_arg {
   2423     name: "out"
   2424     type_attr: "T"
   2425     is_ref: true
   2426   }
   2427   attr {
   2428     name: "T"
   2429     type: "type"
   2430     allowed_values {
   2431       list {
   2432         type: DT_FLOAT
   2433         type: DT_DOUBLE
   2434         type: DT_INT64
   2435         type: DT_INT32
   2436         type: DT_UINT8
   2437         type: DT_UINT16
   2438         type: DT_INT16
   2439         type: DT_INT8
   2440         type: DT_COMPLEX64
   2441         type: DT_COMPLEX128
   2442         type: DT_QINT8
   2443         type: DT_QUINT8
   2444         type: DT_QINT32
   2445         type: DT_HALF
   2446       }
   2447     }
   2448   }
   2449   attr {
   2450     name: "use_locking"
   2451     type: "bool"
   2452     default_value {
   2453       b: false
   2454     }
   2455   }
   2456 }
   2457 op {
   2458   name: "ApplyRMSProp"
   2459   input_arg {
   2460     name: "var"
   2461     type_attr: "T"
   2462     is_ref: true
   2463   }
   2464   input_arg {
   2465     name: "ms"
   2466     type_attr: "T"
   2467     is_ref: true
   2468   }
   2469   input_arg {
   2470     name: "mom"
   2471     type_attr: "T"
   2472     is_ref: true
   2473   }
   2474   input_arg {
   2475     name: "lr"
   2476     type_attr: "T"
   2477   }
   2478   input_arg {
   2479     name: "rho"
   2480     type_attr: "T"
   2481   }
   2482   input_arg {
   2483     name: "momentum"
   2484     type_attr: "T"
   2485   }
   2486   input_arg {
   2487     name: "epsilon"
   2488     type_attr: "T"
   2489   }
   2490   input_arg {
   2491     name: "grad"
   2492     type_attr: "T"
   2493   }
   2494   output_arg {
   2495     name: "out"
   2496     type_attr: "T"
   2497     is_ref: true
   2498   }
   2499   attr {
   2500     name: "T"
   2501     type: "type"
   2502     allowed_values {
   2503       list {
   2504         type: DT_FLOAT
   2505         type: DT_DOUBLE
   2506         type: DT_INT64
   2507         type: DT_INT32
   2508         type: DT_UINT8
   2509         type: DT_INT16
   2510         type: DT_INT8
   2511         type: DT_COMPLEX64
   2512         type: DT_QINT8
   2513         type: DT_QUINT8
   2514         type: DT_QINT32
   2515       }
   2516     }
   2517   }
   2518   attr {
   2519     name: "use_locking"
   2520     type: "bool"
   2521     default_value {
   2522       b: false
   2523     }
   2524   }
   2525 }
   2526 op {
   2527   name: "ApplyRMSProp"
   2528   input_arg {
   2529     name: "var"
   2530     type_attr: "T"
   2531     is_ref: true
   2532   }
   2533   input_arg {
   2534     name: "ms"
   2535     type_attr: "T"
   2536     is_ref: true
   2537   }
   2538   input_arg {
   2539     name: "mom"
   2540     type_attr: "T"
   2541     is_ref: true
   2542   }
   2543   input_arg {
   2544     name: "lr"
   2545     type_attr: "T"
   2546   }
   2547   input_arg {
   2548     name: "rho"
   2549     type_attr: "T"
   2550   }
   2551   input_arg {
   2552     name: "momentum"
   2553     type_attr: "T"
   2554   }
   2555   input_arg {
   2556     name: "epsilon"
   2557     type_attr: "T"
   2558   }
   2559   input_arg {
   2560     name: "grad"
   2561     type_attr: "T"
   2562   }
   2563   output_arg {
   2564     name: "out"
   2565     type_attr: "T"
   2566     is_ref: true
   2567   }
   2568   attr {
   2569     name: "T"
   2570     type: "type"
   2571     allowed_values {
   2572       list {
   2573         type: DT_FLOAT
   2574         type: DT_DOUBLE
   2575         type: DT_INT64
   2576         type: DT_INT32
   2577         type: DT_UINT8
   2578         type: DT_UINT16
   2579         type: DT_INT16
   2580         type: DT_INT8
   2581         type: DT_COMPLEX64
   2582         type: DT_QINT8
   2583         type: DT_QUINT8
   2584         type: DT_QINT32
   2585       }
   2586     }
   2587   }
   2588   attr {
   2589     name: "use_locking"
   2590     type: "bool"
   2591     default_value {
   2592       b: false
   2593     }
   2594   }
   2595 }
   2596 op {
   2597   name: "ApplyRMSProp"
   2598   input_arg {
   2599     name: "var"
   2600     type_attr: "T"
   2601     is_ref: true
   2602   }
   2603   input_arg {
   2604     name: "ms"
   2605     type_attr: "T"
   2606     is_ref: true
   2607   }
   2608   input_arg {
   2609     name: "mom"
   2610     type_attr: "T"
   2611     is_ref: true
   2612   }
   2613   input_arg {
   2614     name: "lr"
   2615     type_attr: "T"
   2616   }
   2617   input_arg {
   2618     name: "rho"
   2619     type_attr: "T"
   2620   }
   2621   input_arg {
   2622     name: "momentum"
   2623     type_attr: "T"
   2624   }
   2625   input_arg {
   2626     name: "epsilon"
   2627     type_attr: "T"
   2628   }
   2629   input_arg {
   2630     name: "grad"
   2631     type_attr: "T"
   2632   }
   2633   output_arg {
   2634     name: "out"
   2635     type_attr: "T"
   2636     is_ref: true
   2637   }
   2638   attr {
   2639     name: "T"
   2640     type: "type"
   2641     allowed_values {
   2642       list {
   2643         type: DT_FLOAT
   2644         type: DT_DOUBLE
   2645         type: DT_INT64
   2646         type: DT_INT32
   2647         type: DT_UINT8
   2648         type: DT_UINT16
   2649         type: DT_INT16
   2650         type: DT_INT8
   2651         type: DT_COMPLEX64
   2652         type: DT_COMPLEX128
   2653         type: DT_QINT8
   2654         type: DT_QUINT8
   2655         type: DT_QINT32
   2656       }
   2657     }
   2658   }
   2659   attr {
   2660     name: "use_locking"
   2661     type: "bool"
   2662     default_value {
   2663       b: false
   2664     }
   2665   }
   2666 }
   2667 op {
   2668   name: "ApplyRMSProp"
   2669   input_arg {
   2670     name: "var"
   2671     type_attr: "T"
   2672     is_ref: true
   2673   }
   2674   input_arg {
   2675     name: "ms"
   2676     type_attr: "T"
   2677     is_ref: true
   2678   }
   2679   input_arg {
   2680     name: "mom"
   2681     type_attr: "T"
   2682     is_ref: true
   2683   }
   2684   input_arg {
   2685     name: "lr"
   2686     type_attr: "T"
   2687   }
   2688   input_arg {
   2689     name: "rho"
   2690     type_attr: "T"
   2691   }
   2692   input_arg {
   2693     name: "momentum"
   2694     type_attr: "T"
   2695   }
   2696   input_arg {
   2697     name: "epsilon"
   2698     type_attr: "T"
   2699   }
   2700   input_arg {
   2701     name: "grad"
   2702     type_attr: "T"
   2703   }
   2704   output_arg {
   2705     name: "out"
   2706     type_attr: "T"
   2707     is_ref: true
   2708   }
   2709   attr {
   2710     name: "T"
   2711     type: "type"
   2712     allowed_values {
   2713       list {
   2714         type: DT_FLOAT
   2715         type: DT_DOUBLE
   2716         type: DT_INT64
   2717         type: DT_INT32
   2718         type: DT_UINT8
   2719         type: DT_UINT16
   2720         type: DT_INT16
   2721         type: DT_INT8
   2722         type: DT_COMPLEX64
   2723         type: DT_COMPLEX128
   2724         type: DT_QINT8
   2725         type: DT_QUINT8
   2726         type: DT_QINT32
   2727         type: DT_HALF
   2728       }
   2729     }
   2730   }
   2731   attr {
   2732     name: "use_locking"
   2733     type: "bool"
   2734     default_value {
   2735       b: false
   2736     }
   2737   }
   2738 }
   2739 op {
   2740   name: "ArgMax"
   2741   input_arg {
   2742     name: "input"
   2743     type_attr: "T"
   2744   }
   2745   input_arg {
   2746     name: "dimension"
   2747     type: DT_INT32
   2748   }
   2749   output_arg {
   2750     name: "output"
   2751     type: DT_INT64
   2752   }
   2753   attr {
   2754     name: "T"
   2755     type: "type"
   2756     allowed_values {
   2757       list {
   2758         type: DT_FLOAT
   2759         type: DT_DOUBLE
   2760         type: DT_INT64
   2761         type: DT_INT32
   2762         type: DT_UINT8
   2763         type: DT_INT16
   2764         type: DT_INT8
   2765         type: DT_COMPLEX64
   2766         type: DT_QINT8
   2767         type: DT_QUINT8
   2768         type: DT_QINT32
   2769       }
   2770     }
   2771   }
   2772 }
   2773 op {
   2774   name: "ArgMax"
   2775   input_arg {
   2776     name: "input"
   2777     type_attr: "T"
   2778   }
   2779   input_arg {
   2780     name: "dimension"
   2781     type: DT_INT32
   2782   }
   2783   output_arg {
   2784     name: "output"
   2785     type: DT_INT64
   2786   }
   2787   attr {
   2788     name: "T"
   2789     type: "type"
   2790     allowed_values {
   2791       list {
   2792         type: DT_FLOAT
   2793         type: DT_DOUBLE
   2794         type: DT_INT64
   2795         type: DT_INT32
   2796         type: DT_UINT8
   2797         type: DT_UINT16
   2798         type: DT_INT16
   2799         type: DT_INT8
   2800         type: DT_COMPLEX64
   2801         type: DT_QINT8
   2802         type: DT_QUINT8
   2803         type: DT_QINT32
   2804       }
   2805     }
   2806   }
   2807 }
   2808 op {
   2809   name: "ArgMax"
   2810   input_arg {
   2811     name: "input"
   2812     type_attr: "T"
   2813   }
   2814   input_arg {
   2815     name: "dimension"
   2816     type: DT_INT32
   2817   }
   2818   output_arg {
   2819     name: "output"
   2820     type: DT_INT64
   2821   }
   2822   attr {
   2823     name: "T"
   2824     type: "type"
   2825     allowed_values {
   2826       list {
   2827         type: DT_FLOAT
   2828         type: DT_DOUBLE
   2829         type: DT_INT64
   2830         type: DT_INT32
   2831         type: DT_UINT8
   2832         type: DT_UINT16
   2833         type: DT_INT16
   2834         type: DT_INT8
   2835         type: DT_COMPLEX64
   2836         type: DT_COMPLEX128
   2837         type: DT_QINT8
   2838         type: DT_QUINT8
   2839         type: DT_QINT32
   2840       }
   2841     }
   2842   }
   2843 }
   2844 op {
   2845   name: "ArgMax"
   2846   input_arg {
   2847     name: "input"
   2848     type_attr: "T"
   2849   }
   2850   input_arg {
   2851     name: "dimension"
   2852     type: DT_INT32
   2853   }
   2854   output_arg {
   2855     name: "output"
   2856     type: DT_INT64
   2857   }
   2858   attr {
   2859     name: "T"
   2860     type: "type"
   2861     allowed_values {
   2862       list {
   2863         type: DT_FLOAT
   2864         type: DT_DOUBLE
   2865         type: DT_INT64
   2866         type: DT_INT32
   2867         type: DT_UINT8
   2868         type: DT_UINT16
   2869         type: DT_INT16
   2870         type: DT_INT8
   2871         type: DT_COMPLEX64
   2872         type: DT_COMPLEX128
   2873         type: DT_QINT8
   2874         type: DT_QUINT8
   2875         type: DT_QINT32
   2876         type: DT_HALF
   2877       }
   2878     }
   2879   }
   2880 }
   2881 op {
   2882   name: "ArgMax"
   2883   input_arg {
   2884     name: "input"
   2885     type_attr: "T"
   2886   }
   2887   input_arg {
   2888     name: "dimension"
   2889     type_attr: "Tidx"
   2890   }
   2891   output_arg {
   2892     name: "output"
   2893     type: DT_INT64
   2894   }
   2895   attr {
   2896     name: "T"
   2897     type: "type"
   2898     allowed_values {
   2899       list {
   2900         type: DT_FLOAT
   2901         type: DT_DOUBLE
   2902         type: DT_INT64
   2903         type: DT_INT32
   2904         type: DT_UINT8
   2905         type: DT_UINT16
   2906         type: DT_INT16
   2907         type: DT_INT8
   2908         type: DT_COMPLEX64
   2909         type: DT_COMPLEX128
   2910         type: DT_QINT8
   2911         type: DT_QUINT8
   2912         type: DT_QINT32
   2913         type: DT_HALF
   2914       }
   2915     }
   2916   }
   2917   attr {
   2918     name: "Tidx"
   2919     type: "type"
   2920     default_value {
   2921       type: DT_INT32
   2922     }
   2923     allowed_values {
   2924       list {
   2925         type: DT_INT32
   2926         type: DT_INT64
   2927       }
   2928     }
   2929   }
   2930 }
   2931 op {
   2932   name: "ArgMin"
   2933   input_arg {
   2934     name: "input"
   2935     type_attr: "T"
   2936   }
   2937   input_arg {
   2938     name: "dimension"
   2939     type: DT_INT32
   2940   }
   2941   output_arg {
   2942     name: "output"
   2943     type: DT_INT64
   2944   }
   2945   attr {
   2946     name: "T"
   2947     type: "type"
   2948     allowed_values {
   2949       list {
   2950         type: DT_FLOAT
   2951         type: DT_DOUBLE
   2952         type: DT_INT64
   2953         type: DT_INT32
   2954         type: DT_UINT8
   2955         type: DT_INT16
   2956         type: DT_INT8
   2957         type: DT_COMPLEX64
   2958         type: DT_QINT8
   2959         type: DT_QUINT8
   2960         type: DT_QINT32
   2961       }
   2962     }
   2963   }
   2964 }
   2965 op {
   2966   name: "ArgMin"
   2967   input_arg {
   2968     name: "input"
   2969     type_attr: "T"
   2970   }
   2971   input_arg {
   2972     name: "dimension"
   2973     type: DT_INT32
   2974   }
   2975   output_arg {
   2976     name: "output"
   2977     type: DT_INT64
   2978   }
   2979   attr {
   2980     name: "T"
   2981     type: "type"
   2982     allowed_values {
   2983       list {
   2984         type: DT_FLOAT
   2985         type: DT_DOUBLE
   2986         type: DT_INT64
   2987         type: DT_INT32
   2988         type: DT_UINT8
   2989         type: DT_UINT16
   2990         type: DT_INT16
   2991         type: DT_INT8
   2992         type: DT_COMPLEX64
   2993         type: DT_QINT8
   2994         type: DT_QUINT8
   2995         type: DT_QINT32
   2996       }
   2997     }
   2998   }
   2999 }
   3000 op {
   3001   name: "ArgMin"
   3002   input_arg {
   3003     name: "input"
   3004     type_attr: "T"
   3005   }
   3006   input_arg {
   3007     name: "dimension"
   3008     type: DT_INT32
   3009   }
   3010   output_arg {
   3011     name: "output"
   3012     type: DT_INT64
   3013   }
   3014   attr {
   3015     name: "T"
   3016     type: "type"
   3017     allowed_values {
   3018       list {
   3019         type: DT_FLOAT
   3020         type: DT_DOUBLE
   3021         type: DT_INT64
   3022         type: DT_INT32
   3023         type: DT_UINT8
   3024         type: DT_UINT16
   3025         type: DT_INT16
   3026         type: DT_INT8
   3027         type: DT_COMPLEX64
   3028         type: DT_COMPLEX128
   3029         type: DT_QINT8
   3030         type: DT_QUINT8
   3031         type: DT_QINT32
   3032       }
   3033     }
   3034   }
   3035 }
   3036 op {
   3037   name: "ArgMin"
   3038   input_arg {
   3039     name: "input"
   3040     type_attr: "T"
   3041   }
   3042   input_arg {
   3043     name: "dimension"
   3044     type: DT_INT32
   3045   }
   3046   output_arg {
   3047     name: "output"
   3048     type: DT_INT64
   3049   }
   3050   attr {
   3051     name: "T"
   3052     type: "type"
   3053     allowed_values {
   3054       list {
   3055         type: DT_FLOAT
   3056         type: DT_DOUBLE
   3057         type: DT_INT64
   3058         type: DT_INT32
   3059         type: DT_UINT8
   3060         type: DT_UINT16
   3061         type: DT_INT16
   3062         type: DT_INT8
   3063         type: DT_COMPLEX64
   3064         type: DT_COMPLEX128
   3065         type: DT_QINT8
   3066         type: DT_QUINT8
   3067         type: DT_QINT32
   3068         type: DT_HALF
   3069       }
   3070     }
   3071   }
   3072 }
   3073 op {
   3074   name: "ArgMin"
   3075   input_arg {
   3076     name: "input"
   3077     type_attr: "T"
   3078   }
   3079   input_arg {
   3080     name: "dimension"
   3081     type_attr: "Tidx"
   3082   }
   3083   output_arg {
   3084     name: "output"
   3085     type: DT_INT64
   3086   }
   3087   attr {
   3088     name: "T"
   3089     type: "type"
   3090     allowed_values {
   3091       list {
   3092         type: DT_FLOAT
   3093         type: DT_DOUBLE
   3094         type: DT_INT64
   3095         type: DT_INT32
   3096         type: DT_UINT8
   3097         type: DT_UINT16
   3098         type: DT_INT16
   3099         type: DT_INT8
   3100         type: DT_COMPLEX64
   3101         type: DT_COMPLEX128
   3102         type: DT_QINT8
   3103         type: DT_QUINT8
   3104         type: DT_QINT32
   3105         type: DT_HALF
   3106       }
   3107     }
   3108   }
   3109   attr {
   3110     name: "Tidx"
   3111     type: "type"
   3112     default_value {
   3113       type: DT_INT32
   3114     }
   3115     allowed_values {
   3116       list {
   3117         type: DT_INT32
   3118         type: DT_INT64
   3119       }
   3120     }
   3121   }
   3122 }
   3123 op {
   3124   name: "AsString"
   3125   input_arg {
   3126     name: "input"
   3127     type_attr: "T"
   3128   }
   3129   output_arg {
   3130     name: "output"
   3131     type: DT_STRING
   3132   }
   3133   attr {
   3134     name: "T"
   3135     type: "type"
   3136     allowed_values {
   3137       list {
   3138         type: DT_INT32
   3139         type: DT_INT64
   3140         type: DT_COMPLEX64
   3141         type: DT_FLOAT
   3142         type: DT_DOUBLE
   3143         type: DT_BOOL
   3144         type: DT_INT8
   3145       }
   3146     }
   3147   }
   3148   attr {
   3149     name: "precision"
   3150     type: "int"
   3151     default_value {
   3152       i: -1
   3153     }
   3154   }
   3155   attr {
   3156     name: "scientific"
   3157     type: "bool"
   3158     default_value {
   3159       b: false
   3160     }
   3161   }
   3162   attr {
   3163     name: "shortest"
   3164     type: "bool"
   3165     default_value {
   3166       b: false
   3167     }
   3168   }
   3169   attr {
   3170     name: "width"
   3171     type: "int"
   3172     default_value {
   3173       i: -1
   3174     }
   3175   }
   3176   attr {
   3177     name: "fill"
   3178     type: "string"
   3179     default_value {
   3180       s: ""
   3181     }
   3182   }
   3183 }
   3184 op {
   3185   name: "Asin"
   3186   input_arg {
   3187     name: "x"
   3188     type_attr: "T"
   3189   }
   3190   output_arg {
   3191     name: "y"
   3192     type_attr: "T"
   3193   }
   3194   attr {
   3195     name: "T"
   3196     type: "type"
   3197     allowed_values {
   3198       list {
   3199         type: DT_HALF
   3200         type: DT_FLOAT
   3201         type: DT_DOUBLE
   3202         type: DT_INT32
   3203         type: DT_INT64
   3204         type: DT_COMPLEX64
   3205         type: DT_COMPLEX128
   3206       }
   3207     }
   3208   }
   3209 }
   3210 op {
   3211   name: "Assert"
   3212   input_arg {
   3213     name: "condition"
   3214     type: DT_BOOL
   3215   }
   3216   input_arg {
   3217     name: "data"
   3218     type_list_attr: "T"
   3219   }
   3220   attr {
   3221     name: "T"
   3222     type: "list(type)"
   3223     has_minimum: true
   3224     minimum: 1
   3225   }
   3226   attr {
   3227     name: "summarize"
   3228     type: "int"
   3229     default_value {
   3230       i: 3
   3231     }
   3232   }
   3233 }
   3234 op {
   3235   name: "Assert"
   3236   input_arg {
   3237     name: "condition"
   3238     type: DT_BOOL
   3239   }
   3240   input_arg {
   3241     name: "data"
   3242     type_list_attr: "T"
   3243   }
   3244   attr {
   3245     name: "T"
   3246     type: "list(type)"
   3247     has_minimum: true
   3248     minimum: 1
   3249   }
   3250   attr {
   3251     name: "summarize"
   3252     type: "int"
   3253     default_value {
   3254       i: 3
   3255     }
   3256   }
   3257   is_stateful: true
   3258 }
   3259 op {
   3260   name: "Assign"
   3261   input_arg {
   3262     name: "ref"
   3263     type_attr: "T"
   3264     is_ref: true
   3265   }
   3266   input_arg {
   3267     name: "value"
   3268     type_attr: "T"
   3269   }
   3270   output_arg {
   3271     name: "output_ref"
   3272     type_attr: "T"
   3273     is_ref: true
   3274   }
   3275   attr {
   3276     name: "T"
   3277     type: "type"
   3278   }
   3279   attr {
   3280     name: "validate_shape"
   3281     type: "bool"
   3282     default_value {
   3283       b: true
   3284     }
   3285   }
   3286   attr {
   3287     name: "use_locking"
   3288     type: "bool"
   3289     default_value {
   3290       b: true
   3291     }
   3292   }
   3293   allows_uninitialized_input: true
   3294 }
   3295 op {
   3296   name: "AssignAdd"
   3297   input_arg {
   3298     name: "ref"
   3299     type_attr: "T"
   3300     is_ref: true
   3301   }
   3302   input_arg {
   3303     name: "value"
   3304     type_attr: "T"
   3305   }
   3306   output_arg {
   3307     name: "output_ref"
   3308     type_attr: "T"
   3309     is_ref: true
   3310   }
   3311   attr {
   3312     name: "T"
   3313     type: "type"
   3314     allowed_values {
   3315       list {
   3316         type: DT_FLOAT
   3317         type: DT_DOUBLE
   3318         type: DT_INT64
   3319         type: DT_INT32
   3320         type: DT_UINT8
   3321         type: DT_INT16
   3322         type: DT_INT8
   3323         type: DT_COMPLEX64
   3324         type: DT_QINT8
   3325         type: DT_QUINT8
   3326         type: DT_QINT32
   3327       }
   3328     }
   3329   }
   3330   attr {
   3331     name: "use_locking"
   3332     type: "bool"
   3333     default_value {
   3334       b: false
   3335     }
   3336   }
   3337 }
   3338 op {
   3339   name: "AssignAdd"
   3340   input_arg {
   3341     name: "ref"
   3342     type_attr: "T"
   3343     is_ref: true
   3344   }
   3345   input_arg {
   3346     name: "value"
   3347     type_attr: "T"
   3348   }
   3349   output_arg {
   3350     name: "output_ref"
   3351     type_attr: "T"
   3352     is_ref: true
   3353   }
   3354   attr {
   3355     name: "T"
   3356     type: "type"
   3357     allowed_values {
   3358       list {
   3359         type: DT_FLOAT
   3360         type: DT_DOUBLE
   3361         type: DT_INT64
   3362         type: DT_INT32
   3363         type: DT_UINT8
   3364         type: DT_UINT16
   3365         type: DT_INT16
   3366         type: DT_INT8
   3367         type: DT_COMPLEX64
   3368         type: DT_QINT8
   3369         type: DT_QUINT8
   3370         type: DT_QINT32
   3371       }
   3372     }
   3373   }
   3374   attr {
   3375     name: "use_locking"
   3376     type: "bool"
   3377     default_value {
   3378       b: false
   3379     }
   3380   }
   3381 }
   3382 op {
   3383   name: "AssignAdd"
   3384   input_arg {
   3385     name: "ref"
   3386     type_attr: "T"
   3387     is_ref: true
   3388   }
   3389   input_arg {
   3390     name: "value"
   3391     type_attr: "T"
   3392   }
   3393   output_arg {
   3394     name: "output_ref"
   3395     type_attr: "T"
   3396     is_ref: true
   3397   }
   3398   attr {
   3399     name: "T"
   3400     type: "type"
   3401     allowed_values {
   3402       list {
   3403         type: DT_FLOAT
   3404         type: DT_DOUBLE
   3405         type: DT_INT64
   3406         type: DT_INT32
   3407         type: DT_UINT8
   3408         type: DT_UINT16
   3409         type: DT_INT16
   3410         type: DT_INT8
   3411         type: DT_COMPLEX64
   3412         type: DT_COMPLEX128
   3413         type: DT_QINT8
   3414         type: DT_QUINT8
   3415         type: DT_QINT32
   3416       }
   3417     }
   3418   }
   3419   attr {
   3420     name: "use_locking"
   3421     type: "bool"
   3422     default_value {
   3423       b: false
   3424     }
   3425   }
   3426 }
   3427 op {
   3428   name: "AssignAdd"
   3429   input_arg {
   3430     name: "ref"
   3431     type_attr: "T"
   3432     is_ref: true
   3433   }
   3434   input_arg {
   3435     name: "value"
   3436     type_attr: "T"
   3437   }
   3438   output_arg {
   3439     name: "output_ref"
   3440     type_attr: "T"
   3441     is_ref: true
   3442   }
   3443   attr {
   3444     name: "T"
   3445     type: "type"
   3446     allowed_values {
   3447       list {
   3448         type: DT_FLOAT
   3449         type: DT_DOUBLE
   3450         type: DT_INT64
   3451         type: DT_INT32
   3452         type: DT_UINT8
   3453         type: DT_UINT16
   3454         type: DT_INT16
   3455         type: DT_INT8
   3456         type: DT_COMPLEX64
   3457         type: DT_COMPLEX128
   3458         type: DT_QINT8
   3459         type: DT_QUINT8
   3460         type: DT_QINT32
   3461         type: DT_HALF
   3462       }
   3463     }
   3464   }
   3465   attr {
   3466     name: "use_locking"
   3467     type: "bool"
   3468     default_value {
   3469       b: false
   3470     }
   3471   }
   3472 }
   3473 op {
   3474   name: "AssignSub"
   3475   input_arg {
   3476     name: "ref"
   3477     type_attr: "T"
   3478     is_ref: true
   3479   }
   3480   input_arg {
   3481     name: "value"
   3482     type_attr: "T"
   3483   }
   3484   output_arg {
   3485     name: "output_ref"
   3486     type_attr: "T"
   3487     is_ref: true
   3488   }
   3489   attr {
   3490     name: "T"
   3491     type: "type"
   3492     allowed_values {
   3493       list {
   3494         type: DT_FLOAT
   3495         type: DT_DOUBLE
   3496         type: DT_INT64
   3497         type: DT_INT32
   3498         type: DT_UINT8
   3499         type: DT_INT16
   3500         type: DT_INT8
   3501         type: DT_COMPLEX64
   3502         type: DT_QINT8
   3503         type: DT_QUINT8
   3504         type: DT_QINT32
   3505       }
   3506     }
   3507   }
   3508   attr {
   3509     name: "use_locking"
   3510     type: "bool"
   3511     default_value {
   3512       b: false
   3513     }
   3514   }
   3515 }
   3516 op {
   3517   name: "AssignSub"
   3518   input_arg {
   3519     name: "ref"
   3520     type_attr: "T"
   3521     is_ref: true
   3522   }
   3523   input_arg {
   3524     name: "value"
   3525     type_attr: "T"
   3526   }
   3527   output_arg {
   3528     name: "output_ref"
   3529     type_attr: "T"
   3530     is_ref: true
   3531   }
   3532   attr {
   3533     name: "T"
   3534     type: "type"
   3535     allowed_values {
   3536       list {
   3537         type: DT_FLOAT
   3538         type: DT_DOUBLE
   3539         type: DT_INT64
   3540         type: DT_INT32
   3541         type: DT_UINT8
   3542         type: DT_UINT16
   3543         type: DT_INT16
   3544         type: DT_INT8
   3545         type: DT_COMPLEX64
   3546         type: DT_QINT8
   3547         type: DT_QUINT8
   3548         type: DT_QINT32
   3549       }
   3550     }
   3551   }
   3552   attr {
   3553     name: "use_locking"
   3554     type: "bool"
   3555     default_value {
   3556       b: false
   3557     }
   3558   }
   3559 }
   3560 op {
   3561   name: "AssignSub"
   3562   input_arg {
   3563     name: "ref"
   3564     type_attr: "T"
   3565     is_ref: true
   3566   }
   3567   input_arg {
   3568     name: "value"
   3569     type_attr: "T"
   3570   }
   3571   output_arg {
   3572     name: "output_ref"
   3573     type_attr: "T"
   3574     is_ref: true
   3575   }
   3576   attr {
   3577     name: "T"
   3578     type: "type"
   3579     allowed_values {
   3580       list {
   3581         type: DT_FLOAT
   3582         type: DT_DOUBLE
   3583         type: DT_INT64
   3584         type: DT_INT32
   3585         type: DT_UINT8
   3586         type: DT_UINT16
   3587         type: DT_INT16
   3588         type: DT_INT8
   3589         type: DT_COMPLEX64
   3590         type: DT_COMPLEX128
   3591         type: DT_QINT8
   3592         type: DT_QUINT8
   3593         type: DT_QINT32
   3594       }
   3595     }
   3596   }
   3597   attr {
   3598     name: "use_locking"
   3599     type: "bool"
   3600     default_value {
   3601       b: false
   3602     }
   3603   }
   3604 }
   3605 op {
   3606   name: "AssignSub"
   3607   input_arg {
   3608     name: "ref"
   3609     type_attr: "T"
   3610     is_ref: true
   3611   }
   3612   input_arg {
   3613     name: "value"
   3614     type_attr: "T"
   3615   }
   3616   output_arg {
   3617     name: "output_ref"
   3618     type_attr: "T"
   3619     is_ref: true
   3620   }
   3621   attr {
   3622     name: "T"
   3623     type: "type"
   3624     allowed_values {
   3625       list {
   3626         type: DT_FLOAT
   3627         type: DT_DOUBLE
   3628         type: DT_INT64
   3629         type: DT_INT32
   3630         type: DT_UINT8
   3631         type: DT_UINT16
   3632         type: DT_INT16
   3633         type: DT_INT8
   3634         type: DT_COMPLEX64
   3635         type: DT_COMPLEX128
   3636         type: DT_QINT8
   3637         type: DT_QUINT8
   3638         type: DT_QINT32
   3639         type: DT_HALF
   3640       }
   3641     }
   3642   }
   3643   attr {
   3644     name: "use_locking"
   3645     type: "bool"
   3646     default_value {
   3647       b: false
   3648     }
   3649   }
   3650 }
   3651 op {
   3652   name: "Atan"
   3653   input_arg {
   3654     name: "x"
   3655     type_attr: "T"
   3656   }
   3657   output_arg {
   3658     name: "y"
   3659     type_attr: "T"
   3660   }
   3661   attr {
   3662     name: "T"
   3663     type: "type"
   3664     allowed_values {
   3665       list {
   3666         type: DT_HALF
   3667         type: DT_FLOAT
   3668         type: DT_DOUBLE
   3669         type: DT_INT32
   3670         type: DT_INT64
   3671         type: DT_COMPLEX64
   3672         type: DT_COMPLEX128
   3673       }
   3674     }
   3675   }
   3676 }
   3677 op {
   3678   name: "AudioSummary"
   3679   input_arg {
   3680     name: "tag"
   3681     type: DT_STRING
   3682   }
   3683   input_arg {
   3684     name: "tensor"
   3685     type: DT_FLOAT
   3686   }
   3687   output_arg {
   3688     name: "summary"
   3689     type: DT_STRING
   3690   }
   3691   attr {
   3692     name: "sample_rate"
   3693     type: "float"
   3694   }
   3695   attr {
   3696     name: "max_outputs"
   3697     type: "int"
   3698     default_value {
   3699       i: 3
   3700     }
   3701     has_minimum: true
   3702     minimum: 1
   3703   }
   3704 }
   3705 op {
   3706   name: "AudioSummary"
   3707   input_arg {
   3708     name: "tag"
   3709     type: DT_STRING
   3710   }
   3711   input_arg {
   3712     name: "tensor"
   3713     type: DT_FLOAT
   3714   }
   3715   output_arg {
   3716     name: "summary"
   3717     type: DT_STRING
   3718   }
   3719   attr {
   3720     name: "sample_rate"
   3721     type: "float"
   3722   }
   3723   attr {
   3724     name: "max_outputs"
   3725     type: "int"
   3726     default_value {
   3727       i: 3
   3728     }
   3729     has_minimum: true
   3730     minimum: 1
   3731   }
   3732   deprecation {
   3733     version: 15
   3734   }
   3735 }
   3736 op {
   3737   name: "AudioSummaryV2"
   3738   input_arg {
   3739     name: "tag"
   3740     type: DT_STRING
   3741   }
   3742   input_arg {
   3743     name: "tensor"
   3744     type: DT_FLOAT
   3745   }
   3746   input_arg {
   3747     name: "sample_rate"
   3748     type: DT_FLOAT
   3749   }
   3750   output_arg {
   3751     name: "summary"
   3752     type: DT_STRING
   3753   }
   3754   attr {
   3755     name: "max_outputs"
   3756     type: "int"
   3757     default_value {
   3758       i: 3
   3759     }
   3760     has_minimum: true
   3761     minimum: 1
   3762   }
   3763 }
   3764 op {
   3765   name: "AvgPool"
   3766   input_arg {
   3767     name: "value"
   3768     type_attr: "T"
   3769   }
   3770   output_arg {
   3771     name: "output"
   3772     type_attr: "T"
   3773   }
   3774   attr {
   3775     name: "ksize"
   3776     type: "list(int)"
   3777     has_minimum: true
   3778     minimum: 4
   3779   }
   3780   attr {
   3781     name: "strides"
   3782     type: "list(int)"
   3783     has_minimum: true
   3784     minimum: 4
   3785   }
   3786   attr {
   3787     name: "padding"
   3788     type: "string"
   3789     allowed_values {
   3790       list {
   3791         s: "SAME"
   3792         s: "VALID"
   3793       }
   3794     }
   3795   }
   3796   attr {
   3797     name: "T"
   3798     type: "type"
   3799     allowed_values {
   3800       list {
   3801         type: DT_FLOAT
   3802         type: DT_DOUBLE
   3803       }
   3804     }
   3805   }
   3806 }
   3807 op {
   3808   name: "AvgPool"
   3809   input_arg {
   3810     name: "value"
   3811     type_attr: "T"
   3812   }
   3813   output_arg {
   3814     name: "output"
   3815     type_attr: "T"
   3816   }
   3817   attr {
   3818     name: "ksize"
   3819     type: "list(int)"
   3820     has_minimum: true
   3821     minimum: 4
   3822   }
   3823   attr {
   3824     name: "strides"
   3825     type: "list(int)"
   3826     has_minimum: true
   3827     minimum: 4
   3828   }
   3829   attr {
   3830     name: "padding"
   3831     type: "string"
   3832     allowed_values {
   3833       list {
   3834         s: "SAME"
   3835         s: "VALID"
   3836       }
   3837     }
   3838   }
   3839   attr {
   3840     name: "data_format"
   3841     type: "string"
   3842     default_value {
   3843       s: "NHWC"
   3844     }
   3845     allowed_values {
   3846       list {
   3847         s: "NHWC"
   3848         s: "NCHW"
   3849       }
   3850     }
   3851   }
   3852   attr {
   3853     name: "T"
   3854     type: "type"
   3855     allowed_values {
   3856       list {
   3857         type: DT_FLOAT
   3858         type: DT_DOUBLE
   3859       }
   3860     }
   3861   }
   3862 }
   3863 op {
   3864   name: "AvgPool"
   3865   input_arg {
   3866     name: "value"
   3867     type_attr: "T"
   3868   }
   3869   output_arg {
   3870     name: "output"
   3871     type_attr: "T"
   3872   }
   3873   attr {
   3874     name: "ksize"
   3875     type: "list(int)"
   3876     has_minimum: true
   3877     minimum: 4
   3878   }
   3879   attr {
   3880     name: "strides"
   3881     type: "list(int)"
   3882     has_minimum: true
   3883     minimum: 4
   3884   }
   3885   attr {
   3886     name: "padding"
   3887     type: "string"
   3888     allowed_values {
   3889       list {
   3890         s: "SAME"
   3891         s: "VALID"
   3892       }
   3893     }
   3894   }
   3895   attr {
   3896     name: "data_format"
   3897     type: "string"
   3898     default_value {
   3899       s: "NHWC"
   3900     }
   3901     allowed_values {
   3902       list {
   3903         s: "NHWC"
   3904         s: "NCHW"
   3905       }
   3906     }
   3907   }
   3908   attr {
   3909     name: "T"
   3910     type: "type"
   3911     allowed_values {
   3912       list {
   3913         type: DT_FLOAT
   3914         type: DT_HALF
   3915         type: DT_DOUBLE
   3916       }
   3917     }
   3918   }
   3919 }
   3920 op {
   3921   name: "AvgPool3D"
   3922   input_arg {
   3923     name: "input"
   3924     type_attr: "T"
   3925   }
   3926   output_arg {
   3927     name: "output"
   3928     type_attr: "T"
   3929   }
   3930   attr {
   3931     name: "ksize"
   3932     type: "list(int)"
   3933     has_minimum: true
   3934     minimum: 5
   3935   }
   3936   attr {
   3937     name: "strides"
   3938     type: "list(int)"
   3939     has_minimum: true
   3940     minimum: 5
   3941   }
   3942   attr {
   3943     name: "padding"
   3944     type: "string"
   3945     allowed_values {
   3946       list {
   3947         s: "SAME"
   3948         s: "VALID"
   3949       }
   3950     }
   3951   }
   3952   attr {
   3953     name: "T"
   3954     type: "type"
   3955     allowed_values {
   3956       list {
   3957         type: DT_FLOAT
   3958         type: DT_DOUBLE
   3959         type: DT_INT64
   3960         type: DT_INT32
   3961         type: DT_UINT8
   3962         type: DT_UINT16
   3963         type: DT_INT16
   3964         type: DT_INT8
   3965         type: DT_COMPLEX64
   3966         type: DT_COMPLEX128
   3967         type: DT_QINT8
   3968         type: DT_QUINT8
   3969         type: DT_QINT32
   3970         type: DT_HALF
   3971       }
   3972     }
   3973   }
   3974 }
   3975 op {
   3976   name: "AvgPool3DGrad"
   3977   input_arg {
   3978     name: "orig_input_shape"
   3979     type: DT_INT32
   3980   }
   3981   input_arg {
   3982     name: "grad"
   3983     type_attr: "T"
   3984   }
   3985   output_arg {
   3986     name: "output"
   3987     type_attr: "T"
   3988   }
   3989   attr {
   3990     name: "ksize"
   3991     type: "list(int)"
   3992     has_minimum: true
   3993     minimum: 5
   3994   }
   3995   attr {
   3996     name: "strides"
   3997     type: "list(int)"
   3998     has_minimum: true
   3999     minimum: 5
   4000   }
   4001   attr {
   4002     name: "padding"
   4003     type: "string"
   4004     allowed_values {
   4005       list {
   4006         s: "SAME"
   4007         s: "VALID"
   4008       }
   4009     }
   4010   }
   4011   attr {
   4012     name: "T"
   4013     type: "type"
   4014     allowed_values {
   4015       list {
   4016         type: DT_FLOAT
   4017         type: DT_DOUBLE
   4018         type: DT_INT64
   4019         type: DT_INT32
   4020         type: DT_UINT8
   4021         type: DT_UINT16
   4022         type: DT_INT16
   4023         type: DT_INT8
   4024         type: DT_COMPLEX64
   4025         type: DT_COMPLEX128
   4026         type: DT_QINT8
   4027         type: DT_QUINT8
   4028         type: DT_QINT32
   4029         type: DT_HALF
   4030       }
   4031     }
   4032   }
   4033 }
   4034 op {
   4035   name: "AvgPoolGrad"
   4036   input_arg {
   4037     name: "orig_input_shape"
   4038     type: DT_INT32
   4039   }
   4040   input_arg {
   4041     name: "grad"
   4042     type_attr: "T"
   4043   }
   4044   output_arg {
   4045     name: "output"
   4046     type_attr: "T"
   4047   }
   4048   attr {
   4049     name: "ksize"
   4050     type: "list(int)"
   4051     has_minimum: true
   4052     minimum: 4
   4053   }
   4054   attr {
   4055     name: "strides"
   4056     type: "list(int)"
   4057     has_minimum: true
   4058     minimum: 4
   4059   }
   4060   attr {
   4061     name: "padding"
   4062     type: "string"
   4063     allowed_values {
   4064       list {
   4065         s: "SAME"
   4066         s: "VALID"
   4067       }
   4068     }
   4069   }
   4070   attr {
   4071     name: "T"
   4072     type: "type"
   4073     allowed_values {
   4074       list {
   4075         type: DT_FLOAT
   4076         type: DT_DOUBLE
   4077       }
   4078     }
   4079   }
   4080 }
   4081 op {
   4082   name: "AvgPoolGrad"
   4083   input_arg {
   4084     name: "orig_input_shape"
   4085     type: DT_INT32
   4086   }
   4087   input_arg {
   4088     name: "grad"
   4089     type_attr: "T"
   4090   }
   4091   output_arg {
   4092     name: "output"
   4093     type_attr: "T"
   4094   }
   4095   attr {
   4096     name: "ksize"
   4097     type: "list(int)"
   4098     has_minimum: true
   4099     minimum: 4
   4100   }
   4101   attr {
   4102     name: "strides"
   4103     type: "list(int)"
   4104     has_minimum: true
   4105     minimum: 4
   4106   }
   4107   attr {
   4108     name: "padding"
   4109     type: "string"
   4110     allowed_values {
   4111       list {
   4112         s: "SAME"
   4113         s: "VALID"
   4114       }
   4115     }
   4116   }
   4117   attr {
   4118     name: "data_format"
   4119     type: "string"
   4120     default_value {
   4121       s: "NHWC"
   4122     }
   4123     allowed_values {
   4124       list {
   4125         s: "NHWC"
   4126         s: "NCHW"
   4127       }
   4128     }
   4129   }
   4130   attr {
   4131     name: "T"
   4132     type: "type"
   4133     allowed_values {
   4134       list {
   4135         type: DT_FLOAT
   4136         type: DT_DOUBLE
   4137       }
   4138     }
   4139   }
   4140 }
   4141 op {
   4142   name: "AvgPoolGrad"
   4143   input_arg {
   4144     name: "orig_input_shape"
   4145     type: DT_INT32
   4146   }
   4147   input_arg {
   4148     name: "grad"
   4149     type_attr: "T"
   4150   }
   4151   output_arg {
   4152     name: "output"
   4153     type_attr: "T"
   4154   }
   4155   attr {
   4156     name: "ksize"
   4157     type: "list(int)"
   4158     has_minimum: true
   4159     minimum: 4
   4160   }
   4161   attr {
   4162     name: "strides"
   4163     type: "list(int)"
   4164     has_minimum: true
   4165     minimum: 4
   4166   }
   4167   attr {
   4168     name: "padding"
   4169     type: "string"
   4170     allowed_values {
   4171       list {
   4172         s: "SAME"
   4173         s: "VALID"
   4174       }
   4175     }
   4176   }
   4177   attr {
   4178     name: "data_format"
   4179     type: "string"
   4180     default_value {
   4181       s: "NHWC"
   4182     }
   4183     allowed_values {
   4184       list {
   4185         s: "NHWC"
   4186         s: "NCHW"
   4187       }
   4188     }
   4189   }
   4190   attr {
   4191     name: "T"
   4192     type: "type"
   4193     allowed_values {
   4194       list {
   4195         type: DT_FLOAT
   4196         type: DT_HALF
   4197         type: DT_DOUBLE
   4198       }
   4199     }
   4200   }
   4201 }
   4202 op {
   4203   name: "Barrier"
   4204   output_arg {
   4205     name: "handle"
   4206     type: DT_STRING
   4207     is_ref: true
   4208   }
   4209   attr {
   4210     name: "component_types"
   4211     type: "list(type)"
   4212     has_minimum: true
   4213     minimum: 1
   4214   }
   4215   attr {
   4216     name: "shapes"
   4217     type: "list(shape)"
   4218     default_value {
   4219       list {
   4220       }
   4221     }
   4222     has_minimum: true
   4223   }
   4224   attr {
   4225     name: "capacity"
   4226     type: "int"
   4227     default_value {
   4228       i: -1
   4229     }
   4230   }
   4231   attr {
   4232     name: "container"
   4233     type: "string"
   4234     default_value {
   4235       s: ""
   4236     }
   4237   }
   4238   attr {
   4239     name: "shared_name"
   4240     type: "string"
   4241     default_value {
   4242       s: ""
   4243     }
   4244   }
   4245   is_stateful: true
   4246 }
   4247 op {
   4248   name: "BarrierClose"
   4249   input_arg {
   4250     name: "handle"
   4251     type: DT_STRING
   4252     is_ref: true
   4253   }
   4254   attr {
   4255     name: "cancel_pending_enqueues"
   4256     type: "bool"
   4257     default_value {
   4258       b: false
   4259     }
   4260   }
   4261 }
   4262 op {
   4263   name: "BarrierIncompleteSize"
   4264   input_arg {
   4265     name: "handle"
   4266     type: DT_STRING
   4267     is_ref: true
   4268   }
   4269   output_arg {
   4270     name: "size"
   4271     type: DT_INT32
   4272   }
   4273 }
   4274 op {
   4275   name: "BarrierInsertMany"
   4276   input_arg {
   4277     name: "handle"
   4278     type: DT_STRING
   4279     is_ref: true
   4280   }
   4281   input_arg {
   4282     name: "keys"
   4283     type: DT_STRING
   4284   }
   4285   input_arg {
   4286     name: "values"
   4287     type_attr: "T"
   4288   }
   4289   attr {
   4290     name: "T"
   4291     type: "type"
   4292   }
   4293   attr {
   4294     name: "component_index"
   4295     type: "int"
   4296   }
   4297 }
   4298 op {
   4299   name: "BarrierReadySize"
   4300   input_arg {
   4301     name: "handle"
   4302     type: DT_STRING
   4303     is_ref: true
   4304   }
   4305   output_arg {
   4306     name: "size"
   4307     type: DT_INT32
   4308   }
   4309 }
   4310 op {
   4311   name: "BarrierTakeMany"
   4312   input_arg {
   4313     name: "handle"
   4314     type: DT_STRING
   4315     is_ref: true
   4316   }
   4317   input_arg {
   4318     name: "num_elements"
   4319     type: DT_INT32
   4320   }
   4321   output_arg {
   4322     name: "indices"
   4323     type: DT_INT64
   4324   }
   4325   output_arg {
   4326     name: "keys"
   4327     type: DT_STRING
   4328   }
   4329   output_arg {
   4330     name: "values"
   4331     type_list_attr: "component_types"
   4332   }
   4333   attr {
   4334     name: "component_types"
   4335     type: "list(type)"
   4336     has_minimum: true
   4337     minimum: 1
   4338   }
   4339   attr {
   4340     name: "allow_small_batch"
   4341     type: "bool"
   4342     default_value {
   4343       b: false
   4344     }
   4345   }
   4346   attr {
   4347     name: "wait_for_incomplete"
   4348     type: "bool"
   4349     default_value {
   4350       b: false
   4351     }
   4352   }
   4353   attr {
   4354     name: "timeout_ms"
   4355     type: "int"
   4356     default_value {
   4357       i: -1
   4358     }
   4359   }
   4360 }
   4361 op {
   4362   name: "BatchCholesky"
   4363   input_arg {
   4364     name: "input"
   4365     type_attr: "T"
   4366   }
   4367   output_arg {
   4368     name: "output"
   4369     type_attr: "T"
   4370   }
   4371   attr {
   4372     name: "T"
   4373     type: "type"
   4374     allowed_values {
   4375       list {
   4376         type: DT_DOUBLE
   4377         type: DT_FLOAT
   4378       }
   4379     }
   4380   }
   4381 }
   4382 op {
   4383   name: "BatchCholesky"
   4384   input_arg {
   4385     name: "input"
   4386     type_attr: "T"
   4387   }
   4388   output_arg {
   4389     name: "output"
   4390     type_attr: "T"
   4391   }
   4392   attr {
   4393     name: "T"
   4394     type: "type"
   4395     allowed_values {
   4396       list {
   4397         type: DT_DOUBLE
   4398         type: DT_FLOAT
   4399       }
   4400     }
   4401   }
   4402   deprecation {
   4403     version: 13
   4404   }
   4405 }
   4406 op {
   4407   name: "BatchCholeskyGrad"
   4408   input_arg {
   4409     name: "l"
   4410     type_attr: "T"
   4411   }
   4412   input_arg {
   4413     name: "grad"
   4414     type_attr: "T"
   4415   }
   4416   output_arg {
   4417     name: "output"
   4418     type_attr: "T"
   4419   }
   4420   attr {
   4421     name: "T"
   4422     type: "type"
   4423     allowed_values {
   4424       list {
   4425         type: DT_FLOAT
   4426         type: DT_DOUBLE
   4427       }
   4428     }
   4429   }
   4430 }
   4431 op {
   4432   name: "BatchCholeskyGrad"
   4433   input_arg {
   4434     name: "l"
   4435     type_attr: "T"
   4436   }
   4437   input_arg {
   4438     name: "grad"
   4439     type_attr: "T"
   4440   }
   4441   output_arg {
   4442     name: "output"
   4443     type_attr: "T"
   4444   }
   4445   attr {
   4446     name: "T"
   4447     type: "type"
   4448     allowed_values {
   4449       list {
   4450         type: DT_FLOAT
   4451         type: DT_DOUBLE
   4452       }
   4453     }
   4454   }
   4455   deprecation {
   4456     version: 13
   4457   }
   4458 }
   4459 op {
   4460   name: "BatchFFT"
   4461   input_arg {
   4462     name: "input"
   4463     type: DT_COMPLEX64
   4464   }
   4465   output_arg {
   4466     name: "output"
   4467     type: DT_COMPLEX64
   4468   }
   4469 }
   4470 op {
   4471   name: "BatchFFT"
   4472   input_arg {
   4473     name: "input"
   4474     type: DT_COMPLEX64
   4475   }
   4476   output_arg {
   4477     name: "output"
   4478     type: DT_COMPLEX64
   4479   }
   4480   deprecation {
   4481     version: 15
   4482   }
   4483 }
   4484 op {
   4485   name: "BatchFFT2D"
   4486   input_arg {
   4487     name: "input"
   4488     type: DT_COMPLEX64
   4489   }
   4490   output_arg {
   4491     name: "output"
   4492     type: DT_COMPLEX64
   4493   }
   4494 }
   4495 op {
   4496   name: "BatchFFT2D"
   4497   input_arg {
   4498     name: "input"
   4499     type: DT_COMPLEX64
   4500   }
   4501   output_arg {
   4502     name: "output"
   4503     type: DT_COMPLEX64
   4504   }
   4505   deprecation {
   4506     version: 15
   4507   }
   4508 }
   4509 op {
   4510   name: "BatchFFT3D"
   4511   input_arg {
   4512     name: "input"
   4513     type: DT_COMPLEX64
   4514   }
   4515   output_arg {
   4516     name: "output"
   4517     type: DT_COMPLEX64
   4518   }
   4519 }
   4520 op {
   4521   name: "BatchFFT3D"
   4522   input_arg {
   4523     name: "input"
   4524     type: DT_COMPLEX64
   4525   }
   4526   output_arg {
   4527     name: "output"
   4528     type: DT_COMPLEX64
   4529   }
   4530   deprecation {
   4531     version: 15
   4532   }
   4533 }
   4534 op {
   4535   name: "BatchIFFT"
   4536   input_arg {
   4537     name: "input"
   4538     type: DT_COMPLEX64
   4539   }
   4540   output_arg {
   4541     name: "output"
   4542     type: DT_COMPLEX64
   4543   }
   4544 }
   4545 op {
   4546   name: "BatchIFFT"
   4547   input_arg {
   4548     name: "input"
   4549     type: DT_COMPLEX64
   4550   }
   4551   output_arg {
   4552     name: "output"
   4553     type: DT_COMPLEX64
   4554   }
   4555   deprecation {
   4556     version: 15
   4557   }
   4558 }
   4559 op {
   4560   name: "BatchIFFT2D"
   4561   input_arg {
   4562     name: "input"
   4563     type: DT_COMPLEX64
   4564   }
   4565   output_arg {
   4566     name: "output"
   4567     type: DT_COMPLEX64
   4568   }
   4569 }
   4570 op {
   4571   name: "BatchIFFT2D"
   4572   input_arg {
   4573     name: "input"
   4574     type: DT_COMPLEX64
   4575   }
   4576   output_arg {
   4577     name: "output"
   4578     type: DT_COMPLEX64
   4579   }
   4580   deprecation {
   4581     version: 15
   4582   }
   4583 }
   4584 op {
   4585   name: "BatchIFFT3D"
   4586   input_arg {
   4587     name: "input"
   4588     type: DT_COMPLEX64
   4589   }
   4590   output_arg {
   4591     name: "output"
   4592     type: DT_COMPLEX64
   4593   }
   4594 }
   4595 op {
   4596   name: "BatchIFFT3D"
   4597   input_arg {
   4598     name: "input"
   4599     type: DT_COMPLEX64
   4600   }
   4601   output_arg {
   4602     name: "output"
   4603     type: DT_COMPLEX64
   4604   }
   4605   deprecation {
   4606     version: 15
   4607   }
   4608 }
   4609 op {
   4610   name: "BatchMatMul"
   4611   input_arg {
   4612     name: "x"
   4613     type_attr: "T"
   4614   }
   4615   input_arg {
   4616     name: "y"
   4617     type_attr: "T"
   4618   }
   4619   output_arg {
   4620     name: "out"
   4621     type_attr: "T"
   4622   }
   4623   attr {
   4624     name: "T"
   4625     type: "type"
   4626     allowed_values {
   4627       list {
   4628         type: DT_FLOAT
   4629         type: DT_DOUBLE
   4630         type: DT_INT32
   4631         type: DT_COMPLEX64
   4632       }
   4633     }
   4634   }
   4635   attr {
   4636     name: "adj_x"
   4637     type: "bool"
   4638     default_value {
   4639       b: false
   4640     }
   4641   }
   4642   attr {
   4643     name: "adj_y"
   4644     type: "bool"
   4645     default_value {
   4646       b: false
   4647     }
   4648   }
   4649 }
   4650 op {
   4651   name: "BatchMatMul"
   4652   input_arg {
   4653     name: "x"
   4654     type_attr: "T"
   4655   }
   4656   input_arg {
   4657     name: "y"
   4658     type_attr: "T"
   4659   }
   4660   output_arg {
   4661     name: "output"
   4662     type_attr: "T"
   4663   }
   4664   attr {
   4665     name: "T"
   4666     type: "type"
   4667     allowed_values {
   4668       list {
   4669         type: DT_FLOAT
   4670         type: DT_DOUBLE
   4671         type: DT_INT32
   4672         type: DT_COMPLEX64
   4673       }
   4674     }
   4675   }
   4676   attr {
   4677     name: "adj_x"
   4678     type: "bool"
   4679     default_value {
   4680       b: false
   4681     }
   4682   }
   4683   attr {
   4684     name: "adj_y"
   4685     type: "bool"
   4686     default_value {
   4687       b: false
   4688     }
   4689   }
   4690 }
   4691 op {
   4692   name: "BatchMatMul"
   4693   input_arg {
   4694     name: "x"
   4695     type_attr: "T"
   4696   }
   4697   input_arg {
   4698     name: "y"
   4699     type_attr: "T"
   4700   }
   4701   output_arg {
   4702     name: "output"
   4703     type_attr: "T"
   4704   }
   4705   attr {
   4706     name: "T"
   4707     type: "type"
   4708     allowed_values {
   4709       list {
   4710         type: DT_HALF
   4711         type: DT_FLOAT
   4712         type: DT_DOUBLE
   4713         type: DT_INT32
   4714         type: DT_COMPLEX64
   4715       }
   4716     }
   4717   }
   4718   attr {
   4719     name: "adj_x"
   4720     type: "bool"
   4721     default_value {
   4722       b: false
   4723     }
   4724   }
   4725   attr {
   4726     name: "adj_y"
   4727     type: "bool"
   4728     default_value {
   4729       b: false
   4730     }
   4731   }
   4732 }
   4733 op {
   4734   name: "BatchMatMul"
   4735   input_arg {
   4736     name: "x"
   4737     type_attr: "T"
   4738   }
   4739   input_arg {
   4740     name: "y"
   4741     type_attr: "T"
   4742   }
   4743   output_arg {
   4744     name: "output"
   4745     type_attr: "T"
   4746   }
   4747   attr {
   4748     name: "T"
   4749     type: "type"
   4750     allowed_values {
   4751       list {
   4752         type: DT_HALF
   4753         type: DT_FLOAT
   4754         type: DT_DOUBLE
   4755         type: DT_INT32
   4756         type: DT_COMPLEX64
   4757         type: DT_COMPLEX128
   4758       }
   4759     }
   4760   }
   4761   attr {
   4762     name: "adj_x"
   4763     type: "bool"
   4764     default_value {
   4765       b: false
   4766     }
   4767   }
   4768   attr {
   4769     name: "adj_y"
   4770     type: "bool"
   4771     default_value {
   4772       b: false
   4773     }
   4774   }
   4775 }
   4776 op {
   4777   name: "BatchMatrixBandPart"
   4778   input_arg {
   4779     name: "input"
   4780     type_attr: "T"
   4781   }
   4782   input_arg {
   4783     name: "num_lower"
   4784     type: DT_INT64
   4785   }
   4786   input_arg {
   4787     name: "num_upper"
   4788     type: DT_INT64
   4789   }
   4790   output_arg {
   4791     name: "band"
   4792     type_attr: "T"
   4793   }
   4794   attr {
   4795     name: "T"
   4796     type: "type"
   4797   }
   4798 }
   4799 op {
   4800   name: "BatchMatrixBandPart"
   4801   input_arg {
   4802     name: "input"
   4803     type_attr: "T"
   4804   }
   4805   input_arg {
   4806     name: "num_lower"
   4807     type: DT_INT64
   4808   }
   4809   input_arg {
   4810     name: "num_upper"
   4811     type: DT_INT64
   4812   }
   4813   output_arg {
   4814     name: "band"
   4815     type_attr: "T"
   4816   }
   4817   attr {
   4818     name: "T"
   4819     type: "type"
   4820   }
   4821   deprecation {
   4822     version: 14
   4823   }
   4824 }
   4825 op {
   4826   name: "BatchMatrixDeterminant"
   4827   input_arg {
   4828     name: "input"
   4829     type_attr: "T"
   4830   }
   4831   output_arg {
   4832     name: "output"
   4833     type_attr: "T"
   4834   }
   4835   attr {
   4836     name: "T"
   4837     type: "type"
   4838     allowed_values {
   4839       list {
   4840         type: DT_FLOAT
   4841         type: DT_DOUBLE
   4842       }
   4843     }
   4844   }
   4845 }
   4846 op {
   4847   name: "BatchMatrixDeterminant"
   4848   input_arg {
   4849     name: "input"
   4850     type_attr: "T"
   4851   }
   4852   output_arg {
   4853     name: "output"
   4854     type_attr: "T"
   4855   }
   4856   attr {
   4857     name: "T"
   4858     type: "type"
   4859     allowed_values {
   4860       list {
   4861         type: DT_FLOAT
   4862         type: DT_DOUBLE
   4863       }
   4864     }
   4865   }
   4866   deprecation {
   4867     version: 13
   4868   }
   4869 }
   4870 op {
   4871   name: "BatchMatrixDiag"
   4872   input_arg {
   4873     name: "diagonal"
   4874     type_attr: "T"
   4875   }
   4876   output_arg {
   4877     name: "output"
   4878     type_attr: "T"
   4879   }
   4880   attr {
   4881     name: "T"
   4882     type: "type"
   4883   }
   4884 }
   4885 op {
   4886   name: "BatchMatrixDiag"
   4887   input_arg {
   4888     name: "diagonal"
   4889     type_attr: "T"
   4890   }
   4891   output_arg {
   4892     name: "output"
   4893     type_attr: "T"
   4894   }
   4895   attr {
   4896     name: "T"
   4897     type: "type"
   4898   }
   4899   deprecation {
   4900     version: 14
   4901   }
   4902 }
   4903 op {
   4904   name: "BatchMatrixDiagPart"
   4905   input_arg {
   4906     name: "input"
   4907     type_attr: "T"
   4908   }
   4909   output_arg {
   4910     name: "diagonal"
   4911     type_attr: "T"
   4912   }
   4913   attr {
   4914     name: "T"
   4915     type: "type"
   4916   }
   4917 }
   4918 op {
   4919   name: "BatchMatrixDiagPart"
   4920   input_arg {
   4921     name: "input"
   4922     type_attr: "T"
   4923   }
   4924   output_arg {
   4925     name: "diagonal"
   4926     type_attr: "T"
   4927   }
   4928   attr {
   4929     name: "T"
   4930     type: "type"
   4931   }
   4932   deprecation {
   4933     version: 14
   4934   }
   4935 }
   4936 op {
   4937   name: "BatchMatrixInverse"
   4938   input_arg {
   4939     name: "input"
   4940     type_attr: "T"
   4941   }
   4942   output_arg {
   4943     name: "output"
   4944     type_attr: "T"
   4945   }
   4946   attr {
   4947     name: "T"
   4948     type: "type"
   4949     allowed_values {
   4950       list {
   4951         type: DT_FLOAT
   4952         type: DT_DOUBLE
   4953       }
   4954     }
   4955   }
   4956 }
   4957 op {
   4958   name: "BatchMatrixInverse"
   4959   input_arg {
   4960     name: "input"
   4961     type_attr: "T"
   4962   }
   4963   output_arg {
   4964     name: "output"
   4965     type_attr: "T"
   4966   }
   4967   attr {
   4968     name: "adjoint"
   4969     type: "bool"
   4970     default_value {
   4971       b: false
   4972     }
   4973   }
   4974   attr {
   4975     name: "T"
   4976     type: "type"
   4977     allowed_values {
   4978       list {
   4979         type: DT_DOUBLE
   4980         type: DT_FLOAT
   4981       }
   4982     }
   4983   }
   4984 }
   4985 op {
   4986   name: "BatchMatrixInverse"
   4987   input_arg {
   4988     name: "input"
   4989     type_attr: "T"
   4990   }
   4991   output_arg {
   4992     name: "output"
   4993     type_attr: "T"
   4994   }
   4995   attr {
   4996     name: "adjoint"
   4997     type: "bool"
   4998     default_value {
   4999       b: false
   5000     }
   5001   }
   5002   attr {
   5003     name: "T"
   5004     type: "type"
   5005     allowed_values {
   5006       list {
   5007         type: DT_DOUBLE
   5008         type: DT_FLOAT
   5009       }
   5010     }
   5011   }
   5012   deprecation {
   5013     version: 13
   5014   }
   5015 }
   5016 op {
   5017   name: "BatchMatrixSetDiag"
   5018   input_arg {
   5019     name: "input"
   5020     type_attr: "T"
   5021   }
   5022   input_arg {
   5023     name: "diagonal"
   5024     type_attr: "T"
   5025   }
   5026   output_arg {
   5027     name: "output"
   5028     type_attr: "T"
   5029   }
   5030   attr {
   5031     name: "T"
   5032     type: "type"
   5033   }
   5034 }
   5035 op {
   5036   name: "BatchMatrixSetDiag"
   5037   input_arg {
   5038     name: "input"
   5039     type_attr: "T"
   5040   }
   5041   input_arg {
   5042     name: "diagonal"
   5043     type_attr: "T"
   5044   }
   5045   output_arg {
   5046     name: "output"
   5047     type_attr: "T"
   5048   }
   5049   attr {
   5050     name: "T"
   5051     type: "type"
   5052   }
   5053   deprecation {
   5054     version: 14
   5055   }
   5056 }
   5057 op {
   5058   name: "BatchMatrixSolve"
   5059   input_arg {
   5060     name: "matrix"
   5061     type_attr: "T"
   5062   }
   5063   input_arg {
   5064     name: "rhs"
   5065     type_attr: "T"
   5066   }
   5067   output_arg {
   5068     name: "output"
   5069     type_attr: "T"
   5070   }
   5071   attr {
   5072     name: "T"
   5073     type: "type"
   5074     allowed_values {
   5075       list {
   5076         type: DT_FLOAT
   5077         type: DT_DOUBLE
   5078       }
   5079     }
   5080   }
   5081 }
   5082 op {
   5083   name: "BatchMatrixSolve"
   5084   input_arg {
   5085     name: "matrix"
   5086     type_attr: "T"
   5087   }
   5088   input_arg {
   5089     name: "rhs"
   5090     type_attr: "T"
   5091   }
   5092   output_arg {
   5093     name: "output"
   5094     type_attr: "T"
   5095   }
   5096   attr {
   5097     name: "adjoint"
   5098     type: "bool"
   5099     default_value {
   5100       b: false
   5101     }
   5102   }
   5103   attr {
   5104     name: "T"
   5105     type: "type"
   5106     allowed_values {
   5107       list {
   5108         type: DT_FLOAT
   5109         type: DT_DOUBLE
   5110       }
   5111     }
   5112   }
   5113 }
   5114 op {
   5115   name: "BatchMatrixSolve"
   5116   input_arg {
   5117     name: "matrix"
   5118     type_attr: "T"
   5119   }
   5120   input_arg {
   5121     name: "rhs"
   5122     type_attr: "T"
   5123   }
   5124   output_arg {
   5125     name: "output"
   5126     type_attr: "T"
   5127   }
   5128   attr {
   5129     name: "adjoint"
   5130     type: "bool"
   5131     default_value {
   5132       b: false
   5133     }
   5134   }
   5135   attr {
   5136     name: "T"
   5137     type: "type"
   5138     allowed_values {
   5139       list {
   5140         type: DT_DOUBLE
   5141         type: DT_FLOAT
   5142       }
   5143     }
   5144   }
   5145 }
   5146 op {
   5147   name: "BatchMatrixSolve"
   5148   input_arg {
   5149     name: "matrix"
   5150     type_attr: "T"
   5151   }
   5152   input_arg {
   5153     name: "rhs"
   5154     type_attr: "T"
   5155   }
   5156   output_arg {
   5157     name: "output"
   5158     type_attr: "T"
   5159   }
   5160   attr {
   5161     name: "adjoint"
   5162     type: "bool"
   5163     default_value {
   5164       b: false
   5165     }
   5166   }
   5167   attr {
   5168     name: "T"
   5169     type: "type"
   5170     allowed_values {
   5171       list {
   5172         type: DT_DOUBLE
   5173         type: DT_FLOAT
   5174       }
   5175     }
   5176   }
   5177   deprecation {
   5178     version: 13
   5179   }
   5180 }
   5181 op {
   5182   name: "BatchMatrixSolveLs"
   5183   input_arg {
   5184     name: "matrix"
   5185     type_attr: "T"
   5186   }
   5187   input_arg {
   5188     name: "rhs"
   5189     type_attr: "T"
   5190   }
   5191   input_arg {
   5192     name: "l2_regularizer"
   5193     type: DT_DOUBLE
   5194   }
   5195   output_arg {
   5196     name: "output"
   5197     type_attr: "T"
   5198   }
   5199   attr {
   5200     name: "T"
   5201     type: "type"
   5202     allowed_values {
   5203       list {
   5204         type: DT_FLOAT
   5205         type: DT_DOUBLE
   5206       }
   5207     }
   5208   }
   5209   attr {
   5210     name: "fast"
   5211     type: "bool"
   5212     default_value {
   5213       b: true
   5214     }
   5215   }
   5216 }
   5217 op {
   5218   name: "BatchMatrixSolveLs"
   5219   input_arg {
   5220     name: "matrix"
   5221     type_attr: "T"
   5222   }
   5223   input_arg {
   5224     name: "rhs"
   5225     type_attr: "T"
   5226   }
   5227   input_arg {
   5228     name: "l2_regularizer"
   5229     type: DT_DOUBLE
   5230   }
   5231   output_arg {
   5232     name: "output"
   5233     type_attr: "T"
   5234   }
   5235   attr {
   5236     name: "T"
   5237     type: "type"
   5238     allowed_values {
   5239       list {
   5240         type: DT_DOUBLE
   5241         type: DT_FLOAT
   5242       }
   5243     }
   5244   }
   5245   attr {
   5246     name: "fast"
   5247     type: "bool"
   5248     default_value {
   5249       b: true
   5250     }
   5251   }
   5252 }
   5253 op {
   5254   name: "BatchMatrixSolveLs"
   5255   input_arg {
   5256     name: "matrix"
   5257     type_attr: "T"
   5258   }
   5259   input_arg {
   5260     name: "rhs"
   5261     type_attr: "T"
   5262   }
   5263   input_arg {
   5264     name: "l2_regularizer"
   5265     type: DT_DOUBLE
   5266   }
   5267   output_arg {
   5268     name: "output"
   5269     type_attr: "T"
   5270   }
   5271   attr {
   5272     name: "T"
   5273     type: "type"
   5274     allowed_values {
   5275       list {
   5276         type: DT_DOUBLE
   5277         type: DT_FLOAT
   5278       }
   5279     }
   5280   }
   5281   attr {
   5282     name: "fast"
   5283     type: "bool"
   5284     default_value {
   5285       b: true
   5286     }
   5287   }
   5288   deprecation {
   5289     version: 13
   5290   }
   5291 }
   5292 op {
   5293   name: "BatchMatrixTriangularSolve"
   5294   input_arg {
   5295     name: "matrix"
   5296     type_attr: "T"
   5297   }
   5298   input_arg {
   5299     name: "rhs"
   5300     type_attr: "T"
   5301   }
   5302   output_arg {
   5303     name: "output"
   5304     type_attr: "T"
   5305   }
   5306   attr {
   5307     name: "lower"
   5308     type: "bool"
   5309     default_value {
   5310       b: true
   5311     }
   5312   }
   5313   attr {
   5314     name: "T"
   5315     type: "type"
   5316     allowed_values {
   5317       list {
   5318         type: DT_FLOAT
   5319         type: DT_DOUBLE
   5320       }
   5321     }
   5322   }
   5323 }
   5324 op {
   5325   name: "BatchMatrixTriangularSolve"
   5326   input_arg {
   5327     name: "matrix"
   5328     type_attr: "T"
   5329   }
   5330   input_arg {
   5331     name: "rhs"
   5332     type_attr: "T"
   5333   }
   5334   output_arg {
   5335     name: "output"
   5336     type_attr: "T"
   5337   }
   5338   attr {
   5339     name: "lower"
   5340     type: "bool"
   5341     default_value {
   5342       b: true
   5343     }
   5344   }
   5345   attr {
   5346     name: "adjoint"
   5347     type: "bool"
   5348     default_value {
   5349       b: false
   5350     }
   5351   }
   5352   attr {
   5353     name: "T"
   5354     type: "type"
   5355     allowed_values {
   5356       list {
   5357         type: DT_FLOAT
   5358         type: DT_DOUBLE
   5359       }
   5360     }
   5361   }
   5362 }
   5363 op {
   5364   name: "BatchMatrixTriangularSolve"
   5365   input_arg {
   5366     name: "matrix"
   5367     type_attr: "T"
   5368   }
   5369   input_arg {
   5370     name: "rhs"
   5371     type_attr: "T"
   5372   }
   5373   output_arg {
   5374     name: "output"
   5375     type_attr: "T"
   5376   }
   5377   attr {
   5378     name: "lower"
   5379     type: "bool"
   5380     default_value {
   5381       b: true
   5382     }
   5383   }
   5384   attr {
   5385     name: "adjoint"
   5386     type: "bool"
   5387     default_value {
   5388       b: false
   5389     }
   5390   }
   5391   attr {
   5392     name: "T"
   5393     type: "type"
   5394     allowed_values {
   5395       list {
   5396         type: DT_DOUBLE
   5397         type: DT_FLOAT
   5398       }
   5399     }
   5400   }
   5401 }
   5402 op {
   5403   name: "BatchMatrixTriangularSolve"
   5404   input_arg {
   5405     name: "matrix"
   5406     type_attr: "T"
   5407   }
   5408   input_arg {
   5409     name: "rhs"
   5410     type_attr: "T"
   5411   }
   5412   output_arg {
   5413     name: "output"
   5414     type_attr: "T"
   5415   }
   5416   attr {
   5417     name: "lower"
   5418     type: "bool"
   5419     default_value {
   5420       b: true
   5421     }
   5422   }
   5423   attr {
   5424     name: "adjoint"
   5425     type: "bool"
   5426     default_value {
   5427       b: false
   5428     }
   5429   }
   5430   attr {
   5431     name: "T"
   5432     type: "type"
   5433     allowed_values {
   5434       list {
   5435         type: DT_DOUBLE
   5436         type: DT_FLOAT
   5437       }
   5438     }
   5439   }
   5440   deprecation {
   5441     version: 13
   5442   }
   5443 }
   5444 op {
   5445   name: "BatchNormWithGlobalNormalization"
   5446   input_arg {
   5447     name: "t"
   5448     type_attr: "T"
   5449   }
   5450   input_arg {
   5451     name: "m"
   5452     type_attr: "T"
   5453   }
   5454   input_arg {
   5455     name: "v"
   5456     type_attr: "T"
   5457   }
   5458   input_arg {
   5459     name: "beta"
   5460     type_attr: "T"
   5461   }
   5462   input_arg {
   5463     name: "gamma"
   5464     type_attr: "T"
   5465   }
   5466   output_arg {
   5467     name: "result"
   5468     type_attr: "T"
   5469   }
   5470   attr {
   5471     name: "T"
   5472     type: "type"
   5473     allowed_values {
   5474       list {
   5475         type: DT_FLOAT
   5476         type: DT_DOUBLE
   5477         type: DT_INT64
   5478         type: DT_INT32
   5479         type: DT_UINT8
   5480         type: DT_INT16
   5481         type: DT_INT8
   5482         type: DT_COMPLEX64
   5483         type: DT_QINT8
   5484         type: DT_QUINT8
   5485         type: DT_QINT32
   5486       }
   5487     }
   5488   }
   5489   attr {
   5490     name: "variance_epsilon"
   5491     type: "float"
   5492   }
   5493   attr {
   5494     name: "scale_after_normalization"
   5495     type: "bool"
   5496   }
   5497 }
   5498 op {
   5499   name: "BatchNormWithGlobalNormalization"
   5500   input_arg {
   5501     name: "t"
   5502     type_attr: "T"
   5503   }
   5504   input_arg {
   5505     name: "m"
   5506     type_attr: "T"
   5507   }
   5508   input_arg {
   5509     name: "v"
   5510     type_attr: "T"
   5511   }
   5512   input_arg {
   5513     name: "beta"
   5514     type_attr: "T"
   5515   }
   5516   input_arg {
   5517     name: "gamma"
   5518     type_attr: "T"
   5519   }
   5520   output_arg {
   5521     name: "result"
   5522     type_attr: "T"
   5523   }
   5524   attr {
   5525     name: "T"
   5526     type: "type"
   5527     allowed_values {
   5528       list {
   5529         type: DT_FLOAT
   5530         type: DT_DOUBLE
   5531         type: DT_INT64
   5532         type: DT_INT32
   5533         type: DT_UINT8
   5534         type: DT_UINT16
   5535         type: DT_INT16
   5536         type: DT_INT8
   5537         type: DT_COMPLEX64
   5538         type: DT_QINT8
   5539         type: DT_QUINT8
   5540         type: DT_QINT32
   5541       }
   5542     }
   5543   }
   5544   attr {
   5545     name: "variance_epsilon"
   5546     type: "float"
   5547   }
   5548   attr {
   5549     name: "scale_after_normalization"
   5550     type: "bool"
   5551   }
   5552 }
   5553 op {
   5554   name: "BatchNormWithGlobalNormalization"
   5555   input_arg {
   5556     name: "t"
   5557     type_attr: "T"
   5558   }
   5559   input_arg {
   5560     name: "m"
   5561     type_attr: "T"
   5562   }
   5563   input_arg {
   5564     name: "v"
   5565     type_attr: "T"
   5566   }
   5567   input_arg {
   5568     name: "beta"
   5569     type_attr: "T"
   5570   }
   5571   input_arg {
   5572     name: "gamma"
   5573     type_attr: "T"
   5574   }
   5575   output_arg {
   5576     name: "result"
   5577     type_attr: "T"
   5578   }
   5579   attr {
   5580     name: "T"
   5581     type: "type"
   5582     allowed_values {
   5583       list {
   5584         type: DT_FLOAT
   5585         type: DT_DOUBLE
   5586         type: DT_INT64
   5587         type: DT_INT32
   5588         type: DT_UINT8
   5589         type: DT_UINT16
   5590         type: DT_INT16
   5591         type: DT_INT8
   5592         type: DT_COMPLEX64
   5593         type: DT_COMPLEX128
   5594         type: DT_QINT8
   5595         type: DT_QUINT8
   5596         type: DT_QINT32
   5597       }
   5598     }
   5599   }
   5600   attr {
   5601     name: "variance_epsilon"
   5602     type: "float"
   5603   }
   5604   attr {
   5605     name: "scale_after_normalization"
   5606     type: "bool"
   5607   }
   5608 }
   5609 op {
   5610   name: "BatchNormWithGlobalNormalization"
   5611   input_arg {
   5612     name: "t"
   5613     type_attr: "T"
   5614   }
   5615   input_arg {
   5616     name: "m"
   5617     type_attr: "T"
   5618   }
   5619   input_arg {
   5620     name: "v"
   5621     type_attr: "T"
   5622   }
   5623   input_arg {
   5624     name: "beta"
   5625     type_attr: "T"
   5626   }
   5627   input_arg {
   5628     name: "gamma"
   5629     type_attr: "T"
   5630   }
   5631   output_arg {
   5632     name: "result"
   5633     type_attr: "T"
   5634   }
   5635   attr {
   5636     name: "T"
   5637     type: "type"
   5638     allowed_values {
   5639       list {
   5640         type: DT_FLOAT
   5641         type: DT_DOUBLE
   5642         type: DT_INT64
   5643         type: DT_INT32
   5644         type: DT_UINT8
   5645         type: DT_UINT16
   5646         type: DT_INT16
   5647         type: DT_INT8
   5648         type: DT_COMPLEX64
   5649         type: DT_COMPLEX128
   5650         type: DT_QINT8
   5651         type: DT_QUINT8
   5652         type: DT_QINT32
   5653         type: DT_HALF
   5654       }
   5655     }
   5656   }
   5657   attr {
   5658     name: "variance_epsilon"
   5659     type: "float"
   5660   }
   5661   attr {
   5662     name: "scale_after_normalization"
   5663     type: "bool"
   5664   }
   5665 }
   5666 op {
   5667   name: "BatchNormWithGlobalNormalization"
   5668   input_arg {
   5669     name: "t"
   5670     type_attr: "T"
   5671   }
   5672   input_arg {
   5673     name: "m"
   5674     type_attr: "T"
   5675   }
   5676   input_arg {
   5677     name: "v"
   5678     type_attr: "T"
   5679   }
   5680   input_arg {
   5681     name: "beta"
   5682     type_attr: "T"
   5683   }
   5684   input_arg {
   5685     name: "gamma"
   5686     type_attr: "T"
   5687   }
   5688   output_arg {
   5689     name: "result"
   5690     type_attr: "T"
   5691   }
   5692   attr {
   5693     name: "T"
   5694     type: "type"
   5695     allowed_values {
   5696       list {
   5697         type: DT_FLOAT
   5698         type: DT_DOUBLE
   5699         type: DT_INT64
   5700         type: DT_INT32
   5701         type: DT_UINT8
   5702         type: DT_UINT16
   5703         type: DT_INT16
   5704         type: DT_INT8
   5705         type: DT_COMPLEX64
   5706         type: DT_COMPLEX128
   5707         type: DT_QINT8
   5708         type: DT_QUINT8
   5709         type: DT_QINT32
   5710         type: DT_HALF
   5711       }
   5712     }
   5713   }
   5714   attr {
   5715     name: "variance_epsilon"
   5716     type: "float"
   5717   }
   5718   attr {
   5719     name: "scale_after_normalization"
   5720     type: "bool"
   5721   }
   5722   deprecation {
   5723     version: 9
   5724   }
   5725 }
   5726 op {
   5727   name: "BatchNormWithGlobalNormalizationGrad"
   5728   input_arg {
   5729     name: "t"
   5730     type_attr: "T"
   5731   }
   5732   input_arg {
   5733     name: "m"
   5734     type_attr: "T"
   5735   }
   5736   input_arg {
   5737     name: "v"
   5738     type_attr: "T"
   5739   }
   5740   input_arg {
   5741     name: "gamma"
   5742     type_attr: "T"
   5743   }
   5744   input_arg {
   5745     name: "backprop"
   5746     type_attr: "T"
   5747   }
   5748   output_arg {
   5749     name: "dx"
   5750     type_attr: "T"
   5751   }
   5752   output_arg {
   5753     name: "dm"
   5754     type_attr: "T"
   5755   }
   5756   output_arg {
   5757     name: "dv"
   5758     type_attr: "T"
   5759   }
   5760   output_arg {
   5761     name: "db"
   5762     type_attr: "T"
   5763   }
   5764   output_arg {
   5765     name: "dg"
   5766     type_attr: "T"
   5767   }
   5768   attr {
   5769     name: "T"
   5770     type: "type"
   5771     allowed_values {
   5772       list {
   5773         type: DT_FLOAT
   5774         type: DT_DOUBLE
   5775         type: DT_INT64
   5776         type: DT_INT32
   5777         type: DT_UINT8
   5778         type: DT_INT16
   5779         type: DT_INT8
   5780         type: DT_COMPLEX64
   5781         type: DT_QINT8
   5782         type: DT_QUINT8
   5783         type: DT_QINT32
   5784       }
   5785     }
   5786   }
   5787   attr {
   5788     name: "variance_epsilon"
   5789     type: "float"
   5790   }
   5791   attr {
   5792     name: "scale_after_normalization"
   5793     type: "bool"
   5794   }
   5795 }
   5796 op {
   5797   name: "BatchNormWithGlobalNormalizationGrad"
   5798   input_arg {
   5799     name: "t"
   5800     type_attr: "T"
   5801   }
   5802   input_arg {
   5803     name: "m"
   5804     type_attr: "T"
   5805   }
   5806   input_arg {
   5807     name: "v"
   5808     type_attr: "T"
   5809   }
   5810   input_arg {
   5811     name: "gamma"
   5812     type_attr: "T"
   5813   }
   5814   input_arg {
   5815     name: "backprop"
   5816     type_attr: "T"
   5817   }
   5818   output_arg {
   5819     name: "dx"
   5820     type_attr: "T"
   5821   }
   5822   output_arg {
   5823     name: "dm"
   5824     type_attr: "T"
   5825   }
   5826   output_arg {
   5827     name: "dv"
   5828     type_attr: "T"
   5829   }
   5830   output_arg {
   5831     name: "db"
   5832     type_attr: "T"
   5833   }
   5834   output_arg {
   5835     name: "dg"
   5836     type_attr: "T"
   5837   }
   5838   attr {
   5839     name: "T"
   5840     type: "type"
   5841     allowed_values {
   5842       list {
   5843         type: DT_FLOAT
   5844         type: DT_DOUBLE
   5845         type: DT_INT64
   5846         type: DT_INT32
   5847         type: DT_UINT8
   5848         type: DT_UINT16
   5849         type: DT_INT16
   5850         type: DT_INT8
   5851         type: DT_COMPLEX64
   5852         type: DT_QINT8
   5853         type: DT_QUINT8
   5854         type: DT_QINT32
   5855       }
   5856     }
   5857   }
   5858   attr {
   5859     name: "variance_epsilon"
   5860     type: "float"
   5861   }
   5862   attr {
   5863     name: "scale_after_normalization"
   5864     type: "bool"
   5865   }
   5866 }
   5867 op {
   5868   name: "BatchNormWithGlobalNormalizationGrad"
   5869   input_arg {
   5870     name: "t"
   5871     type_attr: "T"
   5872   }
   5873   input_arg {
   5874     name: "m"
   5875     type_attr: "T"
   5876   }
   5877   input_arg {
   5878     name: "v"
   5879     type_attr: "T"
   5880   }
   5881   input_arg {
   5882     name: "gamma"
   5883     type_attr: "T"
   5884   }
   5885   input_arg {
   5886     name: "backprop"
   5887     type_attr: "T"
   5888   }
   5889   output_arg {
   5890     name: "dx"
   5891     type_attr: "T"
   5892   }
   5893   output_arg {
   5894     name: "dm"
   5895     type_attr: "T"
   5896   }
   5897   output_arg {
   5898     name: "dv"
   5899     type_attr: "T"
   5900   }
   5901   output_arg {
   5902     name: "db"
   5903     type_attr: "T"
   5904   }
   5905   output_arg {
   5906     name: "dg"
   5907     type_attr: "T"
   5908   }
   5909   attr {
   5910     name: "T"
   5911     type: "type"
   5912     allowed_values {
   5913       list {
   5914         type: DT_FLOAT
   5915         type: DT_DOUBLE
   5916         type: DT_INT64
   5917         type: DT_INT32
   5918         type: DT_UINT8
   5919         type: DT_UINT16
   5920         type: DT_INT16
   5921         type: DT_INT8
   5922         type: DT_COMPLEX64
   5923         type: DT_COMPLEX128
   5924         type: DT_QINT8
   5925         type: DT_QUINT8
   5926         type: DT_QINT32
   5927       }
   5928     }
   5929   }
   5930   attr {
   5931     name: "variance_epsilon"
   5932     type: "float"
   5933   }
   5934   attr {
   5935     name: "scale_after_normalization"
   5936     type: "bool"
   5937   }
   5938 }
   5939 op {
   5940   name: "BatchNormWithGlobalNormalizationGrad"
   5941   input_arg {
   5942     name: "t"
   5943     type_attr: "T"
   5944   }
   5945   input_arg {
   5946     name: "m"
   5947     type_attr: "T"
   5948   }
   5949   input_arg {
   5950     name: "v"
   5951     type_attr: "T"
   5952   }
   5953   input_arg {
   5954     name: "gamma"
   5955     type_attr: "T"
   5956   }
   5957   input_arg {
   5958     name: "backprop"
   5959     type_attr: "T"
   5960   }
   5961   output_arg {
   5962     name: "dx"
   5963     type_attr: "T"
   5964   }
   5965   output_arg {
   5966     name: "dm"
   5967     type_attr: "T"
   5968   }
   5969   output_arg {
   5970     name: "dv"
   5971     type_attr: "T"
   5972   }
   5973   output_arg {
   5974     name: "db"
   5975     type_attr: "T"
   5976   }
   5977   output_arg {
   5978     name: "dg"
   5979     type_attr: "T"
   5980   }
   5981   attr {
   5982     name: "T"
   5983     type: "type"
   5984     allowed_values {
   5985       list {
   5986         type: DT_FLOAT
   5987         type: DT_DOUBLE
   5988         type: DT_INT64
   5989         type: DT_INT32
   5990         type: DT_UINT8
   5991         type: DT_UINT16
   5992         type: DT_INT16
   5993         type: DT_INT8
   5994         type: DT_COMPLEX64
   5995         type: DT_COMPLEX128
   5996         type: DT_QINT8
   5997         type: DT_QUINT8
   5998         type: DT_QINT32
   5999         type: DT_HALF
   6000       }
   6001     }
   6002   }
   6003   attr {
   6004     name: "variance_epsilon"
   6005     type: "float"
   6006   }
   6007   attr {
   6008     name: "scale_after_normalization"
   6009     type: "bool"
   6010   }
   6011 }
   6012 op {
   6013   name: "BatchNormWithGlobalNormalizationGrad"
   6014   input_arg {
   6015     name: "t"
   6016     type_attr: "T"
   6017   }
   6018   input_arg {
   6019     name: "m"
   6020     type_attr: "T"
   6021   }
   6022   input_arg {
   6023     name: "v"
   6024     type_attr: "T"
   6025   }
   6026   input_arg {
   6027     name: "gamma"
   6028     type_attr: "T"
   6029   }
   6030   input_arg {
   6031     name: "backprop"
   6032     type_attr: "T"
   6033   }
   6034   output_arg {
   6035     name: "dx"
   6036     type_attr: "T"
   6037   }
   6038   output_arg {
   6039     name: "dm"
   6040     type_attr: "T"
   6041   }
   6042   output_arg {
   6043     name: "dv"
   6044     type_attr: "T"
   6045   }
   6046   output_arg {
   6047     name: "db"
   6048     type_attr: "T"
   6049   }
   6050   output_arg {
   6051     name: "dg"
   6052     type_attr: "T"
   6053   }
   6054   attr {
   6055     name: "T"
   6056     type: "type"
   6057     allowed_values {
   6058       list {
   6059         type: DT_FLOAT
   6060         type: DT_DOUBLE
   6061         type: DT_INT64
   6062         type: DT_INT32
   6063         type: DT_UINT8
   6064         type: DT_UINT16
   6065         type: DT_INT16
   6066         type: DT_INT8
   6067         type: DT_COMPLEX64
   6068         type: DT_COMPLEX128
   6069         type: DT_QINT8
   6070         type: DT_QUINT8
   6071         type: DT_QINT32
   6072         type: DT_HALF
   6073       }
   6074     }
   6075   }
   6076   attr {
   6077     name: "variance_epsilon"
   6078     type: "float"
   6079   }
   6080   attr {
   6081     name: "scale_after_normalization"
   6082     type: "bool"
   6083   }
   6084   deprecation {
   6085     version: 9
   6086   }
   6087 }
   6088 op {
   6089   name: "BatchSelfAdjointEig"
   6090   input_arg {
   6091     name: "input"
   6092     type_attr: "T"
   6093   }
   6094   output_arg {
   6095     name: "output"
   6096     type_attr: "T"
   6097   }
   6098   attr {
   6099     name: "T"
   6100     type: "type"
   6101     allowed_values {
   6102       list {
   6103         type: DT_DOUBLE
   6104         type: DT_FLOAT
   6105       }
   6106     }
   6107   }
   6108 }
   6109 op {
   6110   name: "BatchSelfAdjointEig"
   6111   input_arg {
   6112     name: "input"
   6113     type_attr: "T"
   6114   }
   6115   output_arg {
   6116     name: "output"
   6117     type_attr: "T"
   6118   }
   6119   attr {
   6120     name: "T"
   6121     type: "type"
   6122     allowed_values {
   6123       list {
   6124         type: DT_DOUBLE
   6125         type: DT_FLOAT
   6126       }
   6127     }
   6128   }
   6129   deprecation {
   6130     version: 11
   6131   }
   6132 }
   6133 op {
   6134   name: "BatchSelfAdjointEigV2"
   6135   input_arg {
   6136     name: "input"
   6137     type_attr: "T"
   6138   }
   6139   output_arg {
   6140     name: "e"
   6141     type_attr: "T"
   6142   }
   6143   output_arg {
   6144     name: "v"
   6145     type_attr: "T"
   6146   }
   6147   attr {
   6148     name: "compute_v"
   6149     type: "bool"
   6150     default_value {
   6151       b: true
   6152     }
   6153   }
   6154   attr {
   6155     name: "T"
   6156     type: "type"
   6157     allowed_values {
   6158       list {
   6159         type: DT_DOUBLE
   6160         type: DT_FLOAT
   6161       }
   6162     }
   6163   }
   6164 }
   6165 op {
   6166   name: "BatchSelfAdjointEigV2"
   6167   input_arg {
   6168     name: "input"
   6169     type_attr: "T"
   6170   }
   6171   output_arg {
   6172     name: "e"
   6173     type_attr: "T"
   6174   }
   6175   output_arg {
   6176     name: "v"
   6177     type_attr: "T"
   6178   }
   6179   attr {
   6180     name: "compute_v"
   6181     type: "bool"
   6182     default_value {
   6183       b: true
   6184     }
   6185   }
   6186   attr {
   6187     name: "T"
   6188     type: "type"
   6189     allowed_values {
   6190       list {
   6191         type: DT_DOUBLE
   6192         type: DT_FLOAT
   6193       }
   6194     }
   6195   }
   6196   deprecation {
   6197     version: 13
   6198   }
   6199 }
   6200 op {
   6201   name: "BatchSvd"
   6202   input_arg {
   6203     name: "input"
   6204     type_attr: "T"
   6205   }
   6206   output_arg {
   6207     name: "s"
   6208     type_attr: "T"
   6209   }
   6210   output_arg {
   6211     name: "u"
   6212     type_attr: "T"
   6213   }
   6214   output_arg {
   6215     name: "v"
   6216     type_attr: "T"
   6217   }
   6218   attr {
   6219     name: "compute_uv"
   6220     type: "bool"
   6221     default_value {
   6222       b: false
   6223     }
   6224   }
   6225   attr {
   6226     name: "full_matrices"
   6227     type: "bool"
   6228     default_value {
   6229       b: false
   6230     }
   6231   }
   6232   attr {
   6233     name: "T"
   6234     type: "type"
   6235     allowed_values {
   6236       list {
   6237         type: DT_DOUBLE
   6238         type: DT_FLOAT
   6239       }
   6240     }
   6241   }
   6242 }
   6243 op {
   6244   name: "BatchSvd"
   6245   input_arg {
   6246     name: "input"
   6247     type_attr: "T"
   6248   }
   6249   output_arg {
   6250     name: "s"
   6251     type_attr: "T"
   6252   }
   6253   output_arg {
   6254     name: "u"
   6255     type_attr: "T"
   6256   }
   6257   output_arg {
   6258     name: "v"
   6259     type_attr: "T"
   6260   }
   6261   attr {
   6262     name: "compute_uv"
   6263     type: "bool"
   6264     default_value {
   6265       b: true
   6266     }
   6267   }
   6268   attr {
   6269     name: "full_matrices"
   6270     type: "bool"
   6271     default_value {
   6272       b: false
   6273     }
   6274   }
   6275   attr {
   6276     name: "T"
   6277     type: "type"
   6278     allowed_values {
   6279       list {
   6280         type: DT_DOUBLE
   6281         type: DT_FLOAT
   6282       }
   6283     }
   6284   }
   6285 }
   6286 op {
   6287   name: "BatchSvd"
   6288   input_arg {
   6289     name: "input"
   6290     type_attr: "T"
   6291   }
   6292   output_arg {
   6293     name: "s"
   6294     type_attr: "T"
   6295   }
   6296   output_arg {
   6297     name: "u"
   6298     type_attr: "T"
   6299   }
   6300   output_arg {
   6301     name: "v"
   6302     type_attr: "T"
   6303   }
   6304   attr {
   6305     name: "compute_uv"
   6306     type: "bool"
   6307     default_value {
   6308       b: true
   6309     }
   6310   }
   6311   attr {
   6312     name: "full_matrices"
   6313     type: "bool"
   6314     default_value {
   6315       b: false
   6316     }
   6317   }
   6318   attr {
   6319     name: "T"
   6320     type: "type"
   6321     allowed_values {
   6322       list {
   6323         type: DT_DOUBLE
   6324         type: DT_FLOAT
   6325         type: DT_COMPLEX64
   6326         type: DT_COMPLEX128
   6327       }
   6328     }
   6329   }
   6330 }
   6331 op {
   6332   name: "BatchSvd"
   6333   input_arg {
   6334     name: "input"
   6335     type_attr: "T"
   6336   }
   6337   output_arg {
   6338     name: "s"
   6339     type_attr: "T"
   6340   }
   6341   output_arg {
   6342     name: "u"
   6343     type_attr: "T"
   6344   }
   6345   output_arg {
   6346     name: "v"
   6347     type_attr: "T"
   6348   }
   6349   attr {
   6350     name: "compute_uv"
   6351     type: "bool"
   6352     default_value {
   6353       b: true
   6354     }
   6355   }
   6356   attr {
   6357     name: "full_matrices"
   6358     type: "bool"
   6359     default_value {
   6360       b: false
   6361     }
   6362   }
   6363   attr {
   6364     name: "T"
   6365     type: "type"
   6366     allowed_values {
   6367       list {
   6368         type: DT_DOUBLE
   6369         type: DT_FLOAT
   6370         type: DT_COMPLEX64
   6371         type: DT_COMPLEX128
   6372       }
   6373     }
   6374   }
   6375   deprecation {
   6376     version: 13
   6377   }
   6378 }
   6379 op {
   6380   name: "BatchToSpace"
   6381   input_arg {
   6382     name: "input"
   6383     type_attr: "T"
   6384   }
   6385   input_arg {
   6386     name: "crops"
   6387     type: DT_INT32
   6388   }
   6389   output_arg {
   6390     name: "output"
   6391     type_attr: "T"
   6392   }
   6393   attr {
   6394     name: "T"
   6395     type: "type"
   6396   }
   6397   attr {
   6398     name: "block_size"
   6399     type: "int"
   6400     has_minimum: true
   6401     minimum: 2
   6402   }
   6403 }
   6404 op {
   6405   name: "BatchToSpace"
   6406   input_arg {
   6407     name: "input"
   6408     type_attr: "T"
   6409   }
   6410   input_arg {
   6411     name: "crops"
   6412     type_attr: "Tidx"
   6413   }
   6414   output_arg {
   6415     name: "output"
   6416     type_attr: "T"
   6417   }
   6418   attr {
   6419     name: "T"
   6420     type: "type"
   6421   }
   6422   attr {
   6423     name: "block_size"
   6424     type: "int"
   6425     has_minimum: true
   6426     minimum: 2
   6427   }
   6428   attr {
   6429     name: "Tidx"
   6430     type: "type"
   6431     default_value {
   6432       type: DT_INT32
   6433     }
   6434     allowed_values {
   6435       list {
   6436         type: DT_INT32
   6437         type: DT_INT64
   6438       }
   6439     }
   6440   }
   6441 }
   6442 op {
   6443   name: "BatchToSpaceND"
   6444   input_arg {
   6445     name: "input"
   6446     type_attr: "T"
   6447   }
   6448   input_arg {
   6449     name: "block_shape"
   6450     type_attr: "Tblock_shape"
   6451   }
   6452   input_arg {
   6453     name: "crops"
   6454     type_attr: "Tcrops"
   6455   }
   6456   output_arg {
   6457     name: "output"
   6458     type_attr: "T"
   6459   }
   6460   attr {
   6461     name: "T"
   6462     type: "type"
   6463   }
   6464   attr {
   6465     name: "Tblock_shape"
   6466     type: "type"
   6467     default_value {
   6468       type: DT_INT32
   6469     }
   6470     allowed_values {
   6471       list {
   6472         type: DT_INT32
   6473         type: DT_INT64
   6474       }
   6475     }
   6476   }
   6477   attr {
   6478     name: "Tcrops"
   6479     type: "type"
   6480     default_value {
   6481       type: DT_INT32
   6482     }
   6483     allowed_values {
   6484       list {
   6485         type: DT_INT32
   6486         type: DT_INT64
   6487       }
   6488     }
   6489   }
   6490 }
   6491 op {
   6492   name: "Betainc"
   6493   input_arg {
   6494     name: "a"
   6495     type_attr: "T"
   6496   }
   6497   input_arg {
   6498     name: "b"
   6499     type_attr: "T"
   6500   }
   6501   input_arg {
   6502     name: "x"
   6503     type_attr: "T"
   6504   }
   6505   output_arg {
   6506     name: "z"
   6507     type_attr: "T"
   6508   }
   6509   attr {
   6510     name: "T"
   6511     type: "type"
   6512     allowed_values {
   6513       list {
   6514         type: DT_FLOAT
   6515         type: DT_DOUBLE
   6516       }
   6517     }
   6518   }
   6519 }
   6520 op {
   6521   name: "BiasAdd"
   6522   input_arg {
   6523     name: "value"
   6524     type_attr: "T"
   6525   }
   6526   input_arg {
   6527     name: "bias"
   6528     type_attr: "T"
   6529   }
   6530   output_arg {
   6531     name: "output"
   6532     type_attr: "T"
   6533   }
   6534   attr {
   6535     name: "T"
   6536     type: "type"
   6537     allowed_values {
   6538       list {
   6539         type: DT_FLOAT
   6540         type: DT_DOUBLE
   6541         type: DT_INT64
   6542         type: DT_INT32
   6543         type: DT_UINT8
   6544         type: DT_INT16
   6545         type: DT_INT8
   6546         type: DT_COMPLEX64
   6547         type: DT_QINT8
   6548         type: DT_QUINT8
   6549         type: DT_QINT32
   6550       }
   6551     }
   6552   }
   6553 }
   6554 op {
   6555   name: "BiasAdd"
   6556   input_arg {
   6557     name: "value"
   6558     type_attr: "T"
   6559   }
   6560   input_arg {
   6561     name: "bias"
   6562     type_attr: "T"
   6563   }
   6564   output_arg {
   6565     name: "output"
   6566     type_attr: "T"
   6567   }
   6568   attr {
   6569     name: "T"
   6570     type: "type"
   6571     allowed_values {
   6572       list {
   6573         type: DT_FLOAT
   6574         type: DT_DOUBLE
   6575         type: DT_INT64
   6576         type: DT_INT32
   6577         type: DT_UINT8
   6578         type: DT_UINT16
   6579         type: DT_INT16
   6580         type: DT_INT8
   6581         type: DT_COMPLEX64
   6582         type: DT_QINT8
   6583         type: DT_QUINT8
   6584         type: DT_QINT32
   6585       }
   6586     }
   6587   }
   6588 }
   6589 op {
   6590   name: "BiasAdd"
   6591   input_arg {
   6592     name: "value"
   6593     type_attr: "T"
   6594   }
   6595   input_arg {
   6596     name: "bias"
   6597     type_attr: "T"
   6598   }
   6599   output_arg {
   6600     name: "output"
   6601     type_attr: "T"
   6602   }
   6603   attr {
   6604     name: "T"
   6605     type: "type"
   6606     allowed_values {
   6607       list {
   6608         type: DT_FLOAT
   6609         type: DT_DOUBLE
   6610         type: DT_INT64
   6611         type: DT_INT32
   6612         type: DT_UINT8
   6613         type: DT_UINT16
   6614         type: DT_INT16
   6615         type: DT_INT8
   6616         type: DT_COMPLEX64
   6617         type: DT_QINT8
   6618         type: DT_QUINT8
   6619         type: DT_QINT32
   6620       }
   6621     }
   6622   }
   6623   attr {
   6624     name: "data_format"
   6625     type: "string"
   6626     default_value {
   6627       s: "NHWC"
   6628     }
   6629     allowed_values {
   6630       list {
   6631         s: "NHWC"
   6632         s: "NCHW"
   6633       }
   6634     }
   6635   }
   6636 }
   6637 op {
   6638   name: "BiasAdd"
   6639   input_arg {
   6640     name: "value"
   6641     type_attr: "T"
   6642   }
   6643   input_arg {
   6644     name: "bias"
   6645     type_attr: "T"
   6646   }
   6647   output_arg {
   6648     name: "output"
   6649     type_attr: "T"
   6650   }
   6651   attr {
   6652     name: "T"
   6653     type: "type"
   6654     allowed_values {
   6655       list {
   6656         type: DT_FLOAT
   6657         type: DT_DOUBLE
   6658         type: DT_INT64
   6659         type: DT_INT32
   6660         type: DT_UINT8
   6661         type: DT_UINT16
   6662         type: DT_INT16
   6663         type: DT_INT8
   6664         type: DT_COMPLEX64
   6665         type: DT_COMPLEX128
   6666         type: DT_QINT8
   6667         type: DT_QUINT8
   6668         type: DT_QINT32
   6669       }
   6670     }
   6671   }
   6672   attr {
   6673     name: "data_format"
   6674     type: "string"
   6675     default_value {
   6676       s: "NHWC"
   6677     }
   6678     allowed_values {
   6679       list {
   6680         s: "NHWC"
   6681         s: "NCHW"
   6682       }
   6683     }
   6684   }
   6685 }
   6686 op {
   6687   name: "BiasAdd"
   6688   input_arg {
   6689     name: "value"
   6690     type_attr: "T"
   6691   }
   6692   input_arg {
   6693     name: "bias"
   6694     type_attr: "T"
   6695   }
   6696   output_arg {
   6697     name: "output"
   6698     type_attr: "T"
   6699   }
   6700   attr {
   6701     name: "T"
   6702     type: "type"
   6703     allowed_values {
   6704       list {
   6705         type: DT_FLOAT
   6706         type: DT_DOUBLE
   6707         type: DT_INT64
   6708         type: DT_INT32
   6709         type: DT_UINT8
   6710         type: DT_UINT16
   6711         type: DT_INT16
   6712         type: DT_INT8
   6713         type: DT_COMPLEX64
   6714         type: DT_COMPLEX128
   6715         type: DT_QINT8
   6716         type: DT_QUINT8
   6717         type: DT_QINT32
   6718         type: DT_HALF
   6719       }
   6720     }
   6721   }
   6722   attr {
   6723     name: "data_format"
   6724     type: "string"
   6725     default_value {
   6726       s: "NHWC"
   6727     }
   6728     allowed_values {
   6729       list {
   6730         s: "NHWC"
   6731         s: "NCHW"
   6732       }
   6733     }
   6734   }
   6735 }
   6736 op {
   6737   name: "BiasAddGrad"
   6738   input_arg {
   6739     name: "out_backprop"
   6740     type_attr: "T"
   6741   }
   6742   output_arg {
   6743     name: "output"
   6744     type_attr: "T"
   6745   }
   6746   attr {
   6747     name: "T"
   6748     type: "type"
   6749     allowed_values {
   6750       list {
   6751         type: DT_FLOAT
   6752         type: DT_DOUBLE
   6753         type: DT_INT64
   6754         type: DT_INT32
   6755         type: DT_UINT8
   6756         type: DT_UINT16
   6757         type: DT_INT16
   6758         type: DT_INT8
   6759         type: DT_COMPLEX64
   6760         type: DT_QINT8
   6761         type: DT_QUINT8
   6762         type: DT_QINT32
   6763       }
   6764     }
   6765   }
   6766   attr {
   6767     name: "data_format"
   6768     type: "string"
   6769     default_value {
   6770       s: "NHWC"
   6771     }
   6772     allowed_values {
   6773       list {
   6774         s: "NHWC"
   6775         s: "NCHW"
   6776       }
   6777     }
   6778   }
   6779 }
   6780 op {
   6781   name: "BiasAddGrad"
   6782   input_arg {
   6783     name: "out_backprop"
   6784     type_attr: "T"
   6785   }
   6786   output_arg {
   6787     name: "output"
   6788     type_attr: "T"
   6789   }
   6790   attr {
   6791     name: "T"
   6792     type: "type"
   6793     allowed_values {
   6794       list {
   6795         type: DT_FLOAT
   6796         type: DT_DOUBLE
   6797         type: DT_INT64
   6798         type: DT_INT32
   6799         type: DT_UINT8
   6800         type: DT_UINT16
   6801         type: DT_INT16
   6802         type: DT_INT8
   6803         type: DT_COMPLEX64
   6804         type: DT_COMPLEX128
   6805         type: DT_QINT8
   6806         type: DT_QUINT8
   6807         type: DT_QINT32
   6808       }
   6809     }
   6810   }
   6811   attr {
   6812     name: "data_format"
   6813     type: "string"
   6814     default_value {
   6815       s: "NHWC"
   6816     }
   6817     allowed_values {
   6818       list {
   6819         s: "NHWC"
   6820         s: "NCHW"
   6821       }
   6822     }
   6823   }
   6824 }
   6825 op {
   6826   name: "BiasAddGrad"
   6827   input_arg {
   6828     name: "out_backprop"
   6829     type_attr: "T"
   6830   }
   6831   output_arg {
   6832     name: "output"
   6833     type_attr: "T"
   6834   }
   6835   attr {
   6836     name: "T"
   6837     type: "type"
   6838     allowed_values {
   6839       list {
   6840         type: DT_FLOAT
   6841         type: DT_DOUBLE
   6842         type: DT_INT64
   6843         type: DT_INT32
   6844         type: DT_UINT8
   6845         type: DT_UINT16
   6846         type: DT_INT16
   6847         type: DT_INT8
   6848         type: DT_COMPLEX64
   6849         type: DT_COMPLEX128
   6850         type: DT_QINT8
   6851         type: DT_QUINT8
   6852         type: DT_QINT32
   6853         type: DT_HALF
   6854       }
   6855     }
   6856   }
   6857   attr {
   6858     name: "data_format"
   6859     type: "string"
   6860     default_value {
   6861       s: "NHWC"
   6862     }
   6863     allowed_values {
   6864       list {
   6865         s: "NHWC"
   6866         s: "NCHW"
   6867       }
   6868     }
   6869   }
   6870 }
   6871 op {
   6872   name: "BiasAddV1"
   6873   input_arg {
   6874     name: "value"
   6875     type_attr: "T"
   6876   }
   6877   input_arg {
   6878     name: "bias"
   6879     type_attr: "T"
   6880   }
   6881   output_arg {
   6882     name: "output"
   6883     type_attr: "T"
   6884   }
   6885   attr {
   6886     name: "T"
   6887     type: "type"
   6888     allowed_values {
   6889       list {
   6890         type: DT_FLOAT
   6891         type: DT_DOUBLE
   6892         type: DT_INT64
   6893         type: DT_INT32
   6894         type: DT_UINT8
   6895         type: DT_UINT16
   6896         type: DT_INT16
   6897         type: DT_INT8
   6898         type: DT_COMPLEX64
   6899         type: DT_QINT8
   6900         type: DT_QUINT8
   6901         type: DT_QINT32
   6902       }
   6903     }
   6904   }
   6905 }
   6906 op {
   6907   name: "BiasAddV1"
   6908   input_arg {
   6909     name: "value"
   6910     type_attr: "T"
   6911   }
   6912   input_arg {
   6913     name: "bias"
   6914     type_attr: "T"
   6915   }
   6916   output_arg {
   6917     name: "output"
   6918     type_attr: "T"
   6919   }
   6920   attr {
   6921     name: "T"
   6922     type: "type"
   6923     allowed_values {
   6924       list {
   6925         type: DT_FLOAT
   6926         type: DT_DOUBLE
   6927         type: DT_INT64
   6928         type: DT_INT32
   6929         type: DT_UINT8
   6930         type: DT_UINT16
   6931         type: DT_INT16
   6932         type: DT_INT8
   6933         type: DT_COMPLEX64
   6934         type: DT_COMPLEX128
   6935         type: DT_QINT8
   6936         type: DT_QUINT8
   6937         type: DT_QINT32
   6938       }
   6939     }
   6940   }
   6941 }
   6942 op {
   6943   name: "BiasAddV1"
   6944   input_arg {
   6945     name: "value"
   6946     type_attr: "T"
   6947   }
   6948   input_arg {
   6949     name: "bias"
   6950     type_attr: "T"
   6951   }
   6952   output_arg {
   6953     name: "output"
   6954     type_attr: "T"
   6955   }
   6956   attr {
   6957     name: "T"
   6958     type: "type"
   6959     allowed_values {
   6960       list {
   6961         type: DT_FLOAT
   6962         type: DT_DOUBLE
   6963         type: DT_INT64
   6964         type: DT_INT32
   6965         type: DT_UINT8
   6966         type: DT_UINT16
   6967         type: DT_INT16
   6968         type: DT_INT8
   6969         type: DT_COMPLEX64
   6970         type: DT_COMPLEX128
   6971         type: DT_QINT8
   6972         type: DT_QUINT8
   6973         type: DT_QINT32
   6974         type: DT_HALF
   6975       }
   6976     }
   6977   }
   6978 }
   6979 op {
   6980   name: "Bitcast"
   6981   input_arg {
   6982     name: "input"
   6983     type_attr: "T"
   6984   }
   6985   output_arg {
   6986     name: "output"
   6987     type_attr: "type"
   6988   }
   6989   attr {
   6990     name: "T"
   6991     type: "type"
   6992     allowed_values {
   6993       list {
   6994         type: DT_FLOAT
   6995         type: DT_DOUBLE
   6996         type: DT_INT64
   6997         type: DT_INT32
   6998         type: DT_UINT8
   6999         type: DT_UINT16
   7000         type: DT_INT16
   7001         type: DT_INT8
   7002         type: DT_COMPLEX64
   7003         type: DT_QINT8
   7004         type: DT_QUINT8
   7005         type: DT_QINT32
   7006       }
   7007     }
   7008   }
   7009   attr {
   7010     name: "type"
   7011     type: "type"
   7012     allowed_values {
   7013       list {
   7014         type: DT_FLOAT
   7015         type: DT_DOUBLE
   7016         type: DT_INT64
   7017         type: DT_INT32
   7018         type: DT_UINT8
   7019         type: DT_UINT16
   7020         type: DT_INT16
   7021         type: DT_INT8
   7022         type: DT_COMPLEX64
   7023         type: DT_QINT8
   7024         type: DT_QUINT8
   7025         type: DT_QINT32
   7026       }
   7027     }
   7028   }
   7029 }
   7030 op {
   7031   name: "Bitcast"
   7032   input_arg {
   7033     name: "input"
   7034     type_attr: "T"
   7035   }
   7036   output_arg {
   7037     name: "output"
   7038     type_attr: "type"
   7039   }
   7040   attr {
   7041     name: "T"
   7042     type: "type"
   7043     allowed_values {
   7044       list {
   7045         type: DT_FLOAT
   7046         type: DT_DOUBLE
   7047         type: DT_INT64
   7048         type: DT_INT32
   7049         type: DT_UINT8
   7050         type: DT_UINT16
   7051         type: DT_INT16
   7052         type: DT_INT8
   7053         type: DT_COMPLEX64
   7054         type: DT_COMPLEX128
   7055         type: DT_QINT8
   7056         type: DT_QUINT8
   7057         type: DT_QINT32
   7058       }
   7059     }
   7060   }
   7061   attr {
   7062     name: "type"
   7063     type: "type"
   7064     allowed_values {
   7065       list {
   7066         type: DT_FLOAT
   7067         type: DT_DOUBLE
   7068         type: DT_INT64
   7069         type: DT_INT32
   7070         type: DT_UINT8
   7071         type: DT_UINT16
   7072         type: DT_INT16
   7073         type: DT_INT8
   7074         type: DT_COMPLEX64
   7075         type: DT_COMPLEX128
   7076         type: DT_QINT8
   7077         type: DT_QUINT8
   7078         type: DT_QINT32
   7079       }
   7080     }
   7081   }
   7082 }
   7083 op {
   7084   name: "Bitcast"
   7085   input_arg {
   7086     name: "input"
   7087     type_attr: "T"
   7088   }
   7089   output_arg {
   7090     name: "output"
   7091     type_attr: "type"
   7092   }
   7093   attr {
   7094     name: "T"
   7095     type: "type"
   7096     allowed_values {
   7097       list {
   7098         type: DT_FLOAT
   7099         type: DT_DOUBLE
   7100         type: DT_INT64
   7101         type: DT_INT32
   7102         type: DT_UINT8
   7103         type: DT_UINT16
   7104         type: DT_INT16
   7105         type: DT_INT8
   7106         type: DT_COMPLEX64
   7107         type: DT_COMPLEX128
   7108         type: DT_QINT8
   7109         type: DT_QUINT8
   7110         type: DT_QINT32
   7111         type: DT_HALF
   7112       }
   7113     }
   7114   }
   7115   attr {
   7116     name: "type"
   7117     type: "type"
   7118     allowed_values {
   7119       list {
   7120         type: DT_FLOAT
   7121         type: DT_DOUBLE
   7122         type: DT_INT64
   7123         type: DT_INT32
   7124         type: DT_UINT8
   7125         type: DT_UINT16
   7126         type: DT_INT16
   7127         type: DT_INT8
   7128         type: DT_COMPLEX64
   7129         type: DT_COMPLEX128
   7130         type: DT_QINT8
   7131         type: DT_QUINT8
   7132         type: DT_QINT32
   7133         type: DT_HALF
   7134       }
   7135     }
   7136   }
   7137 }
   7138 op {
   7139   name: "BroadcastArgs"
   7140   input_arg {
   7141     name: "s0"
   7142     type_attr: "T"
   7143   }
   7144   input_arg {
   7145     name: "s1"
   7146     type_attr: "T"
   7147   }
   7148   output_arg {
   7149     name: "r0"
   7150     type_attr: "T"
   7151   }
   7152   attr {
   7153     name: "T"
   7154     type: "type"
   7155     default_value {
   7156       type: DT_INT32
   7157     }
   7158     allowed_values {
   7159       list {
   7160         type: DT_INT32
   7161         type: DT_INT64
   7162       }
   7163     }
   7164   }
   7165 }
   7166 op {
   7167   name: "BroadcastGradientArgs"
   7168   input_arg {
   7169     name: "s0"
   7170     type: DT_INT32
   7171   }
   7172   input_arg {
   7173     name: "s1"
   7174     type: DT_INT32
   7175   }
   7176   output_arg {
   7177     name: "r0"
   7178     type: DT_INT32
   7179   }
   7180   output_arg {
   7181     name: "r1"
   7182     type: DT_INT32
   7183   }
   7184 }
   7185 op {
   7186   name: "BroadcastGradientArgs"
   7187   input_arg {
   7188     name: "s0"
   7189     type_attr: "T"
   7190   }
   7191   input_arg {
   7192     name: "s1"
   7193     type_attr: "T"
   7194   }
   7195   output_arg {
   7196     name: "r0"
   7197     type_attr: "T"
   7198   }
   7199   output_arg {
   7200     name: "r1"
   7201     type_attr: "T"
   7202   }
   7203   attr {
   7204     name: "T"
   7205     type: "type"
   7206     default_value {
   7207       type: DT_INT32
   7208     }
   7209     allowed_values {
   7210       list {
   7211         type: DT_INT32
   7212         type: DT_INT64
   7213       }
   7214     }
   7215   }
   7216 }
   7217 op {
   7218   name: "CTCBeamSearchDecoder"
   7219   input_arg {
   7220     name: "inputs"
   7221     type: DT_FLOAT
   7222   }
   7223   input_arg {
   7224     name: "sequence_length"
   7225     type: DT_INT32
   7226   }
   7227   output_arg {
   7228     name: "decoded_indices"
   7229     type: DT_INT64
   7230     number_attr: "top_paths"
   7231   }
   7232   output_arg {
   7233     name: "decoded_values"
   7234     type: DT_INT64
   7235     number_attr: "top_paths"
   7236   }
   7237   output_arg {
   7238     name: "decoded_shape"
   7239     type: DT_INT64
   7240     number_attr: "top_paths"
   7241   }
   7242   output_arg {
   7243     name: "log_probability"
   7244     type: DT_FLOAT
   7245   }
   7246   attr {
   7247     name: "beam_width"
   7248     type: "int"
   7249     has_minimum: true
   7250     minimum: 1
   7251   }
   7252   attr {
   7253     name: "top_paths"
   7254     type: "int"
   7255     has_minimum: true
   7256     minimum: 1
   7257   }
   7258   attr {
   7259     name: "merge_repeated"
   7260     type: "bool"
   7261     default_value {
   7262       b: true
   7263     }
   7264   }
   7265 }
   7266 op {
   7267   name: "CTCGreedyDecoder"
   7268   input_arg {
   7269     name: "inputs"
   7270     type: DT_FLOAT
   7271   }
   7272   input_arg {
   7273     name: "sequence_length"
   7274     type: DT_INT32
   7275   }
   7276   output_arg {
   7277     name: "decoded_indices"
   7278     type: DT_INT64
   7279   }
   7280   output_arg {
   7281     name: "decoded_values"
   7282     type: DT_INT64
   7283   }
   7284   output_arg {
   7285     name: "decoded_shape"
   7286     type: DT_INT64
   7287   }
   7288   output_arg {
   7289     name: "log_probability"
   7290     type: DT_FLOAT
   7291   }
   7292   attr {
   7293     name: "merge_repeated"
   7294     type: "bool"
   7295     default_value {
   7296       b: false
   7297     }
   7298   }
   7299 }
   7300 op {
   7301   name: "CTCLoss"
   7302   input_arg {
   7303     name: "inputs"
   7304     type: DT_FLOAT
   7305   }
   7306   input_arg {
   7307     name: "labels_indices"
   7308     type: DT_INT64
   7309   }
   7310   input_arg {
   7311     name: "labels_values"
   7312     type: DT_INT32
   7313   }
   7314   input_arg {
   7315     name: "sequence_length"
   7316     type: DT_INT32
   7317   }
   7318   output_arg {
   7319     name: "loss"
   7320     type: DT_FLOAT
   7321   }
   7322   output_arg {
   7323     name: "gradient"
   7324     type: DT_FLOAT
   7325   }
   7326   attr {
   7327     name: "preprocess_collapse_repeated"
   7328     type: "bool"
   7329     default_value {
   7330       b: false
   7331     }
   7332   }
   7333   attr {
   7334     name: "ctc_merge_repeated"
   7335     type: "bool"
   7336     default_value {
   7337       b: true
   7338     }
   7339   }
   7340 }
   7341 op {
   7342   name: "Cast"
   7343   input_arg {
   7344     name: "x"
   7345     type_attr: "SrcT"
   7346   }
   7347   output_arg {
   7348     name: "y"
   7349     type_attr: "DstT"
   7350   }
   7351   attr {
   7352     name: "SrcT"
   7353     type: "type"
   7354   }
   7355   attr {
   7356     name: "DstT"
   7357     type: "type"
   7358   }
   7359 }
   7360 op {
   7361   name: "Ceil"
   7362   input_arg {
   7363     name: "x"
   7364     type_attr: "T"
   7365   }
   7366   output_arg {
   7367     name: "y"
   7368     type_attr: "T"
   7369   }
   7370   attr {
   7371     name: "T"
   7372     type: "type"
   7373     allowed_values {
   7374       list {
   7375         type: DT_FLOAT
   7376         type: DT_DOUBLE
   7377       }
   7378     }
   7379   }
   7380 }
   7381 op {
   7382   name: "Ceil"
   7383   input_arg {
   7384     name: "x"
   7385     type_attr: "T"
   7386   }
   7387   output_arg {
   7388     name: "y"
   7389     type_attr: "T"
   7390   }
   7391   attr {
   7392     name: "T"
   7393     type: "type"
   7394     allowed_values {
   7395       list {
   7396         type: DT_HALF
   7397         type: DT_FLOAT
   7398         type: DT_DOUBLE
   7399       }
   7400     }
   7401   }
   7402 }
   7403 op {
   7404   name: "CheckNumerics"
   7405   input_arg {
   7406     name: "tensor"
   7407     type_attr: "T"
   7408   }
   7409   output_arg {
   7410     name: "output"
   7411     type_attr: "T"
   7412   }
   7413   attr {
   7414     name: "T"
   7415     type: "type"
   7416     allowed_values {
   7417       list {
   7418         type: DT_FLOAT
   7419         type: DT_DOUBLE
   7420       }
   7421     }
   7422   }
   7423   attr {
   7424     name: "message"
   7425     type: "string"
   7426   }
   7427 }
   7428 op {
   7429   name: "CheckNumerics"
   7430   input_arg {
   7431     name: "tensor"
   7432     type_attr: "T"
   7433   }
   7434   output_arg {
   7435     name: "output"
   7436     type_attr: "T"
   7437   }
   7438   attr {
   7439     name: "T"
   7440     type: "type"
   7441     allowed_values {
   7442       list {
   7443         type: DT_HALF
   7444         type: DT_FLOAT
   7445         type: DT_DOUBLE
   7446       }
   7447     }
   7448   }
   7449   attr {
   7450     name: "message"
   7451     type: "string"
   7452   }
   7453 }
   7454 op {
   7455   name: "Cholesky"
   7456   input_arg {
   7457     name: "input"
   7458     type_attr: "T"
   7459   }
   7460   output_arg {
   7461     name: "output"
   7462     type_attr: "T"
   7463   }
   7464   attr {
   7465     name: "T"
   7466     type: "type"
   7467     allowed_values {
   7468       list {
   7469         type: DT_DOUBLE
   7470         type: DT_FLOAT
   7471       }
   7472     }
   7473   }
   7474 }
   7475 op {
   7476   name: "CholeskyGrad"
   7477   input_arg {
   7478     name: "l"
   7479     type_attr: "T"
   7480   }
   7481   input_arg {
   7482     name: "grad"
   7483     type_attr: "T"
   7484   }
   7485   output_arg {
   7486     name: "output"
   7487     type_attr: "T"
   7488   }
   7489   attr {
   7490     name: "T"
   7491     type: "type"
   7492     allowed_values {
   7493       list {
   7494         type: DT_FLOAT
   7495         type: DT_DOUBLE
   7496       }
   7497     }
   7498   }
   7499 }
   7500 op {
   7501   name: "Complex"
   7502   input_arg {
   7503     name: "real"
   7504     type: DT_FLOAT
   7505   }
   7506   input_arg {
   7507     name: "imag"
   7508     type: DT_FLOAT
   7509   }
   7510   output_arg {
   7511     name: "out"
   7512     type: DT_COMPLEX64
   7513   }
   7514 }
   7515 op {
   7516   name: "Complex"
   7517   input_arg {
   7518     name: "real"
   7519     type: DT_FLOAT
   7520   }
   7521   input_arg {
   7522     name: "imag"
   7523     type: DT_FLOAT
   7524   }
   7525   output_arg {
   7526     name: "output"
   7527     type: DT_COMPLEX64
   7528   }
   7529 }
   7530 op {
   7531   name: "Complex"
   7532   input_arg {
   7533     name: "real"
   7534     type_attr: "T"
   7535   }
   7536   input_arg {
   7537     name: "imag"
   7538     type_attr: "T"
   7539   }
   7540   output_arg {
   7541     name: "out"
   7542     type_attr: "Tout"
   7543   }
   7544   attr {
   7545     name: "T"
   7546     type: "type"
   7547     default_value {
   7548       type: DT_FLOAT
   7549     }
   7550     allowed_values {
   7551       list {
   7552         type: DT_FLOAT
   7553         type: DT_DOUBLE
   7554       }
   7555     }
   7556   }
   7557   attr {
   7558     name: "Tout"
   7559     type: "type"
   7560     default_value {
   7561       type: DT_COMPLEX64
   7562     }
   7563     allowed_values {
   7564       list {
   7565         type: DT_COMPLEX64
   7566         type: DT_COMPLEX128
   7567       }
   7568     }
   7569   }
   7570 }
   7571 op {
   7572   name: "ComplexAbs"
   7573   input_arg {
   7574     name: "x"
   7575     type: DT_COMPLEX64
   7576   }
   7577   output_arg {
   7578     name: "y"
   7579     type: DT_FLOAT
   7580   }
   7581 }
   7582 op {
   7583   name: "ComplexAbs"
   7584   input_arg {
   7585     name: "x"
   7586     type_attr: "T"
   7587   }
   7588   output_arg {
   7589     name: "y"
   7590     type_attr: "Tout"
   7591   }
   7592   attr {
   7593     name: "T"
   7594     type: "type"
   7595     default_value {
   7596       type: DT_COMPLEX64
   7597     }
   7598     allowed_values {
   7599       list {
   7600         type: DT_COMPLEX64
   7601         type: DT_COMPLEX128
   7602       }
   7603     }
   7604   }
   7605   attr {
   7606     name: "Tout"
   7607     type: "type"
   7608     default_value {
   7609       type: DT_FLOAT
   7610     }
   7611     allowed_values {
   7612       list {
   7613         type: DT_FLOAT
   7614         type: DT_DOUBLE
   7615       }
   7616     }
   7617   }
   7618 }
   7619 op {
   7620   name: "ComputeAccidentalHits"
   7621   input_arg {
   7622     name: "true_classes"
   7623     type: DT_INT64
   7624   }
   7625   input_arg {
   7626     name: "sampled_candidates"
   7627     type: DT_INT64
   7628   }
   7629   output_arg {
   7630     name: "indices"
   7631     type: DT_INT32
   7632   }
   7633   output_arg {
   7634     name: "ids"
   7635     type: DT_INT64
   7636   }
   7637   output_arg {
   7638     name: "weights"
   7639     type: DT_FLOAT
   7640   }
   7641   attr {
   7642     name: "num_true"
   7643     type: "int"
   7644   }
   7645   attr {
   7646     name: "seed"
   7647     type: "int"
   7648     default_value {
   7649       i: 0
   7650     }
   7651   }
   7652   attr {
   7653     name: "seed2"
   7654     type: "int"
   7655     default_value {
   7656       i: 0
   7657     }
   7658   }
   7659 }
   7660 op {
   7661   name: "Concat"
   7662   input_arg {
   7663     name: "concat_dim"
   7664     type: DT_INT32
   7665   }
   7666   input_arg {
   7667     name: "values"
   7668     type_attr: "T"
   7669     number_attr: "N"
   7670   }
   7671   output_arg {
   7672     name: "output"
   7673     type_attr: "T"
   7674   }
   7675   attr {
   7676     name: "N"
   7677     type: "int"
   7678     has_minimum: true
   7679     minimum: 2
   7680   }
   7681   attr {
   7682     name: "T"
   7683     type: "type"
   7684   }
   7685 }
   7686 op {
   7687   name: "ConcatOffset"
   7688   input_arg {
   7689     name: "concat_dim"
   7690     type: DT_INT32
   7691   }
   7692   input_arg {
   7693     name: "shape"
   7694     type: DT_INT32
   7695     number_attr: "N"
   7696   }
   7697   output_arg {
   7698     name: "offset"
   7699     type: DT_INT32
   7700     number_attr: "N"
   7701   }
   7702   attr {
   7703     name: "N"
   7704     type: "int"
   7705     has_minimum: true
   7706     minimum: 2
   7707   }
   7708 }
   7709 op {
   7710   name: "ConcatV2"
   7711   input_arg {
   7712     name: "values"
   7713     type_attr: "T"
   7714     number_attr: "N"
   7715   }
   7716   input_arg {
   7717     name: "axis"
   7718     type_attr: "Tidx"
   7719   }
   7720   output_arg {
   7721     name: "output"
   7722     type_attr: "T"
   7723   }
   7724   attr {
   7725     name: "N"
   7726     type: "int"
   7727     has_minimum: true
   7728     minimum: 2
   7729   }
   7730   attr {
   7731     name: "T"
   7732     type: "type"
   7733   }
   7734   attr {
   7735     name: "Tidx"
   7736     type: "type"
   7737     default_value {
   7738       type: DT_INT32
   7739     }
   7740     allowed_values {
   7741       list {
   7742         type: DT_INT32
   7743         type: DT_INT64
   7744       }
   7745     }
   7746   }
   7747 }
   7748 op {
   7749   name: "ConditionalAccumulator"
   7750   output_arg {
   7751     name: "handle"
   7752     type: DT_STRING
   7753     is_ref: true
   7754   }
   7755   attr {
   7756     name: "dtype"
   7757     type: "type"
   7758     allowed_values {
   7759       list {
   7760         type: DT_FLOAT
   7761         type: DT_DOUBLE
   7762         type: DT_INT64
   7763         type: DT_INT32
   7764         type: DT_UINT8
   7765         type: DT_UINT16
   7766         type: DT_INT16
   7767         type: DT_INT8
   7768         type: DT_COMPLEX64
   7769         type: DT_COMPLEX128
   7770         type: DT_QINT8
   7771         type: DT_QUINT8
   7772         type: DT_QINT32
   7773         type: DT_HALF
   7774       }
   7775     }
   7776   }
   7777   attr {
   7778     name: "shape"
   7779     type: "shape"
   7780   }
   7781   attr {
   7782     name: "container"
   7783     type: "string"
   7784     default_value {
   7785       s: ""
   7786     }
   7787   }
   7788   attr {
   7789     name: "shared_name"
   7790     type: "string"
   7791     default_value {
   7792       s: ""
   7793     }
   7794   }
   7795   is_stateful: true
   7796 }
   7797 op {
   7798   name: "Conj"
   7799   input_arg {
   7800     name: "in"
   7801     type: DT_COMPLEX64
   7802   }
   7803   output_arg {
   7804     name: "out"
   7805     type: DT_COMPLEX64
   7806   }
   7807 }
   7808 op {
   7809   name: "Conj"
   7810   input_arg {
   7811     name: "input"
   7812     type: DT_COMPLEX64
   7813   }
   7814   output_arg {
   7815     name: "out"
   7816     type: DT_COMPLEX64
   7817   }
   7818 }
   7819 op {
   7820   name: "Conj"
   7821   input_arg {
   7822     name: "input"
   7823     type: DT_COMPLEX64
   7824   }
   7825   output_arg {
   7826     name: "output"
   7827     type: DT_COMPLEX64
   7828   }
   7829 }
   7830 op {
   7831   name: "Conj"
   7832   input_arg {
   7833     name: "input"
   7834     type_attr: "T"
   7835   }
   7836   output_arg {
   7837     name: "output"
   7838     type_attr: "T"
   7839   }
   7840   attr {
   7841     name: "T"
   7842     type: "type"
   7843     default_value {
   7844       type: DT_COMPLEX64
   7845     }
   7846     allowed_values {
   7847       list {
   7848         type: DT_COMPLEX64
   7849         type: DT_COMPLEX128
   7850       }
   7851     }
   7852   }
   7853 }
   7854 op {
   7855   name: "Const"
   7856   output_arg {
   7857     name: "output"
   7858     type_attr: "dtype"
   7859   }
   7860   attr {
   7861     name: "value"
   7862     type: "tensor"
   7863   }
   7864   attr {
   7865     name: "dtype"
   7866     type: "type"
   7867   }
   7868 }
   7869 op {
   7870   name: "ControlTrigger"
   7871 }
   7872 op {
   7873   name: "Conv2D"
   7874   input_arg {
   7875     name: "input"
   7876     type_attr: "T"
   7877   }
   7878   input_arg {
   7879     name: "filter"
   7880     type_attr: "T"
   7881   }
   7882   output_arg {
   7883     name: "output"
   7884     type_attr: "T"
   7885   }
   7886   attr {
   7887     name: "T"
   7888     type: "type"
   7889     allowed_values {
   7890       list {
   7891         type: DT_FLOAT
   7892         type: DT_DOUBLE
   7893       }
   7894     }
   7895   }
   7896   attr {
   7897     name: "strides"
   7898     type: "list(int)"
   7899   }
   7900   attr {
   7901     name: "use_cudnn_on_gpu"
   7902     type: "bool"
   7903     default_value {
   7904       b: true
   7905     }
   7906   }
   7907   attr {
   7908     name: "padding"
   7909     type: "string"
   7910     allowed_values {
   7911       list {
   7912         s: "SAME"
   7913         s: "VALID"
   7914       }
   7915     }
   7916   }
   7917 }
   7918 op {
   7919   name: "Conv2D"
   7920   input_arg {
   7921     name: "input"
   7922     type_attr: "T"
   7923   }
   7924   input_arg {
   7925     name: "filter"
   7926     type_attr: "T"
   7927   }
   7928   output_arg {
   7929     name: "output"
   7930     type_attr: "T"
   7931   }
   7932   attr {
   7933     name: "T"
   7934     type: "type"
   7935     allowed_values {
   7936       list {
   7937         type: DT_FLOAT
   7938         type: DT_DOUBLE
   7939       }
   7940     }
   7941   }
   7942   attr {
   7943     name: "strides"
   7944     type: "list(int)"
   7945   }
   7946   attr {
   7947     name: "use_cudnn_on_gpu"
   7948     type: "bool"
   7949     default_value {
   7950       b: true
   7951     }
   7952   }
   7953   attr {
   7954     name: "padding"
   7955     type: "string"
   7956     allowed_values {
   7957       list {
   7958         s: "SAME"
   7959         s: "VALID"
   7960       }
   7961     }
   7962   }
   7963   attr {
   7964     name: "data_format"
   7965     type: "string"
   7966     default_value {
   7967       s: "NHWC"
   7968     }
   7969     allowed_values {
   7970       list {
   7971         s: "NHWC"
   7972         s: "NCHW"
   7973       }
   7974     }
   7975   }
   7976 }
   7977 op {
   7978   name: "Conv2D"
   7979   input_arg {
   7980     name: "input"
   7981     type_attr: "T"
   7982   }
   7983   input_arg {
   7984     name: "filter"
   7985     type_attr: "T"
   7986   }
   7987   output_arg {
   7988     name: "output"
   7989     type_attr: "T"
   7990   }
   7991   attr {
   7992     name: "T"
   7993     type: "type"
   7994     allowed_values {
   7995       list {
   7996         type: DT_HALF
   7997         type: DT_FLOAT
   7998         type: DT_DOUBLE
   7999       }
   8000     }
   8001   }
   8002   attr {
   8003     name: "strides"
   8004     type: "list(int)"
   8005   }
   8006   attr {
   8007     name: "use_cudnn_on_gpu"
   8008     type: "bool"
   8009     default_value {
   8010       b: true
   8011     }
   8012   }
   8013   attr {
   8014     name: "padding"
   8015     type: "string"
   8016     allowed_values {
   8017       list {
   8018         s: "SAME"
   8019         s: "VALID"
   8020       }
   8021     }
   8022   }
   8023   attr {
   8024     name: "data_format"
   8025     type: "string"
   8026     default_value {
   8027       s: "NHWC"
   8028     }
   8029     allowed_values {
   8030       list {
   8031         s: "NHWC"
   8032         s: "NCHW"
   8033       }
   8034     }
   8035   }
   8036 }
   8037 op {
   8038   name: "Conv2DBackpropFilter"
   8039   input_arg {
   8040     name: "input"
   8041     type_attr: "T"
   8042   }
   8043   input_arg {
   8044     name: "filter_sizes"
   8045     type: DT_INT32
   8046   }
   8047   input_arg {
   8048     name: "out_backprop"
   8049     type_attr: "T"
   8050   }
   8051   output_arg {
   8052     name: "output"
   8053     type_attr: "T"
   8054   }
   8055   attr {
   8056     name: "T"
   8057     type: "type"
   8058     allowed_values {
   8059       list {
   8060         type: DT_FLOAT
   8061         type: DT_DOUBLE
   8062       }
   8063     }
   8064   }
   8065   attr {
   8066     name: "strides"
   8067     type: "list(int)"
   8068   }
   8069   attr {
   8070     name: "use_cudnn_on_gpu"
   8071     type: "bool"
   8072     default_value {
   8073       b: true
   8074     }
   8075   }
   8076   attr {
   8077     name: "padding"
   8078     type: "string"
   8079     allowed_values {
   8080       list {
   8081         s: "SAME"
   8082         s: "VALID"
   8083       }
   8084     }
   8085   }
   8086 }
   8087 op {
   8088   name: "Conv2DBackpropFilter"
   8089   input_arg {
   8090     name: "input"
   8091     type_attr: "T"
   8092   }
   8093   input_arg {
   8094     name: "filter_sizes"
   8095     type: DT_INT32
   8096   }
   8097   input_arg {
   8098     name: "out_backprop"
   8099     type_attr: "T"
   8100   }
   8101   output_arg {
   8102     name: "output"
   8103     type_attr: "T"
   8104   }
   8105   attr {
   8106     name: "T"
   8107     type: "type"
   8108     allowed_values {
   8109       list {
   8110         type: DT_FLOAT
   8111         type: DT_DOUBLE
   8112       }
   8113     }
   8114   }
   8115   attr {
   8116     name: "strides"
   8117     type: "list(int)"
   8118   }
   8119   attr {
   8120     name: "use_cudnn_on_gpu"
   8121     type: "bool"
   8122     default_value {
   8123       b: true
   8124     }
   8125   }
   8126   attr {
   8127     name: "padding"
   8128     type: "string"
   8129     allowed_values {
   8130       list {
   8131         s: "SAME"
   8132         s: "VALID"
   8133       }
   8134     }
   8135   }
   8136   attr {
   8137     name: "data_format"
   8138     type: "string"
   8139     default_value {
   8140       s: "NHWC"
   8141     }
   8142     allowed_values {
   8143       list {
   8144         s: "NHWC"
   8145         s: "NCHW"
   8146       }
   8147     }
   8148   }
   8149 }
   8150 op {
   8151   name: "Conv2DBackpropFilter"
   8152   input_arg {
   8153     name: "input"
   8154     type_attr: "T"
   8155   }
   8156   input_arg {
   8157     name: "filter_sizes"
   8158     type: DT_INT32
   8159   }
   8160   input_arg {
   8161     name: "out_backprop"
   8162     type_attr: "T"
   8163   }
   8164   output_arg {
   8165     name: "output"
   8166     type_attr: "T"
   8167   }
   8168   attr {
   8169     name: "T"
   8170     type: "type"
   8171     allowed_values {
   8172       list {
   8173         type: DT_HALF
   8174         type: DT_FLOAT
   8175         type: DT_DOUBLE
   8176       }
   8177     }
   8178   }
   8179   attr {
   8180     name: "strides"
   8181     type: "list(int)"
   8182   }
   8183   attr {
   8184     name: "use_cudnn_on_gpu"
   8185     type: "bool"
   8186     default_value {
   8187       b: true
   8188     }
   8189   }
   8190   attr {
   8191     name: "padding"
   8192     type: "string"
   8193     allowed_values {
   8194       list {
   8195         s: "SAME"
   8196         s: "VALID"
   8197       }
   8198     }
   8199   }
   8200   attr {
   8201     name: "data_format"
   8202     type: "string"
   8203     default_value {
   8204       s: "NHWC"
   8205     }
   8206     allowed_values {
   8207       list {
   8208         s: "NHWC"
   8209         s: "NCHW"
   8210       }
   8211     }
   8212   }
   8213 }
   8214 op {
   8215   name: "Conv2DBackpropInput"
   8216   input_arg {
   8217     name: "input_sizes"
   8218     type: DT_INT32
   8219   }
   8220   input_arg {
   8221     name: "filter"
   8222     type_attr: "T"
   8223   }
   8224   input_arg {
   8225     name: "out_backprop"
   8226     type_attr: "T"
   8227   }
   8228   output_arg {
   8229     name: "output"
   8230     type_attr: "T"
   8231   }
   8232   attr {
   8233     name: "T"
   8234     type: "type"
   8235     allowed_values {
   8236       list {
   8237         type: DT_FLOAT
   8238         type: DT_DOUBLE
   8239       }
   8240     }
   8241   }
   8242   attr {
   8243     name: "strides"
   8244     type: "list(int)"
   8245   }
   8246   attr {
   8247     name: "use_cudnn_on_gpu"
   8248     type: "bool"
   8249     default_value {
   8250       b: true
   8251     }
   8252   }
   8253   attr {
   8254     name: "padding"
   8255     type: "string"
   8256     allowed_values {
   8257       list {
   8258         s: "SAME"
   8259         s: "VALID"
   8260       }
   8261     }
   8262   }
   8263 }
   8264 op {
   8265   name: "Conv2DBackpropInput"
   8266   input_arg {
   8267     name: "input_sizes"
   8268     type: DT_INT32
   8269   }
   8270   input_arg {
   8271     name: "filter"
   8272     type_attr: "T"
   8273   }
   8274   input_arg {
   8275     name: "out_backprop"
   8276     type_attr: "T"
   8277   }
   8278   output_arg {
   8279     name: "output"
   8280     type_attr: "T"
   8281   }
   8282   attr {
   8283     name: "T"
   8284     type: "type"
   8285     allowed_values {
   8286       list {
   8287         type: DT_FLOAT
   8288         type: DT_DOUBLE
   8289       }
   8290     }
   8291   }
   8292   attr {
   8293     name: "strides"
   8294     type: "list(int)"
   8295   }
   8296   attr {
   8297     name: "use_cudnn_on_gpu"
   8298     type: "bool"
   8299     default_value {
   8300       b: true
   8301     }
   8302   }
   8303   attr {
   8304     name: "padding"
   8305     type: "string"
   8306     allowed_values {
   8307       list {
   8308         s: "SAME"
   8309         s: "VALID"
   8310       }
   8311     }
   8312   }
   8313   attr {
   8314     name: "data_format"
   8315     type: "string"
   8316     default_value {
   8317       s: "NHWC"
   8318     }
   8319     allowed_values {
   8320       list {
   8321         s: "NHWC"
   8322         s: "NCHW"
   8323       }
   8324     }
   8325   }
   8326 }
   8327 op {
   8328   name: "Conv2DBackpropInput"
   8329   input_arg {
   8330     name: "input_sizes"
   8331     type: DT_INT32
   8332   }
   8333   input_arg {
   8334     name: "filter"
   8335     type_attr: "T"
   8336   }
   8337   input_arg {
   8338     name: "out_backprop"
   8339     type_attr: "T"
   8340   }
   8341   output_arg {
   8342     name: "output"
   8343     type_attr: "T"
   8344   }
   8345   attr {
   8346     name: "T"
   8347     type: "type"
   8348     allowed_values {
   8349       list {
   8350         type: DT_HALF
   8351         type: DT_FLOAT
   8352         type: DT_DOUBLE
   8353       }
   8354     }
   8355   }
   8356   attr {
   8357     name: "strides"
   8358     type: "list(int)"
   8359   }
   8360   attr {
   8361     name: "use_cudnn_on_gpu"
   8362     type: "bool"
   8363     default_value {
   8364       b: true
   8365     }
   8366   }
   8367   attr {
   8368     name: "padding"
   8369     type: "string"
   8370     allowed_values {
   8371       list {
   8372         s: "SAME"
   8373         s: "VALID"
   8374       }
   8375     }
   8376   }
   8377   attr {
   8378     name: "data_format"
   8379     type: "string"
   8380     default_value {
   8381       s: "NHWC"
   8382     }
   8383     allowed_values {
   8384       list {
   8385         s: "NHWC"
   8386         s: "NCHW"
   8387       }
   8388     }
   8389   }
   8390 }
   8391 op {
   8392   name: "Conv3D"
   8393   input_arg {
   8394     name: "input"
   8395     type_attr: "T"
   8396   }
   8397   input_arg {
   8398     name: "filter"
   8399     type_attr: "T"
   8400   }
   8401   output_arg {
   8402     name: "output"
   8403     type_attr: "T"
   8404   }
   8405   attr {
   8406     name: "T"
   8407     type: "type"
   8408     allowed_values {
   8409       list {
   8410         type: DT_FLOAT
   8411         type: DT_DOUBLE
   8412         type: DT_INT64
   8413         type: DT_INT32
   8414         type: DT_UINT8
   8415         type: DT_UINT16
   8416         type: DT_INT16
   8417         type: DT_INT8
   8418         type: DT_COMPLEX64
   8419         type: DT_COMPLEX128
   8420         type: DT_QINT8
   8421         type: DT_QUINT8
   8422         type: DT_QINT32
   8423         type: DT_HALF
   8424       }
   8425     }
   8426   }
   8427   attr {
   8428     name: "strides"
   8429     type: "list(int)"
   8430     has_minimum: true
   8431     minimum: 5
   8432   }
   8433   attr {
   8434     name: "padding"
   8435     type: "string"
   8436     allowed_values {
   8437       list {
   8438         s: "SAME"
   8439         s: "VALID"
   8440       }
   8441     }
   8442   }
   8443 }
   8444 op {
   8445   name: "Conv3DBackpropFilter"
   8446   input_arg {
   8447     name: "input"
   8448     type_attr: "T"
   8449   }
   8450   input_arg {
   8451     name: "filter"
   8452     type_attr: "T"
   8453   }
   8454   input_arg {
   8455     name: "out_backprop"
   8456     type_attr: "T"
   8457   }
   8458   output_arg {
   8459     name: "output"
   8460     type_attr: "T"
   8461   }
   8462   attr {
   8463     name: "T"
   8464     type: "type"
   8465     allowed_values {
   8466       list {
   8467         type: DT_FLOAT
   8468         type: DT_DOUBLE
   8469         type: DT_INT64
   8470         type: DT_INT32
   8471         type: DT_UINT8
   8472         type: DT_UINT16
   8473         type: DT_INT16
   8474         type: DT_INT8
   8475         type: DT_COMPLEX64
   8476         type: DT_COMPLEX128
   8477         type: DT_QINT8
   8478         type: DT_QUINT8
   8479         type: DT_QINT32
   8480         type: DT_HALF
   8481       }
   8482     }
   8483   }
   8484   attr {
   8485     name: "strides"
   8486     type: "list(int)"
   8487     has_minimum: true
   8488     minimum: 5
   8489   }
   8490   attr {
   8491     name: "padding"
   8492     type: "string"
   8493     allowed_values {
   8494       list {
   8495         s: "SAME"
   8496         s: "VALID"
   8497       }
   8498     }
   8499   }
   8500 }
   8501 op {
   8502   name: "Conv3DBackpropFilter"
   8503   input_arg {
   8504     name: "input"
   8505     type_attr: "T"
   8506   }
   8507   input_arg {
   8508     name: "filter"
   8509     type_attr: "T"
   8510   }
   8511   input_arg {
   8512     name: "out_backprop"
   8513     type_attr: "T"
   8514   }
   8515   output_arg {
   8516     name: "output"
   8517     type_attr: "T"
   8518   }
   8519   attr {
   8520     name: "T"
   8521     type: "type"
   8522     allowed_values {
   8523       list {
   8524         type: DT_FLOAT
   8525         type: DT_DOUBLE
   8526         type: DT_INT64
   8527         type: DT_INT32
   8528         type: DT_UINT8
   8529         type: DT_UINT16
   8530         type: DT_INT16
   8531         type: DT_INT8
   8532         type: DT_COMPLEX64
   8533         type: DT_COMPLEX128
   8534         type: DT_QINT8
   8535         type: DT_QUINT8
   8536         type: DT_QINT32
   8537         type: DT_HALF
   8538       }
   8539     }
   8540   }
   8541   attr {
   8542     name: "strides"
   8543     type: "list(int)"
   8544     has_minimum: true
   8545     minimum: 5
   8546   }
   8547   attr {
   8548     name: "padding"
   8549     type: "string"
   8550     allowed_values {
   8551       list {
   8552         s: "SAME"
   8553         s: "VALID"
   8554       }
   8555     }
   8556   }
   8557   deprecation {
   8558     version: 10
   8559   }
   8560 }
   8561 op {
   8562   name: "Conv3DBackpropFilterV2"
   8563   input_arg {
   8564     name: "input"
   8565     type_attr: "T"
   8566   }
   8567   input_arg {
   8568     name: "filter_sizes"
   8569     type: DT_INT32
   8570   }
   8571   input_arg {
   8572     name: "out_backprop"
   8573     type_attr: "T"
   8574   }
   8575   output_arg {
   8576     name: "output"
   8577     type_attr: "T"
   8578   }
   8579   attr {
   8580     name: "T"
   8581     type: "type"
   8582     allowed_values {
   8583       list {
   8584         type: DT_FLOAT
   8585         type: DT_DOUBLE
   8586         type: DT_INT64
   8587         type: DT_INT32
   8588         type: DT_UINT8
   8589         type: DT_UINT16
   8590         type: DT_INT16
   8591         type: DT_INT8
   8592         type: DT_COMPLEX64
   8593         type: DT_COMPLEX128
   8594         type: DT_QINT8
   8595         type: DT_QUINT8
   8596         type: DT_QINT32
   8597         type: DT_HALF
   8598       }
   8599     }
   8600   }
   8601   attr {
   8602     name: "strides"
   8603     type: "list(int)"
   8604     has_minimum: true
   8605     minimum: 5
   8606   }
   8607   attr {
   8608     name: "padding"
   8609     type: "string"
   8610     allowed_values {
   8611       list {
   8612         s: "SAME"
   8613         s: "VALID"
   8614       }
   8615     }
   8616   }
   8617 }
   8618 op {
   8619   name: "Conv3DBackpropInput"
   8620   input_arg {
   8621     name: "input"
   8622     type_attr: "T"
   8623   }
   8624   input_arg {
   8625     name: "filter"
   8626     type_attr: "T"
   8627   }
   8628   input_arg {
   8629     name: "out_backprop"
   8630     type_attr: "T"
   8631   }
   8632   output_arg {
   8633     name: "output"
   8634     type_attr: "T"
   8635   }
   8636   attr {
   8637     name: "T"
   8638     type: "type"
   8639     allowed_values {
   8640       list {
   8641         type: DT_FLOAT
   8642         type: DT_DOUBLE
   8643         type: DT_INT64
   8644         type: DT_INT32
   8645         type: DT_UINT8
   8646         type: DT_UINT16
   8647         type: DT_INT16
   8648         type: DT_INT8
   8649         type: DT_COMPLEX64
   8650         type: DT_COMPLEX128
   8651         type: DT_QINT8
   8652         type: DT_QUINT8
   8653         type: DT_QINT32
   8654         type: DT_HALF
   8655       }
   8656     }
   8657   }
   8658   attr {
   8659     name: "strides"
   8660     type: "list(int)"
   8661     has_minimum: true
   8662     minimum: 5
   8663   }
   8664   attr {
   8665     name: "padding"
   8666     type: "string"
   8667     allowed_values {
   8668       list {
   8669         s: "SAME"
   8670         s: "VALID"
   8671       }
   8672     }
   8673   }
   8674 }
   8675 op {
   8676   name: "Conv3DBackpropInput"
   8677   input_arg {
   8678     name: "input"
   8679     type_attr: "T"
   8680   }
   8681   input_arg {
   8682     name: "filter"
   8683     type_attr: "T"
   8684   }
   8685   input_arg {
   8686     name: "out_backprop"
   8687     type_attr: "T"
   8688   }
   8689   output_arg {
   8690     name: "output"
   8691     type_attr: "T"
   8692   }
   8693   attr {
   8694     name: "T"
   8695     type: "type"
   8696     allowed_values {
   8697       list {
   8698         type: DT_FLOAT
   8699         type: DT_DOUBLE
   8700         type: DT_INT64
   8701         type: DT_INT32
   8702         type: DT_UINT8
   8703         type: DT_UINT16
   8704         type: DT_INT16
   8705         type: DT_INT8
   8706         type: DT_COMPLEX64
   8707         type: DT_COMPLEX128
   8708         type: DT_QINT8
   8709         type: DT_QUINT8
   8710         type: DT_QINT32
   8711         type: DT_HALF
   8712       }
   8713     }
   8714   }
   8715   attr {
   8716     name: "strides"
   8717     type: "list(int)"
   8718     has_minimum: true
   8719     minimum: 5
   8720   }
   8721   attr {
   8722     name: "padding"
   8723     type: "string"
   8724     allowed_values {
   8725       list {
   8726         s: "SAME"
   8727         s: "VALID"
   8728       }
   8729     }
   8730   }
   8731   deprecation {
   8732     version: 10
   8733   }
   8734 }
   8735 op {
   8736   name: "Conv3DBackpropInputV2"
   8737   input_arg {
   8738     name: "input_sizes"
   8739     type: DT_INT32
   8740   }
   8741   input_arg {
   8742     name: "filter"
   8743     type_attr: "T"
   8744   }
   8745   input_arg {
   8746     name: "out_backprop"
   8747     type_attr: "T"
   8748   }
   8749   output_arg {
   8750     name: "output"
   8751     type_attr: "T"
   8752   }
   8753   attr {
   8754     name: "T"
   8755     type: "type"
   8756     allowed_values {
   8757       list {
   8758         type: DT_FLOAT
   8759         type: DT_DOUBLE
   8760         type: DT_INT64
   8761         type: DT_INT32
   8762         type: DT_UINT8
   8763         type: DT_UINT16
   8764         type: DT_INT16
   8765         type: DT_INT8
   8766         type: DT_COMPLEX64
   8767         type: DT_COMPLEX128
   8768         type: DT_QINT8
   8769         type: DT_QUINT8
   8770         type: DT_QINT32
   8771         type: DT_HALF
   8772       }
   8773     }
   8774   }
   8775   attr {
   8776     name: "strides"
   8777     type: "list(int)"
   8778     has_minimum: true
   8779     minimum: 5
   8780   }
   8781   attr {
   8782     name: "padding"
   8783     type: "string"
   8784     allowed_values {
   8785       list {
   8786         s: "SAME"
   8787         s: "VALID"
   8788       }
   8789     }
   8790   }
   8791 }
   8792 op {
   8793   name: "Copy"
   8794   input_arg {
   8795     name: "input"
   8796     type_attr: "T"
   8797   }
   8798   output_arg {
   8799     name: "output"
   8800     type_attr: "T"
   8801   }
   8802   attr {
   8803     name: "T"
   8804     type: "type"
   8805   }
   8806   attr {
   8807     name: "tensor_name"
   8808     type: "string"
   8809     default_value {
   8810       s: ""
   8811     }
   8812   }
   8813 }
   8814 op {
   8815   name: "Copy"
   8816   input_arg {
   8817     name: "input"
   8818     type_attr: "T"
   8819   }
   8820   output_arg {
   8821     name: "output"
   8822     type_attr: "T"
   8823   }
   8824   attr {
   8825     name: "T"
   8826     type: "type"
   8827   }
   8828   attr {
   8829     name: "tensor_name"
   8830     type: "string"
   8831     default_value {
   8832       s: ""
   8833     }
   8834   }
   8835   allows_uninitialized_input: true
   8836 }
   8837 op {
   8838   name: "CopyHost"
   8839   input_arg {
   8840     name: "input"
   8841     type_attr: "T"
   8842   }
   8843   output_arg {
   8844     name: "output"
   8845     type_attr: "T"
   8846   }
   8847   attr {
   8848     name: "T"
   8849     type: "type"
   8850   }
   8851   attr {
   8852     name: "tensor_name"
   8853     type: "string"
   8854     default_value {
   8855       s: ""
   8856     }
   8857   }
   8858 }
   8859 op {
   8860   name: "CopyHost"
   8861   input_arg {
   8862     name: "input"
   8863     type_attr: "T"
   8864   }
   8865   output_arg {
   8866     name: "output"
   8867     type_attr: "T"
   8868   }
   8869   attr {
   8870     name: "T"
   8871     type: "type"
   8872   }
   8873   attr {
   8874     name: "tensor_name"
   8875     type: "string"
   8876     default_value {
   8877       s: ""
   8878     }
   8879   }
   8880   allows_uninitialized_input: true
   8881 }
   8882 op {
   8883   name: "Cos"
   8884   input_arg {
   8885     name: "x"
   8886     type_attr: "T"
   8887   }
   8888   output_arg {
   8889     name: "y"
   8890     type_attr: "T"
   8891   }
   8892   attr {
   8893     name: "T"
   8894     type: "type"
   8895     allowed_values {
   8896       list {
   8897         type: DT_FLOAT
   8898         type: DT_DOUBLE
   8899         type: DT_COMPLEX64
   8900       }
   8901     }
   8902   }
   8903 }
   8904 op {
   8905   name: "Cos"
   8906   input_arg {
   8907     name: "x"
   8908     type_attr: "T"
   8909   }
   8910   output_arg {
   8911     name: "y"
   8912     type_attr: "T"
   8913   }
   8914   attr {
   8915     name: "T"
   8916     type: "type"
   8917     allowed_values {
   8918       list {
   8919         type: DT_HALF
   8920         type: DT_FLOAT
   8921         type: DT_DOUBLE
   8922         type: DT_COMPLEX64
   8923       }
   8924     }
   8925   }
   8926 }
   8927 op {
   8928   name: "Cos"
   8929   input_arg {
   8930     name: "x"
   8931     type_attr: "T"
   8932   }
   8933   output_arg {
   8934     name: "y"
   8935     type_attr: "T"
   8936   }
   8937   attr {
   8938     name: "T"
   8939     type: "type"
   8940     allowed_values {
   8941       list {
   8942         type: DT_HALF
   8943         type: DT_FLOAT
   8944         type: DT_DOUBLE
   8945         type: DT_COMPLEX64
   8946         type: DT_COMPLEX128
   8947       }
   8948     }
   8949   }
   8950 }
   8951 op {
   8952   name: "CountUpTo"
   8953   input_arg {
   8954     name: "ref"
   8955     type_attr: "T"
   8956     is_ref: true
   8957   }
   8958   output_arg {
   8959     name: "output"
   8960     type_attr: "T"
   8961   }
   8962   attr {
   8963     name: "limit"
   8964     type: "int"
   8965   }
   8966   attr {
   8967     name: "T"
   8968     type: "type"
   8969     allowed_values {
   8970       list {
   8971         type: DT_INT32
   8972         type: DT_INT64
   8973       }
   8974     }
   8975   }
   8976 }
   8977 op {
   8978   name: "CropAndResize"
   8979   input_arg {
   8980     name: "image"
   8981     type_attr: "T"
   8982   }
   8983   input_arg {
   8984     name: "boxes"
   8985     type: DT_FLOAT
   8986   }
   8987   input_arg {
   8988     name: "box_ind"
   8989     type: DT_INT32
   8990   }
   8991   input_arg {
   8992     name: "crop_size"
   8993     type: DT_INT32
   8994   }
   8995   output_arg {
   8996     name: "crops"
   8997     type: DT_FLOAT
   8998   }
   8999   attr {
   9000     name: "T"
   9001     type: "type"
   9002     allowed_values {
   9003       list {
   9004         type: DT_UINT8
   9005         type: DT_INT8
   9006         type: DT_INT16
   9007         type: DT_INT32
   9008         type: DT_INT64
   9009         type: DT_HALF
   9010         type: DT_FLOAT
   9011         type: DT_DOUBLE
   9012       }
   9013     }
   9014   }
   9015   attr {
   9016     name: "method"
   9017     type: "string"
   9018     default_value {
   9019       s: "bilinear"
   9020     }
   9021     allowed_values {
   9022       list {
   9023         s: "bilinear"
   9024       }
   9025     }
   9026   }
   9027   attr {
   9028     name: "extrapolation_value"
   9029     type: "float"
   9030     default_value {
   9031       f: 0
   9032     }
   9033   }
   9034 }
   9035 op {
   9036   name: "CropAndResizeGradBoxes"
   9037   input_arg {
   9038     name: "grads"
   9039     type: DT_FLOAT
   9040   }
   9041   input_arg {
   9042     name: "image"
   9043     type_attr: "T"
   9044   }
   9045   input_arg {
   9046     name: "boxes"
   9047     type: DT_FLOAT
   9048   }
   9049   input_arg {
   9050     name: "box_ind"
   9051     type: DT_INT32
   9052   }
   9053   output_arg {
   9054     name: "output"
   9055     type: DT_FLOAT
   9056   }
   9057   attr {
   9058     name: "T"
   9059     type: "type"
   9060     allowed_values {
   9061       list {
   9062         type: DT_UINT8
   9063         type: DT_INT8
   9064         type: DT_INT16
   9065         type: DT_INT32
   9066         type: DT_INT64
   9067         type: DT_HALF
   9068         type: DT_FLOAT
   9069         type: DT_DOUBLE
   9070       }
   9071     }
   9072   }
   9073   attr {
   9074     name: "method"
   9075     type: "string"
   9076     default_value {
   9077       s: "bilinear"
   9078     }
   9079     allowed_values {
   9080       list {
   9081         s: "bilinear"
   9082       }
   9083     }
   9084   }
   9085 }
   9086 op {
   9087   name: "CropAndResizeGradImage"
   9088   input_arg {
   9089     name: "grads"
   9090     type: DT_FLOAT
   9091   }
   9092   input_arg {
   9093     name: "boxes"
   9094     type: DT_FLOAT
   9095   }
   9096   input_arg {
   9097     name: "box_ind"
   9098     type: DT_INT32
   9099   }
   9100   input_arg {
   9101     name: "image_size"
   9102     type: DT_INT32
   9103   }
   9104   output_arg {
   9105     name: "output"
   9106     type_attr: "T"
   9107   }
   9108   attr {
   9109     name: "T"
   9110     type: "type"
   9111     allowed_values {
   9112       list {
   9113         type: DT_FLOAT
   9114         type: DT_HALF
   9115         type: DT_DOUBLE
   9116       }
   9117     }
   9118   }
   9119   attr {
   9120     name: "method"
   9121     type: "string"
   9122     default_value {
   9123       s: "bilinear"
   9124     }
   9125     allowed_values {
   9126       list {
   9127         s: "bilinear"
   9128       }
   9129     }
   9130   }
   9131 }
   9132 op {
   9133   name: "Cross"
   9134   input_arg {
   9135     name: "a"
   9136     type_attr: "T"
   9137   }
   9138   input_arg {
   9139     name: "b"
   9140     type_attr: "T"
   9141   }
   9142   output_arg {
   9143     name: "product"
   9144     type_attr: "T"
   9145   }
   9146   attr {
   9147     name: "T"
   9148     type: "type"
   9149     allowed_values {
   9150       list {
   9151         type: DT_FLOAT
   9152         type: DT_DOUBLE
   9153         type: DT_INT32
   9154         type: DT_INT64
   9155         type: DT_UINT8
   9156         type: DT_INT16
   9157         type: DT_INT8
   9158         type: DT_UINT16
   9159       }
   9160     }
   9161   }
   9162 }
   9163 op {
   9164   name: "Cross"
   9165   input_arg {
   9166     name: "a"
   9167     type_attr: "T"
   9168   }
   9169   input_arg {
   9170     name: "b"
   9171     type_attr: "T"
   9172   }
   9173   output_arg {
   9174     name: "product"
   9175     type_attr: "T"
   9176   }
   9177   attr {
   9178     name: "T"
   9179     type: "type"
   9180     allowed_values {
   9181       list {
   9182         type: DT_FLOAT
   9183         type: DT_DOUBLE
   9184         type: DT_INT32
   9185         type: DT_INT64
   9186         type: DT_UINT8
   9187         type: DT_INT16
   9188         type: DT_INT8
   9189         type: DT_UINT16
   9190         type: DT_HALF
   9191       }
   9192     }
   9193   }
   9194 }
   9195 op {
   9196   name: "Cumprod"
   9197   input_arg {
   9198     name: "x"
   9199     type_attr: "T"
   9200   }
   9201   input_arg {
   9202     name: "axis"
   9203     type: DT_INT32
   9204   }
   9205   output_arg {
   9206     name: "out"
   9207     type_attr: "T"
   9208   }
   9209   attr {
   9210     name: "exclusive"
   9211     type: "bool"
   9212     default_value {
   9213       b: false
   9214     }
   9215   }
   9216   attr {
   9217     name: "reverse"
   9218     type: "bool"
   9219     default_value {
   9220       b: false
   9221     }
   9222   }
   9223   attr {
   9224     name: "T"
   9225     type: "type"
   9226     allowed_values {
   9227       list {
   9228         type: DT_FLOAT
   9229         type: DT_DOUBLE
   9230         type: DT_INT64
   9231         type: DT_INT32
   9232         type: DT_UINT8
   9233         type: DT_UINT16
   9234         type: DT_INT16
   9235         type: DT_INT8
   9236         type: DT_COMPLEX64
   9237         type: DT_COMPLEX128
   9238         type: DT_QINT8
   9239         type: DT_QUINT8
   9240         type: DT_QINT32
   9241         type: DT_HALF
   9242       }
   9243     }
   9244   }
   9245 }
   9246 op {
   9247   name: "Cumprod"
   9248   input_arg {
   9249     name: "x"
   9250     type_attr: "T"
   9251   }
   9252   input_arg {
   9253     name: "axis"
   9254     type_attr: "Tidx"
   9255   }
   9256   output_arg {
   9257     name: "out"
   9258     type_attr: "T"
   9259   }
   9260   attr {
   9261     name: "exclusive"
   9262     type: "bool"
   9263     default_value {
   9264       b: false
   9265     }
   9266   }
   9267   attr {
   9268     name: "reverse"
   9269     type: "bool"
   9270     default_value {
   9271       b: false
   9272     }
   9273   }
   9274   attr {
   9275     name: "T"
   9276     type: "type"
   9277     allowed_values {
   9278       list {
   9279         type: DT_FLOAT
   9280         type: DT_DOUBLE
   9281         type: DT_INT64
   9282         type: DT_INT32
   9283         type: DT_UINT8
   9284         type: DT_UINT16
   9285         type: DT_INT16
   9286         type: DT_INT8
   9287         type: DT_COMPLEX64
   9288         type: DT_COMPLEX128
   9289         type: DT_QINT8
   9290         type: DT_QUINT8
   9291         type: DT_QINT32
   9292         type: DT_HALF
   9293       }
   9294     }
   9295   }
   9296   attr {
   9297     name: "Tidx"
   9298     type: "type"
   9299     default_value {
   9300       type: DT_INT32
   9301     }
   9302     allowed_values {
   9303       list {
   9304         type: DT_INT32
   9305         type: DT_INT64
   9306       }
   9307     }
   9308   }
   9309 }
   9310 op {
   9311   name: "Cumsum"
   9312   input_arg {
   9313     name: "x"
   9314     type_attr: "T"
   9315   }
   9316   input_arg {
   9317     name: "axis"
   9318     type: DT_INT32
   9319   }
   9320   output_arg {
   9321     name: "out"
   9322     type_attr: "T"
   9323   }
   9324   attr {
   9325     name: "exclusive"
   9326     type: "bool"
   9327     default_value {
   9328       b: false
   9329     }
   9330   }
   9331   attr {
   9332     name: "reverse"
   9333     type: "bool"
   9334     default_value {
   9335       b: false
   9336     }
   9337   }
   9338   attr {
   9339     name: "T"
   9340     type: "type"
   9341     allowed_values {
   9342       list {
   9343         type: DT_FLOAT
   9344         type: DT_DOUBLE
   9345         type: DT_INT64
   9346         type: DT_INT32
   9347         type: DT_UINT8
   9348         type: DT_UINT16
   9349         type: DT_INT16
   9350         type: DT_INT8
   9351         type: DT_COMPLEX64
   9352         type: DT_COMPLEX128
   9353         type: DT_QINT8
   9354         type: DT_QUINT8
   9355         type: DT_QINT32
   9356         type: DT_HALF
   9357       }
   9358     }
   9359   }
   9360 }
   9361 op {
   9362   name: "Cumsum"
   9363   input_arg {
   9364     name: "x"
   9365     type_attr: "T"
   9366   }
   9367   input_arg {
   9368     name: "axis"
   9369     type_attr: "Tidx"
   9370   }
   9371   output_arg {
   9372     name: "out"
   9373     type_attr: "T"
   9374   }
   9375   attr {
   9376     name: "exclusive"
   9377     type: "bool"
   9378     default_value {
   9379       b: false
   9380     }
   9381   }
   9382   attr {
   9383     name: "reverse"
   9384     type: "bool"
   9385     default_value {
   9386       b: false
   9387     }
   9388   }
   9389   attr {
   9390     name: "T"
   9391     type: "type"
   9392     allowed_values {
   9393       list {
   9394         type: DT_FLOAT
   9395         type: DT_DOUBLE
   9396         type: DT_INT64
   9397         type: DT_INT32
   9398         type: DT_UINT8
   9399         type: DT_UINT16
   9400         type: DT_INT16
   9401         type: DT_INT8
   9402         type: DT_COMPLEX64
   9403         type: DT_COMPLEX128
   9404         type: DT_QINT8
   9405         type: DT_QUINT8
   9406         type: DT_QINT32
   9407         type: DT_HALF
   9408       }
   9409     }
   9410   }
   9411   attr {
   9412     name: "Tidx"
   9413     type: "type"
   9414     default_value {
   9415       type: DT_INT32
   9416     }
   9417     allowed_values {
   9418       list {
   9419         type: DT_INT32
   9420         type: DT_INT64
   9421       }
   9422     }
   9423   }
   9424 }
   9425 op {
   9426   name: "DebugIdentity"
   9427   input_arg {
   9428     name: "input"
   9429     type_attr: "T"
   9430   }
   9431   output_arg {
   9432     name: "output"
   9433     type_attr: "T"
   9434   }
   9435   attr {
   9436     name: "T"
   9437     type: "type"
   9438   }
   9439   attr {
   9440     name: "tensor_name"
   9441     type: "string"
   9442     default_value {
   9443       s: ""
   9444     }
   9445   }
   9446 }
   9447 op {
   9448   name: "DebugIdentity"
   9449   input_arg {
   9450     name: "input"
   9451     type_attr: "T"
   9452   }
   9453   output_arg {
   9454     name: "output"
   9455     type_attr: "T"
   9456   }
   9457   attr {
   9458     name: "T"
   9459     type: "type"
   9460   }
   9461   attr {
   9462     name: "tensor_name"
   9463     type: "string"
   9464     default_value {
   9465       s: ""
   9466     }
   9467   }
   9468   attr {
   9469     name: "debug_urls"
   9470     type: "list(string)"
   9471     default_value {
   9472       list {
   9473       }
   9474     }
   9475   }
   9476 }
   9477 op {
   9478   name: "DebugIdentity"
   9479   input_arg {
   9480     name: "input"
   9481     type_attr: "T"
   9482   }
   9483   output_arg {
   9484     name: "output"
   9485     type_attr: "T"
   9486   }
   9487   attr {
   9488     name: "T"
   9489     type: "type"
   9490   }
   9491   attr {
   9492     name: "tensor_name"
   9493     type: "string"
   9494     default_value {
   9495       s: ""
   9496     }
   9497   }
   9498   attr {
   9499     name: "debug_urls"
   9500     type: "list(string)"
   9501     default_value {
   9502       list {
   9503       }
   9504     }
   9505   }
   9506   allows_uninitialized_input: true
   9507 }
   9508 op {
   9509   name: "DebugNanCount"
   9510   input_arg {
   9511     name: "input"
   9512     type_attr: "T"
   9513   }
   9514   output_arg {
   9515     name: "output"
   9516     type: DT_INT64
   9517   }
   9518   attr {
   9519     name: "T"
   9520     type: "type"
   9521   }
   9522   attr {
   9523     name: "tensor_name"
   9524     type: "string"
   9525     default_value {
   9526       s: ""
   9527     }
   9528   }
   9529 }
   9530 op {
   9531   name: "DebugNanCount"
   9532   input_arg {
   9533     name: "input"
   9534     type_attr: "T"
   9535   }
   9536   output_arg {
   9537     name: "output"
   9538     type: DT_INT64
   9539   }
   9540   attr {
   9541     name: "T"
   9542     type: "type"
   9543   }
   9544   attr {
   9545     name: "tensor_name"
   9546     type: "string"
   9547     default_value {
   9548       s: ""
   9549     }
   9550   }
   9551   attr {
   9552     name: "debug_urls"
   9553     type: "list(string)"
   9554     default_value {
   9555       list {
   9556       }
   9557     }
   9558   }
   9559 }
   9560 op {
   9561   name: "DebugNanCount"
   9562   input_arg {
   9563     name: "input"
   9564     type_attr: "T"
   9565   }
   9566   output_arg {
   9567     name: "output"
   9568     type: DT_INT64
   9569   }
   9570   attr {
   9571     name: "T"
   9572     type: "type"
   9573   }
   9574   attr {
   9575     name: "tensor_name"
   9576     type: "string"
   9577     default_value {
   9578       s: ""
   9579     }
   9580   }
   9581   attr {
   9582     name: "debug_urls"
   9583     type: "list(string)"
   9584     default_value {
   9585       list {
   9586       }
   9587     }
   9588   }
   9589   allows_uninitialized_input: true
   9590 }
   9591 op {
   9592   name: "DebugNumericSummary"
   9593   input_arg {
   9594     name: "input"
   9595     type_attr: "T"
   9596   }
   9597   output_arg {
   9598     name: "output"
   9599     type: DT_DOUBLE
   9600   }
   9601   attr {
   9602     name: "T"
   9603     type: "type"
   9604   }
   9605   attr {
   9606     name: "tensor_name"
   9607     type: "string"
   9608     default_value {
   9609       s: ""
   9610     }
   9611   }
   9612   attr {
   9613     name: "debug_urls"
   9614     type: "list(string)"
   9615     default_value {
   9616       list {
   9617       }
   9618     }
   9619   }
   9620   allows_uninitialized_input: true
   9621 }
   9622 op {
   9623   name: "DecodeBase64"
   9624   input_arg {
   9625     name: "input"
   9626     type: DT_STRING
   9627   }
   9628   output_arg {
   9629     name: "output"
   9630     type: DT_STRING
   9631   }
   9632 }
   9633 op {
   9634   name: "DecodeCSV"
   9635   input_arg {
   9636     name: "records"
   9637     type: DT_STRING
   9638   }
   9639   input_arg {
   9640     name: "record_defaults"
   9641     type_list_attr: "OUT_TYPE"
   9642   }
   9643   output_arg {
   9644     name: "output"
   9645     type_list_attr: "OUT_TYPE"
   9646   }
   9647   attr {
   9648     name: "OUT_TYPE"
   9649     type: "list(type)"
   9650     has_minimum: true
   9651     minimum: 1
   9652     allowed_values {
   9653       list {
   9654         type: DT_FLOAT
   9655         type: DT_INT32
   9656         type: DT_INT64
   9657         type: DT_STRING
   9658       }
   9659     }
   9660   }
   9661   attr {
   9662     name: "field_delim"
   9663     type: "string"
   9664     default_value {
   9665       s: ","
   9666     }
   9667   }
   9668 }
   9669 op {
   9670   name: "DecodeGif"
   9671   input_arg {
   9672     name: "contents"
   9673     type: DT_STRING
   9674   }
   9675   output_arg {
   9676     name: "image"
   9677     type: DT_UINT8
   9678   }
   9679 }
   9680 op {
   9681   name: "DecodeJSONExample"
   9682   input_arg {
   9683     name: "json_examples"
   9684     type: DT_STRING
   9685   }
   9686   output_arg {
   9687     name: "binary_examples"
   9688     type: DT_STRING
   9689   }
   9690 }
   9691 op {
   9692   name: "DecodeJpeg"
   9693   input_arg {
   9694     name: "contents"
   9695     type: DT_STRING
   9696   }
   9697   output_arg {
   9698     name: "image"
   9699     type: DT_UINT8
   9700   }
   9701   attr {
   9702     name: "channels"
   9703     type: "int"
   9704     default_value {
   9705       i: 0
   9706     }
   9707   }
   9708   attr {
   9709     name: "ratio"
   9710     type: "int"
   9711     default_value {
   9712       i: 1
   9713     }
   9714   }
   9715   attr {
   9716     name: "fancy_upscaling"
   9717     type: "bool"
   9718     default_value {
   9719       b: true
   9720     }
   9721   }
   9722   attr {
   9723     name: "try_recover_truncated"
   9724     type: "bool"
   9725     default_value {
   9726       b: false
   9727     }
   9728   }
   9729   attr {
   9730     name: "acceptable_fraction"
   9731     type: "float"
   9732     default_value {
   9733       f: 1
   9734     }
   9735   }
   9736 }
   9737 op {
   9738   name: "DecodeJpeg"
   9739   input_arg {
   9740     name: "contents"
   9741     type: DT_STRING
   9742   }
   9743   output_arg {
   9744     name: "image"
   9745     type: DT_UINT8
   9746   }
   9747   attr {
   9748     name: "channels"
   9749     type: "int"
   9750     default_value {
   9751       i: 0
   9752     }
   9753   }
   9754   attr {
   9755     name: "ratio"
   9756     type: "int"
   9757     default_value {
   9758       i: 1
   9759     }
   9760   }
   9761   attr {
   9762     name: "fancy_upscaling"
   9763     type: "bool"
   9764     default_value {
   9765       b: true
   9766     }
   9767   }
   9768   attr {
   9769     name: "try_recover_truncated"
   9770     type: "bool"
   9771     default_value {
   9772       b: false
   9773     }
   9774   }
   9775   attr {
   9776     name: "acceptable_fraction"
   9777     type: "float"
   9778     default_value {
   9779       f: 1
   9780     }
   9781   }
   9782   attr {
   9783     name: "dct_method"
   9784     type: "string"
   9785     default_value {
   9786       s: ""
   9787     }
   9788   }
   9789 }
   9790 op {
   9791   name: "DecodePng"
   9792   input_arg {
   9793     name: "contents"
   9794     type: DT_STRING
   9795   }
   9796   output_arg {
   9797     name: "image"
   9798     type: DT_UINT8
   9799   }
   9800   attr {
   9801     name: "channels"
   9802     type: "int"
   9803     default_value {
   9804       i: 0
   9805     }
   9806   }
   9807 }
   9808 op {
   9809   name: "DecodePng"
   9810   input_arg {
   9811     name: "contents"
   9812     type: DT_STRING
   9813   }
   9814   output_arg {
   9815     name: "image"
   9816     type_attr: "dtype"
   9817   }
   9818   attr {
   9819     name: "channels"
   9820     type: "int"
   9821     default_value {
   9822       i: 0
   9823     }
   9824   }
   9825   attr {
   9826     name: "dtype"
   9827     type: "type"
   9828     default_value {
   9829       type: DT_UINT8
   9830     }
   9831     allowed_values {
   9832       list {
   9833         type: DT_UINT8
   9834         type: DT_UINT16
   9835       }
   9836     }
   9837   }
   9838 }
   9839 op {
   9840   name: "DecodeRaw"
   9841   input_arg {
   9842     name: "bytes"
   9843     type: DT_STRING
   9844   }
   9845   output_arg {
   9846     name: "output"
   9847     type_attr: "out_type"
   9848   }
   9849   attr {
   9850     name: "out_type"
   9851     type: "type"
   9852     allowed_values {
   9853       list {
   9854         type: DT_FLOAT
   9855         type: DT_DOUBLE
   9856         type: DT_INT32
   9857         type: DT_UINT8
   9858         type: DT_INT16
   9859         type: DT_INT8
   9860         type: DT_INT64
   9861       }
   9862     }
   9863   }
   9864   attr {
   9865     name: "little_endian"
   9866     type: "bool"
   9867     default_value {
   9868       b: true
   9869     }
   9870   }
   9871 }
   9872 op {
   9873   name: "DecodeRaw"
   9874   input_arg {
   9875     name: "bytes"
   9876     type: DT_STRING
   9877   }
   9878   output_arg {
   9879     name: "output"
   9880     type_attr: "out_type"
   9881   }
   9882   attr {
   9883     name: "out_type"
   9884     type: "type"
   9885     allowed_values {
   9886       list {
   9887         type: DT_HALF
   9888         type: DT_FLOAT
   9889         type: DT_DOUBLE
   9890         type: DT_INT32
   9891         type: DT_UINT8
   9892         type: DT_INT16
   9893         type: DT_INT8
   9894         type: DT_INT64
   9895       }
   9896     }
   9897   }
   9898   attr {
   9899     name: "little_endian"
   9900     type: "bool"
   9901     default_value {
   9902       b: true
   9903     }
   9904   }
   9905 }
   9906 op {
   9907   name: "DeleteSessionTensor"
   9908   input_arg {
   9909     name: "handle"
   9910     type: DT_STRING
   9911   }
   9912 }
   9913 op {
   9914   name: "DenseToDenseSetOperation"
   9915   input_arg {
   9916     name: "set1"
   9917     type_attr: "T"
   9918   }
   9919   input_arg {
   9920     name: "set2"
   9921     type_attr: "T"
   9922   }
   9923   output_arg {
   9924     name: "result_indices"
   9925     type: DT_INT64
   9926   }
   9927   output_arg {
   9928     name: "result_values"
   9929     type_attr: "T"
   9930   }
   9931   output_arg {
   9932     name: "result_shape"
   9933     type: DT_INT64
   9934   }
   9935   attr {
   9936     name: "set_operation"
   9937     type: "string"
   9938   }
   9939   attr {
   9940     name: "validate_indices"
   9941     type: "bool"
   9942     default_value {
   9943       b: true
   9944     }
   9945   }
   9946   attr {
   9947     name: "T"
   9948     type: "type"
   9949     allowed_values {
   9950       list {
   9951         type: DT_INT8
   9952         type: DT_INT16
   9953         type: DT_INT32
   9954         type: DT_INT64
   9955         type: DT_UINT8
   9956         type: DT_UINT16
   9957         type: DT_STRING
   9958       }
   9959     }
   9960   }
   9961 }
   9962 op {
   9963   name: "DenseToSparseSetOperation"
   9964   input_arg {
   9965     name: "set1"
   9966     type_attr: "T"
   9967   }
   9968   input_arg {
   9969     name: "set2_indices"
   9970     type: DT_INT64
   9971   }
   9972   input_arg {
   9973     name: "set2_values"
   9974     type_attr: "T"
   9975   }
   9976   input_arg {
   9977     name: "set2_shape"
   9978     type: DT_INT64
   9979   }
   9980   output_arg {
   9981     name: "result_indices"
   9982     type: DT_INT64
   9983   }
   9984   output_arg {
   9985     name: "result_values"
   9986     type_attr: "T"
   9987   }
   9988   output_arg {
   9989     name: "result_shape"
   9990     type: DT_INT64
   9991   }
   9992   attr {
   9993     name: "set_operation"
   9994     type: "string"
   9995   }
   9996   attr {
   9997     name: "validate_indices"
   9998     type: "bool"
   9999     default_value {
   10000       b: true
   10001     }
   10002   }
   10003   attr {
   10004     name: "T"
   10005     type: "type"
   10006     allowed_values {
   10007       list {
   10008         type: DT_INT8
   10009         type: DT_INT16
   10010         type: DT_INT32
   10011         type: DT_INT64
   10012         type: DT_UINT8
   10013         type: DT_UINT16
   10014         type: DT_STRING
   10015       }
   10016     }
   10017   }
   10018 }
   10019 op {
   10020   name: "DepthToSpace"
   10021   input_arg {
   10022     name: "input"
   10023     type_attr: "T"
   10024   }
   10025   output_arg {
   10026     name: "output"
   10027     type_attr: "T"
   10028   }
   10029   attr {
   10030     name: "T"
   10031     type: "type"
   10032   }
   10033   attr {
   10034     name: "block_size"
   10035     type: "int"
   10036     has_minimum: true
   10037     minimum: 2
   10038   }
   10039 }
   10040 op {
   10041   name: "DepthwiseConv2dNative"
   10042   input_arg {
   10043     name: "input"
   10044     type_attr: "T"
   10045   }
   10046   input_arg {
   10047     name: "filter"
   10048     type_attr: "T"
   10049   }
   10050   output_arg {
   10051     name: "output"
   10052     type_attr: "T"
   10053   }
   10054   attr {
   10055     name: "T"
   10056     type: "type"
   10057     allowed_values {
   10058       list {
   10059         type: DT_FLOAT
   10060         type: DT_DOUBLE
   10061       }
   10062     }
   10063   }
   10064   attr {
   10065     name: "strides"
   10066     type: "list(int)"
   10067   }
   10068   attr {
   10069     name: "padding"
   10070     type: "string"
   10071     allowed_values {
   10072       list {
   10073         s: "SAME"
   10074         s: "VALID"
   10075       }
   10076     }
   10077   }
   10078 }
   10079 op {
   10080   name: "DepthwiseConv2dNativeBackpropFilter"
   10081   input_arg {
   10082     name: "input"
   10083     type_attr: "T"
   10084   }
   10085   input_arg {
   10086     name: "filter_sizes"
   10087     type: DT_INT32
   10088   }
   10089   input_arg {
   10090     name: "out_backprop"
   10091     type_attr: "T"
   10092   }
   10093   output_arg {
   10094     name: "output"
   10095     type_attr: "T"
   10096   }
   10097   attr {
   10098     name: "T"
   10099     type: "type"
   10100     allowed_values {
   10101       list {
   10102         type: DT_FLOAT
   10103         type: DT_DOUBLE
   10104       }
   10105     }
   10106   }
   10107   attr {
   10108     name: "strides"
   10109     type: "list(int)"
   10110   }
   10111   attr {
   10112     name: "padding"
   10113     type: "string"
   10114     allowed_values {
   10115       list {
   10116         s: "SAME"
   10117         s: "VALID"
   10118       }
   10119     }
   10120   }
   10121 }
   10122 op {
   10123   name: "DepthwiseConv2dNativeBackpropInput"
   10124   input_arg {
   10125     name: "input_sizes"
   10126     type: DT_INT32
   10127   }
   10128   input_arg {
   10129     name: "filter"
   10130     type_attr: "T"
   10131   }
   10132   input_arg {
   10133     name: "out_backprop"
   10134     type_attr: "T"
   10135   }
   10136   output_arg {
   10137     name: "output"
   10138     type_attr: "T"
   10139   }
   10140   attr {
   10141     name: "T"
   10142     type: "type"
   10143     allowed_values {
   10144       list {
   10145         type: DT_FLOAT
   10146         type: DT_DOUBLE
   10147       }
   10148     }
   10149   }
   10150   attr {
   10151     name: "strides"
   10152     type: "list(int)"
   10153   }
   10154   attr {
   10155     name: "padding"
   10156     type: "string"
   10157     allowed_values {
   10158       list {
   10159         s: "SAME"
   10160         s: "VALID"
   10161       }
   10162     }
   10163   }
   10164 }
   10165 op {
   10166   name: "Dequantize"
   10167   input_arg {
   10168     name: "input"
   10169     type_attr: "T"
   10170   }
   10171   input_arg {
   10172     name: "min_range"
   10173     type: DT_FLOAT
   10174   }
   10175   input_arg {
   10176     name: "max_range"
   10177     type: DT_FLOAT
   10178   }
   10179   output_arg {
   10180     name: "output"
   10181     type: DT_FLOAT
   10182   }
   10183   attr {
   10184     name: "T"
   10185     type: "type"
   10186     allowed_values {
   10187       list {
   10188         type: DT_QINT8
   10189         type: DT_QUINT8
   10190         type: DT_QINT16
   10191         type: DT_QUINT16
   10192         type: DT_QINT32
   10193       }
   10194     }
   10195   }
   10196   attr {
   10197     name: "mode"
   10198     type: "string"
   10199     default_value {
   10200       s: "MIN_COMBINED"
   10201     }
   10202     allowed_values {
   10203       list {
   10204         s: "MIN_COMBINED"
   10205         s: "MIN_FIRST"
   10206       }
   10207     }
   10208   }
   10209 }
   10210 op {
   10211   name: "DeserializeManySparse"
   10212   input_arg {
   10213     name: "serialized_sparse"
   10214     type: DT_STRING
   10215   }
   10216   output_arg {
   10217     name: "sparse_indices"
   10218     type: DT_INT64
   10219   }
   10220   output_arg {
   10221     name: "sparse_values"
   10222     type_attr: "dtype"
   10223   }
   10224   output_arg {
   10225     name: "sparse_shape"
   10226     type: DT_INT64
   10227   }
   10228   attr {
   10229     name: "dtype"
   10230     type: "type"
   10231   }
   10232 }
   10233 op {
   10234   name: "DestroyTemporaryVariable"
   10235   input_arg {
   10236     name: "ref"
   10237     type_attr: "T"
   10238     is_ref: true
   10239   }
   10240   output_arg {
   10241     name: "value"
   10242     type_attr: "T"
   10243   }
   10244   attr {
   10245     name: "T"
   10246     type: "type"
   10247   }
   10248   attr {
   10249     name: "var_name"
   10250     type: "string"
   10251   }
   10252 }
   10253 op {
   10254   name: "Diag"
   10255   input_arg {
   10256     name: "diagonal"
   10257     type_attr: "T"
   10258   }
   10259   output_arg {
   10260     name: "output"
   10261     type_attr: "T"
   10262   }
   10263   attr {
   10264     name: "T"
   10265     type: "type"
   10266     allowed_values {
   10267       list {
   10268         type: DT_FLOAT
   10269         type: DT_DOUBLE
   10270         type: DT_INT32
   10271         type: DT_INT64
   10272       }
   10273     }
   10274   }
   10275 }
   10276 op {
   10277   name: "Diag"
   10278   input_arg {
   10279     name: "diagonal"
   10280     type_attr: "T"
   10281   }
   10282   output_arg {
   10283     name: "output"
   10284     type_attr: "T"
   10285   }
   10286   attr {
   10287     name: "T"
   10288     type: "type"
   10289     allowed_values {
   10290       list {
   10291         type: DT_FLOAT
   10292         type: DT_DOUBLE
   10293         type: DT_INT32
   10294         type: DT_INT64
   10295         type: DT_COMPLEX64
   10296       }
   10297     }
   10298   }
   10299 }
   10300 op {
   10301   name: "Diag"
   10302   input_arg {
   10303     name: "diagonal"
   10304     type_attr: "T"
   10305   }
   10306   output_arg {
   10307     name: "output"
   10308     type_attr: "T"
   10309   }
   10310   attr {
   10311     name: "T"
   10312     type: "type"
   10313     allowed_values {
   10314       list {
   10315         type: DT_FLOAT
   10316         type: DT_DOUBLE
   10317         type: DT_INT32
   10318         type: DT_INT64
   10319         type: DT_COMPLEX64
   10320         type: DT_COMPLEX128
   10321       }
   10322     }
   10323   }
   10324 }
   10325 op {
   10326   name: "DiagPart"
   10327   input_arg {
   10328     name: "input"
   10329     type_attr: "T"
   10330   }
   10331   output_arg {
   10332     name: "diagonal"
   10333     type_attr: "T"
   10334   }
   10335   attr {
   10336     name: "T"
   10337     type: "type"
   10338     allowed_values {
   10339       list {
   10340         type: DT_FLOAT
   10341         type: DT_DOUBLE
   10342         type: DT_INT32
   10343         type: DT_INT64
   10344       }
   10345     }
   10346   }
   10347 }
   10348 op {
   10349   name: "DiagPart"
   10350   input_arg {
   10351     name: "input"
   10352     type_attr: "T"
   10353   }
   10354   output_arg {
   10355     name: "diagonal"
   10356     type_attr: "T"
   10357   }
   10358   attr {
   10359     name: "T"
   10360     type: "type"
   10361     allowed_values {
   10362       list {
   10363         type: DT_FLOAT
   10364         type: DT_DOUBLE
   10365         type: DT_INT32
   10366         type: DT_INT64
   10367         type: DT_COMPLEX64
   10368       }
   10369     }
   10370   }
   10371 }
   10372 op {
   10373   name: "DiagPart"
   10374   input_arg {
   10375     name: "input"
   10376     type_attr: "T"
   10377   }
   10378   output_arg {
   10379     name: "diagonal"
   10380     type_attr: "T"
   10381   }
   10382   attr {
   10383     name: "T"
   10384     type: "type"
   10385     allowed_values {
   10386       list {
   10387         type: DT_FLOAT
   10388         type: DT_DOUBLE
   10389         type: DT_INT32
   10390         type: DT_INT64
   10391         type: DT_COMPLEX64
   10392         type: DT_COMPLEX128
   10393       }
   10394     }
   10395   }
   10396 }
   10397 op {
   10398   name: "Digamma"
   10399   input_arg {
   10400     name: "x"
   10401     type_attr: "T"
   10402   }
   10403   output_arg {
   10404     name: "y"
   10405     type_attr: "T"
   10406   }
   10407   attr {
   10408     name: "T"
   10409     type: "type"
   10410     allowed_values {
   10411       list {
   10412         type: DT_FLOAT
   10413         type: DT_DOUBLE
   10414       }
   10415     }
   10416   }
   10417 }
   10418 op {
   10419   name: "Digamma"
   10420   input_arg {
   10421     name: "x"
   10422     type_attr: "T"
   10423   }
   10424   output_arg {
   10425     name: "y"
   10426     type_attr: "T"
   10427   }
   10428   attr {
   10429     name: "T"
   10430     type: "type"
   10431     allowed_values {
   10432       list {
   10433         type: DT_HALF
   10434         type: DT_FLOAT
   10435         type: DT_DOUBLE
   10436       }
   10437     }
   10438   }
   10439 }
   10440 op {
   10441   name: "Digamma"
   10442   input_arg {
   10443     name: "x"
   10444     type_attr: "T"
   10445   }
   10446   output_arg {
   10447     name: "y"
   10448     type_attr: "T"
   10449   }
   10450   attr {
   10451     name: "T"
   10452     type: "type"
   10453     allowed_values {
   10454       list {
   10455         type: DT_HALF
   10456         type: DT_FLOAT
   10457         type: DT_DOUBLE
   10458       }
   10459     }
   10460   }
   10461 }
   10462 op {
   10463   name: "Dilation2D"
   10464   input_arg {
   10465     name: "input"
   10466     type_attr: "T"
   10467   }
   10468   input_arg {
   10469     name: "filter"
   10470     type_attr: "T"
   10471   }
   10472   output_arg {
   10473     name: "output"
   10474     type_attr: "T"
   10475   }
   10476   attr {
   10477     name: "T"
   10478     type: "type"
   10479     allowed_values {
   10480       list {
   10481         type: DT_FLOAT
   10482         type: DT_DOUBLE
   10483         type: DT_INT32
   10484         type: DT_INT64
   10485         type: DT_UINT8
   10486         type: DT_INT16
   10487         type: DT_INT8
   10488         type: DT_UINT16
   10489         type: DT_HALF
   10490       }
   10491     }
   10492   }
   10493   attr {
   10494     name: "strides"
   10495     type: "list(int)"
   10496     has_minimum: true
   10497     minimum: 4
   10498   }
   10499   attr {
   10500     name: "rates"
   10501     type: "list(int)"
   10502     has_minimum: true
   10503     minimum: 4
   10504   }
   10505   attr {
   10506     name: "padding"
   10507     type: "string"
   10508     allowed_values {
   10509       list {
   10510         s: "SAME"
   10511         s: "VALID"
   10512       }
   10513     }
   10514   }
   10515 }
   10516 op {
   10517   name: "Dilation2DBackpropFilter"
   10518   input_arg {
   10519     name: "input"
   10520     type_attr: "T"
   10521   }
   10522   input_arg {
   10523     name: "filter"
   10524     type_attr: "T"
   10525   }
   10526   input_arg {
   10527     name: "out_backprop"
   10528     type_attr: "T"
   10529   }
   10530   output_arg {
   10531     name: "filter_backprop"
   10532     type_attr: "T"
   10533   }
   10534   attr {
   10535     name: "T"
   10536     type: "type"
   10537     allowed_values {
   10538       list {
   10539         type: DT_FLOAT
   10540         type: DT_DOUBLE
   10541         type: DT_INT32
   10542         type: DT_INT64
   10543         type: DT_UINT8
   10544         type: DT_INT16
   10545         type: DT_INT8
   10546         type: DT_UINT16
   10547         type: DT_HALF
   10548       }
   10549     }
   10550   }
   10551   attr {
   10552     name: "strides"
   10553     type: "list(int)"
   10554     has_minimum: true
   10555     minimum: 4
   10556   }
   10557   attr {
   10558     name: "rates"
   10559     type: "list(int)"
   10560     has_minimum: true
   10561     minimum: 4
   10562   }
   10563   attr {
   10564     name: "padding"
   10565     type: "string"
   10566     allowed_values {
   10567       list {
   10568         s: "SAME"
   10569         s: "VALID"
   10570       }
   10571     }
   10572   }
   10573 }
   10574 op {
   10575   name: "Dilation2DBackpropInput"
   10576   input_arg {
   10577     name: "input"
   10578     type_attr: "T"
   10579   }
   10580   input_arg {
   10581     name: "filter"
   10582     type_attr: "T"
   10583   }
   10584   input_arg {
   10585     name: "out_backprop"
   10586     type_attr: "T"
   10587   }
   10588   output_arg {
   10589     name: "in_backprop"
   10590     type_attr: "T"
   10591   }
   10592   attr {
   10593     name: "T"
   10594     type: "type"
   10595     allowed_values {
   10596       list {
   10597         type: DT_FLOAT
   10598         type: DT_DOUBLE
   10599         type: DT_INT32
   10600         type: DT_INT64
   10601         type: DT_UINT8
   10602         type: DT_INT16
   10603         type: DT_INT8
   10604         type: DT_UINT16
   10605         type: DT_HALF
   10606       }
   10607     }
   10608   }
   10609   attr {
   10610     name: "strides"
   10611     type: "list(int)"
   10612     has_minimum: true
   10613     minimum: 4
   10614   }
   10615   attr {
   10616     name: "rates"
   10617     type: "list(int)"
   10618     has_minimum: true
   10619     minimum: 4
   10620   }
   10621   attr {
   10622     name: "padding"
   10623     type: "string"
   10624     allowed_values {
   10625       list {
   10626         s: "SAME"
   10627         s: "VALID"
   10628       }
   10629     }
   10630   }
   10631 }
   10632 op {
   10633   name: "Div"
   10634   input_arg {
   10635     name: "x"
   10636     type_attr: "T"
   10637   }
   10638   input_arg {
   10639     name: "y"
   10640     type_attr: "T"
   10641   }
   10642   output_arg {
   10643     name: "z"
   10644     type_attr: "T"
   10645   }
   10646   attr {
   10647     name: "T"
   10648     type: "type"
   10649     allowed_values {
   10650       list {
   10651         type: DT_FLOAT
   10652         type: DT_DOUBLE
   10653         type: DT_INT32
   10654         type: DT_COMPLEX64
   10655         type: DT_INT64
   10656       }
   10657     }
   10658   }
   10659 }
   10660 op {
   10661   name: "Div"
   10662   input_arg {
   10663     name: "x"
   10664     type_attr: "T"
   10665   }
   10666   input_arg {
   10667     name: "y"
   10668     type_attr: "T"
   10669   }
   10670   output_arg {
   10671     name: "z"
   10672     type_attr: "T"
   10673   }
   10674   attr {
   10675     name: "T"
   10676     type: "type"
   10677     allowed_values {
   10678       list {
   10679         type: DT_FLOAT
   10680         type: DT_DOUBLE
   10681         type: DT_UINT8
   10682         type: DT_INT8
   10683         type: DT_INT16
   10684         type: DT_INT32
   10685         type: DT_INT64
   10686         type: DT_COMPLEX64
   10687       }
   10688     }
   10689   }
   10690 }
   10691 op {
   10692   name: "Div"
   10693   input_arg {
   10694     name: "x"
   10695     type_attr: "T"
   10696   }
   10697   input_arg {
   10698     name: "y"
   10699     type_attr: "T"
   10700   }
   10701   output_arg {
   10702     name: "z"
   10703     type_attr: "T"
   10704   }
   10705   attr {
   10706     name: "T"
   10707     type: "type"
   10708     allowed_values {
   10709       list {
   10710         type: DT_HALF
   10711         type: DT_FLOAT
   10712         type: DT_DOUBLE
   10713         type: DT_UINT8
   10714         type: DT_INT8
   10715         type: DT_INT16
   10716         type: DT_INT32
   10717         type: DT_INT64
   10718         type: DT_COMPLEX64
   10719       }
   10720     }
   10721   }
   10722 }
   10723 op {
   10724   name: "Div"
   10725   input_arg {
   10726     name: "x"
   10727     type_attr: "T"
   10728   }
   10729   input_arg {
   10730     name: "y"
   10731     type_attr: "T"
   10732   }
   10733   output_arg {
   10734     name: "z"
   10735     type_attr: "T"
   10736   }
   10737   attr {
   10738     name: "T"
   10739     type: "type"
   10740     allowed_values {
   10741       list {
   10742         type: DT_HALF
   10743         type: DT_FLOAT
   10744         type: DT_DOUBLE
   10745         type: DT_UINT8
   10746         type: DT_INT8
   10747         type: DT_INT16
   10748         type: DT_INT32
   10749         type: DT_INT64
   10750         type: DT_COMPLEX64
   10751         type: DT_COMPLEX128
   10752       }
   10753     }
   10754   }
   10755 }
   10756 op {
   10757   name: "Div"
   10758   input_arg {
   10759     name: "x"
   10760     type_attr: "T"
   10761   }
   10762   input_arg {
   10763     name: "y"
   10764     type_attr: "T"
   10765   }
   10766   output_arg {
   10767     name: "z"
   10768     type_attr: "T"
   10769   }
   10770   attr {
   10771     name: "T"
   10772     type: "type"
   10773     allowed_values {
   10774       list {
   10775         type: DT_HALF
   10776         type: DT_FLOAT
   10777         type: DT_DOUBLE
   10778         type: DT_UINT8
   10779         type: DT_INT8
   10780         type: DT_UINT16
   10781         type: DT_INT16
   10782         type: DT_INT32
   10783         type: DT_INT64
   10784         type: DT_COMPLEX64
   10785         type: DT_COMPLEX128
   10786       }
   10787     }
   10788   }
   10789 }
   10790 op {
   10791   name: "DrawBoundingBoxes"
   10792   input_arg {
   10793     name: "images"
   10794     type: DT_FLOAT
   10795   }
   10796   input_arg {
   10797     name: "boxes"
   10798     type: DT_FLOAT
   10799   }
   10800   output_arg {
   10801     name: "output"
   10802     type: DT_FLOAT
   10803   }
   10804 }
   10805 op {
   10806   name: "DrawBoundingBoxes"
   10807   input_arg {
   10808     name: "images"
   10809     type_attr: "T"
   10810   }
   10811   input_arg {
   10812     name: "boxes"
   10813     type: DT_FLOAT
   10814   }
   10815   output_arg {
   10816     name: "output"
   10817     type_attr: "T"
   10818   }
   10819   attr {
   10820     name: "T"
   10821     type: "type"
   10822     default_value {
   10823       type: DT_FLOAT
   10824     }
   10825     allowed_values {
   10826       list {
   10827         type: DT_FLOAT
   10828         type: DT_HALF
   10829       }
   10830     }
   10831   }
   10832 }
   10833 op {
   10834   name: "DynamicPartition"
   10835   input_arg {
   10836     name: "data"
   10837     type_attr: "T"
   10838   }
   10839   input_arg {
   10840     name: "partitions"
   10841     type: DT_INT32
   10842   }
   10843   output_arg {
   10844     name: "outputs"
   10845     type_attr: "T"
   10846     number_attr: "num_partitions"
   10847   }
   10848   attr {
   10849     name: "num_partitions"
   10850     type: "int"
   10851     has_minimum: true
   10852     minimum: 1
   10853   }
   10854   attr {
   10855     name: "T"
   10856     type: "type"
   10857   }
   10858 }
   10859 op {
   10860   name: "DynamicStitch"
   10861   input_arg {
   10862     name: "indices"
   10863     type: DT_INT32
   10864     number_attr: "N"
   10865   }
   10866   input_arg {
   10867     name: "data"
   10868     type_attr: "T"
   10869     number_attr: "N"
   10870   }
   10871   output_arg {
   10872     name: "merged"
   10873     type_attr: "T"
   10874   }
   10875   attr {
   10876     name: "N"
   10877     type: "int"
   10878     has_minimum: true
   10879     minimum: 2
   10880   }
   10881   attr {
   10882     name: "T"
   10883     type: "type"
   10884   }
   10885 }
   10886 op {
   10887   name: "DynamicStitch"
   10888   input_arg {
   10889     name: "indices"
   10890     type: DT_INT32
   10891     number_attr: "N"
   10892   }
   10893   input_arg {
   10894     name: "data"
   10895     type_attr: "T"
   10896     number_attr: "N"
   10897   }
   10898   output_arg {
   10899     name: "merged"
   10900     type_attr: "T"
   10901   }
   10902   attr {
   10903     name: "N"
   10904     type: "int"
   10905     has_minimum: true
   10906     minimum: 1
   10907   }
   10908   attr {
   10909     name: "T"
   10910     type: "type"
   10911   }
   10912 }
   10913 op {
   10914   name: "EditDistance"
   10915   input_arg {
   10916     name: "hypothesis_indices"
   10917     type: DT_INT64
   10918   }
   10919   input_arg {
   10920     name: "hypothesis_values"
   10921     type_attr: "T"
   10922   }
   10923   input_arg {
   10924     name: "hypothesis_shape"
   10925     type: DT_INT64
   10926   }
   10927   input_arg {
   10928     name: "truth_indices"
   10929     type: DT_INT64
   10930   }
   10931   input_arg {
   10932     name: "truth_values"
   10933     type_attr: "T"
   10934   }
   10935   input_arg {
   10936     name: "truth_shape"
   10937     type: DT_INT64
   10938   }
   10939   output_arg {
   10940     name: "output"
   10941     type: DT_FLOAT
   10942   }
   10943   attr {
   10944     name: "normalize"
   10945     type: "bool"
   10946     default_value {
   10947       b: true
   10948     }
   10949   }
   10950   attr {
   10951     name: "T"
   10952     type: "type"
   10953   }
   10954 }
   10955 op {
   10956   name: "Elu"
   10957   input_arg {
   10958     name: "features"
   10959     type_attr: "T"
   10960   }
   10961   output_arg {
   10962     name: "activations"
   10963     type_attr: "T"
   10964   }
   10965   attr {
   10966     name: "T"
   10967     type: "type"
   10968     allowed_values {
   10969       list {
   10970         type: DT_FLOAT
   10971         type: DT_DOUBLE
   10972       }
   10973     }
   10974   }
   10975 }
   10976 op {
   10977   name: "Elu"
   10978   input_arg {
   10979     name: "features"
   10980     type_attr: "T"
   10981   }
   10982   output_arg {
   10983     name: "activations"
   10984     type_attr: "T"
   10985   }
   10986   attr {
   10987     name: "T"
   10988     type: "type"
   10989     allowed_values {
   10990       list {
   10991         type: DT_FLOAT
   10992         type: DT_DOUBLE
   10993         type: DT_INT32
   10994         type: DT_INT64
   10995         type: DT_UINT8
   10996         type: DT_INT16
   10997         type: DT_INT8
   10998         type: DT_UINT16
   10999         type: DT_HALF
   11000       }
   11001     }
   11002   }
   11003 }
   11004 op {
   11005   name: "EluGrad"
   11006   input_arg {
   11007     name: "gradients"
   11008     type_attr: "T"
   11009   }
   11010   input_arg {
   11011     name: "outputs"
   11012     type_attr: "T"
   11013   }
   11014   output_arg {
   11015     name: "backprops"
   11016     type_attr: "T"
   11017   }
   11018   attr {
   11019     name: "T"
   11020     type: "type"
   11021     allowed_values {
   11022       list {
   11023         type: DT_FLOAT
   11024         type: DT_DOUBLE
   11025       }
   11026     }
   11027   }
   11028 }
   11029 op {
   11030   name: "EluGrad"
   11031   input_arg {
   11032     name: "gradients"
   11033     type_attr: "T"
   11034   }
   11035   input_arg {
   11036     name: "outputs"
   11037     type_attr: "T"
   11038   }
   11039   output_arg {
   11040     name: "backprops"
   11041     type_attr: "T"
   11042   }
   11043   attr {
   11044     name: "T"
   11045     type: "type"
   11046     allowed_values {
   11047       list {
   11048         type: DT_FLOAT
   11049         type: DT_DOUBLE
   11050         type: DT_INT32
   11051         type: DT_INT64
   11052         type: DT_UINT8
   11053         type: DT_INT16
   11054         type: DT_INT8
   11055         type: DT_UINT16
   11056         type: DT_HALF
   11057       }
   11058     }
   11059   }
   11060 }
   11061 op {
   11062   name: "EncodeBase64"
   11063   input_arg {
   11064     name: "input"
   11065     type: DT_STRING
   11066   }
   11067   output_arg {
   11068     name: "output"
   11069     type: DT_STRING
   11070   }
   11071   attr {
   11072     name: "pad"
   11073     type: "bool"
   11074     default_value {
   11075       b: false
   11076     }
   11077   }
   11078 }
   11079 op {
   11080   name: "EncodeJpeg"
   11081   input_arg {
   11082     name: "image"
   11083     type: DT_UINT8
   11084   }
   11085   output_arg {
   11086     name: "contents"
   11087     type: DT_STRING
   11088   }
   11089   attr {
   11090     name: "format"
   11091     type: "string"
   11092     default_value {
   11093       s: ""
   11094     }
   11095     allowed_values {
   11096       list {
   11097         s: ""
   11098         s: "grayscale"
   11099         s: "rgb"
   11100       }
   11101     }
   11102   }
   11103   attr {
   11104     name: "quality"
   11105     type: "int"
   11106     default_value {
   11107       i: 95
   11108     }
   11109   }
   11110   attr {
   11111     name: "progressive"
   11112     type: "bool"
   11113     default_value {
   11114       b: false
   11115     }
   11116   }
   11117   attr {
   11118     name: "optimize_size"
   11119     type: "bool"
   11120     default_value {
   11121       b: false
   11122     }
   11123   }
   11124   attr {
   11125     name: "chroma_downsampling"
   11126     type: "bool"
   11127     default_value {
   11128       b: true
   11129     }
   11130   }
   11131   attr {
   11132     name: "density_unit"
   11133     type: "string"
   11134     default_value {
   11135       s: "in"
   11136     }
   11137     allowed_values {
   11138       list {
   11139         s: "in"
   11140         s: "cm"
   11141       }
   11142     }
   11143   }
   11144   attr {
   11145     name: "x_density"
   11146     type: "int"
   11147     default_value {
   11148       i: 300
   11149     }
   11150   }
   11151   attr {
   11152     name: "y_density"
   11153     type: "int"
   11154     default_value {
   11155       i: 300
   11156     }
   11157   }
   11158   attr {
   11159     name: "xmp_metadata"
   11160     type: "string"
   11161     default_value {
   11162       s: ""
   11163     }
   11164   }
   11165 }
   11166 op {
   11167   name: "EncodePng"
   11168   input_arg {
   11169     name: "image"
   11170     type: DT_UINT8
   11171   }
   11172   output_arg {
   11173     name: "contents"
   11174     type: DT_STRING
   11175   }
   11176   attr {
   11177     name: "compression"
   11178     type: "int"
   11179     default_value {
   11180       i: -1
   11181     }
   11182   }
   11183 }
   11184 op {
   11185   name: "EncodePng"
   11186   input_arg {
   11187     name: "image"
   11188     type_attr: "T"
   11189   }
   11190   output_arg {
   11191     name: "contents"
   11192     type: DT_STRING
   11193   }
   11194   attr {
   11195     name: "compression"
   11196     type: "int"
   11197     default_value {
   11198       i: -1
   11199     }
   11200   }
   11201   attr {
   11202     name: "T"
   11203     type: "type"
   11204     default_value {
   11205       type: DT_UINT8
   11206     }
   11207     allowed_values {
   11208       list {
   11209         type: DT_UINT8
   11210         type: DT_UINT16
   11211       }
   11212     }
   11213   }
   11214 }
   11215 op {
   11216   name: "Enter"
   11217   input_arg {
   11218     name: "data"
   11219     type_attr: "T"
   11220   }
   11221   output_arg {
   11222     name: "output"
   11223     type_attr: "T"
   11224   }
   11225   attr {
   11226     name: "T"
   11227     type: "type"
   11228   }
   11229   attr {
   11230     name: "frame_name"
   11231     type: "string"
   11232   }
   11233   attr {
   11234     name: "is_constant"
   11235     type: "bool"
   11236     default_value {
   11237       b: false
   11238     }
   11239   }
   11240   attr {
   11241     name: "parallel_iterations"
   11242     type: "int"
   11243     default_value {
   11244       i: 10
   11245     }
   11246   }
   11247 }
   11248 op {
   11249   name: "Equal"
   11250   input_arg {
   11251     name: "x"
   11252     type_attr: "T"
   11253   }
   11254   input_arg {
   11255     name: "y"
   11256     type_attr: "T"
   11257   }
   11258   output_arg {
   11259     name: "z"
   11260     type: DT_BOOL
   11261   }
   11262   attr {
   11263     name: "T"
   11264     type: "type"
   11265     allowed_values {
   11266       list {
   11267         type: DT_FLOAT
   11268         type: DT_DOUBLE
   11269         type: DT_INT32
   11270         type: DT_INT64
   11271         type: DT_COMPLEX64
   11272         type: DT_QUINT8
   11273         type: DT_QINT8
   11274         type: DT_QINT32
   11275       }
   11276     }
   11277   }
   11278   is_commutative: true
   11279 }
   11280 op {
   11281   name: "Equal"
   11282   input_arg {
   11283     name: "x"
   11284     type_attr: "T"
   11285   }
   11286   input_arg {
   11287     name: "y"
   11288     type_attr: "T"
   11289   }
   11290   output_arg {
   11291     name: "z"
   11292     type: DT_BOOL
   11293   }
   11294   attr {
   11295     name: "T"
   11296     type: "type"
   11297     allowed_values {
   11298       list {
   11299         type: DT_FLOAT
   11300         type: DT_DOUBLE
   11301         type: DT_UINT8
   11302         type: DT_INT8
   11303         type: DT_INT16
   11304         type: DT_INT32
   11305         type: DT_INT64
   11306         type: DT_COMPLEX64
   11307         type: DT_QUINT8
   11308         type: DT_QINT8
   11309         type: DT_QINT32
   11310       }
   11311     }
   11312   }
   11313   is_commutative: true
   11314 }
   11315 op {
   11316   name: "Equal"
   11317   input_arg {
   11318     name: "x"
   11319     type_attr: "T"
   11320   }
   11321   input_arg {
   11322     name: "y"
   11323     type_attr: "T"
   11324   }
   11325   output_arg {
   11326     name: "z"
   11327     type: DT_BOOL
   11328   }
   11329   attr {
   11330     name: "T"
   11331     type: "type"
   11332     allowed_values {
   11333       list {
   11334         type: DT_FLOAT
   11335         type: DT_DOUBLE
   11336         type: DT_UINT8
   11337         type: DT_INT8
   11338         type: DT_INT16
   11339         type: DT_INT32
   11340         type: DT_INT64
   11341         type: DT_COMPLEX64
   11342         type: DT_QUINT8
   11343         type: DT_QINT8
   11344         type: DT_QINT32
   11345         type: DT_STRING
   11346       }
   11347     }
   11348   }
   11349   is_commutative: true
   11350 }
   11351 op {
   11352   name: "Equal"
   11353   input_arg {
   11354     name: "x"
   11355     type_attr: "T"
   11356   }
   11357   input_arg {
   11358     name: "y"
   11359     type_attr: "T"
   11360   }
   11361   output_arg {
   11362     name: "z"
   11363     type: DT_BOOL
   11364   }
   11365   attr {
   11366     name: "T"
   11367     type: "type"
   11368     allowed_values {
   11369       list {
   11370         type: DT_HALF
   11371         type: DT_FLOAT
   11372         type: DT_DOUBLE
   11373         type: DT_UINT8
   11374         type: DT_INT8
   11375         type: DT_INT16
   11376         type: DT_INT32
   11377         type: DT_INT64
   11378         type: DT_COMPLEX64
   11379         type: DT_QUINT8
   11380         type: DT_QINT8
   11381         type: DT_QINT32
   11382         type: DT_STRING
   11383       }
   11384     }
   11385   }
   11386   is_commutative: true
   11387 }
   11388 op {
   11389   name: "Equal"
   11390   input_arg {
   11391     name: "x"
   11392     type_attr: "T"
   11393   }
   11394   input_arg {
   11395     name: "y"
   11396     type_attr: "T"
   11397   }
   11398   output_arg {
   11399     name: "z"
   11400     type: DT_BOOL
   11401   }
   11402   attr {
   11403     name: "T"
   11404     type: "type"
   11405     allowed_values {
   11406       list {
   11407         type: DT_HALF
   11408         type: DT_FLOAT
   11409         type: DT_DOUBLE
   11410         type: DT_UINT8
   11411         type: DT_INT8
   11412         type: DT_INT16
   11413         type: DT_INT32
   11414         type: DT_INT64
   11415         type: DT_COMPLEX64
   11416         type: DT_QUINT8
   11417         type: DT_QINT8
   11418         type: DT_QINT32
   11419         type: DT_STRING
   11420         type: DT_BOOL
   11421       }
   11422     }
   11423   }
   11424   is_commutative: true
   11425 }
   11426 op {
   11427   name: "Equal"
   11428   input_arg {
   11429     name: "x"
   11430     type_attr: "T"
   11431   }
   11432   input_arg {
   11433     name: "y"
   11434     type_attr: "T"
   11435   }
   11436   output_arg {
   11437     name: "z"
   11438     type: DT_BOOL
   11439   }
   11440   attr {
   11441     name: "T"
   11442     type: "type"
   11443     allowed_values {
   11444       list {
   11445         type: DT_HALF
   11446         type: DT_FLOAT
   11447         type: DT_DOUBLE
   11448         type: DT_UINT8
   11449         type: DT_INT8
   11450         type: DT_INT16
   11451         type: DT_INT32
   11452         type: DT_INT64
   11453         type: DT_COMPLEX64
   11454         type: DT_QUINT8
   11455         type: DT_QINT8
   11456         type: DT_QINT32
   11457         type: DT_STRING
   11458         type: DT_BOOL
   11459         type: DT_COMPLEX128
   11460       }
   11461     }
   11462   }
   11463   is_commutative: true
   11464 }
   11465 op {
   11466   name: "Erf"
   11467   input_arg {
   11468     name: "x"
   11469     type_attr: "T"
   11470   }
   11471   output_arg {
   11472     name: "y"
   11473     type_attr: "T"
   11474   }
   11475   attr {
   11476     name: "T"
   11477     type: "type"
   11478     allowed_values {
   11479       list {
   11480         type: DT_FLOAT
   11481         type: DT_DOUBLE
   11482       }
   11483     }
   11484   }
   11485 }
   11486 op {
   11487   name: "Erf"
   11488   input_arg {
   11489     name: "x"
   11490     type_attr: "T"
   11491   }
   11492   output_arg {
   11493     name: "y"
   11494     type_attr: "T"
   11495   }
   11496   attr {
   11497     name: "T"
   11498     type: "type"
   11499     allowed_values {
   11500       list {
   11501         type: DT_HALF
   11502         type: DT_FLOAT
   11503         type: DT_DOUBLE
   11504       }
   11505     }
   11506   }
   11507 }
   11508 op {
   11509   name: "Erf"
   11510   input_arg {
   11511     name: "x"
   11512     type_attr: "T"
   11513   }
   11514   output_arg {
   11515     name: "y"
   11516     type_attr: "T"
   11517   }
   11518   attr {
   11519     name: "T"
   11520     type: "type"
   11521     allowed_values {
   11522       list {
   11523         type: DT_HALF
   11524         type: DT_FLOAT
   11525         type: DT_DOUBLE
   11526       }
   11527     }
   11528   }
   11529 }
   11530 op {
   11531   name: "Erfc"
   11532   input_arg {
   11533     name: "x"
   11534     type_attr: "T"
   11535   }
   11536   output_arg {
   11537     name: "y"
   11538     type_attr: "T"
   11539   }
   11540   attr {
   11541     name: "T"
   11542     type: "type"
   11543     allowed_values {
   11544       list {
   11545         type: DT_FLOAT
   11546         type: DT_DOUBLE
   11547       }
   11548     }
   11549   }
   11550 }
   11551 op {
   11552   name: "Erfc"
   11553   input_arg {
   11554     name: "x"
   11555     type_attr: "T"
   11556   }
   11557   output_arg {
   11558     name: "y"
   11559     type_attr: "T"
   11560   }
   11561   attr {
   11562     name: "T"
   11563     type: "type"
   11564     allowed_values {
   11565       list {
   11566         type: DT_HALF
   11567         type: DT_FLOAT
   11568         type: DT_DOUBLE
   11569       }
   11570     }
   11571   }
   11572 }
   11573 op {
   11574   name: "Erfc"
   11575   input_arg {
   11576     name: "x"
   11577     type_attr: "T"
   11578   }
   11579   output_arg {
   11580     name: "y"
   11581     type_attr: "T"
   11582   }
   11583   attr {
   11584     name: "T"
   11585     type: "type"
   11586     allowed_values {
   11587       list {
   11588         type: DT_HALF
   11589         type: DT_FLOAT
   11590         type: DT_DOUBLE
   11591       }
   11592     }
   11593   }
   11594 }
   11595 op {
   11596   name: "Exit"
   11597   input_arg {
   11598     name: "data"
   11599     type_attr: "T"
   11600   }
   11601   output_arg {
   11602     name: "output"
   11603     type_attr: "T"
   11604   }
   11605   attr {
   11606     name: "T"
   11607     type: "type"
   11608   }
   11609 }
   11610 op {
   11611   name: "Exp"
   11612   input_arg {
   11613     name: "x"
   11614     type_attr: "T"
   11615   }
   11616   output_arg {
   11617     name: "y"
   11618     type_attr: "T"
   11619   }
   11620   attr {
   11621     name: "T"
   11622     type: "type"
   11623     allowed_values {
   11624       list {
   11625         type: DT_FLOAT
   11626         type: DT_DOUBLE
   11627         type: DT_COMPLEX64
   11628       }
   11629     }
   11630   }
   11631 }
   11632 op {
   11633   name: "Exp"
   11634   input_arg {
   11635     name: "x"
   11636     type_attr: "T"
   11637   }
   11638   output_arg {
   11639     name: "y"
   11640     type_attr: "T"
   11641   }
   11642   attr {
   11643     name: "T"
   11644     type: "type"
   11645     allowed_values {
   11646       list {
   11647         type: DT_HALF
   11648         type: DT_FLOAT
   11649         type: DT_DOUBLE
   11650         type: DT_COMPLEX64
   11651       }
   11652     }
   11653   }
   11654 }
   11655 op {
   11656   name: "Exp"
   11657   input_arg {
   11658     name: "x"
   11659     type_attr: "T"
   11660   }
   11661   output_arg {
   11662     name: "y"
   11663     type_attr: "T"
   11664   }
   11665   attr {
   11666     name: "T"
   11667     type: "type"
   11668     allowed_values {
   11669       list {
   11670         type: DT_HALF
   11671         type: DT_FLOAT
   11672         type: DT_DOUBLE
   11673         type: DT_COMPLEX64
   11674         type: DT_COMPLEX128
   11675       }
   11676     }
   11677   }
   11678 }
   11679 op {
   11680   name: "ExpandDims"
   11681   input_arg {
   11682     name: "input"
   11683     type_attr: "T"
   11684   }
   11685   input_arg {
   11686     name: "dim"
   11687     type: DT_INT32
   11688   }
   11689   output_arg {
   11690     name: "output"
   11691     type_attr: "T"
   11692   }
   11693   attr {
   11694     name: "T"
   11695     type: "type"
   11696   }
   11697 }
   11698 op {
   11699   name: "ExpandDims"
   11700   input_arg {
   11701     name: "input"
   11702     type_attr: "T"
   11703   }
   11704   input_arg {
   11705     name: "dim"
   11706     type_attr: "Tdim"
   11707   }
   11708   output_arg {
   11709     name: "output"
   11710     type_attr: "T"
   11711   }
   11712   attr {
   11713     name: "T"
   11714     type: "type"
   11715   }
   11716   attr {
   11717     name: "Tdim"
   11718     type: "type"
   11719     default_value {
   11720       type: DT_INT32
   11721     }
   11722     allowed_values {
   11723       list {
   11724         type: DT_INT32
   11725         type: DT_INT64
   11726       }
   11727     }
   11728   }
   11729 }
   11730 op {
   11731   name: "Expm1"
   11732   input_arg {
   11733     name: "x"
   11734     type_attr: "T"
   11735   }
   11736   output_arg {
   11737     name: "y"
   11738     type_attr: "T"
   11739   }
   11740   attr {
   11741     name: "T"
   11742     type: "type"
   11743     allowed_values {
   11744       list {
   11745         type: DT_HALF
   11746         type: DT_FLOAT
   11747         type: DT_DOUBLE
   11748         type: DT_COMPLEX64
   11749         type: DT_COMPLEX128
   11750       }
   11751     }
   11752   }
   11753 }
   11754 op {
   11755   name: "ExtractGlimpse"
   11756   input_arg {
   11757     name: "input"
   11758     type: DT_FLOAT
   11759   }
   11760   input_arg {
   11761     name: "size"
   11762     type: DT_INT32
   11763   }
   11764   input_arg {
   11765     name: "offsets"
   11766     type: DT_FLOAT
   11767   }
   11768   output_arg {
   11769     name: "glimpse"
   11770     type: DT_FLOAT
   11771   }
   11772   attr {
   11773     name: "centered"
   11774     type: "bool"
   11775     default_value {
   11776       b: true
   11777     }
   11778   }
   11779   attr {
   11780     name: "normalized"
   11781     type: "bool"
   11782     default_value {
   11783       b: true
   11784     }
   11785   }
   11786   attr {
   11787     name: "uniform_noise"
   11788     type: "bool"
   11789     default_value {
   11790       b: true
   11791     }
   11792   }
   11793 }
   11794 op {
   11795   name: "ExtractImagePatches"
   11796   input_arg {
   11797     name: "images"
   11798     type_attr: "T"
   11799   }
   11800   output_arg {
   11801     name: "patches"
   11802     type_attr: "T"
   11803   }
   11804   attr {
   11805     name: "ksizes"
   11806     type: "list(int)"
   11807     has_minimum: true
   11808     minimum: 4
   11809   }
   11810   attr {
   11811     name: "strides"
   11812     type: "list(int)"
   11813     has_minimum: true
   11814     minimum: 4
   11815   }
   11816   attr {
   11817     name: "rates"
   11818     type: "list(int)"
   11819     has_minimum: true
   11820     minimum: 4
   11821   }
   11822   attr {
   11823     name: "T"
   11824     type: "type"
   11825     allowed_values {
   11826       list {
   11827         type: DT_FLOAT
   11828         type: DT_DOUBLE
   11829         type: DT_INT32
   11830         type: DT_INT64
   11831         type: DT_UINT8
   11832         type: DT_INT16
   11833         type: DT_INT8
   11834         type: DT_UINT16
   11835         type: DT_HALF
   11836       }
   11837     }
   11838   }
   11839   attr {
   11840     name: "padding"
   11841     type: "string"
   11842     allowed_values {
   11843       list {
   11844         s: "SAME"
   11845         s: "VALID"
   11846       }
   11847     }
   11848   }
   11849 }
   11850 op {
   11851   name: "FFT"
   11852   input_arg {
   11853     name: "in"
   11854     type: DT_COMPLEX64
   11855   }
   11856   output_arg {
   11857     name: "out"
   11858     type: DT_COMPLEX64
   11859   }
   11860 }
   11861 op {
   11862   name: "FFT"
   11863   input_arg {
   11864     name: "input"
   11865     type: DT_COMPLEX64
   11866   }
   11867   output_arg {
   11868     name: "out"
   11869     type: DT_COMPLEX64
   11870   }
   11871 }
   11872 op {
   11873   name: "FFT"
   11874   input_arg {
   11875     name: "input"
   11876     type: DT_COMPLEX64
   11877   }
   11878   output_arg {
   11879     name: "output"
   11880     type: DT_COMPLEX64
   11881   }
   11882 }
   11883 op {
   11884   name: "FFT2D"
   11885   input_arg {
   11886     name: "in"
   11887     type: DT_COMPLEX64
   11888   }
   11889   output_arg {
   11890     name: "out"
   11891     type: DT_COMPLEX64
   11892   }
   11893 }
   11894 op {
   11895   name: "FFT2D"
   11896   input_arg {
   11897     name: "input"
   11898     type: DT_COMPLEX64
   11899   }
   11900   output_arg {
   11901     name: "out"
   11902     type: DT_COMPLEX64
   11903   }
   11904 }
   11905 op {
   11906   name: "FFT2D"
   11907   input_arg {
   11908     name: "input"
   11909     type: DT_COMPLEX64
   11910   }
   11911   output_arg {
   11912     name: "output"
   11913     type: DT_COMPLEX64
   11914   }
   11915 }
   11916 op {
   11917   name: "FFT3D"
   11918   input_arg {
   11919     name: "in"
   11920     type: DT_COMPLEX64
   11921   }
   11922   output_arg {
   11923     name: "out"
   11924     type: DT_COMPLEX64
   11925   }
   11926 }
   11927 op {
   11928   name: "FFT3D"
   11929   input_arg {
   11930     name: "input"
   11931     type: DT_COMPLEX64
   11932   }
   11933   output_arg {
   11934     name: "out"
   11935     type: DT_COMPLEX64
   11936   }
   11937 }
   11938 op {
   11939   name: "FFT3D"
   11940   input_arg {
   11941     name: "input"
   11942     type: DT_COMPLEX64
   11943   }
   11944   output_arg {
   11945     name: "output"
   11946     type: DT_COMPLEX64
   11947   }
   11948 }
   11949 op {
   11950   name: "FIFOQueue"
   11951   output_arg {
   11952     name: "handle"
   11953     type: DT_STRING
   11954     is_ref: true
   11955   }
   11956   attr {
   11957     name: "component_types"
   11958     type: "list(type)"
   11959     has_minimum: true
   11960     minimum: 1
   11961   }
   11962   attr {
   11963     name: "shapes"
   11964     type: "list(shape)"
   11965     default_value {
   11966       list {
   11967       }
   11968     }
   11969     has_minimum: true
   11970   }
   11971   attr {
   11972     name: "capacity"
   11973     type: "int"
   11974     default_value {
   11975       i: -1
   11976     }
   11977   }
   11978   attr {
   11979     name: "container"
   11980     type: "string"
   11981     default_value {
   11982       s: ""
   11983     }
   11984   }
   11985   attr {
   11986     name: "shared_name"
   11987     type: "string"
   11988     default_value {
   11989       s: ""
   11990     }
   11991   }
   11992   is_stateful: true
   11993 }
   11994 op {
   11995   name: "FIFOQueueV2"
   11996   output_arg {
   11997     name: "handle"
   11998     type: DT_RESOURCE
   11999   }
   12000   attr {
   12001     name: "component_types"
   12002     type: "list(type)"
   12003     has_minimum: true
   12004     minimum: 1
   12005   }
   12006   attr {
   12007     name: "shapes"
   12008     type: "list(shape)"
   12009     default_value {
   12010       list {
   12011       }
   12012     }
   12013     has_minimum: true
   12014   }
   12015   attr {
   12016     name: "capacity"
   12017     type: "int"
   12018     default_value {
   12019       i: -1
   12020     }
   12021   }
   12022   attr {
   12023     name: "container"
   12024     type: "string"
   12025     default_value {
   12026       s: ""
   12027     }
   12028   }
   12029   attr {
   12030     name: "shared_name"
   12031     type: "string"
   12032     default_value {
   12033       s: ""
   12034     }
   12035   }
   12036   is_stateful: true
   12037 }
   12038 op {
   12039   name: "Fact"
   12040   output_arg {
   12041     name: "fact"
   12042     type: DT_STRING
   12043   }
   12044 }
   12045 op {
   12046   name: "FakeQuantWithMinMaxArgs"
   12047   input_arg {
   12048     name: "inputs"
   12049     type: DT_FLOAT
   12050   }
   12051   output_arg {
   12052     name: "outputs"
   12053     type: DT_FLOAT
   12054   }
   12055   attr {
   12056     name: "min"
   12057     type: "float"
   12058     default_value {
   12059       f: -6
   12060     }
   12061   }
   12062   attr {
   12063     name: "max"
   12064     type: "float"
   12065     default_value {
   12066       f: 6
   12067     }
   12068   }
   12069 }
   12070 op {
   12071   name: "FakeQuantWithMinMaxArgsGradient"
   12072   input_arg {
   12073     name: "gradients"
   12074     type: DT_FLOAT
   12075   }
   12076   input_arg {
   12077     name: "inputs"
   12078     type: DT_FLOAT
   12079   }
   12080   output_arg {
   12081     name: "backprops"
   12082     type: DT_FLOAT
   12083   }
   12084   attr {
   12085     name: "min"
   12086     type: "float"
   12087     default_value {
   12088       f: -6
   12089     }
   12090   }
   12091   attr {
   12092     name: "max"
   12093     type: "float"
   12094     default_value {
   12095       f: 6
   12096     }
   12097   }
   12098 }
   12099 op {
   12100   name: "FakeQuantWithMinMaxVars"
   12101   input_arg {
   12102     name: "inputs"
   12103     type: DT_FLOAT
   12104   }
   12105   input_arg {
   12106     name: "min"
   12107     type: DT_FLOAT
   12108   }
   12109   input_arg {
   12110     name: "max"
   12111     type: DT_FLOAT
   12112   }
   12113   output_arg {
   12114     name: "outputs"
   12115     type: DT_FLOAT
   12116   }
   12117 }
   12118 op {
   12119   name: "FakeQuantWithMinMaxVarsGradient"
   12120   input_arg {
   12121     name: "gradients"
   12122     type: DT_FLOAT
   12123   }
   12124   input_arg {
   12125     name: "inputs"
   12126     type: DT_FLOAT
   12127   }
   12128   input_arg {
   12129     name: "min"
   12130     type: DT_FLOAT
   12131   }
   12132   input_arg {
   12133     name: "max"
   12134     type: DT_FLOAT
   12135   }
   12136   output_arg {
   12137     name: "backprops_wrt_input"
   12138     type: DT_FLOAT
   12139   }
   12140   output_arg {
   12141     name: "backprop_wrt_min"
   12142     type: DT_FLOAT
   12143   }
   12144   output_arg {
   12145     name: "backprop_wrt_max"
   12146     type: DT_FLOAT
   12147   }
   12148 }
   12149 op {
   12150   name: "FakeQuantWithMinMaxVarsPerChannel"
   12151   input_arg {
   12152     name: "inputs"
   12153     type: DT_FLOAT
   12154   }
   12155   input_arg {
   12156     name: "min"
   12157     type: DT_FLOAT
   12158   }
   12159   input_arg {
   12160     name: "max"
   12161     type: DT_FLOAT
   12162   }
   12163   output_arg {
   12164     name: "outputs"
   12165     type: DT_FLOAT
   12166   }
   12167 }
   12168 op {
   12169   name: "FakeQuantWithMinMaxVarsPerChannelGradient"
   12170   input_arg {
   12171     name: "gradients"
   12172     type: DT_FLOAT
   12173   }
   12174   input_arg {
   12175     name: "inputs"
   12176     type: DT_FLOAT
   12177   }
   12178   input_arg {
   12179     name: "min"
   12180     type: DT_FLOAT
   12181   }
   12182   input_arg {
   12183     name: "max"
   12184     type: DT_FLOAT
   12185   }
   12186   output_arg {
   12187     name: "backprops_wrt_input"
   12188     type: DT_FLOAT
   12189   }
   12190   output_arg {
   12191     name: "backprop_wrt_min"
   12192     type: DT_FLOAT
   12193   }
   12194   output_arg {
   12195     name: "backprop_wrt_max"
   12196     type: DT_FLOAT
   12197   }
   12198 }
   12199 op {
   12200   name: "FakeQueue"
   12201   input_arg {
   12202     name: "resource"
   12203     type: DT_RESOURCE
   12204   }
   12205   output_arg {
   12206     name: "handle"
   12207     type: DT_STRING
   12208     is_ref: true
   12209   }
   12210   is_stateful: true
   12211 }
   12212 op {
   12213   name: "Fill"
   12214   input_arg {
   12215     name: "dims"
   12216     type: DT_INT32
   12217   }
   12218   input_arg {
   12219     name: "value"
   12220     type_attr: "T"
   12221   }
   12222   output_arg {
   12223     name: "output"
   12224     type_attr: "T"
   12225   }
   12226   attr {
   12227     name: "T"
   12228     type: "type"
   12229   }
   12230 }
   12231 op {
   12232   name: "FixedLengthRecordReader"
   12233   output_arg {
   12234     name: "reader_handle"
   12235     type: DT_STRING
   12236     is_ref: true
   12237   }
   12238   attr {
   12239     name: "header_bytes"
   12240     type: "int"
   12241     default_value {
   12242       i: 0
   12243     }
   12244   }
   12245   attr {
   12246     name: "record_bytes"
   12247     type: "int"
   12248   }
   12249   attr {
   12250     name: "footer_bytes"
   12251     type: "int"
   12252     default_value {
   12253       i: 0
   12254     }
   12255   }
   12256   attr {
   12257     name: "container"
   12258     type: "string"
   12259     default_value {
   12260       s: ""
   12261     }
   12262   }
   12263   attr {
   12264     name: "shared_name"
   12265     type: "string"
   12266     default_value {
   12267       s: ""
   12268     }
   12269   }
   12270   is_stateful: true
   12271 }
   12272 op {
   12273   name: "FixedLengthRecordReaderV2"
   12274   output_arg {
   12275     name: "reader_handle"
   12276     type: DT_RESOURCE
   12277   }
   12278   attr {
   12279     name: "header_bytes"
   12280     type: "int"
   12281     default_value {
   12282       i: 0
   12283     }
   12284   }
   12285   attr {
   12286     name: "record_bytes"
   12287     type: "int"
   12288   }
   12289   attr {
   12290     name: "footer_bytes"
   12291     type: "int"
   12292     default_value {
   12293       i: 0
   12294     }
   12295   }
   12296   attr {
   12297     name: "container"
   12298     type: "string"
   12299     default_value {
   12300       s: ""
   12301     }
   12302   }
   12303   attr {
   12304     name: "shared_name"
   12305     type: "string"
   12306     default_value {
   12307       s: ""
   12308     }
   12309   }
   12310   is_stateful: true
   12311 }
   12312 op {
   12313   name: "FixedUnigramCandidateSampler"
   12314   input_arg {
   12315     name: "true_classes"
   12316     type: DT_INT64
   12317   }
   12318   output_arg {
   12319     name: "sampled_candidates"
   12320     type: DT_INT64
   12321   }
   12322   output_arg {
   12323     name: "true_expected_count"
   12324     type: DT_FLOAT
   12325   }
   12326   output_arg {
   12327     name: "sampled_expected_count"
   12328     type: DT_FLOAT
   12329   }
   12330   attr {
   12331     name: "num_true"
   12332     type: "int"
   12333     has_minimum: true
   12334     minimum: 1
   12335   }
   12336   attr {
   12337     name: "num_sampled"
   12338     type: "int"
   12339     has_minimum: true
   12340     minimum: 1
   12341   }
   12342   attr {
   12343     name: "unique"
   12344     type: "bool"
   12345   }
   12346   attr {
   12347     name: "range_max"
   12348     type: "int"
   12349     has_minimum: true
   12350     minimum: 1
   12351   }
   12352   attr {
   12353     name: "vocab_file"
   12354     type: "string"
   12355     default_value {
   12356       s: ""
   12357     }
   12358   }
   12359   attr {
   12360     name: "distortion"
   12361     type: "float"
   12362     default_value {
   12363       f: 1
   12364     }
   12365   }
   12366   attr {
   12367     name: "num_reserved_ids"
   12368     type: "int"
   12369     default_value {
   12370       i: 0
   12371     }
   12372   }
   12373   attr {
   12374     name: "num_shards"
   12375     type: "int"
   12376     default_value {
   12377       i: 1
   12378     }
   12379     has_minimum: true
   12380     minimum: 1
   12381   }
   12382   attr {
   12383     name: "shard"
   12384     type: "int"
   12385     default_value {
   12386       i: 0
   12387     }
   12388     has_minimum: true
   12389   }
   12390   attr {
   12391     name: "unigrams"
   12392     type: "list(float)"
   12393     default_value {
   12394       list {
   12395       }
   12396     }
   12397   }
   12398   attr {
   12399     name: "seed"
   12400     type: "int"
   12401     default_value {
   12402       i: 0
   12403     }
   12404   }
   12405   attr {
   12406     name: "seed2"
   12407     type: "int"
   12408     default_value {
   12409       i: 0
   12410     }
   12411   }
   12412 }
   12413 op {
   12414   name: "Floor"
   12415   input_arg {
   12416     name: "x"
   12417     type_attr: "T"
   12418   }
   12419   output_arg {
   12420     name: "y"
   12421     type_attr: "T"
   12422   }
   12423   attr {
   12424     name: "T"
   12425     type: "type"
   12426     allowed_values {
   12427       list {
   12428         type: DT_FLOAT
   12429         type: DT_DOUBLE
   12430       }
   12431     }
   12432   }
   12433 }
   12434 op {
   12435   name: "Floor"
   12436   input_arg {
   12437     name: "x"
   12438     type_attr: "T"
   12439   }
   12440   output_arg {
   12441     name: "y"
   12442     type_attr: "T"
   12443   }
   12444   attr {
   12445     name: "T"
   12446     type: "type"
   12447     allowed_values {
   12448       list {
   12449         type: DT_HALF
   12450         type: DT_FLOAT
   12451         type: DT_DOUBLE
   12452       }
   12453     }
   12454   }
   12455 }
   12456 op {
   12457   name: "FloorDiv"
   12458   input_arg {
   12459     name: "x"
   12460     type_attr: "T"
   12461   }
   12462   input_arg {
   12463     name: "y"
   12464     type_attr: "T"
   12465   }
   12466   output_arg {
   12467     name: "z"
   12468     type_attr: "T"
   12469   }
   12470   attr {
   12471     name: "T"
   12472     type: "type"
   12473     allowed_values {
   12474       list {
   12475         type: DT_HALF
   12476         type: DT_FLOAT
   12477         type: DT_DOUBLE
   12478         type: DT_UINT8
   12479         type: DT_INT8
   12480         type: DT_UINT16
   12481         type: DT_INT16
   12482         type: DT_INT32
   12483         type: DT_INT64
   12484         type: DT_COMPLEX64
   12485         type: DT_COMPLEX128
   12486       }
   12487     }
   12488   }
   12489 }
   12490 op {
   12491   name: "FloorMod"
   12492   input_arg {
   12493     name: "x"
   12494     type_attr: "T"
   12495   }
   12496   input_arg {
   12497     name: "y"
   12498     type_attr: "T"
   12499   }
   12500   output_arg {
   12501     name: "z"
   12502     type_attr: "T"
   12503   }
   12504   attr {
   12505     name: "T"
   12506     type: "type"
   12507     allowed_values {
   12508       list {
   12509         type: DT_INT32
   12510         type: DT_INT64
   12511         type: DT_FLOAT
   12512         type: DT_DOUBLE
   12513       }
   12514     }
   12515   }
   12516 }
   12517 op {
   12518   name: "FractionalAvgPool"
   12519   input_arg {
   12520     name: "value"
   12521     type_attr: "T"
   12522   }
   12523   output_arg {
   12524     name: "output"
   12525     type_attr: "T"
   12526   }
   12527   output_arg {
   12528     name: "row_pooling_sequence"
   12529     type: DT_INT64
   12530   }
   12531   output_arg {
   12532     name: "col_pooling_sequence"
   12533     type: DT_INT64
   12534   }
   12535   attr {
   12536     name: "pooling_ratio"
   12537     type: "list(float)"
   12538     has_minimum: true
   12539     minimum: 4
   12540   }
   12541   attr {
   12542     name: "pseudo_random"
   12543     type: "bool"
   12544     default_value {
   12545       b: false
   12546     }
   12547   }
   12548   attr {
   12549     name: "overlapping"
   12550     type: "bool"
   12551     default_value {
   12552       b: false
   12553     }
   12554   }
   12555   attr {
   12556     name: "deterministic"
   12557     type: "bool"
   12558     default_value {
   12559       b: false
   12560     }
   12561   }
   12562   attr {
   12563     name: "seed"
   12564     type: "int"
   12565     default_value {
   12566       i: 0
   12567     }
   12568   }
   12569   attr {
   12570     name: "seed2"
   12571     type: "int"
   12572     default_value {
   12573       i: 0
   12574     }
   12575   }
   12576   attr {
   12577     name: "T"
   12578     type: "type"
   12579     allowed_values {
   12580       list {
   12581         type: DT_FLOAT
   12582         type: DT_DOUBLE
   12583         type: DT_INT32
   12584         type: DT_INT64
   12585       }
   12586     }
   12587   }
   12588 }
   12589 op {
   12590   name: "FractionalAvgPoolGrad"
   12591   input_arg {
   12592     name: "orig_input_tensor_shape"
   12593     type: DT_INT64
   12594   }
   12595   input_arg {
   12596     name: "out_backprop"
   12597     type_attr: "T"
   12598   }
   12599   input_arg {
   12600     name: "row_pooling_sequence"
   12601     type: DT_INT64
   12602   }
   12603   input_arg {
   12604     name: "col_pooling_sequence"
   12605     type: DT_INT64
   12606   }
   12607   output_arg {
   12608     name: "output"
   12609     type_attr: "T"
   12610   }
   12611   attr {
   12612     name: "overlapping"
   12613     type: "bool"
   12614     default_value {
   12615       b: false
   12616     }
   12617   }
   12618   attr {
   12619     name: "T"
   12620     type: "type"
   12621     allowed_values {
   12622       list {
   12623         type: DT_FLOAT
   12624         type: DT_DOUBLE
   12625         type: DT_INT32
   12626         type: DT_INT64
   12627       }
   12628     }
   12629   }
   12630 }
   12631 op {
   12632   name: "FractionalMaxPool"
   12633   input_arg {
   12634     name: "value"
   12635     type_attr: "T"
   12636   }
   12637   output_arg {
   12638     name: "output"
   12639     type_attr: "T"
   12640   }
   12641   output_arg {
   12642     name: "row_pooling_sequence"
   12643     type: DT_INT64
   12644   }
   12645   output_arg {
   12646     name: "col_pooling_sequence"
   12647     type: DT_INT64
   12648   }
   12649   attr {
   12650     name: "pooling_ratio"
   12651     type: "list(float)"
   12652     has_minimum: true
   12653     minimum: 4
   12654   }
   12655   attr {
   12656     name: "pseudo_random"
   12657     type: "bool"
   12658     default_value {
   12659       b: false
   12660     }
   12661   }
   12662   attr {
   12663     name: "overlapping"
   12664     type: "bool"
   12665     default_value {
   12666       b: false
   12667     }
   12668   }
   12669   attr {
   12670     name: "deterministic"
   12671     type: "bool"
   12672     default_value {
   12673       b: false
   12674     }
   12675   }
   12676   attr {
   12677     name: "seed"
   12678     type: "int"
   12679     default_value {
   12680       i: 0
   12681     }
   12682   }
   12683   attr {
   12684     name: "seed2"
   12685     type: "int"
   12686     default_value {
   12687       i: 0
   12688     }
   12689   }
   12690   attr {
   12691     name: "T"
   12692     type: "type"
   12693     allowed_values {
   12694       list {
   12695         type: DT_FLOAT
   12696         type: DT_DOUBLE
   12697         type: DT_INT32
   12698         type: DT_INT64
   12699       }
   12700     }
   12701   }
   12702 }
   12703 op {
   12704   name: "FractionalMaxPoolGrad"
   12705   input_arg {
   12706     name: "orig_input"
   12707     type_attr: "T"
   12708   }
   12709   input_arg {
   12710     name: "orig_output"
   12711     type_attr: "T"
   12712   }
   12713   input_arg {
   12714     name: "out_backprop"
   12715     type_attr: "T"
   12716   }
   12717   input_arg {
   12718     name: "row_pooling_sequence"
   12719     type: DT_INT64
   12720   }
   12721   input_arg {
   12722     name: "col_pooling_sequence"
   12723     type: DT_INT64
   12724   }
   12725   output_arg {
   12726     name: "output"
   12727     type_attr: "T"
   12728   }
   12729   attr {
   12730     name: "overlapping"
   12731     type: "bool"
   12732     default_value {
   12733       b: false
   12734     }
   12735   }
   12736   attr {
   12737     name: "T"
   12738     type: "type"
   12739     allowed_values {
   12740       list {
   12741         type: DT_FLOAT
   12742         type: DT_DOUBLE
   12743         type: DT_INT32
   12744         type: DT_INT64
   12745       }
   12746     }
   12747   }
   12748 }
   12749 op {
   12750   name: "FusedBatchNorm"
   12751   input_arg {
   12752     name: "x"
   12753     type_attr: "T"
   12754   }
   12755   input_arg {
   12756     name: "scale"
   12757     type_attr: "T"
   12758   }
   12759   input_arg {
   12760     name: "offset"
   12761     type_attr: "T"
   12762   }
   12763   input_arg {
   12764     name: "mean"
   12765     type_attr: "T"
   12766   }
   12767   input_arg {
   12768     name: "variance"
   12769     type_attr: "T"
   12770   }
   12771   output_arg {
   12772     name: "y"
   12773     type_attr: "T"
   12774   }
   12775   output_arg {
   12776     name: "batch_mean"
   12777     type_attr: "T"
   12778   }
   12779   output_arg {
   12780     name: "batch_variance"
   12781     type_attr: "T"
   12782   }
   12783   output_arg {
   12784     name: "reserve_space_1"
   12785     type_attr: "T"
   12786   }
   12787   output_arg {
   12788     name: "reserve_space_2"
   12789     type_attr: "T"
   12790   }
   12791   attr {
   12792     name: "T"
   12793     type: "type"
   12794     allowed_values {
   12795       list {
   12796         type: DT_FLOAT
   12797         type: DT_DOUBLE
   12798         type: DT_INT64
   12799         type: DT_INT32
   12800         type: DT_UINT8
   12801         type: DT_UINT16
   12802         type: DT_INT16
   12803         type: DT_INT8
   12804         type: DT_COMPLEX64
   12805         type: DT_COMPLEX128
   12806         type: DT_QINT8
   12807         type: DT_QUINT8
   12808         type: DT_QINT32
   12809         type: DT_HALF
   12810       }
   12811     }
   12812   }
   12813   attr {
   12814     name: "epsilon"
   12815     type: "float"
   12816     default_value {
   12817       f: 0.0001
   12818     }
   12819   }
   12820   attr {
   12821     name: "data_format"
   12822     type: "string"
   12823     default_value {
   12824       s: "NHWC"
   12825     }
   12826   }
   12827   attr {
   12828     name: "is_training"
   12829     type: "bool"
   12830     default_value {
   12831       b: true
   12832     }
   12833   }
   12834 }
   12835 op {
   12836   name: "FusedBatchNormGrad"
   12837   input_arg {
   12838     name: "y_backprop"
   12839     type_attr: "T"
   12840   }
   12841   input_arg {
   12842     name: "x"
   12843     type_attr: "T"
   12844   }
   12845   input_arg {
   12846     name: "scale"
   12847     type_attr: "T"
   12848   }
   12849   input_arg {
   12850     name: "reserve_space_1"
   12851     type_attr: "T"
   12852   }
   12853   input_arg {
   12854     name: "reserve_space_2"
   12855     type_attr: "T"
   12856   }
   12857   output_arg {
   12858     name: "x_backprop"
   12859     type_attr: "T"
   12860   }
   12861   output_arg {
   12862     name: "scale_backprop"
   12863     type_attr: "T"
   12864   }
   12865   output_arg {
   12866     name: "offset_backprop"
   12867     type_attr: "T"
   12868   }
   12869   output_arg {
   12870     name: "reserve_space_3"
   12871     type_attr: "T"
   12872   }
   12873   output_arg {
   12874     name: "reserve_space_4"
   12875     type_attr: "T"
   12876   }
   12877   attr {
   12878     name: "T"
   12879     type: "type"
   12880     allowed_values {
   12881       list {
   12882         type: DT_FLOAT
   12883         type: DT_DOUBLE
   12884         type: DT_INT64
   12885         type: DT_INT32
   12886         type: DT_UINT8
   12887         type: DT_UINT16
   12888         type: DT_INT16
   12889         type: DT_INT8
   12890         type: DT_COMPLEX64
   12891         type: DT_COMPLEX128
   12892         type: DT_QINT8
   12893         type: DT_QUINT8
   12894         type: DT_QINT32
   12895         type: DT_HALF
   12896       }
   12897     }
   12898   }
   12899   attr {
   12900     name: "epsilon"
   12901     type: "float"
   12902     default_value {
   12903       f: 0.0001
   12904     }
   12905   }
   12906   attr {
   12907     name: "data_format"
   12908     type: "string"
   12909     default_value {
   12910       s: "NHWC"
   12911     }
   12912   }
   12913 }
   12914 op {
   12915   name: "FusedBatchNormGrad"
   12916   input_arg {
   12917     name: "y_backprop"
   12918     type_attr: "T"
   12919   }
   12920   input_arg {
   12921     name: "x"
   12922     type_attr: "T"
   12923   }
   12924   input_arg {
   12925     name: "scale"
   12926     type_attr: "T"
   12927   }
   12928   input_arg {
   12929     name: "reserve_space_1"
   12930     type_attr: "T"
   12931   }
   12932   input_arg {
   12933     name: "reserve_space_2"
   12934     type_attr: "T"
   12935   }
   12936   output_arg {
   12937     name: "x_backprop"
   12938     type_attr: "T"
   12939   }
   12940   output_arg {
   12941     name: "scale_backprop"
   12942     type_attr: "T"
   12943   }
   12944   output_arg {
   12945     name: "offset_backprop"
   12946     type_attr: "T"
   12947   }
   12948   output_arg {
   12949     name: "reserve_space_3"
   12950     type_attr: "T"
   12951   }
   12952   output_arg {
   12953     name: "reserve_space_4"
   12954     type_attr: "T"
   12955   }
   12956   attr {
   12957     name: "T"
   12958     type: "type"
   12959     allowed_values {
   12960       list {
   12961         type: DT_FLOAT
   12962         type: DT_DOUBLE
   12963         type: DT_INT64
   12964         type: DT_INT32
   12965         type: DT_UINT8
   12966         type: DT_UINT16
   12967         type: DT_INT16
   12968         type: DT_INT8
   12969         type: DT_COMPLEX64
   12970         type: DT_COMPLEX128
   12971         type: DT_QINT8
   12972         type: DT_QUINT8
   12973         type: DT_QINT32
   12974         type: DT_HALF
   12975       }
   12976     }
   12977   }
   12978   attr {
   12979     name: "epsilon"
   12980     type: "float"
   12981     default_value {
   12982       f: 0.0001
   12983     }
   12984   }
   12985   attr {
   12986     name: "data_format"
   12987     type: "string"
   12988     default_value {
   12989       s: "NHWC"
   12990     }
   12991   }
   12992   attr {
   12993     name: "is_training"
   12994     type: "bool"
   12995     default_value {
   12996       b: true
   12997     }
   12998   }
   12999 }
   13000 op {
   13001   name: "FusedPadConv2D"
   13002   input_arg {
   13003     name: "input"
   13004     type_attr: "T"
   13005   }
   13006   input_arg {
   13007     name: "paddings"
   13008     type: DT_INT32
   13009   }
   13010   input_arg {
   13011     name: "filter"
   13012     type_attr: "T"
   13013   }
   13014   output_arg {
   13015     name: "output"
   13016     type_attr: "T"
   13017   }
   13018   attr {
   13019     name: "T"
   13020     type: "type"
   13021     allowed_values {
   13022       list {
   13023         type: DT_HALF
   13024         type: DT_FLOAT
   13025         type: DT_DOUBLE
   13026       }
   13027     }
   13028   }
   13029   attr {
   13030     name: "mode"
   13031     type: "string"
   13032     allowed_values {
   13033       list {
   13034         s: "REFLECT"
   13035         s: "SYMMETRIC"
   13036       }
   13037     }
   13038   }
   13039   attr {
   13040     name: "strides"
   13041     type: "list(int)"
   13042   }
   13043   attr {
   13044     name: "padding"
   13045     type: "string"
   13046     allowed_values {
   13047       list {
   13048         s: "SAME"
   13049         s: "VALID"
   13050       }
   13051     }
   13052   }
   13053 }
   13054 op {
   13055   name: "FusedResizeAndPadConv2D"
   13056   input_arg {
   13057     name: "input"
   13058     type_attr: "T"
   13059   }
   13060   input_arg {
   13061     name: "size"
   13062     type: DT_INT32
   13063   }
   13064   input_arg {
   13065     name: "paddings"
   13066     type: DT_INT32
   13067   }
   13068   input_arg {
   13069     name: "filter"
   13070     type_attr: "T"
   13071   }
   13072   output_arg {
   13073     name: "output"
   13074     type_attr: "T"
   13075   }
   13076   attr {
   13077     name: "T"
   13078     type: "type"
   13079     allowed_values {
   13080       list {
   13081         type: DT_HALF
   13082         type: DT_FLOAT
   13083         type: DT_DOUBLE
   13084       }
   13085     }
   13086   }
   13087   attr {
   13088     name: "resize_align_corners"
   13089     type: "bool"
   13090     default_value {
   13091       b: false
   13092     }
   13093   }
   13094   attr {
   13095     name: "mode"
   13096     type: "string"
   13097     allowed_values {
   13098       list {
   13099         s: "REFLECT"
   13100         s: "SYMMETRIC"
   13101       }
   13102     }
   13103   }
   13104   attr {
   13105     name: "strides"
   13106     type: "list(int)"
   13107   }
   13108   attr {
   13109     name: "padding"
   13110     type: "string"
   13111     allowed_values {
   13112       list {
   13113         s: "SAME"
   13114         s: "VALID"
   13115       }
   13116     }
   13117   }
   13118 }
   13119 op {
   13120   name: "Gather"
   13121   input_arg {
   13122     name: "params"
   13123     type_attr: "Tparams"
   13124   }
   13125   input_arg {
   13126     name: "indices"
   13127     type_attr: "Tindices"
   13128   }
   13129   output_arg {
   13130     name: "output"
   13131     type_attr: "Tparams"
   13132   }
   13133   attr {
   13134     name: "Tparams"
   13135     type: "type"
   13136   }
   13137   attr {
   13138     name: "Tindices"
   13139     type: "type"
   13140     allowed_values {
   13141       list {
   13142         type: DT_INT32
   13143         type: DT_INT64
   13144       }
   13145     }
   13146   }
   13147 }
   13148 op {
   13149   name: "Gather"
   13150   input_arg {
   13151     name: "params"
   13152     type_attr: "Tparams"
   13153   }
   13154   input_arg {
   13155     name: "indices"
   13156     type_attr: "Tindices"
   13157   }
   13158   output_arg {
   13159     name: "output"
   13160     type_attr: "Tparams"
   13161   }
   13162   attr {
   13163     name: "validate_indices"
   13164     type: "bool"
   13165     default_value {
   13166       b: true
   13167     }
   13168   }
   13169   attr {
   13170     name: "Tparams"
   13171     type: "type"
   13172   }
   13173   attr {
   13174     name: "Tindices"
   13175     type: "type"
   13176     allowed_values {
   13177       list {
   13178         type: DT_INT32
   13179         type: DT_INT64
   13180       }
   13181     }
   13182   }
   13183 }
   13184 op {
   13185   name: "GatherNd"
   13186   input_arg {
   13187     name: "params"
   13188     type_attr: "Tparams"
   13189   }
   13190   input_arg {
   13191     name: "indices"
   13192     type_attr: "Tindices"
   13193   }
   13194   output_arg {
   13195     name: "output"
   13196     type_attr: "Tparams"
   13197   }
   13198   attr {
   13199     name: "Tparams"
   13200     type: "type"
   13201   }
   13202   attr {
   13203     name: "Tindices"
   13204     type: "type"
   13205     allowed_values {
   13206       list {
   13207         type: DT_INT32
   13208         type: DT_INT64
   13209       }
   13210     }
   13211   }
   13212 }
   13213 op {
   13214   name: "GetSessionHandle"
   13215   input_arg {
   13216     name: "value"
   13217     type_attr: "T"
   13218   }
   13219   output_arg {
   13220     name: "handle"
   13221     type: DT_STRING
   13222   }
   13223   attr {
   13224     name: "T"
   13225     type: "type"
   13226   }
   13227 }
   13228 op {
   13229   name: "GetSessionTensor"
   13230   input_arg {
   13231     name: "handle"
   13232     type: DT_STRING
   13233   }
   13234   output_arg {
   13235     name: "value"
   13236     type_attr: "dtype"
   13237   }
   13238   attr {
   13239     name: "dtype"
   13240     type: "type"
   13241   }
   13242 }
   13243 op {
   13244   name: "Greater"
   13245   input_arg {
   13246     name: "x"
   13247     type_attr: "T"
   13248   }
   13249   input_arg {
   13250     name: "y"
   13251     type_attr: "T"
   13252   }
   13253   output_arg {
   13254     name: "z"
   13255     type: DT_BOOL
   13256   }
   13257   attr {
   13258     name: "T"
   13259     type: "type"
   13260     allowed_values {
   13261       list {
   13262         type: DT_FLOAT
   13263         type: DT_DOUBLE
   13264         type: DT_INT32
   13265         type: DT_INT64
   13266       }
   13267     }
   13268   }
   13269 }
   13270 op {
   13271   name: "Greater"
   13272   input_arg {
   13273     name: "x"
   13274     type_attr: "T"
   13275   }
   13276   input_arg {
   13277     name: "y"
   13278     type_attr: "T"
   13279   }
   13280   output_arg {
   13281     name: "z"
   13282     type: DT_BOOL
   13283   }
   13284   attr {
   13285     name: "T"
   13286     type: "type"
   13287     allowed_values {
   13288       list {
   13289         type: DT_FLOAT
   13290         type: DT_DOUBLE
   13291         type: DT_INT32
   13292         type: DT_INT64
   13293         type: DT_UINT8
   13294         type: DT_INT16
   13295         type: DT_INT8
   13296       }
   13297     }
   13298   }
   13299 }
   13300 op {
   13301   name: "Greater"
   13302   input_arg {
   13303     name: "x"
   13304     type_attr: "T"
   13305   }
   13306   input_arg {
   13307     name: "y"
   13308     type_attr: "T"
   13309   }
   13310   output_arg {
   13311     name: "z"
   13312     type: DT_BOOL
   13313   }
   13314   attr {
   13315     name: "T"
   13316     type: "type"
   13317     allowed_values {
   13318       list {
   13319         type: DT_FLOAT
   13320         type: DT_DOUBLE
   13321         type: DT_INT32
   13322         type: DT_INT64
   13323         type: DT_UINT8
   13324         type: DT_INT16
   13325         type: DT_INT8
   13326         type: DT_UINT16
   13327       }
   13328     }
   13329   }
   13330 }
   13331 op {
   13332   name: "Greater"
   13333   input_arg {
   13334     name: "x"
   13335     type_attr: "T"
   13336   }
   13337   input_arg {
   13338     name: "y"
   13339     type_attr: "T"
   13340   }
   13341   output_arg {
   13342     name: "z"
   13343     type: DT_BOOL
   13344   }
   13345   attr {
   13346     name: "T"
   13347     type: "type"
   13348     allowed_values {
   13349       list {
   13350         type: DT_FLOAT
   13351         type: DT_DOUBLE
   13352         type: DT_INT32
   13353         type: DT_INT64
   13354         type: DT_UINT8
   13355         type: DT_INT16
   13356         type: DT_INT8
   13357         type: DT_UINT16
   13358         type: DT_HALF
   13359       }
   13360     }
   13361   }
   13362 }
   13363 op {
   13364   name: "GreaterEqual"
   13365   input_arg {
   13366     name: "x"
   13367     type_attr: "T"
   13368   }
   13369   input_arg {
   13370     name: "y"
   13371     type_attr: "T"
   13372   }
   13373   output_arg {
   13374     name: "z"
   13375     type: DT_BOOL
   13376   }
   13377   attr {
   13378     name: "T"
   13379     type: "type"
   13380     allowed_values {
   13381       list {
   13382         type: DT_FLOAT
   13383         type: DT_DOUBLE
   13384         type: DT_INT32
   13385         type: DT_INT64
   13386       }
   13387     }
   13388   }
   13389 }
   13390 op {
   13391   name: "GreaterEqual"
   13392   input_arg {
   13393     name: "x"
   13394     type_attr: "T"
   13395   }
   13396   input_arg {
   13397     name: "y"
   13398     type_attr: "T"
   13399   }
   13400   output_arg {
   13401     name: "z"
   13402     type: DT_BOOL
   13403   }
   13404   attr {
   13405     name: "T"
   13406     type: "type"
   13407     allowed_values {
   13408       list {
   13409         type: DT_FLOAT
   13410         type: DT_DOUBLE
   13411         type: DT_INT32
   13412         type: DT_INT64
   13413         type: DT_UINT8
   13414         type: DT_INT16
   13415         type: DT_INT8
   13416       }
   13417     }
   13418   }
   13419 }
   13420 op {
   13421   name: "GreaterEqual"
   13422   input_arg {
   13423     name: "x"
   13424     type_attr: "T"
   13425   }
   13426   input_arg {
   13427     name: "y"
   13428     type_attr: "T"
   13429   }
   13430   output_arg {
   13431     name: "z"
   13432     type: DT_BOOL
   13433   }
   13434   attr {
   13435     name: "T"
   13436     type: "type"
   13437     allowed_values {
   13438       list {
   13439         type: DT_FLOAT
   13440         type: DT_DOUBLE
   13441         type: DT_INT32
   13442         type: DT_INT64
   13443         type: DT_UINT8
   13444         type: DT_INT16
   13445         type: DT_INT8
   13446         type: DT_UINT16
   13447       }
   13448     }
   13449   }
   13450 }
   13451 op {
   13452   name: "GreaterEqual"
   13453   input_arg {
   13454     name: "x"
   13455     type_attr: "T"
   13456   }
   13457   input_arg {
   13458     name: "y"
   13459     type_attr: "T"
   13460   }
   13461   output_arg {
   13462     name: "z"
   13463     type: DT_BOOL
   13464   }
   13465   attr {
   13466     name: "T"
   13467     type: "type"
   13468     allowed_values {
   13469       list {
   13470         type: DT_FLOAT
   13471         type: DT_DOUBLE
   13472         type: DT_INT32
   13473         type: DT_INT64
   13474         type: DT_UINT8
   13475         type: DT_INT16
   13476         type: DT_INT8
   13477         type: DT_UINT16
   13478         type: DT_HALF
   13479       }
   13480     }
   13481   }
   13482 }
   13483 op {
   13484   name: "HSVToRGB"
   13485   input_arg {
   13486     name: "images"
   13487     type: DT_FLOAT
   13488   }
   13489   output_arg {
   13490     name: "output"
   13491     type: DT_FLOAT
   13492   }
   13493 }
   13494 op {
   13495   name: "HSVToRGB"
   13496   input_arg {
   13497     name: "images"
   13498     type_attr: "T"
   13499   }
   13500   output_arg {
   13501     name: "output"
   13502     type_attr: "T"
   13503   }
   13504   attr {
   13505     name: "T"
   13506     type: "type"
   13507     default_value {
   13508       type: DT_FLOAT
   13509     }
   13510     allowed_values {
   13511       list {
   13512         type: DT_FLOAT
   13513         type: DT_DOUBLE
   13514       }
   13515     }
   13516   }
   13517 }
   13518 op {
   13519   name: "HashTable"
   13520   output_arg {
   13521     name: "table_handle"
   13522     type: DT_STRING
   13523     is_ref: true
   13524   }
   13525   attr {
   13526     name: "container"
   13527     type: "string"
   13528     default_value {
   13529       s: ""
   13530     }
   13531   }
   13532   attr {
   13533     name: "shared_name"
   13534     type: "string"
   13535     default_value {
   13536       s: ""
   13537     }
   13538   }
   13539   attr {
   13540     name: "key_dtype"
   13541     type: "type"
   13542   }
   13543   attr {
   13544     name: "value_dtype"
   13545     type: "type"
   13546   }
   13547 }
   13548 op {
   13549   name: "HashTable"
   13550   output_arg {
   13551     name: "table_handle"
   13552     type: DT_STRING
   13553     is_ref: true
   13554   }
   13555   attr {
   13556     name: "container"
   13557     type: "string"
   13558     default_value {
   13559       s: ""
   13560     }
   13561   }
   13562   attr {
   13563     name: "shared_name"
   13564     type: "string"
   13565     default_value {
   13566       s: ""
   13567     }
   13568   }
   13569   attr {
   13570     name: "key_dtype"
   13571     type: "type"
   13572   }
   13573   attr {
   13574     name: "value_dtype"
   13575     type: "type"
   13576   }
   13577   is_stateful: true
   13578 }
   13579 op {
   13580   name: "HashTable"
   13581   output_arg {
   13582     name: "table_handle"
   13583     type: DT_STRING
   13584     is_ref: true
   13585   }
   13586   attr {
   13587     name: "container"
   13588     type: "string"
   13589     default_value {
   13590       s: ""
   13591     }
   13592   }
   13593   attr {
   13594     name: "shared_name"
   13595     type: "string"
   13596     default_value {
   13597       s: ""
   13598     }
   13599   }
   13600   attr {
   13601     name: "use_node_name_sharing"
   13602     type: "bool"
   13603     default_value {
   13604       b: false
   13605     }
   13606   }
   13607   attr {
   13608     name: "key_dtype"
   13609     type: "type"
   13610   }
   13611   attr {
   13612     name: "value_dtype"
   13613     type: "type"
   13614   }
   13615   is_stateful: true
   13616 }
   13617 op {
   13618   name: "HistogramSummary"
   13619   input_arg {
   13620     name: "tag"
   13621     type: DT_STRING
   13622   }
   13623   input_arg {
   13624     name: "values"
   13625     type: DT_FLOAT
   13626   }
   13627   output_arg {
   13628     name: "summary"
   13629     type: DT_STRING
   13630   }
   13631 }
   13632 op {
   13633   name: "HistogramSummary"
   13634   input_arg {
   13635     name: "tag"
   13636     type: DT_STRING
   13637   }
   13638   input_arg {
   13639     name: "values"
   13640     type_attr: "T"
   13641   }
   13642   output_arg {
   13643     name: "summary"
   13644     type: DT_STRING
   13645   }
   13646   attr {
   13647     name: "T"
   13648     type: "type"
   13649     default_value {
   13650       type: DT_FLOAT
   13651     }
   13652     allowed_values {
   13653       list {
   13654         type: DT_FLOAT
   13655         type: DT_DOUBLE
   13656       }
   13657     }
   13658   }
   13659 }
   13660 op {
   13661   name: "HistogramSummary"
   13662   input_arg {
   13663     name: "tag"
   13664     type: DT_STRING
   13665   }
   13666   input_arg {
   13667     name: "values"
   13668     type_attr: "T"
   13669   }
   13670   output_arg {
   13671     name: "summary"
   13672     type: DT_STRING
   13673   }
   13674   attr {
   13675     name: "T"
   13676     type: "type"
   13677     default_value {
   13678       type: DT_FLOAT
   13679     }
   13680     allowed_values {
   13681       list {
   13682         type: DT_FLOAT
   13683         type: DT_DOUBLE
   13684         type: DT_INT32
   13685         type: DT_INT64
   13686         type: DT_UINT8
   13687         type: DT_INT16
   13688         type: DT_INT8
   13689       }
   13690     }
   13691   }
   13692 }
   13693 op {
   13694   name: "HistogramSummary"
   13695   input_arg {
   13696     name: "tag"
   13697     type: DT_STRING
   13698   }
   13699   input_arg {
   13700     name: "values"
   13701     type_attr: "T"
   13702   }
   13703   output_arg {
   13704     name: "summary"
   13705     type: DT_STRING
   13706   }
   13707   attr {
   13708     name: "T"
   13709     type: "type"
   13710     default_value {
   13711       type: DT_FLOAT
   13712     }
   13713     allowed_values {
   13714       list {
   13715         type: DT_FLOAT
   13716         type: DT_DOUBLE
   13717         type: DT_INT32
   13718         type: DT_INT64
   13719         type: DT_UINT8
   13720         type: DT_INT16
   13721         type: DT_INT8
   13722         type: DT_UINT16
   13723       }
   13724     }
   13725   }
   13726 }
   13727 op {
   13728   name: "HistogramSummary"
   13729   input_arg {
   13730     name: "tag"
   13731     type: DT_STRING
   13732   }
   13733   input_arg {
   13734     name: "values"
   13735     type_attr: "T"
   13736   }
   13737   output_arg {
   13738     name: "summary"
   13739     type: DT_STRING
   13740   }
   13741   attr {
   13742     name: "T"
   13743     type: "type"
   13744     default_value {
   13745       type: DT_FLOAT
   13746     }
   13747     allowed_values {
   13748       list {
   13749         type: DT_FLOAT
   13750         type: DT_DOUBLE
   13751         type: DT_INT32
   13752         type: DT_INT64
   13753         type: DT_UINT8
   13754         type: DT_INT16
   13755         type: DT_INT8
   13756         type: DT_UINT16
   13757         type: DT_HALF
   13758       }
   13759     }
   13760   }
   13761 }
   13762 op {
   13763   name: "IFFT"
   13764   input_arg {
   13765     name: "in"
   13766     type: DT_COMPLEX64
   13767   }
   13768   output_arg {
   13769     name: "out"
   13770     type: DT_COMPLEX64
   13771   }
   13772 }
   13773 op {
   13774   name: "IFFT"
   13775   input_arg {
   13776     name: "input"
   13777     type: DT_COMPLEX64
   13778   }
   13779   output_arg {
   13780     name: "out"
   13781     type: DT_COMPLEX64
   13782   }
   13783 }
   13784 op {
   13785   name: "IFFT"
   13786   input_arg {
   13787     name: "input"
   13788     type: DT_COMPLEX64
   13789   }
   13790   output_arg {
   13791     name: "output"
   13792     type: DT_COMPLEX64
   13793   }
   13794 }
   13795 op {
   13796   name: "IFFT2D"
   13797   input_arg {
   13798     name: "in"
   13799     type: DT_COMPLEX64
   13800   }
   13801   output_arg {
   13802     name: "out"
   13803     type: DT_COMPLEX64
   13804   }
   13805 }
   13806 op {
   13807   name: "IFFT2D"
   13808   input_arg {
   13809     name: "input"
   13810     type: DT_COMPLEX64
   13811   }
   13812   output_arg {
   13813     name: "out"
   13814     type: DT_COMPLEX64
   13815   }
   13816 }
   13817 op {
   13818   name: "IFFT2D"
   13819   input_arg {
   13820     name: "input"
   13821     type: DT_COMPLEX64
   13822   }
   13823   output_arg {
   13824     name: "output"
   13825     type: DT_COMPLEX64
   13826   }
   13827 }
   13828 op {
   13829   name: "IFFT3D"
   13830   input_arg {
   13831     name: "in"
   13832     type: DT_COMPLEX64
   13833   }
   13834   output_arg {
   13835     name: "out"
   13836     type: DT_COMPLEX64
   13837   }
   13838 }
   13839 op {
   13840   name: "IFFT3D"
   13841   input_arg {
   13842     name: "input"
   13843     type: DT_COMPLEX64
   13844   }
   13845   output_arg {
   13846     name: "out"
   13847     type: DT_COMPLEX64
   13848   }
   13849 }
   13850 op {
   13851   name: "IFFT3D"
   13852   input_arg {
   13853     name: "input"
   13854     type: DT_COMPLEX64
   13855   }
   13856   output_arg {
   13857     name: "output"
   13858     type: DT_COMPLEX64
   13859   }
   13860 }
   13861 op {
   13862   name: "Identity"
   13863   input_arg {
   13864     name: "input"
   13865     type_attr: "T"
   13866   }
   13867   output_arg {
   13868     name: "output"
   13869     type_attr: "T"
   13870   }
   13871   attr {
   13872     name: "T"
   13873     type: "type"
   13874   }
   13875 }
   13876 op {
   13877   name: "IdentityReader"
   13878   output_arg {
   13879     name: "reader_handle"
   13880     type: DT_STRING
   13881     is_ref: true
   13882   }
   13883   attr {
   13884     name: "container"
   13885     type: "string"
   13886     default_value {
   13887       s: ""
   13888     }
   13889   }
   13890   attr {
   13891     name: "shared_name"
   13892     type: "string"
   13893     default_value {
   13894       s: ""
   13895     }
   13896   }
   13897   is_stateful: true
   13898 }
   13899 op {
   13900   name: "IdentityReaderV2"
   13901   output_arg {
   13902     name: "reader_handle"
   13903     type: DT_RESOURCE
   13904   }
   13905   attr {
   13906     name: "container"
   13907     type: "string"
   13908     default_value {
   13909       s: ""
   13910     }
   13911   }
   13912   attr {
   13913     name: "shared_name"
   13914     type: "string"
   13915     default_value {
   13916       s: ""
   13917     }
   13918   }
   13919   is_stateful: true
   13920 }
   13921 op {
   13922   name: "Igamma"
   13923   input_arg {
   13924     name: "a"
   13925     type_attr: "T"
   13926   }
   13927   input_arg {
   13928     name: "x"
   13929     type_attr: "T"
   13930   }
   13931   output_arg {
   13932     name: "z"
   13933     type_attr: "T"
   13934   }
   13935   attr {
   13936     name: "T"
   13937     type: "type"
   13938     allowed_values {
   13939       list {
   13940         type: DT_FLOAT
   13941         type: DT_DOUBLE
   13942       }
   13943     }
   13944   }
   13945 }
   13946 op {
   13947   name: "Igammac"
   13948   input_arg {
   13949     name: "a"
   13950     type_attr: "T"
   13951   }
   13952   input_arg {
   13953     name: "x"
   13954     type_attr: "T"
   13955   }
   13956   output_arg {
   13957     name: "z"
   13958     type_attr: "T"
   13959   }
   13960   attr {
   13961     name: "T"
   13962     type: "type"
   13963     allowed_values {
   13964       list {
   13965         type: DT_FLOAT
   13966         type: DT_DOUBLE
   13967       }
   13968     }
   13969   }
   13970 }
   13971 op {
   13972   name: "Imag"
   13973   input_arg {
   13974     name: "in"
   13975     type: DT_COMPLEX64
   13976   }
   13977   output_arg {
   13978     name: "out"
   13979     type: DT_FLOAT
   13980   }
   13981 }
   13982 op {
   13983   name: "Imag"
   13984   input_arg {
   13985     name: "input"
   13986     type: DT_COMPLEX64
   13987   }
   13988   output_arg {
   13989     name: "out"
   13990     type: DT_FLOAT
   13991   }
   13992 }
   13993 op {
   13994   name: "Imag"
   13995   input_arg {
   13996     name: "input"
   13997     type: DT_COMPLEX64
   13998   }
   13999   output_arg {
   14000     name: "output"
   14001     type: DT_FLOAT
   14002   }
   14003 }
   14004 op {
   14005   name: "Imag"
   14006   input_arg {
   14007     name: "input"
   14008     type_attr: "T"
   14009   }
   14010   output_arg {
   14011     name: "output"
   14012     type_attr: "Tout"
   14013   }
   14014   attr {
   14015     name: "T"
   14016     type: "type"
   14017     default_value {
   14018       type: DT_COMPLEX64
   14019     }
   14020     allowed_values {
   14021       list {
   14022         type: DT_COMPLEX64
   14023         type: DT_COMPLEX128
   14024       }
   14025     }
   14026   }
   14027   attr {
   14028     name: "Tout"
   14029     type: "type"
   14030     default_value {
   14031       type: DT_FLOAT
   14032     }
   14033     allowed_values {
   14034       list {
   14035         type: DT_FLOAT
   14036         type: DT_DOUBLE
   14037       }
   14038     }
   14039   }
   14040 }
   14041 op {
   14042   name: "ImageSummary"
   14043   input_arg {
   14044     name: "tag"
   14045     type: DT_STRING
   14046   }
   14047   input_arg {
   14048     name: "tensor"
   14049     type: DT_FLOAT
   14050   }
   14051   output_arg {
   14052     name: "summary"
   14053     type: DT_STRING
   14054   }
   14055   attr {
   14056     name: "max_images"
   14057     type: "int"
   14058     default_value {
   14059       i: 3
   14060     }
   14061     has_minimum: true
   14062     minimum: 1
   14063   }
   14064   attr {
   14065     name: "bad_color"
   14066     type: "tensor"
   14067     default_value {
   14068       tensor {
   14069         dtype: DT_UINT8
   14070         tensor_shape {
   14071           dim {
   14072             size: 4
   14073           }
   14074         }
   14075         int_val: 255
   14076         int_val: 0
   14077         int_val: 0
   14078         int_val: 255
   14079       }
   14080     }
   14081   }
   14082 }
   14083 op {
   14084   name: "ImageSummary"
   14085   input_arg {
   14086     name: "tag"
   14087     type: DT_STRING
   14088   }
   14089   input_arg {
   14090     name: "tensor"
   14091     type_attr: "T"
   14092   }
   14093   output_arg {
   14094     name: "summary"
   14095     type: DT_STRING
   14096   }
   14097   attr {
   14098     name: "max_images"
   14099     type: "int"
   14100     default_value {
   14101       i: 3
   14102     }
   14103     has_minimum: true
   14104     minimum: 1
   14105   }
   14106   attr {
   14107     name: "T"
   14108     type: "type"
   14109     default_value {
   14110       type: DT_FLOAT
   14111     }
   14112     allowed_values {
   14113       list {
   14114         type: DT_UINT8
   14115         type: DT_FLOAT
   14116       }
   14117     }
   14118   }
   14119   attr {
   14120     name: "bad_color"
   14121     type: "tensor"
   14122     default_value {
   14123       tensor {
   14124         dtype: DT_UINT8
   14125         tensor_shape {
   14126           dim {
   14127             size: 4
   14128           }
   14129         }
   14130         int_val: 255
   14131         int_val: 0
   14132         int_val: 0
   14133         int_val: 255
   14134       }
   14135     }
   14136   }
   14137 }
   14138 op {
   14139   name: "ImageSummary"
   14140   input_arg {
   14141     name: "tag"
   14142     type: DT_STRING
   14143   }
   14144   input_arg {
   14145     name: "tensor"
   14146     type_attr: "T"
   14147   }
   14148   output_arg {
   14149     name: "summary"
   14150     type: DT_STRING
   14151   }
   14152   attr {
   14153     name: "max_images"
   14154     type: "int"
   14155     default_value {
   14156       i: 3
   14157     }
   14158     has_minimum: true
   14159     minimum: 1
   14160   }
   14161   attr {
   14162     name: "T"
   14163     type: "type"
   14164     default_value {
   14165       type: DT_FLOAT
   14166     }
   14167     allowed_values {
   14168       list {
   14169         type: DT_UINT8
   14170         type: DT_FLOAT
   14171         type: DT_HALF
   14172       }
   14173     }
   14174   }
   14175   attr {
   14176     name: "bad_color"
   14177     type: "tensor"
   14178     default_value {
   14179       tensor {
   14180         dtype: DT_UINT8
   14181         tensor_shape {
   14182           dim {
   14183             size: 4
   14184           }
   14185         }
   14186         int_val: 255
   14187         int_val: 0
   14188         int_val: 0
   14189         int_val: 255
   14190       }
   14191     }
   14192   }
   14193 }
   14194 op {
   14195   name: "ImmutableConst"
   14196   output_arg {
   14197     name: "tensor"
   14198     type_attr: "dtype"
   14199   }
   14200   attr {
   14201     name: "dtype"
   14202     type: "type"
   14203   }
   14204   attr {
   14205     name: "shape"
   14206     type: "shape"
   14207     default_value {
   14208       shape {
   14209       }
   14210     }
   14211   }
   14212   attr {
   14213     name: "memory_region_name"
   14214     type: "string"
   14215   }
   14216 }
   14217 op {
   14218   name: "ImmutableConst"
   14219   output_arg {
   14220     name: "tensor"
   14221     type_attr: "dtype"
   14222   }
   14223   attr {
   14224     name: "dtype"
   14225     type: "type"
   14226   }
   14227   attr {
   14228     name: "shape"
   14229     type: "shape"
   14230   }
   14231   attr {
   14232     name: "memory_region_name"
   14233     type: "string"
   14234   }
   14235 }
   14236 op {
   14237   name: "InTopK"
   14238   input_arg {
   14239     name: "predictions"
   14240     type: DT_FLOAT
   14241   }
   14242   input_arg {
   14243     name: "targets"
   14244     type: DT_INT32
   14245   }
   14246   output_arg {
   14247     name: "precision"
   14248     type: DT_BOOL
   14249   }
   14250   attr {
   14251     name: "k"
   14252     type: "int"
   14253   }
   14254 }
   14255 op {
   14256   name: "InTopK"
   14257   input_arg {
   14258     name: "predictions"
   14259     type: DT_FLOAT
   14260   }
   14261   input_arg {
   14262     name: "targets"
   14263     type_attr: "T"
   14264   }
   14265   output_arg {
   14266     name: "precision"
   14267     type: DT_BOOL
   14268   }
   14269   attr {
   14270     name: "k"
   14271     type: "int"
   14272   }
   14273   attr {
   14274     name: "T"
   14275     type: "type"
   14276     default_value {
   14277       type: DT_INT32
   14278     }
   14279     allowed_values {
   14280       list {
   14281         type: DT_INT32
   14282         type: DT_INT64
   14283       }
   14284     }
   14285   }
   14286 }
   14287 op {
   14288   name: "InitializeTable"
   14289   input_arg {
   14290     name: "table_handle"
   14291     type: DT_STRING
   14292     is_ref: true
   14293   }
   14294   input_arg {
   14295     name: "keys"
   14296     type_attr: "Tkey"
   14297   }
   14298   input_arg {
   14299     name: "values"
   14300     type_attr: "Tval"
   14301   }
   14302   attr {
   14303     name: "Tkey"
   14304     type: "type"
   14305   }
   14306   attr {
   14307     name: "Tval"
   14308     type: "type"
   14309   }
   14310 }
   14311 op {
   14312   name: "InitializeTableFromTextFile"
   14313   input_arg {
   14314     name: "table_handle"
   14315     type: DT_STRING
   14316     is_ref: true
   14317   }
   14318   input_arg {
   14319     name: "filename"
   14320     type: DT_STRING
   14321   }
   14322   attr {
   14323     name: "key_index"
   14324     type: "int"
   14325     has_minimum: true
   14326     minimum: -2
   14327   }
   14328   attr {
   14329     name: "value_index"
   14330     type: "int"
   14331     has_minimum: true
   14332     minimum: -2
   14333   }
   14334   attr {
   14335     name: "vocab_size"
   14336     type: "int"
   14337     default_value {
   14338       i: -1
   14339     }
   14340     has_minimum: true
   14341     minimum: -1
   14342   }
   14343   attr {
   14344     name: "delimiter"
   14345     type: "string"
   14346     default_value {
   14347       s: "\t"
   14348     }
   14349   }
   14350 }
   14351 op {
   14352   name: "Inv"
   14353   input_arg {
   14354     name: "x"
   14355     type_attr: "T"
   14356   }
   14357   output_arg {
   14358     name: "y"
   14359     type_attr: "T"
   14360   }
   14361   attr {
   14362     name: "T"
   14363     type: "type"
   14364     allowed_values {
   14365       list {
   14366         type: DT_FLOAT
   14367         type: DT_DOUBLE
   14368         type: DT_INT32
   14369         type: DT_COMPLEX64
   14370         type: DT_INT64
   14371       }
   14372     }
   14373   }
   14374 }
   14375 op {
   14376   name: "Inv"
   14377   input_arg {
   14378     name: "x"
   14379     type_attr: "T"
   14380   }
   14381   output_arg {
   14382     name: "y"
   14383     type_attr: "T"
   14384   }
   14385   attr {
   14386     name: "T"
   14387     type: "type"
   14388     allowed_values {
   14389       list {
   14390         type: DT_HALF
   14391         type: DT_FLOAT
   14392         type: DT_DOUBLE
   14393         type: DT_INT32
   14394         type: DT_COMPLEX64
   14395         type: DT_INT64
   14396       }
   14397     }
   14398   }
   14399 }
   14400 op {
   14401   name: "Inv"
   14402   input_arg {
   14403     name: "x"
   14404     type_attr: "T"
   14405   }
   14406   output_arg {
   14407     name: "y"
   14408     type_attr: "T"
   14409   }
   14410   attr {
   14411     name: "T"
   14412     type: "type"
   14413     allowed_values {
   14414       list {
   14415         type: DT_HALF
   14416         type: DT_FLOAT
   14417         type: DT_DOUBLE
   14418         type: DT_INT32
   14419         type: DT_INT64
   14420         type: DT_COMPLEX64
   14421         type: DT_COMPLEX128
   14422       }
   14423     }
   14424   }
   14425 }
   14426 op {
   14427   name: "Inv"
   14428   input_arg {
   14429     name: "x"
   14430     type_attr: "T"
   14431   }
   14432   output_arg {
   14433     name: "y"
   14434     type_attr: "T"
   14435   }
   14436   attr {
   14437     name: "T"
   14438     type: "type"
   14439     allowed_values {
   14440       list {
   14441         type: DT_HALF
   14442         type: DT_FLOAT
   14443         type: DT_DOUBLE
   14444         type: DT_INT32
   14445         type: DT_INT64
   14446         type: DT_COMPLEX64
   14447         type: DT_COMPLEX128
   14448       }
   14449     }
   14450   }
   14451   deprecation {
   14452     version: 17
   14453   }
   14454 }
   14455 op {
   14456   name: "InvGrad"
   14457   input_arg {
   14458     name: "x"
   14459     type_attr: "T"
   14460   }
   14461   input_arg {
   14462     name: "y"
   14463     type_attr: "T"
   14464   }
   14465   output_arg {
   14466     name: "z"
   14467     type_attr: "T"
   14468   }
   14469   attr {
   14470     name: "T"
   14471     type: "type"
   14472     allowed_values {
   14473       list {
   14474         type: DT_HALF
   14475         type: DT_FLOAT
   14476         type: DT_DOUBLE
   14477         type: DT_COMPLEX64
   14478         type: DT_COMPLEX128
   14479       }
   14480     }
   14481   }
   14482 }
   14483 op {
   14484   name: "InvGrad"
   14485   input_arg {
   14486     name: "x"
   14487     type_attr: "T"
   14488   }
   14489   input_arg {
   14490     name: "y"
   14491     type_attr: "T"
   14492   }
   14493   output_arg {
   14494     name: "z"
   14495     type_attr: "T"
   14496   }
   14497   attr {
   14498     name: "T"
   14499     type: "type"
   14500     allowed_values {
   14501       list {
   14502         type: DT_HALF
   14503         type: DT_FLOAT
   14504         type: DT_DOUBLE
   14505         type: DT_COMPLEX64
   14506         type: DT_COMPLEX128
   14507       }
   14508     }
   14509   }
   14510   deprecation {
   14511     version: 17
   14512   }
   14513 }
   14514 op {
   14515   name: "InvertPermutation"
   14516   input_arg {
   14517     name: "x"
   14518     type: DT_INT32
   14519   }
   14520   output_arg {
   14521     name: "y"
   14522     type: DT_INT32
   14523   }
   14524 }
   14525 op {
   14526   name: "InvertPermutation"
   14527   input_arg {
   14528     name: "x"
   14529     type_attr: "T"
   14530   }
   14531   output_arg {
   14532     name: "y"
   14533     type_attr: "T"
   14534   }
   14535   attr {
   14536     name: "T"
   14537     type: "type"
   14538     default_value {
   14539       type: DT_INT32
   14540     }
   14541     allowed_values {
   14542       list {
   14543         type: DT_INT32
   14544         type: DT_INT64
   14545       }
   14546     }
   14547   }
   14548 }
   14549 op {
   14550   name: "IsFinite"
   14551   input_arg {
   14552     name: "x"
   14553     type_attr: "T"
   14554   }
   14555   output_arg {
   14556     name: "y"
   14557     type: DT_BOOL
   14558   }
   14559   attr {
   14560     name: "T"
   14561     type: "type"
   14562     allowed_values {
   14563       list {
   14564         type: DT_FLOAT
   14565         type: DT_DOUBLE
   14566       }
   14567     }
   14568   }
   14569 }
   14570 op {
   14571   name: "IsFinite"
   14572   input_arg {
   14573     name: "x"
   14574     type_attr: "T"
   14575   }
   14576   output_arg {
   14577     name: "y"
   14578     type: DT_BOOL
   14579   }
   14580   attr {
   14581     name: "T"
   14582     type: "type"
   14583     allowed_values {
   14584       list {
   14585         type: DT_HALF
   14586         type: DT_FLOAT
   14587         type: DT_DOUBLE
   14588       }
   14589     }
   14590   }
   14591 }
   14592 op {
   14593   name: "IsInf"
   14594   input_arg {
   14595     name: "x"
   14596     type_attr: "T"
   14597   }
   14598   output_arg {
   14599     name: "y"
   14600     type: DT_BOOL
   14601   }
   14602   attr {
   14603     name: "T"
   14604     type: "type"
   14605     allowed_values {
   14606       list {
   14607         type: DT_FLOAT
   14608         type: DT_DOUBLE
   14609       }
   14610     }
   14611   }
   14612 }
   14613 op {
   14614   name: "IsInf"
   14615   input_arg {
   14616     name: "x"
   14617     type_attr: "T"
   14618   }
   14619   output_arg {
   14620     name: "y"
   14621     type: DT_BOOL
   14622   }
   14623   attr {
   14624     name: "T"
   14625     type: "type"
   14626     allowed_values {
   14627       list {
   14628         type: DT_HALF
   14629         type: DT_FLOAT
   14630         type: DT_DOUBLE
   14631       }
   14632     }
   14633   }
   14634 }
   14635 op {
   14636   name: "IsNan"
   14637   input_arg {
   14638     name: "x"
   14639     type_attr: "T"
   14640   }
   14641   output_arg {
   14642     name: "y"
   14643     type: DT_BOOL
   14644   }
   14645   attr {
   14646     name: "T"
   14647     type: "type"
   14648     allowed_values {
   14649       list {
   14650         type: DT_FLOAT
   14651         type: DT_DOUBLE
   14652       }
   14653     }
   14654   }
   14655 }
   14656 op {
   14657   name: "IsNan"
   14658   input_arg {
   14659     name: "x"
   14660     type_attr: "T"
   14661   }
   14662   output_arg {
   14663     name: "y"
   14664     type: DT_BOOL
   14665   }
   14666   attr {
   14667     name: "T"
   14668     type: "type"
   14669     allowed_values {
   14670       list {
   14671         type: DT_HALF
   14672         type: DT_FLOAT
   14673         type: DT_DOUBLE
   14674       }
   14675     }
   14676   }
   14677 }
   14678 op {
   14679   name: "IsVariableInitialized"
   14680   input_arg {
   14681     name: "ref"
   14682     type_attr: "dtype"
   14683     is_ref: true
   14684   }
   14685   output_arg {
   14686     name: "is_initialized"
   14687     type: DT_BOOL
   14688   }
   14689   attr {
   14690     name: "dtype"
   14691     type: "type"
   14692   }
   14693   allows_uninitialized_input: true
   14694 }
   14695 op {
   14696   name: "L2Loss"
   14697   input_arg {
   14698     name: "t"
   14699     type_attr: "T"
   14700   }
   14701   output_arg {
   14702     name: "output"
   14703     type_attr: "T"
   14704   }
   14705   attr {
   14706     name: "T"
   14707     type: "type"
   14708     allowed_values {
   14709       list {
   14710         type: DT_FLOAT
   14711         type: DT_DOUBLE
   14712         type: DT_INT64
   14713         type: DT_INT32
   14714         type: DT_UINT8
   14715         type: DT_INT16
   14716         type: DT_INT8
   14717         type: DT_COMPLEX64
   14718         type: DT_QINT8
   14719         type: DT_QUINT8
   14720         type: DT_QINT32
   14721       }
   14722     }
   14723   }
   14724 }
   14725 op {
   14726   name: "L2Loss"
   14727   input_arg {
   14728     name: "t"
   14729     type_attr: "T"
   14730   }
   14731   output_arg {
   14732     name: "output"
   14733     type_attr: "T"
   14734   }
   14735   attr {
   14736     name: "T"
   14737     type: "type"
   14738     allowed_values {
   14739       list {
   14740         type: DT_FLOAT
   14741         type: DT_DOUBLE
   14742         type: DT_INT64
   14743         type: DT_INT32
   14744         type: DT_UINT8
   14745         type: DT_UINT16
   14746         type: DT_INT16
   14747         type: DT_INT8
   14748         type: DT_COMPLEX64
   14749         type: DT_QINT8
   14750         type: DT_QUINT8
   14751         type: DT_QINT32
   14752       }
   14753     }
   14754   }
   14755 }
   14756 op {
   14757   name: "L2Loss"
   14758   input_arg {
   14759     name: "t"
   14760     type_attr: "T"
   14761   }
   14762   output_arg {
   14763     name: "output"
   14764     type_attr: "T"
   14765   }
   14766   attr {
   14767     name: "T"
   14768     type: "type"
   14769     allowed_values {
   14770       list {
   14771         type: DT_FLOAT
   14772         type: DT_DOUBLE
   14773         type: DT_INT64
   14774         type: DT_INT32
   14775         type: DT_UINT8
   14776         type: DT_UINT16
   14777         type: DT_INT16
   14778         type: DT_INT8
   14779         type: DT_COMPLEX64
   14780         type: DT_COMPLEX128
   14781         type: DT_QINT8
   14782         type: DT_QUINT8
   14783         type: DT_QINT32
   14784       }
   14785     }
   14786   }
   14787 }
   14788 op {
   14789   name: "L2Loss"
   14790   input_arg {
   14791     name: "t"
   14792     type_attr: "T"
   14793   }
   14794   output_arg {
   14795     name: "output"
   14796     type_attr: "T"
   14797   }
   14798   attr {
   14799     name: "T"
   14800     type: "type"
   14801     allowed_values {
   14802       list {
   14803         type: DT_FLOAT
   14804         type: DT_DOUBLE
   14805         type: DT_INT64
   14806         type: DT_INT32
   14807         type: DT_UINT8
   14808         type: DT_UINT16
   14809         type: DT_INT16
   14810         type: DT_INT8
   14811         type: DT_COMPLEX64
   14812         type: DT_COMPLEX128
   14813         type: DT_QINT8
   14814         type: DT_QUINT8
   14815         type: DT_QINT32
   14816         type: DT_HALF
   14817       }
   14818     }
   14819   }
   14820 }
   14821 op {
   14822   name: "LRN"
   14823   input_arg {
   14824     name: "input"
   14825     type: DT_FLOAT
   14826   }
   14827   output_arg {
   14828     name: "output"
   14829     type: DT_FLOAT
   14830   }
   14831   attr {
   14832     name: "depth_radius"
   14833     type: "int"
   14834     default_value {
   14835       i: 5
   14836     }
   14837   }
   14838   attr {
   14839     name: "bias"
   14840     type: "float"
   14841     default_value {
   14842       f: 1
   14843     }
   14844   }
   14845   attr {
   14846     name: "alpha"
   14847     type: "float"
   14848     default_value {
   14849       f: 1
   14850     }
   14851   }
   14852   attr {
   14853     name: "beta"
   14854     type: "float"
   14855     default_value {
   14856       f: 0.5
   14857     }
   14858   }
   14859 }
   14860 op {
   14861   name: "LRN"
   14862   input_arg {
   14863     name: "input"
   14864     type_attr: "T"
   14865   }
   14866   output_arg {
   14867     name: "output"
   14868     type_attr: "T"
   14869   }
   14870   attr {
   14871     name: "depth_radius"
   14872     type: "int"
   14873     default_value {
   14874       i: 5
   14875     }
   14876   }
   14877   attr {
   14878     name: "bias"
   14879     type: "float"
   14880     default_value {
   14881       f: 1
   14882     }
   14883   }
   14884   attr {
   14885     name: "alpha"
   14886     type: "float"
   14887     default_value {
   14888       f: 1
   14889     }
   14890   }
   14891   attr {
   14892     name: "beta"
   14893     type: "float"
   14894     default_value {
   14895       f: 0.5
   14896     }
   14897   }
   14898   attr {
   14899     name: "T"
   14900     type: "type"
   14901     default_value {
   14902       type: DT_FLOAT
   14903     }
   14904     allowed_values {
   14905       list {
   14906         type: DT_FLOAT
   14907         type: DT_HALF
   14908       }
   14909     }
   14910   }
   14911 }
   14912 op {
   14913   name: "LRNGrad"
   14914   input_arg {
   14915     name: "input_grads"
   14916     type: DT_FLOAT
   14917   }
   14918   input_arg {
   14919     name: "input_image"
   14920     type: DT_FLOAT
   14921   }
   14922   input_arg {
   14923     name: "output_image"
   14924     type: DT_FLOAT
   14925   }
   14926   output_arg {
   14927     name: "output"
   14928     type: DT_FLOAT
   14929   }
   14930   attr {
   14931     name: "depth_radius"
   14932     type: "int"
   14933     default_value {
   14934       i: 5
   14935     }
   14936   }
   14937   attr {
   14938     name: "bias"
   14939     type: "float"
   14940     default_value {
   14941       f: 1
   14942     }
   14943   }
   14944   attr {
   14945     name: "alpha"
   14946     type: "float"
   14947     default_value {
   14948       f: 1
   14949     }
   14950   }
   14951   attr {
   14952     name: "beta"
   14953     type: "float"
   14954     default_value {
   14955       f: 0.5
   14956     }
   14957   }
   14958 }
   14959 op {
   14960   name: "LRNGrad"
   14961   input_arg {
   14962     name: "input_grads"
   14963     type_attr: "T"
   14964   }
   14965   input_arg {
   14966     name: "input_image"
   14967     type_attr: "T"
   14968   }
   14969   input_arg {
   14970     name: "output_image"
   14971     type_attr: "T"
   14972   }
   14973   output_arg {
   14974     name: "output"
   14975     type_attr: "T"
   14976   }
   14977   attr {
   14978     name: "depth_radius"
   14979     type: "int"
   14980     default_value {
   14981       i: 5
   14982     }
   14983   }
   14984   attr {
   14985     name: "bias"
   14986     type: "float"
   14987     default_value {
   14988       f: 1
   14989     }
   14990   }
   14991   attr {
   14992     name: "alpha"
   14993     type: "float"
   14994     default_value {
   14995       f: 1
   14996     }
   14997   }
   14998   attr {
   14999     name: "beta"
   15000     type: "float"
   15001     default_value {
   15002       f: 0.5
   15003     }
   15004   }
   15005   attr {
   15006     name: "T"
   15007     type: "type"
   15008     default_value {
   15009       type: DT_FLOAT
   15010     }
   15011     allowed_values {
   15012       list {
   15013         type: DT_FLOAT
   15014         type: DT_HALF
   15015       }
   15016     }
   15017   }
   15018 }
   15019 op {
   15020   name: "LearnedUnigramCandidateSampler"
   15021   input_arg {
   15022     name: "true_classes"
   15023     type: DT_INT64
   15024   }
   15025   output_arg {
   15026     name: "sampled_candidates"
   15027     type: DT_INT64
   15028   }
   15029   output_arg {
   15030     name: "true_expected_count"
   15031     type: DT_FLOAT
   15032   }
   15033   output_arg {
   15034     name: "sampled_expected_count"
   15035     type: DT_FLOAT
   15036   }
   15037   attr {
   15038     name: "num_true"
   15039     type: "int"
   15040     has_minimum: true
   15041     minimum: 1
   15042   }
   15043   attr {
   15044     name: "num_sampled"
   15045     type: "int"
   15046     has_minimum: true
   15047     minimum: 1
   15048   }
   15049   attr {
   15050     name: "unique"
   15051     type: "bool"
   15052   }
   15053   attr {
   15054     name: "range_max"
   15055     type: "int"
   15056     has_minimum: true
   15057     minimum: 1
   15058   }
   15059   attr {
   15060     name: "seed"
   15061     type: "int"
   15062     default_value {
   15063       i: 0
   15064     }
   15065   }
   15066   attr {
   15067     name: "seed2"
   15068     type: "int"
   15069     default_value {
   15070       i: 0
   15071     }
   15072   }
   15073 }
   15074 op {
   15075   name: "Less"
   15076   input_arg {
   15077     name: "x"
   15078     type_attr: "T"
   15079   }
   15080   input_arg {
   15081     name: "y"
   15082     type_attr: "T"
   15083   }
   15084   output_arg {
   15085     name: "z"
   15086     type: DT_BOOL
   15087   }
   15088   attr {
   15089     name: "T"
   15090     type: "type"
   15091     allowed_values {
   15092       list {
   15093         type: DT_FLOAT
   15094         type: DT_DOUBLE
   15095         type: DT_INT32
   15096         type: DT_INT64
   15097       }
   15098     }
   15099   }
   15100 }
   15101 op {
   15102   name: "Less"
   15103   input_arg {
   15104     name: "x"
   15105     type_attr: "T"
   15106   }
   15107   input_arg {
   15108     name: "y"
   15109     type_attr: "T"
   15110   }
   15111   output_arg {
   15112     name: "z"
   15113     type: DT_BOOL
   15114   }
   15115   attr {
   15116     name: "T"
   15117     type: "type"
   15118     allowed_values {
   15119       list {
   15120         type: DT_FLOAT
   15121         type: DT_DOUBLE
   15122         type: DT_INT32
   15123         type: DT_INT64
   15124         type: DT_UINT8
   15125         type: DT_INT16
   15126         type: DT_INT8
   15127       }
   15128     }
   15129   }
   15130 }
   15131 op {
   15132   name: "Less"
   15133   input_arg {
   15134     name: "x"
   15135     type_attr: "T"
   15136   }
   15137   input_arg {
   15138     name: "y"
   15139     type_attr: "T"
   15140   }
   15141   output_arg {
   15142     name: "z"
   15143     type: DT_BOOL
   15144   }
   15145   attr {
   15146     name: "T"
   15147     type: "type"
   15148     allowed_values {
   15149       list {
   15150         type: DT_FLOAT
   15151         type: DT_DOUBLE
   15152         type: DT_INT32
   15153         type: DT_INT64
   15154         type: DT_UINT8
   15155         type: DT_INT16
   15156         type: DT_INT8
   15157         type: DT_UINT16
   15158       }
   15159     }
   15160   }
   15161 }
   15162 op {
   15163   name: "Less"
   15164   input_arg {
   15165     name: "x"
   15166     type_attr: "T"
   15167   }
   15168   input_arg {
   15169     name: "y"
   15170     type_attr: "T"
   15171   }
   15172   output_arg {
   15173     name: "z"
   15174     type: DT_BOOL
   15175   }
   15176   attr {
   15177     name: "T"
   15178     type: "type"
   15179     allowed_values {
   15180       list {
   15181         type: DT_FLOAT
   15182         type: DT_DOUBLE
   15183         type: DT_INT32
   15184         type: DT_INT64
   15185         type: DT_UINT8
   15186         type: DT_INT16
   15187         type: DT_INT8
   15188         type: DT_UINT16
   15189         type: DT_HALF
   15190       }
   15191     }
   15192   }
   15193 }
   15194 op {
   15195   name: "LessEqual"
   15196   input_arg {
   15197     name: "x"
   15198     type_attr: "T"
   15199   }
   15200   input_arg {
   15201     name: "y"
   15202     type_attr: "T"
   15203   }
   15204   output_arg {
   15205     name: "z"
   15206     type: DT_BOOL
   15207   }
   15208   attr {
   15209     name: "T"
   15210     type: "type"
   15211     allowed_values {
   15212       list {
   15213         type: DT_FLOAT
   15214         type: DT_DOUBLE
   15215         type: DT_INT32
   15216         type: DT_INT64
   15217       }
   15218     }
   15219   }
   15220 }
   15221 op {
   15222   name: "LessEqual"
   15223   input_arg {
   15224     name: "x"
   15225     type_attr: "T"
   15226   }
   15227   input_arg {
   15228     name: "y"
   15229     type_attr: "T"
   15230   }
   15231   output_arg {
   15232     name: "z"
   15233     type: DT_BOOL
   15234   }
   15235   attr {
   15236     name: "T"
   15237     type: "type"
   15238     allowed_values {
   15239       list {
   15240         type: DT_FLOAT
   15241         type: DT_DOUBLE
   15242         type: DT_INT32
   15243         type: DT_INT64
   15244         type: DT_UINT8
   15245         type: DT_INT16
   15246         type: DT_INT8
   15247       }
   15248     }
   15249   }
   15250 }
   15251 op {
   15252   name: "LessEqual"
   15253   input_arg {
   15254     name: "x"
   15255     type_attr: "T"
   15256   }
   15257   input_arg {
   15258     name: "y"
   15259     type_attr: "T"
   15260   }
   15261   output_arg {
   15262     name: "z"
   15263     type: DT_BOOL
   15264   }
   15265   attr {
   15266     name: "T"
   15267     type: "type"
   15268     allowed_values {
   15269       list {
   15270         type: DT_FLOAT
   15271         type: DT_DOUBLE
   15272         type: DT_INT32
   15273         type: DT_INT64
   15274         type: DT_UINT8
   15275         type: DT_INT16
   15276         type: DT_INT8
   15277         type: DT_UINT16
   15278       }
   15279     }
   15280   }
   15281 }
   15282 op {
   15283   name: "LessEqual"
   15284   input_arg {
   15285     name: "x"
   15286     type_attr: "T"
   15287   }
   15288   input_arg {
   15289     name: "y"
   15290     type_attr: "T"
   15291   }
   15292   output_arg {
   15293     name: "z"
   15294     type: DT_BOOL
   15295   }
   15296   attr {
   15297     name: "T"
   15298     type: "type"
   15299     allowed_values {
   15300       list {
   15301         type: DT_FLOAT
   15302         type: DT_DOUBLE
   15303         type: DT_INT32
   15304         type: DT_INT64
   15305         type: DT_UINT8
   15306         type: DT_INT16
   15307         type: DT_INT8
   15308         type: DT_UINT16
   15309         type: DT_HALF
   15310       }
   15311     }
   15312   }
   15313 }
   15314 op {
   15315   name: "Lgamma"
   15316   input_arg {
   15317     name: "x"
   15318     type_attr: "T"
   15319   }
   15320   output_arg {
   15321     name: "y"
   15322     type_attr: "T"
   15323   }
   15324   attr {
   15325     name: "T"
   15326     type: "type"
   15327     allowed_values {
   15328       list {
   15329         type: DT_FLOAT
   15330         type: DT_DOUBLE
   15331       }
   15332     }
   15333   }
   15334 }
   15335 op {
   15336   name: "Lgamma"
   15337   input_arg {
   15338     name: "x"
   15339     type_attr: "T"
   15340   }
   15341   output_arg {
   15342     name: "y"
   15343     type_attr: "T"
   15344   }
   15345   attr {
   15346     name: "T"
   15347     type: "type"
   15348     allowed_values {
   15349       list {
   15350         type: DT_HALF
   15351         type: DT_FLOAT
   15352         type: DT_DOUBLE
   15353       }
   15354     }
   15355   }
   15356 }
   15357 op {
   15358   name: "Lgamma"
   15359   input_arg {
   15360     name: "x"
   15361     type_attr: "T"
   15362   }
   15363   output_arg {
   15364     name: "y"
   15365     type_attr: "T"
   15366   }
   15367   attr {
   15368     name: "T"
   15369     type: "type"
   15370     allowed_values {
   15371       list {
   15372         type: DT_HALF
   15373         type: DT_FLOAT
   15374         type: DT_DOUBLE
   15375       }
   15376     }
   15377   }
   15378 }
   15379 op {
   15380   name: "LinSpace"
   15381   input_arg {
   15382     name: "start"
   15383     type_attr: "T"
   15384   }
   15385   input_arg {
   15386     name: "stop"
   15387     type_attr: "T"
   15388   }
   15389   input_arg {
   15390     name: "num"
   15391     type: DT_INT32
   15392   }
   15393   output_arg {
   15394     name: "output"
   15395     type_attr: "T"
   15396   }
   15397   attr {
   15398     name: "T"
   15399     type: "type"
   15400     allowed_values {
   15401       list {
   15402         type: DT_FLOAT
   15403         type: DT_DOUBLE
   15404       }
   15405     }
   15406   }
   15407 }
   15408 op {
   15409   name: "LinSpace"
   15410   input_arg {
   15411     name: "start"
   15412     type_attr: "T"
   15413   }
   15414   input_arg {
   15415     name: "stop"
   15416     type_attr: "T"
   15417   }
   15418   input_arg {
   15419     name: "num"
   15420     type_attr: "Tidx"
   15421   }
   15422   output_arg {
   15423     name: "output"
   15424     type_attr: "T"
   15425   }
   15426   attr {
   15427     name: "T"
   15428     type: "type"
   15429     allowed_values {
   15430       list {
   15431         type: DT_FLOAT
   15432         type: DT_DOUBLE
   15433       }
   15434     }
   15435   }
   15436   attr {
   15437     name: "Tidx"
   15438     type: "type"
   15439     default_value {
   15440       type: DT_INT32
   15441     }
   15442     allowed_values {
   15443       list {
   15444         type: DT_INT32
   15445         type: DT_INT64
   15446       }
   15447     }
   15448   }
   15449 }
   15450 op {
   15451   name: "ListDiff"
   15452   input_arg {
   15453     name: "x"
   15454     type_attr: "T"
   15455   }
   15456   input_arg {
   15457     name: "y"
   15458     type_attr: "T"
   15459   }
   15460   output_arg {
   15461     name: "out"
   15462     type_attr: "T"
   15463   }
   15464   output_arg {
   15465     name: "idx"
   15466     type: DT_INT32
   15467   }
   15468   attr {
   15469     name: "T"
   15470     type: "type"
   15471   }
   15472 }
   15473 op {
   15474   name: "ListDiff"
   15475   input_arg {
   15476     name: "x"
   15477     type_attr: "T"
   15478   }
   15479   input_arg {
   15480     name: "y"
   15481     type_attr: "T"
   15482   }
   15483   output_arg {
   15484     name: "out"
   15485     type_attr: "T"
   15486   }
   15487   output_arg {
   15488     name: "idx"
   15489     type_attr: "out_idx"
   15490   }
   15491   attr {
   15492     name: "T"
   15493     type: "type"
   15494   }
   15495   attr {
   15496     name: "out_idx"
   15497     type: "type"
   15498     default_value {
   15499       type: DT_INT32
   15500     }
   15501     allowed_values {
   15502       list {
   15503         type: DT_INT32
   15504         type: DT_INT64
   15505       }
   15506     }
   15507   }
   15508 }
   15509 op {
   15510   name: "Log"
   15511   input_arg {
   15512     name: "x"
   15513     type_attr: "T"
   15514   }
   15515   output_arg {
   15516     name: "y"
   15517     type_attr: "T"
   15518   }
   15519   attr {
   15520     name: "T"
   15521     type: "type"
   15522     allowed_values {
   15523       list {
   15524         type: DT_FLOAT
   15525         type: DT_DOUBLE
   15526         type: DT_COMPLEX64
   15527       }
   15528     }
   15529   }
   15530 }
   15531 op {
   15532   name: "Log"
   15533   input_arg {
   15534     name: "x"
   15535     type_attr: "T"
   15536   }
   15537   output_arg {
   15538     name: "y"
   15539     type_attr: "T"
   15540   }
   15541   attr {
   15542     name: "T"
   15543     type: "type"
   15544     allowed_values {
   15545       list {
   15546         type: DT_HALF
   15547         type: DT_FLOAT
   15548         type: DT_DOUBLE
   15549         type: DT_COMPLEX64
   15550       }
   15551     }
   15552   }
   15553 }
   15554 op {
   15555   name: "Log"
   15556   input_arg {
   15557     name: "x"
   15558     type_attr: "T"
   15559   }
   15560   output_arg {
   15561     name: "y"
   15562     type_attr: "T"
   15563   }
   15564   attr {
   15565     name: "T"
   15566     type: "type"
   15567     allowed_values {
   15568       list {
   15569         type: DT_HALF
   15570         type: DT_FLOAT
   15571         type: DT_DOUBLE
   15572         type: DT_COMPLEX64
   15573         type: DT_COMPLEX128
   15574       }
   15575     }
   15576   }
   15577 }
   15578 op {
   15579   name: "Log1p"
   15580   input_arg {
   15581     name: "x"
   15582     type_attr: "T"
   15583   }
   15584   output_arg {
   15585     name: "y"
   15586     type_attr: "T"
   15587   }
   15588   attr {
   15589     name: "T"
   15590     type: "type"
   15591     allowed_values {
   15592       list {
   15593         type: DT_HALF
   15594         type: DT_FLOAT
   15595         type: DT_DOUBLE
   15596         type: DT_COMPLEX64
   15597         type: DT_COMPLEX128
   15598       }
   15599     }
   15600   }
   15601 }
   15602 op {
   15603   name: "LogSoftmax"
   15604   input_arg {
   15605     name: "logits"
   15606     type_attr: "T"
   15607   }
   15608   output_arg {
   15609     name: "logsoftmax"
   15610     type_attr: "T"
   15611   }
   15612   attr {
   15613     name: "T"
   15614     type: "type"
   15615     allowed_values {
   15616       list {
   15617         type: DT_FLOAT
   15618         type: DT_DOUBLE
   15619       }
   15620     }
   15621   }
   15622 }
   15623 op {
   15624   name: "LogSoftmax"
   15625   input_arg {
   15626     name: "logits"
   15627     type_attr: "T"
   15628   }
   15629   output_arg {
   15630     name: "logsoftmax"
   15631     type_attr: "T"
   15632   }
   15633   attr {
   15634     name: "T"
   15635     type: "type"
   15636     allowed_values {
   15637       list {
   15638         type: DT_HALF
   15639         type: DT_FLOAT
   15640         type: DT_DOUBLE
   15641       }
   15642     }
   15643   }
   15644 }
   15645 op {
   15646   name: "LogUniformCandidateSampler"
   15647   input_arg {
   15648     name: "true_classes"
   15649     type: DT_INT64
   15650   }
   15651   output_arg {
   15652     name: "sampled_candidates"
   15653     type: DT_INT64
   15654   }
   15655   output_arg {
   15656     name: "true_expected_count"
   15657     type: DT_FLOAT
   15658   }
   15659   output_arg {
   15660     name: "sampled_expected_count"
   15661     type: DT_FLOAT
   15662   }
   15663   attr {
   15664     name: "num_true"
   15665     type: "int"
   15666     has_minimum: true
   15667     minimum: 1
   15668   }
   15669   attr {
   15670     name: "num_sampled"
   15671     type: "int"
   15672     has_minimum: true
   15673     minimum: 1
   15674   }
   15675   attr {
   15676     name: "unique"
   15677     type: "bool"
   15678   }
   15679   attr {
   15680     name: "range_max"
   15681     type: "int"
   15682     has_minimum: true
   15683     minimum: 1
   15684   }
   15685   attr {
   15686     name: "seed"
   15687     type: "int"
   15688     default_value {
   15689       i: 0
   15690     }
   15691   }
   15692   attr {
   15693     name: "seed2"
   15694     type: "int"
   15695     default_value {
   15696       i: 0
   15697     }
   15698   }
   15699 }
   15700 op {
   15701   name: "LogicalAnd"
   15702   input_arg {
   15703     name: "x"
   15704     type: DT_BOOL
   15705   }
   15706   input_arg {
   15707     name: "y"
   15708     type: DT_BOOL
   15709   }
   15710   output_arg {
   15711     name: "z"
   15712     type: DT_BOOL
   15713   }
   15714   is_commutative: true
   15715 }
   15716 op {
   15717   name: "LogicalNot"
   15718   input_arg {
   15719     name: "x"
   15720     type: DT_BOOL
   15721   }
   15722   output_arg {
   15723     name: "y"
   15724     type: DT_BOOL
   15725   }
   15726 }
   15727 op {
   15728   name: "LogicalOr"
   15729   input_arg {
   15730     name: "x"
   15731     type: DT_BOOL
   15732   }
   15733   input_arg {
   15734     name: "y"
   15735     type: DT_BOOL
   15736   }
   15737   output_arg {
   15738     name: "z"
   15739     type: DT_BOOL
   15740   }
   15741   is_commutative: true
   15742 }
   15743 op {
   15744   name: "LookupTableExport"
   15745   input_arg {
   15746     name: "table_handle"
   15747     type: DT_STRING
   15748     is_ref: true
   15749   }
   15750   output_arg {
   15751     name: "keys"
   15752     type_attr: "Tkeys"
   15753   }
   15754   output_arg {
   15755     name: "values"
   15756     type_attr: "Tvalues"
   15757   }
   15758   attr {
   15759     name: "Tkeys"
   15760     type: "type"
   15761   }
   15762   attr {
   15763     name: "Tvalues"
   15764     type: "type"
   15765   }
   15766 }
   15767 op {
   15768   name: "LookupTableFind"
   15769   input_arg {
   15770     name: "table_handle"
   15771     type: DT_STRING
   15772     is_ref: true
   15773   }
   15774   input_arg {
   15775     name: "keys"
   15776     type_attr: "Tin"
   15777   }
   15778   input_arg {
   15779     name: "default_value"
   15780     type_attr: "Tout"
   15781   }
   15782   output_arg {
   15783     name: "values"
   15784     type_attr: "Tout"
   15785   }
   15786   attr {
   15787     name: "Tin"
   15788     type: "type"
   15789   }
   15790   attr {
   15791     name: "Tout"
   15792     type: "type"
   15793   }
   15794 }
   15795 op {
   15796   name: "LookupTableImport"
   15797   input_arg {
   15798     name: "table_handle"
   15799     type: DT_STRING
   15800     is_ref: true
   15801   }
   15802   input_arg {
   15803     name: "keys"
   15804     type_attr: "Tin"
   15805   }
   15806   input_arg {
   15807     name: "values"
   15808     type_attr: "Tout"
   15809   }
   15810   attr {
   15811     name: "Tin"
   15812     type: "type"
   15813   }
   15814   attr {
   15815     name: "Tout"
   15816     type: "type"
   15817   }
   15818 }
   15819 op {
   15820   name: "LookupTableInsert"
   15821   input_arg {
   15822     name: "table_handle"
   15823     type: DT_STRING
   15824     is_ref: true
   15825   }
   15826   input_arg {
   15827     name: "keys"
   15828     type_attr: "Tin"
   15829   }
   15830   input_arg {
   15831     name: "values"
   15832     type_attr: "Tout"
   15833   }
   15834   attr {
   15835     name: "Tin"
   15836     type: "type"
   15837   }
   15838   attr {
   15839     name: "Tout"
   15840     type: "type"
   15841   }
   15842 }
   15843 op {
   15844   name: "LookupTableSize"
   15845   input_arg {
   15846     name: "table_handle"
   15847     type: DT_STRING
   15848     is_ref: true
   15849   }
   15850   output_arg {
   15851     name: "size"
   15852     type: DT_INT64
   15853   }
   15854 }
   15855 op {
   15856   name: "LoopCond"
   15857   input_arg {
   15858     name: "input"
   15859     type: DT_BOOL
   15860   }
   15861   output_arg {
   15862     name: "output"
   15863     type: DT_BOOL
   15864   }
   15865 }
   15866 op {
   15867   name: "MatMul"
   15868   input_arg {
   15869     name: "a"
   15870     type_attr: "T"
   15871   }
   15872   input_arg {
   15873     name: "b"
   15874     type_attr: "T"
   15875   }
   15876   output_arg {
   15877     name: "product"
   15878     type_attr: "T"
   15879   }
   15880   attr {
   15881     name: "transpose_a"
   15882     type: "bool"
   15883     default_value {
   15884       b: false
   15885     }
   15886   }
   15887   attr {
   15888     name: "transpose_b"
   15889     type: "bool"
   15890     default_value {
   15891       b: false
   15892     }
   15893   }
   15894   attr {
   15895     name: "T"
   15896     type: "type"
   15897     allowed_values {
   15898       list {
   15899         type: DT_FLOAT
   15900         type: DT_DOUBLE
   15901         type: DT_INT32
   15902         type: DT_COMPLEX64
   15903       }
   15904     }
   15905   }
   15906 }
   15907 op {
   15908   name: "MatMul"
   15909   input_arg {
   15910     name: "a"
   15911     type_attr: "T"
   15912   }
   15913   input_arg {
   15914     name: "b"
   15915     type_attr: "T"
   15916   }
   15917   output_arg {
   15918     name: "product"
   15919     type_attr: "T"
   15920   }
   15921   attr {
   15922     name: "transpose_a"
   15923     type: "bool"
   15924     default_value {
   15925       b: false
   15926     }
   15927   }
   15928   attr {
   15929     name: "transpose_b"
   15930     type: "bool"
   15931     default_value {
   15932       b: false
   15933     }
   15934   }
   15935   attr {
   15936     name: "T"
   15937     type: "type"
   15938     allowed_values {
   15939       list {
   15940         type: DT_HALF
   15941         type: DT_FLOAT
   15942         type: DT_DOUBLE
   15943         type: DT_INT32
   15944         type: DT_COMPLEX64
   15945       }
   15946     }
   15947   }
   15948 }
   15949 op {
   15950   name: "MatMul"
   15951   input_arg {
   15952     name: "a"
   15953     type_attr: "T"
   15954   }
   15955   input_arg {
   15956     name: "b"
   15957     type_attr: "T"
   15958   }
   15959   output_arg {
   15960     name: "product"
   15961     type_attr: "T"
   15962   }
   15963   attr {
   15964     name: "transpose_a"
   15965     type: "bool"
   15966     default_value {
   15967       b: false
   15968     }
   15969   }
   15970   attr {
   15971     name: "transpose_b"
   15972     type: "bool"
   15973     default_value {
   15974       b: false
   15975     }
   15976   }
   15977   attr {
   15978     name: "T"
   15979     type: "type"
   15980     allowed_values {
   15981       list {
   15982         type: DT_HALF
   15983         type: DT_FLOAT
   15984         type: DT_DOUBLE
   15985         type: DT_INT32
   15986         type: DT_COMPLEX64
   15987         type: DT_COMPLEX128
   15988       }
   15989     }
   15990   }
   15991 }
   15992 op {
   15993   name: "MatchingFiles"
   15994   input_arg {
   15995     name: "pattern"
   15996     type: DT_STRING
   15997   }
   15998   output_arg {
   15999     name: "filenames"
   16000     type: DT_STRING
   16001   }
   16002 }
   16003 op {
   16004   name: "MatrixBandPart"
   16005   input_arg {
   16006     name: "input"
   16007     type_attr: "T"
   16008   }
   16009   input_arg {
   16010     name: "num_lower"
   16011     type: DT_INT64
   16012   }
   16013   input_arg {
   16014     name: "num_upper"
   16015     type: DT_INT64
   16016   }
   16017   output_arg {
   16018     name: "band"
   16019     type_attr: "T"
   16020   }
   16021   attr {
   16022     name: "T"
   16023     type: "type"
   16024   }
   16025 }
   16026 op {
   16027   name: "MatrixDeterminant"
   16028   input_arg {
   16029     name: "input"
   16030     type_attr: "T"
   16031   }
   16032   output_arg {
   16033     name: "output"
   16034     type_attr: "T"
   16035   }
   16036   attr {
   16037     name: "T"
   16038     type: "type"
   16039     allowed_values {
   16040       list {
   16041         type: DT_FLOAT
   16042         type: DT_DOUBLE
   16043       }
   16044     }
   16045   }
   16046 }
   16047 op {
   16048   name: "MatrixDiag"
   16049   input_arg {
   16050     name: "diagonal"
   16051     type_attr: "T"
   16052   }
   16053   output_arg {
   16054     name: "output"
   16055     type_attr: "T"
   16056   }
   16057   attr {
   16058     name: "T"
   16059     type: "type"
   16060   }
   16061 }
   16062 op {
   16063   name: "MatrixDiagPart"
   16064   input_arg {
   16065     name: "input"
   16066     type_attr: "T"
   16067   }
   16068   output_arg {
   16069     name: "diagonal"
   16070     type_attr: "T"
   16071   }
   16072   attr {
   16073     name: "T"
   16074     type: "type"
   16075   }
   16076 }
   16077 op {
   16078   name: "MatrixInverse"
   16079   input_arg {
   16080     name: "input"
   16081     type_attr: "T"
   16082   }
   16083   output_arg {
   16084     name: "output"
   16085     type_attr: "T"
   16086   }
   16087   attr {
   16088     name: "T"
   16089     type: "type"
   16090     allowed_values {
   16091       list {
   16092         type: DT_FLOAT
   16093         type: DT_DOUBLE
   16094       }
   16095     }
   16096   }
   16097 }
   16098 op {
   16099   name: "MatrixInverse"
   16100   input_arg {
   16101     name: "input"
   16102     type_attr: "T"
   16103   }
   16104   output_arg {
   16105     name: "output"
   16106     type_attr: "T"
   16107   }
   16108   attr {
   16109     name: "adjoint"
   16110     type: "bool"
   16111     default_value {
   16112       b: false
   16113     }
   16114   }
   16115   attr {
   16116     name: "T"
   16117     type: "type"
   16118     allowed_values {
   16119       list {
   16120         type: DT_DOUBLE
   16121         type: DT_FLOAT
   16122       }
   16123     }
   16124   }
   16125 }
   16126 op {
   16127   name: "MatrixSetDiag"
   16128   input_arg {
   16129     name: "input"
   16130     type_attr: "T"
   16131   }
   16132   input_arg {
   16133     name: "diagonal"
   16134     type_attr: "T"
   16135   }
   16136   output_arg {
   16137     name: "output"
   16138     type_attr: "T"
   16139   }
   16140   attr {
   16141     name: "T"
   16142     type: "type"
   16143   }
   16144 }
   16145 op {
   16146   name: "MatrixSolve"
   16147   input_arg {
   16148     name: "matrix"
   16149     type_attr: "T"
   16150   }
   16151   input_arg {
   16152     name: "rhs"
   16153     type_attr: "T"
   16154   }
   16155   output_arg {
   16156     name: "output"
   16157     type_attr: "T"
   16158   }
   16159   attr {
   16160     name: "T"
   16161     type: "type"
   16162     allowed_values {
   16163       list {
   16164         type: DT_FLOAT
   16165         type: DT_DOUBLE
   16166       }
   16167     }
   16168   }
   16169 }
   16170 op {
   16171   name: "MatrixSolve"
   16172   input_arg {
   16173     name: "matrix"
   16174     type_attr: "T"
   16175   }
   16176   input_arg {
   16177     name: "rhs"
   16178     type_attr: "T"
   16179   }
   16180   output_arg {
   16181     name: "output"
   16182     type_attr: "T"
   16183   }
   16184   attr {
   16185     name: "adjoint"
   16186     type: "bool"
   16187     default_value {
   16188       b: false
   16189     }
   16190   }
   16191   attr {
   16192     name: "T"
   16193     type: "type"
   16194     allowed_values {
   16195       list {
   16196         type: DT_FLOAT
   16197         type: DT_DOUBLE
   16198       }
   16199     }
   16200   }
   16201 }
   16202 op {
   16203   name: "MatrixSolve"
   16204   input_arg {
   16205     name: "matrix"
   16206     type_attr: "T"
   16207   }
   16208   input_arg {
   16209     name: "rhs"
   16210     type_attr: "T"
   16211   }
   16212   output_arg {
   16213     name: "output"
   16214     type_attr: "T"
   16215   }
   16216   attr {
   16217     name: "adjoint"
   16218     type: "bool"
   16219     default_value {
   16220       b: false
   16221     }
   16222   }
   16223   attr {
   16224     name: "T"
   16225     type: "type"
   16226     allowed_values {
   16227       list {
   16228         type: DT_DOUBLE
   16229         type: DT_FLOAT
   16230       }
   16231     }
   16232   }
   16233 }
   16234 op {
   16235   name: "MatrixSolve"
   16236   input_arg {
   16237     name: "matrix"
   16238     type_attr: "T"
   16239   }
   16240   input_arg {
   16241     name: "rhs"
   16242     type_attr: "T"
   16243   }
   16244   output_arg {
   16245     name: "output"
   16246     type_attr: "T"
   16247   }
   16248   attr {
   16249     name: "adjoint"
   16250     type: "bool"
   16251     default_value {
   16252       b: false
   16253     }
   16254   }
   16255   attr {
   16256     name: "T"
   16257     type: "type"
   16258     allowed_values {
   16259       list {
   16260         type: DT_DOUBLE
   16261         type: DT_FLOAT
   16262         type: DT_COMPLEX64
   16263         type: DT_COMPLEX128
   16264       }
   16265     }
   16266   }
   16267 }
   16268 op {
   16269   name: "MatrixSolveLs"
   16270   input_arg {
   16271     name: "matrix"
   16272     type_attr: "T"
   16273   }
   16274   input_arg {
   16275     name: "rhs"
   16276     type_attr: "T"
   16277   }
   16278   input_arg {
   16279     name: "l2_regularizer"
   16280     type: DT_DOUBLE
   16281   }
   16282   output_arg {
   16283     name: "output"
   16284     type_attr: "T"
   16285   }
   16286   attr {
   16287     name: "T"
   16288     type: "type"
   16289     allowed_values {
   16290       list {
   16291         type: DT_FLOAT
   16292         type: DT_DOUBLE
   16293       }
   16294     }
   16295   }
   16296   attr {
   16297     name: "fast"
   16298     type: "bool"
   16299     default_value {
   16300       b: true
   16301     }
   16302   }
   16303 }
   16304 op {
   16305   name: "MatrixSolveLs"
   16306   input_arg {
   16307     name: "matrix"
   16308     type_attr: "T"
   16309   }
   16310   input_arg {
   16311     name: "rhs"
   16312     type_attr: "T"
   16313   }
   16314   input_arg {
   16315     name: "l2_regularizer"
   16316     type: DT_DOUBLE
   16317   }
   16318   output_arg {
   16319     name: "output"
   16320     type_attr: "T"
   16321   }
   16322   attr {
   16323     name: "T"
   16324     type: "type"
   16325     allowed_values {
   16326       list {
   16327         type: DT_DOUBLE
   16328         type: DT_FLOAT
   16329       }
   16330     }
   16331   }
   16332   attr {
   16333     name: "fast"
   16334     type: "bool"
   16335     default_value {
   16336       b: true
   16337     }
   16338   }
   16339 }
   16340 op {
   16341   name: "MatrixTriangularSolve"
   16342   input_arg {
   16343     name: "matrix"
   16344     type_attr: "T"
   16345   }
   16346   input_arg {
   16347     name: "rhs"
   16348     type_attr: "T"
   16349   }
   16350   output_arg {
   16351     name: "output"
   16352     type_attr: "T"
   16353   }
   16354   attr {
   16355     name: "lower"
   16356     type: "bool"
   16357     default_value {
   16358       b: true
   16359     }
   16360   }
   16361   attr {
   16362     name: "T"
   16363     type: "type"
   16364     allowed_values {
   16365       list {
   16366         type: DT_FLOAT
   16367         type: DT_DOUBLE
   16368       }
   16369     }
   16370   }
   16371 }
   16372 op {
   16373   name: "MatrixTriangularSolve"
   16374   input_arg {
   16375     name: "matrix"
   16376     type_attr: "T"
   16377   }
   16378   input_arg {
   16379     name: "rhs"
   16380     type_attr: "T"
   16381   }
   16382   output_arg {
   16383     name: "output"
   16384     type_attr: "T"
   16385   }
   16386   attr {
   16387     name: "lower"
   16388     type: "bool"
   16389     default_value {
   16390       b: true
   16391     }
   16392   }
   16393   attr {
   16394     name: "adjoint"
   16395     type: "bool"
   16396     default_value {
   16397       b: false
   16398     }
   16399   }
   16400   attr {
   16401     name: "T"
   16402     type: "type"
   16403     allowed_values {
   16404       list {
   16405         type: DT_FLOAT
   16406         type: DT_DOUBLE
   16407       }
   16408     }
   16409   }
   16410 }
   16411 op {
   16412   name: "MatrixTriangularSolve"
   16413   input_arg {
   16414     name: "matrix"
   16415     type_attr: "T"
   16416   }
   16417   input_arg {
   16418     name: "rhs"
   16419     type_attr: "T"
   16420   }
   16421   output_arg {
   16422     name: "output"
   16423     type_attr: "T"
   16424   }
   16425   attr {
   16426     name: "lower"
   16427     type: "bool"
   16428     default_value {
   16429       b: true
   16430     }
   16431   }
   16432   attr {
   16433     name: "adjoint"
   16434     type: "bool"
   16435     default_value {
   16436       b: false
   16437     }
   16438   }
   16439   attr {
   16440     name: "T"
   16441     type: "type"
   16442     allowed_values {
   16443       list {
   16444         type: DT_DOUBLE
   16445         type: DT_FLOAT
   16446       }
   16447     }
   16448   }
   16449 }
   16450 op {
   16451   name: "Max"
   16452   input_arg {
   16453     name: "input"
   16454     type_attr: "T"
   16455   }
   16456   input_arg {
   16457     name: "reduction_indices"
   16458     type: DT_INT32
   16459   }
   16460   output_arg {
   16461     name: "output"
   16462     type_attr: "T"
   16463   }
   16464   attr {
   16465     name: "keep_dims"
   16466     type: "bool"
   16467     default_value {
   16468       b: false
   16469     }
   16470   }
   16471   attr {
   16472     name: "T"
   16473     type: "type"
   16474     allowed_values {
   16475       list {
   16476         type: DT_FLOAT
   16477         type: DT_DOUBLE
   16478         type: DT_INT64
   16479         type: DT_INT32
   16480         type: DT_UINT8
   16481         type: DT_INT16
   16482         type: DT_INT8
   16483         type: DT_COMPLEX64
   16484         type: DT_QINT8
   16485         type: DT_QUINT8
   16486         type: DT_QINT32
   16487       }
   16488     }
   16489   }
   16490 }
   16491 op {
   16492   name: "Max"
   16493   input_arg {
   16494     name: "input"
   16495     type_attr: "T"
   16496   }
   16497   input_arg {
   16498     name: "reduction_indices"
   16499     type: DT_INT32
   16500   }
   16501   output_arg {
   16502     name: "output"
   16503     type_attr: "T"
   16504   }
   16505   attr {
   16506     name: "keep_dims"
   16507     type: "bool"
   16508     default_value {
   16509       b: false
   16510     }
   16511   }
   16512   attr {
   16513     name: "T"
   16514     type: "type"
   16515     allowed_values {
   16516       list {
   16517         type: DT_FLOAT
   16518         type: DT_DOUBLE
   16519         type: DT_INT64
   16520         type: DT_INT32
   16521         type: DT_UINT8
   16522         type: DT_UINT16
   16523         type: DT_INT16
   16524         type: DT_INT8
   16525         type: DT_COMPLEX64
   16526         type: DT_QINT8
   16527         type: DT_QUINT8
   16528         type: DT_QINT32
   16529       }
   16530     }
   16531   }
   16532 }
   16533 op {
   16534   name: "Max"
   16535   input_arg {
   16536     name: "input"
   16537     type_attr: "T"
   16538   }
   16539   input_arg {
   16540     name: "reduction_indices"
   16541     type: DT_INT32
   16542   }
   16543   output_arg {
   16544     name: "output"
   16545     type_attr: "T"
   16546   }
   16547   attr {
   16548     name: "keep_dims"
   16549     type: "bool"
   16550     default_value {
   16551       b: false
   16552     }
   16553   }
   16554   attr {
   16555     name: "T"
   16556     type: "type"
   16557     allowed_values {
   16558       list {
   16559         type: DT_FLOAT
   16560         type: DT_DOUBLE
   16561         type: DT_INT64
   16562         type: DT_INT32
   16563         type: DT_UINT8
   16564         type: DT_UINT16
   16565         type: DT_INT16
   16566         type: DT_INT8
   16567         type: DT_COMPLEX64
   16568         type: DT_COMPLEX128
   16569         type: DT_QINT8
   16570         type: DT_QUINT8
   16571         type: DT_QINT32
   16572       }
   16573     }
   16574   }
   16575 }
   16576 op {
   16577   name: "Max"
   16578   input_arg {
   16579     name: "input"
   16580     type_attr: "T"
   16581   }
   16582   input_arg {
   16583     name: "reduction_indices"
   16584     type: DT_INT32
   16585   }
   16586   output_arg {
   16587     name: "output"
   16588     type_attr: "T"
   16589   }
   16590   attr {
   16591     name: "keep_dims"
   16592     type: "bool"
   16593     default_value {
   16594       b: false
   16595     }
   16596   }
   16597   attr {
   16598     name: "T"
   16599     type: "type"
   16600     allowed_values {
   16601       list {
   16602         type: DT_FLOAT
   16603         type: DT_DOUBLE
   16604         type: DT_INT64
   16605         type: DT_INT32
   16606         type: DT_UINT8
   16607         type: DT_UINT16
   16608         type: DT_INT16
   16609         type: DT_INT8
   16610         type: DT_COMPLEX64
   16611         type: DT_COMPLEX128
   16612         type: DT_QINT8
   16613         type: DT_QUINT8
   16614         type: DT_QINT32
   16615         type: DT_HALF
   16616       }
   16617     }
   16618   }
   16619 }
   16620 op {
   16621   name: "Max"
   16622   input_arg {
   16623     name: "input"
   16624     type_attr: "T"
   16625   }
   16626   input_arg {
   16627     name: "reduction_indices"
   16628     type_attr: "Tidx"
   16629   }
   16630   output_arg {
   16631     name: "output"
   16632     type_attr: "T"
   16633   }
   16634   attr {
   16635     name: "keep_dims"
   16636     type: "bool"
   16637     default_value {
   16638       b: false
   16639     }
   16640   }
   16641   attr {
   16642     name: "T"
   16643     type: "type"
   16644     allowed_values {
   16645       list {
   16646         type: DT_FLOAT
   16647         type: DT_DOUBLE
   16648         type: DT_INT64
   16649         type: DT_INT32
   16650         type: DT_UINT8
   16651         type: DT_UINT16
   16652         type: DT_INT16
   16653         type: DT_INT8
   16654         type: DT_COMPLEX64
   16655         type: DT_COMPLEX128
   16656         type: DT_QINT8
   16657         type: DT_QUINT8
   16658         type: DT_QINT32
   16659         type: DT_HALF
   16660       }
   16661     }
   16662   }
   16663   attr {
   16664     name: "Tidx"
   16665     type: "type"
   16666     default_value {
   16667       type: DT_INT32
   16668     }
   16669     allowed_values {
   16670       list {
   16671         type: DT_INT32
   16672         type: DT_INT64
   16673       }
   16674     }
   16675   }
   16676 }
   16677 op {
   16678   name: "MaxPool"
   16679   input_arg {
   16680     name: "input"
   16681     type: DT_FLOAT
   16682   }
   16683   output_arg {
   16684     name: "output"
   16685     type: DT_FLOAT
   16686   }
   16687   attr {
   16688     name: "ksize"
   16689     type: "list(int)"
   16690     has_minimum: true
   16691     minimum: 4
   16692   }
   16693   attr {
   16694     name: "strides"
   16695     type: "list(int)"
   16696     has_minimum: true
   16697     minimum: 4
   16698   }
   16699   attr {
   16700     name: "padding"
   16701     type: "string"
   16702     allowed_values {
   16703       list {
   16704         s: "SAME"
   16705         s: "VALID"
   16706       }
   16707     }
   16708   }
   16709 }
   16710 op {
   16711   name: "MaxPool"
   16712   input_arg {
   16713     name: "input"
   16714     type: DT_FLOAT
   16715   }
   16716   output_arg {
   16717     name: "output"
   16718     type: DT_FLOAT
   16719   }
   16720   attr {
   16721     name: "ksize"
   16722     type: "list(int)"
   16723     has_minimum: true
   16724     minimum: 4
   16725   }
   16726   attr {
   16727     name: "strides"
   16728     type: "list(int)"
   16729     has_minimum: true
   16730     minimum: 4
   16731   }
   16732   attr {
   16733     name: "padding"
   16734     type: "string"
   16735     allowed_values {
   16736       list {
   16737         s: "SAME"
   16738         s: "VALID"
   16739       }
   16740     }
   16741   }
   16742   attr {
   16743     name: "data_format"
   16744     type: "string"
   16745     default_value {
   16746       s: "NHWC"
   16747     }
   16748     allowed_values {
   16749       list {
   16750         s: "NHWC"
   16751         s: "NCHW"
   16752       }
   16753     }
   16754   }
   16755 }
   16756 op {
   16757   name: "MaxPool"
   16758   input_arg {
   16759     name: "input"
   16760     type_attr: "T"
   16761   }
   16762   output_arg {
   16763     name: "output"
   16764     type_attr: "T"
   16765   }
   16766   attr {
   16767     name: "ksize"
   16768     type: "list(int)"
   16769     has_minimum: true
   16770     minimum: 4
   16771   }
   16772   attr {
   16773     name: "strides"
   16774     type: "list(int)"
   16775     has_minimum: true
   16776     minimum: 4
   16777   }
   16778   attr {
   16779     name: "padding"
   16780     type: "string"
   16781     allowed_values {
   16782       list {
   16783         s: "SAME"
   16784         s: "VALID"
   16785       }
   16786     }
   16787   }
   16788   attr {
   16789     name: "data_format"
   16790     type: "string"
   16791     default_value {
   16792       s: "NHWC"
   16793     }
   16794     allowed_values {
   16795       list {
   16796         s: "NHWC"
   16797         s: "NCHW"
   16798       }
   16799     }
   16800   }
   16801   attr {
   16802     name: "T"
   16803     type: "type"
   16804     default_value {
   16805       type: DT_FLOAT
   16806     }
   16807     allowed_values {
   16808       list {
   16809         type: DT_FLOAT
   16810         type: DT_HALF
   16811       }
   16812     }
   16813   }
   16814 }
   16815 op {
   16816   name: "MaxPool"
   16817   input_arg {
   16818     name: "input"
   16819     type_attr: "T"
   16820   }
   16821   output_arg {
   16822     name: "output"
   16823     type_attr: "T"
   16824   }
   16825   attr {
   16826     name: "T"
   16827     type: "type"
   16828     default_value {
   16829       type: DT_FLOAT
   16830     }
   16831     allowed_values {
   16832       list {
   16833         type: DT_FLOAT
   16834         type: DT_HALF
   16835       }
   16836     }
   16837   }
   16838   attr {
   16839     name: "ksize"
   16840     type: "list(int)"
   16841     has_minimum: true
   16842     minimum: 4
   16843   }
   16844   attr {
   16845     name: "strides"
   16846     type: "list(int)"
   16847     has_minimum: true
   16848     minimum: 4
   16849   }
   16850   attr {
   16851     name: "padding"
   16852     type: "string"
   16853     allowed_values {
   16854       list {
   16855         s: "SAME"
   16856         s: "VALID"
   16857       }
   16858     }
   16859   }
   16860   attr {
   16861     name: "data_format"
   16862     type: "string"
   16863     default_value {
   16864       s: "NHWC"
   16865     }
   16866     allowed_values {
   16867       list {
   16868         s: "NHWC"
   16869         s: "NCHW"
   16870       }
   16871     }
   16872   }
   16873 }
   16874 op {
   16875   name: "MaxPool3D"
   16876   input_arg {
   16877     name: "input"
   16878     type_attr: "T"
   16879   }
   16880   output_arg {
   16881     name: "output"
   16882     type_attr: "T"
   16883   }
   16884   attr {
   16885     name: "ksize"
   16886     type: "list(int)"
   16887     has_minimum: true
   16888     minimum: 5
   16889   }
   16890   attr {
   16891     name: "strides"
   16892     type: "list(int)"
   16893     has_minimum: true
   16894     minimum: 5
   16895   }
   16896   attr {
   16897     name: "padding"
   16898     type: "string"
   16899     allowed_values {
   16900       list {
   16901         s: "SAME"
   16902         s: "VALID"
   16903       }
   16904     }
   16905   }
   16906   attr {
   16907     name: "T"
   16908     type: "type"
   16909     allowed_values {
   16910       list {
   16911         type: DT_FLOAT
   16912         type: DT_DOUBLE
   16913         type: DT_INT64
   16914         type: DT_INT32
   16915         type: DT_UINT8
   16916         type: DT_UINT16
   16917         type: DT_INT16
   16918         type: DT_INT8
   16919         type: DT_COMPLEX64
   16920         type: DT_COMPLEX128
   16921         type: DT_QINT8
   16922         type: DT_QUINT8
   16923         type: DT_QINT32
   16924         type: DT_HALF
   16925       }
   16926     }
   16927   }
   16928 }
   16929 op {
   16930   name: "MaxPool3DGrad"
   16931   input_arg {
   16932     name: "orig_input"
   16933     type: DT_FLOAT
   16934   }
   16935   input_arg {
   16936     name: "orig_output"
   16937     type: DT_FLOAT
   16938   }
   16939   input_arg {
   16940     name: "grad"
   16941     type_attr: "T"
   16942   }
   16943   output_arg {
   16944     name: "output"
   16945     type_attr: "T"
   16946   }
   16947   attr {
   16948     name: "ksize"
   16949     type: "list(int)"
   16950     has_minimum: true
   16951     minimum: 5
   16952   }
   16953   attr {
   16954     name: "strides"
   16955     type: "list(int)"
   16956     has_minimum: true
   16957     minimum: 5
   16958   }
   16959   attr {
   16960     name: "padding"
   16961     type: "string"
   16962     allowed_values {
   16963       list {
   16964         s: "SAME"
   16965         s: "VALID"
   16966       }
   16967     }
   16968   }
   16969   attr {
   16970     name: "T"
   16971     type: "type"
   16972     allowed_values {
   16973       list {
   16974         type: DT_FLOAT
   16975         type: DT_DOUBLE
   16976         type: DT_INT64
   16977         type: DT_INT32
   16978         type: DT_UINT8
   16979         type: DT_UINT16
   16980         type: DT_INT16
   16981         type: DT_INT8
   16982         type: DT_COMPLEX64
   16983         type: DT_COMPLEX128
   16984         type: DT_QINT8
   16985         type: DT_QUINT8
   16986         type: DT_QINT32
   16987         type: DT_HALF
   16988       }
   16989     }
   16990   }
   16991 }
   16992 op {
   16993   name: "MaxPoolGrad"
   16994   input_arg {
   16995     name: "orig_input"
   16996     type: DT_FLOAT
   16997   }
   16998   input_arg {
   16999     name: "orig_output"
   17000     type: DT_FLOAT
   17001   }
   17002   input_arg {
   17003     name: "grad"
   17004     type: DT_FLOAT
   17005   }
   17006   output_arg {
   17007     name: "output"
   17008     type: DT_FLOAT
   17009   }
   17010   attr {
   17011     name: "ksize"
   17012     type: "list(int)"
   17013     has_minimum: true
   17014     minimum: 4
   17015   }
   17016   attr {
   17017     name: "strides"
   17018     type: "list(int)"
   17019     has_minimum: true
   17020     minimum: 4
   17021   }
   17022   attr {
   17023     name: "padding"
   17024     type: "string"
   17025     allowed_values {
   17026       list {
   17027         s: "SAME"
   17028         s: "VALID"
   17029       }
   17030     }
   17031   }
   17032 }
   17033 op {
   17034   name: "MaxPoolGrad"
   17035   input_arg {
   17036     name: "orig_input"
   17037     type: DT_FLOAT
   17038   }
   17039   input_arg {
   17040     name: "orig_output"
   17041     type: DT_FLOAT
   17042   }
   17043   input_arg {
   17044     name: "grad"
   17045     type: DT_FLOAT
   17046   }
   17047   output_arg {
   17048     name: "output"
   17049     type: DT_FLOAT
   17050   }
   17051   attr {
   17052     name: "ksize"
   17053     type: "list(int)"
   17054     has_minimum: true
   17055     minimum: 4
   17056   }
   17057   attr {
   17058     name: "strides"
   17059     type: "list(int)"
   17060     has_minimum: true
   17061     minimum: 4
   17062   }
   17063   attr {
   17064     name: "padding"
   17065     type: "string"
   17066     allowed_values {
   17067       list {
   17068         s: "SAME"
   17069         s: "VALID"
   17070       }
   17071     }
   17072   }
   17073   attr {
   17074     name: "data_format"
   17075     type: "string"
   17076     default_value {
   17077       s: "NHWC"
   17078     }
   17079     allowed_values {
   17080       list {
   17081         s: "NHWC"
   17082         s: "NCHW"
   17083       }
   17084     }
   17085   }
   17086 }
   17087 op {
   17088   name: "MaxPoolGrad"
   17089   input_arg {
   17090     name: "orig_input"
   17091     type_attr: "T"
   17092   }
   17093   input_arg {
   17094     name: "orig_output"
   17095     type_attr: "T"
   17096   }
   17097   input_arg {
   17098     name: "grad"
   17099     type_attr: "T"
   17100   }
   17101   output_arg {
   17102     name: "output"
   17103     type_attr: "T"
   17104   }
   17105   attr {
   17106     name: "ksize"
   17107     type: "list(int)"
   17108     has_minimum: true
   17109     minimum: 4
   17110   }
   17111   attr {
   17112     name: "strides"
   17113     type: "list(int)"
   17114     has_minimum: true
   17115     minimum: 4
   17116   }
   17117   attr {
   17118     name: "padding"
   17119     type: "string"
   17120     allowed_values {
   17121       list {
   17122         s: "SAME"
   17123         s: "VALID"
   17124       }
   17125     }
   17126   }
   17127   attr {
   17128     name: "data_format"
   17129     type: "string"
   17130     default_value {
   17131       s: "NHWC"
   17132     }
   17133     allowed_values {
   17134       list {
   17135         s: "NHWC"
   17136         s: "NCHW"
   17137       }
   17138     }
   17139   }
   17140   attr {
   17141     name: "T"
   17142     type: "type"
   17143     default_value {
   17144       type: DT_FLOAT
   17145     }
   17146     allowed_values {
   17147       list {
   17148         type: DT_FLOAT
   17149         type: DT_HALF
   17150       }
   17151     }
   17152   }
   17153 }
   17154 op {
   17155   name: "MaxPoolGradWithArgmax"
   17156   input_arg {
   17157     name: "input"
   17158     type: DT_FLOAT
   17159   }
   17160   input_arg {
   17161     name: "grad"
   17162     type: DT_FLOAT
   17163   }
   17164   input_arg {
   17165     name: "argmax"
   17166     type_attr: "Targmax"
   17167   }
   17168   output_arg {
   17169     name: "output"
   17170     type: DT_FLOAT
   17171   }
   17172   attr {
   17173     name: "ksize"
   17174     type: "list(int)"
   17175     has_minimum: true
   17176     minimum: 4
   17177   }
   17178   attr {
   17179     name: "strides"
   17180     type: "list(int)"
   17181     has_minimum: true
   17182     minimum: 4
   17183   }
   17184   attr {
   17185     name: "padding"
   17186     type: "string"
   17187     allowed_values {
   17188       list {
   17189         s: "SAME"
   17190         s: "VALID"
   17191       }
   17192     }
   17193   }
   17194   attr {
   17195     name: "Targmax"
   17196     type: "type"
   17197     allowed_values {
   17198       list {
   17199         type: DT_INT32
   17200         type: DT_INT64
   17201       }
   17202     }
   17203   }
   17204 }
   17205 op {
   17206   name: "MaxPoolGradWithArgmax"
   17207   input_arg {
   17208     name: "input"
   17209     type_attr: "T"
   17210   }
   17211   input_arg {
   17212     name: "grad"
   17213     type_attr: "T"
   17214   }
   17215   input_arg {
   17216     name: "argmax"
   17217     type_attr: "Targmax"
   17218   }
   17219   output_arg {
   17220     name: "output"
   17221     type_attr: "T"
   17222   }
   17223   attr {
   17224     name: "ksize"
   17225     type: "list(int)"
   17226     has_minimum: true
   17227     minimum: 4
   17228   }
   17229   attr {
   17230     name: "strides"
   17231     type: "list(int)"
   17232     has_minimum: true
   17233     minimum: 4
   17234   }
   17235   attr {
   17236     name: "padding"
   17237     type: "string"
   17238     allowed_values {
   17239       list {
   17240         s: "SAME"
   17241         s: "VALID"
   17242       }
   17243     }
   17244   }
   17245   attr {
   17246     name: "Targmax"
   17247     type: "type"
   17248     allowed_values {
   17249       list {
   17250         type: DT_INT32
   17251         type: DT_INT64
   17252       }
   17253     }
   17254   }
   17255   attr {
   17256     name: "T"
   17257     type: "type"
   17258     default_value {
   17259       type: DT_FLOAT
   17260     }
   17261     allowed_values {
   17262       list {
   17263         type: DT_FLOAT
   17264         type: DT_HALF
   17265       }
   17266     }
   17267   }
   17268 }
   17269 op {
   17270   name: "MaxPoolWithArgmax"
   17271   input_arg {
   17272     name: "input"
   17273     type: DT_FLOAT
   17274   }
   17275   output_arg {
   17276     name: "output"
   17277     type: DT_FLOAT
   17278   }
   17279   output_arg {
   17280     name: "argmax"
   17281     type_attr: "Targmax"
   17282   }
   17283   attr {
   17284     name: "ksize"
   17285     type: "list(int)"
   17286     has_minimum: true
   17287     minimum: 4
   17288   }
   17289   attr {
   17290     name: "strides"
   17291     type: "list(int)"
   17292     has_minimum: true
   17293     minimum: 4
   17294   }
   17295   attr {
   17296     name: "Targmax"
   17297     type: "type"
   17298     default_value {
   17299       type: DT_INT64
   17300     }
   17301     allowed_values {
   17302       list {
   17303         type: DT_INT32
   17304         type: DT_INT64
   17305       }
   17306     }
   17307   }
   17308   attr {
   17309     name: "padding"
   17310     type: "string"
   17311     allowed_values {
   17312       list {
   17313         s: "SAME"
   17314         s: "VALID"
   17315       }
   17316     }
   17317   }
   17318 }
   17319 op {
   17320   name: "MaxPoolWithArgmax"
   17321   input_arg {
   17322     name: "input"
   17323     type_attr: "T"
   17324   }
   17325   output_arg {
   17326     name: "output"
   17327     type_attr: "T"
   17328   }
   17329   output_arg {
   17330     name: "argmax"
   17331     type_attr: "Targmax"
   17332   }
   17333   attr {
   17334     name: "ksize"
   17335     type: "list(int)"
   17336     has_minimum: true
   17337     minimum: 4
   17338   }
   17339   attr {
   17340     name: "strides"
   17341     type: "list(int)"
   17342     has_minimum: true
   17343     minimum: 4
   17344   }
   17345   attr {
   17346     name: "Targmax"
   17347     type: "type"
   17348     default_value {
   17349       type: DT_INT64
   17350     }
   17351     allowed_values {
   17352       list {
   17353         type: DT_INT32
   17354         type: DT_INT64
   17355       }
   17356     }
   17357   }
   17358   attr {
   17359     name: "padding"
   17360     type: "string"
   17361     allowed_values {
   17362       list {
   17363         s: "SAME"
   17364         s: "VALID"
   17365       }
   17366     }
   17367   }
   17368   attr {
   17369     name: "T"
   17370     type: "type"
   17371     default_value {
   17372       type: DT_FLOAT
   17373     }
   17374     allowed_values {
   17375       list {
   17376         type: DT_FLOAT
   17377         type: DT_HALF
   17378       }
   17379     }
   17380   }
   17381 }
   17382 op {
   17383   name: "Maximum"
   17384   input_arg {
   17385     name: "x"
   17386     type_attr: "T"
   17387   }
   17388   input_arg {
   17389     name: "y"
   17390     type_attr: "T"
   17391   }
   17392   output_arg {
   17393     name: "z"
   17394     type_attr: "T"
   17395   }
   17396   attr {
   17397     name: "T"
   17398     type: "type"
   17399     allowed_values {
   17400       list {
   17401         type: DT_FLOAT
   17402         type: DT_DOUBLE
   17403         type: DT_INT32
   17404         type: DT_INT64
   17405       }
   17406     }
   17407   }
   17408   is_commutative: true
   17409 }
   17410 op {
   17411   name: "Maximum"
   17412   input_arg {
   17413     name: "x"
   17414     type_attr: "T"
   17415   }
   17416   input_arg {
   17417     name: "y"
   17418     type_attr: "T"
   17419   }
   17420   output_arg {
   17421     name: "z"
   17422     type_attr: "T"
   17423   }
   17424   attr {
   17425     name: "T"
   17426     type: "type"
   17427     allowed_values {
   17428       list {
   17429         type: DT_HALF
   17430         type: DT_FLOAT
   17431         type: DT_DOUBLE
   17432         type: DT_INT32
   17433         type: DT_INT64
   17434       }
   17435     }
   17436   }
   17437   is_commutative: true
   17438 }
   17439 op {
   17440   name: "Mean"
   17441   input_arg {
   17442     name: "input"
   17443     type_attr: "T"
   17444   }
   17445   input_arg {
   17446     name: "reduction_indices"
   17447     type: DT_INT32
   17448   }
   17449   output_arg {
   17450     name: "output"
   17451     type_attr: "T"
   17452   }
   17453   attr {
   17454     name: "keep_dims"
   17455     type: "bool"
   17456     default_value {
   17457       b: false
   17458     }
   17459   }
   17460   attr {
   17461     name: "T"
   17462     type: "type"
   17463     allowed_values {
   17464       list {
   17465         type: DT_FLOAT
   17466         type: DT_DOUBLE
   17467         type: DT_INT64
   17468         type: DT_INT32
   17469         type: DT_UINT8
   17470         type: DT_INT16
   17471         type: DT_INT8
   17472         type: DT_COMPLEX64
   17473         type: DT_QINT8
   17474         type: DT_QUINT8
   17475         type: DT_QINT32
   17476       }
   17477     }
   17478   }
   17479 }
   17480 op {
   17481   name: "Mean"
   17482   input_arg {
   17483     name: "input"
   17484     type_attr: "T"
   17485   }
   17486   input_arg {
   17487     name: "reduction_indices"
   17488     type: DT_INT32
   17489   }
   17490   output_arg {
   17491     name: "output"
   17492     type_attr: "T"
   17493   }
   17494   attr {
   17495     name: "keep_dims"
   17496     type: "bool"
   17497     default_value {
   17498       b: false
   17499     }
   17500   }
   17501   attr {
   17502     name: "T"
   17503     type: "type"
   17504     allowed_values {
   17505       list {
   17506         type: DT_FLOAT
   17507         type: DT_DOUBLE
   17508         type: DT_INT64
   17509         type: DT_INT32
   17510         type: DT_UINT8
   17511         type: DT_UINT16
   17512         type: DT_INT16
   17513         type: DT_INT8
   17514         type: DT_COMPLEX64
   17515         type: DT_QINT8
   17516         type: DT_QUINT8
   17517         type: DT_QINT32
   17518       }
   17519     }
   17520   }
   17521 }
   17522 op {
   17523   name: "Mean"
   17524   input_arg {
   17525     name: "input"
   17526     type_attr: "T"
   17527   }
   17528   input_arg {
   17529     name: "reduction_indices"
   17530     type: DT_INT32
   17531   }
   17532   output_arg {
   17533     name: "output"
   17534     type_attr: "T"
   17535   }
   17536   attr {
   17537     name: "keep_dims"
   17538     type: "bool"
   17539     default_value {
   17540       b: false
   17541     }
   17542   }
   17543   attr {
   17544     name: "T"
   17545     type: "type"
   17546     allowed_values {
   17547       list {
   17548         type: DT_FLOAT
   17549         type: DT_DOUBLE
   17550         type: DT_INT64
   17551         type: DT_INT32
   17552         type: DT_UINT8
   17553         type: DT_UINT16
   17554         type: DT_INT16
   17555         type: DT_INT8
   17556         type: DT_COMPLEX64
   17557         type: DT_COMPLEX128
   17558         type: DT_QINT8
   17559         type: DT_QUINT8
   17560         type: DT_QINT32
   17561       }
   17562     }
   17563   }
   17564 }
   17565 op {
   17566   name: "Mean"
   17567   input_arg {
   17568     name: "input"
   17569     type_attr: "T"
   17570   }
   17571   input_arg {
   17572     name: "reduction_indices"
   17573     type: DT_INT32
   17574   }
   17575   output_arg {
   17576     name: "output"
   17577     type_attr: "T"
   17578   }
   17579   attr {
   17580     name: "keep_dims"
   17581     type: "bool"
   17582     default_value {
   17583       b: false
   17584     }
   17585   }
   17586   attr {
   17587     name: "T"
   17588     type: "type"
   17589     allowed_values {
   17590       list {
   17591         type: DT_FLOAT
   17592         type: DT_DOUBLE
   17593         type: DT_INT64
   17594         type: DT_INT32
   17595         type: DT_UINT8
   17596         type: DT_UINT16
   17597         type: DT_INT16
   17598         type: DT_INT8
   17599         type: DT_COMPLEX64
   17600         type: DT_COMPLEX128
   17601         type: DT_QINT8
   17602         type: DT_QUINT8
   17603         type: DT_QINT32
   17604         type: DT_HALF
   17605       }
   17606     }
   17607   }
   17608 }
   17609 op {
   17610   name: "Mean"
   17611   input_arg {
   17612     name: "input"
   17613     type_attr: "T"
   17614   }
   17615   input_arg {
   17616     name: "reduction_indices"
   17617     type_attr: "Tidx"
   17618   }
   17619   output_arg {
   17620     name: "output"
   17621     type_attr: "T"
   17622   }
   17623   attr {
   17624     name: "keep_dims"
   17625     type: "bool"
   17626     default_value {
   17627       b: false
   17628     }
   17629   }
   17630   attr {
   17631     name: "T"
   17632     type: "type"
   17633     allowed_values {
   17634       list {
   17635         type: DT_FLOAT
   17636         type: DT_DOUBLE
   17637         type: DT_INT64
   17638         type: DT_INT32
   17639         type: DT_UINT8
   17640         type: DT_UINT16
   17641         type: DT_INT16
   17642         type: DT_INT8
   17643         type: DT_COMPLEX64
   17644         type: DT_COMPLEX128
   17645         type: DT_QINT8
   17646         type: DT_QUINT8
   17647         type: DT_QINT32
   17648         type: DT_HALF
   17649       }
   17650     }
   17651   }
   17652   attr {
   17653     name: "Tidx"
   17654     type: "type"
   17655     default_value {
   17656       type: DT_INT32
   17657     }
   17658     allowed_values {
   17659       list {
   17660         type: DT_INT32
   17661         type: DT_INT64
   17662       }
   17663     }
   17664   }
   17665 }
   17666 op {
   17667   name: "Merge"
   17668   input_arg {
   17669     name: "inputs"
   17670     type_attr: "T"
   17671     number_attr: "N"
   17672   }
   17673   output_arg {
   17674     name: "output"
   17675     type_attr: "T"
   17676   }
   17677   output_arg {
   17678     name: "value_index"
   17679     type: DT_INT32
   17680   }
   17681   attr {
   17682     name: "T"
   17683     type: "type"
   17684   }
   17685   attr {
   17686     name: "N"
   17687     type: "int"
   17688     has_minimum: true
   17689     minimum: 1
   17690   }
   17691 }
   17692 op {
   17693   name: "MergeSummary"
   17694   input_arg {
   17695     name: "inputs"
   17696     type: DT_STRING
   17697     number_attr: "N"
   17698   }
   17699   output_arg {
   17700     name: "summary"
   17701     type: DT_STRING
   17702   }
   17703   attr {
   17704     name: "N"
   17705     type: "int"
   17706     has_minimum: true
   17707     minimum: 1
   17708   }
   17709 }
   17710 op {
   17711   name: "MergeV2Checkpoints"
   17712   input_arg {
   17713     name: "checkpoint_prefixes"
   17714     type: DT_STRING
   17715   }
   17716   input_arg {
   17717     name: "destination_prefix"
   17718     type: DT_STRING
   17719   }
   17720   attr {
   17721     name: "delete_old_dirs"
   17722     type: "bool"
   17723     default_value {
   17724       b: true
   17725     }
   17726   }
   17727 }
   17728 op {
   17729   name: "Min"
   17730   input_arg {
   17731     name: "input"
   17732     type_attr: "T"
   17733   }
   17734   input_arg {
   17735     name: "reduction_indices"
   17736     type: DT_INT32
   17737   }
   17738   output_arg {
   17739     name: "output"
   17740     type_attr: "T"
   17741   }
   17742   attr {
   17743     name: "keep_dims"
   17744     type: "bool"
   17745     default_value {
   17746       b: false
   17747     }
   17748   }
   17749   attr {
   17750     name: "T"
   17751     type: "type"
   17752     allowed_values {
   17753       list {
   17754         type: DT_FLOAT
   17755         type: DT_DOUBLE
   17756         type: DT_INT64
   17757         type: DT_INT32
   17758         type: DT_UINT8
   17759         type: DT_INT16
   17760         type: DT_INT8
   17761         type: DT_COMPLEX64
   17762         type: DT_QINT8
   17763         type: DT_QUINT8
   17764         type: DT_QINT32
   17765       }
   17766     }
   17767   }
   17768 }
   17769 op {
   17770   name: "Min"
   17771   input_arg {
   17772     name: "input"
   17773     type_attr: "T"
   17774   }
   17775   input_arg {
   17776     name: "reduction_indices"
   17777     type: DT_INT32
   17778   }
   17779   output_arg {
   17780     name: "output"
   17781     type_attr: "T"
   17782   }
   17783   attr {
   17784     name: "keep_dims"
   17785     type: "bool"
   17786     default_value {
   17787       b: false
   17788     }
   17789   }
   17790   attr {
   17791     name: "T"
   17792     type: "type"
   17793     allowed_values {
   17794       list {
   17795         type: DT_FLOAT
   17796         type: DT_DOUBLE
   17797         type: DT_INT64
   17798         type: DT_INT32
   17799         type: DT_UINT8
   17800         type: DT_UINT16
   17801         type: DT_INT16
   17802         type: DT_INT8
   17803         type: DT_COMPLEX64
   17804         type: DT_QINT8
   17805         type: DT_QUINT8
   17806         type: DT_QINT32
   17807       }
   17808     }
   17809   }
   17810 }
   17811 op {
   17812   name: "Min"
   17813   input_arg {
   17814     name: "input"
   17815     type_attr: "T"
   17816   }
   17817   input_arg {
   17818     name: "reduction_indices"
   17819     type: DT_INT32
   17820   }
   17821   output_arg {
   17822     name: "output"
   17823     type_attr: "T"
   17824   }
   17825   attr {
   17826     name: "keep_dims"
   17827     type: "bool"
   17828     default_value {
   17829       b: false
   17830     }
   17831   }
   17832   attr {
   17833     name: "T"
   17834     type: "type"
   17835     allowed_values {
   17836       list {
   17837         type: DT_FLOAT
   17838         type: DT_DOUBLE
   17839         type: DT_INT64
   17840         type: DT_INT32
   17841         type: DT_UINT8
   17842         type: DT_UINT16
   17843         type: DT_INT16
   17844         type: DT_INT8
   17845         type: DT_COMPLEX64
   17846         type: DT_COMPLEX128
   17847         type: DT_QINT8
   17848         type: DT_QUINT8
   17849         type: DT_QINT32
   17850       }
   17851     }
   17852   }
   17853 }
   17854 op {
   17855   name: "Min"
   17856   input_arg {
   17857     name: "input"
   17858     type_attr: "T"
   17859   }
   17860   input_arg {
   17861     name: "reduction_indices"
   17862     type: DT_INT32
   17863   }
   17864   output_arg {
   17865     name: "output"
   17866     type_attr: "T"
   17867   }
   17868   attr {
   17869     name: "keep_dims"
   17870     type: "bool"
   17871     default_value {
   17872       b: false
   17873     }
   17874   }
   17875   attr {
   17876     name: "T"
   17877     type: "type"
   17878     allowed_values {
   17879       list {
   17880         type: DT_FLOAT
   17881         type: DT_DOUBLE
   17882         type: DT_INT64
   17883         type: DT_INT32
   17884         type: DT_UINT8
   17885         type: DT_UINT16
   17886         type: DT_INT16
   17887         type: DT_INT8
   17888         type: DT_COMPLEX64
   17889         type: DT_COMPLEX128
   17890         type: DT_QINT8
   17891         type: DT_QUINT8
   17892         type: DT_QINT32
   17893         type: DT_HALF
   17894       }
   17895     }
   17896   }
   17897 }
   17898 op {
   17899   name: "Min"
   17900   input_arg {
   17901     name: "input"
   17902     type_attr: "T"
   17903   }
   17904   input_arg {
   17905     name: "reduction_indices"
   17906     type_attr: "Tidx"
   17907   }
   17908   output_arg {
   17909     name: "output"
   17910     type_attr: "T"
   17911   }
   17912   attr {
   17913     name: "keep_dims"
   17914     type: "bool"
   17915     default_value {
   17916       b: false
   17917     }
   17918   }
   17919   attr {
   17920     name: "T"
   17921     type: "type"
   17922     allowed_values {
   17923       list {
   17924         type: DT_FLOAT
   17925         type: DT_DOUBLE
   17926         type: DT_INT64
   17927         type: DT_INT32
   17928         type: DT_UINT8
   17929         type: DT_UINT16
   17930         type: DT_INT16
   17931         type: DT_INT8
   17932         type: DT_COMPLEX64
   17933         type: DT_COMPLEX128
   17934         type: DT_QINT8
   17935         type: DT_QUINT8
   17936         type: DT_QINT32
   17937         type: DT_HALF
   17938       }
   17939     }
   17940   }
   17941   attr {
   17942     name: "Tidx"
   17943     type: "type"
   17944     default_value {
   17945       type: DT_INT32
   17946     }
   17947     allowed_values {
   17948       list {
   17949         type: DT_INT32
   17950         type: DT_INT64
   17951       }
   17952     }
   17953   }
   17954 }
   17955 op {
   17956   name: "Minimum"
   17957   input_arg {
   17958     name: "x"
   17959     type_attr: "T"
   17960   }
   17961   input_arg {
   17962     name: "y"
   17963     type_attr: "T"
   17964   }
   17965   output_arg {
   17966     name: "z"
   17967     type_attr: "T"
   17968   }
   17969   attr {
   17970     name: "T"
   17971     type: "type"
   17972     allowed_values {
   17973       list {
   17974         type: DT_FLOAT
   17975         type: DT_DOUBLE
   17976         type: DT_INT32
   17977         type: DT_INT64
   17978       }
   17979     }
   17980   }
   17981   is_commutative: true
   17982 }
   17983 op {
   17984   name: "Minimum"
   17985   input_arg {
   17986     name: "x"
   17987     type_attr: "T"
   17988   }
   17989   input_arg {
   17990     name: "y"
   17991     type_attr: "T"
   17992   }
   17993   output_arg {
   17994     name: "z"
   17995     type_attr: "T"
   17996   }
   17997   attr {
   17998     name: "T"
   17999     type: "type"
   18000     allowed_values {
   18001       list {
   18002         type: DT_HALF
   18003         type: DT_FLOAT
   18004         type: DT_DOUBLE
   18005         type: DT_INT32
   18006         type: DT_INT64
   18007       }
   18008     }
   18009   }
   18010   is_commutative: true
   18011 }
   18012 op {
   18013   name: "MirrorPad"
   18014   input_arg {
   18015     name: "input"
   18016     type_attr: "T"
   18017   }
   18018   input_arg {
   18019     name: "paddings"
   18020     type: DT_INT32
   18021   }
   18022   output_arg {
   18023     name: "output"
   18024     type_attr: "T"
   18025   }
   18026   attr {
   18027     name: "T"
   18028     type: "type"
   18029   }
   18030   attr {
   18031     name: "mode"
   18032     type: "string"
   18033     allowed_values {
   18034       list {
   18035         s: "REFLECT"
   18036         s: "SYMMETRIC"
   18037       }
   18038     }
   18039   }
   18040 }
   18041 op {
   18042   name: "MirrorPad"
   18043   input_arg {
   18044     name: "input"
   18045     type_attr: "T"
   18046   }
   18047   input_arg {
   18048     name: "paddings"
   18049     type_attr: "Tpaddings"
   18050   }
   18051   output_arg {
   18052     name: "output"
   18053     type_attr: "T"
   18054   }
   18055   attr {
   18056     name: "T"
   18057     type: "type"
   18058   }
   18059   attr {
   18060     name: "Tpaddings"
   18061     type: "type"
   18062     default_value {
   18063       type: DT_INT32
   18064     }
   18065     allowed_values {
   18066       list {
   18067         type: DT_INT32
   18068         type: DT_INT64
   18069       }
   18070     }
   18071   }
   18072   attr {
   18073     name: "mode"
   18074     type: "string"
   18075     allowed_values {
   18076       list {
   18077         s: "REFLECT"
   18078         s: "SYMMETRIC"
   18079       }
   18080     }
   18081   }
   18082 }
   18083 op {
   18084   name: "MirrorPadGrad"
   18085   input_arg {
   18086     name: "input"
   18087     type_attr: "T"
   18088   }
   18089   input_arg {
   18090     name: "paddings"
   18091     type: DT_INT32
   18092   }
   18093   output_arg {
   18094     name: "output"
   18095     type_attr: "T"
   18096   }
   18097   attr {
   18098     name: "T"
   18099     type: "type"
   18100   }
   18101   attr {
   18102     name: "mode"
   18103     type: "string"
   18104     allowed_values {
   18105       list {
   18106         s: "REFLECT"
   18107         s: "SYMMETRIC"
   18108       }
   18109     }
   18110   }
   18111 }
   18112 op {
   18113   name: "MirrorPadGrad"
   18114   input_arg {
   18115     name: "input"
   18116     type_attr: "T"
   18117   }
   18118   input_arg {
   18119     name: "paddings"
   18120     type_attr: "Tpaddings"
   18121   }
   18122   output_arg {
   18123     name: "output"
   18124     type_attr: "T"
   18125   }
   18126   attr {
   18127     name: "T"
   18128     type: "type"
   18129   }
   18130   attr {
   18131     name: "Tpaddings"
   18132     type: "type"
   18133     default_value {
   18134       type: DT_INT32
   18135     }
   18136     allowed_values {
   18137       list {
   18138         type: DT_INT32
   18139         type: DT_INT64
   18140       }
   18141     }
   18142   }
   18143   attr {
   18144     name: "mode"
   18145     type: "string"
   18146     allowed_values {
   18147       list {
   18148         s: "REFLECT"
   18149         s: "SYMMETRIC"
   18150       }
   18151     }
   18152   }
   18153 }
   18154 op {
   18155   name: "Mod"
   18156   input_arg {
   18157     name: "x"
   18158     type_attr: "T"
   18159   }
   18160   input_arg {
   18161     name: "y"
   18162     type_attr: "T"
   18163   }
   18164   output_arg {
   18165     name: "z"
   18166     type_attr: "T"
   18167   }
   18168   attr {
   18169     name: "T"
   18170     type: "type"
   18171     allowed_values {
   18172       list {
   18173         type: DT_INT32
   18174         type: DT_INT64
   18175         type: DT_FLOAT
   18176         type: DT_DOUBLE
   18177       }
   18178     }
   18179   }
   18180 }
   18181 op {
   18182   name: "Mul"
   18183   input_arg {
   18184     name: "x"
   18185     type_attr: "T"
   18186   }
   18187   input_arg {
   18188     name: "y"
   18189     type_attr: "T"
   18190   }
   18191   output_arg {
   18192     name: "z"
   18193     type_attr: "T"
   18194   }
   18195   attr {
   18196     name: "T"
   18197     type: "type"
   18198     allowed_values {
   18199       list {
   18200         type: DT_FLOAT
   18201         type: DT_DOUBLE
   18202         type: DT_INT8
   18203         type: DT_INT16
   18204         type: DT_INT32
   18205         type: DT_COMPLEX64
   18206         type: DT_INT64
   18207       }
   18208     }
   18209   }
   18210   is_commutative: true
   18211 }
   18212 op {
   18213   name: "Mul"
   18214   input_arg {
   18215     name: "x"
   18216     type_attr: "T"
   18217   }
   18218   input_arg {
   18219     name: "y"
   18220     type_attr: "T"
   18221   }
   18222   output_arg {
   18223     name: "z"
   18224     type_attr: "T"
   18225   }
   18226   attr {
   18227     name: "T"
   18228     type: "type"
   18229     allowed_values {
   18230       list {
   18231         type: DT_FLOAT
   18232         type: DT_DOUBLE
   18233         type: DT_UINT8
   18234         type: DT_INT8
   18235         type: DT_INT16
   18236         type: DT_INT32
   18237         type: DT_INT64
   18238         type: DT_COMPLEX64
   18239       }
   18240     }
   18241   }
   18242   is_commutative: true
   18243 }
   18244 op {
   18245   name: "Mul"
   18246   input_arg {
   18247     name: "x"
   18248     type_attr: "T"
   18249   }
   18250   input_arg {
   18251     name: "y"
   18252     type_attr: "T"
   18253   }
   18254   output_arg {
   18255     name: "z"
   18256     type_attr: "T"
   18257   }
   18258   attr {
   18259     name: "T"
   18260     type: "type"
   18261     allowed_values {
   18262       list {
   18263         type: DT_HALF
   18264         type: DT_FLOAT
   18265         type: DT_DOUBLE
   18266         type: DT_UINT8
   18267         type: DT_INT8
   18268         type: DT_INT16
   18269         type: DT_INT32
   18270         type: DT_INT64
   18271         type: DT_COMPLEX64
   18272       }
   18273     }
   18274   }
   18275   is_commutative: true
   18276 }
   18277 op {
   18278   name: "Mul"
   18279   input_arg {
   18280     name: "x"
   18281     type_attr: "T"
   18282   }
   18283   input_arg {
   18284     name: "y"
   18285     type_attr: "T"
   18286   }
   18287   output_arg {
   18288     name: "z"
   18289     type_attr: "T"
   18290   }
   18291   attr {
   18292     name: "T"
   18293     type: "type"
   18294     allowed_values {
   18295       list {
   18296         type: DT_HALF
   18297         type: DT_FLOAT
   18298         type: DT_DOUBLE
   18299         type: DT_UINT8
   18300         type: DT_INT8
   18301         type: DT_INT16
   18302         type: DT_INT32
   18303         type: DT_INT64
   18304         type: DT_COMPLEX64
   18305         type: DT_COMPLEX128
   18306       }
   18307     }
   18308   }
   18309   is_commutative: true
   18310 }
   18311 op {
   18312   name: "Mul"
   18313   input_arg {
   18314     name: "x"
   18315     type_attr: "T"
   18316   }
   18317   input_arg {
   18318     name: "y"
   18319     type_attr: "T"
   18320   }
   18321   output_arg {
   18322     name: "z"
   18323     type_attr: "T"
   18324   }
   18325   attr {
   18326     name: "T"
   18327     type: "type"
   18328     allowed_values {
   18329       list {
   18330         type: DT_HALF
   18331         type: DT_FLOAT
   18332         type: DT_DOUBLE
   18333         type: DT_UINT8
   18334         type: DT_INT8
   18335         type: DT_UINT16
   18336         type: DT_INT16
   18337         type: DT_INT32
   18338         type: DT_INT64
   18339         type: DT_COMPLEX64
   18340         type: DT_COMPLEX128
   18341       }
   18342     }
   18343   }
   18344   is_commutative: true
   18345 }
   18346 op {
   18347   name: "Multinomial"
   18348   input_arg {
   18349     name: "logits"
   18350     type_attr: "T"
   18351   }
   18352   input_arg {
   18353     name: "num_samples"
   18354     type: DT_INT32
   18355   }
   18356   output_arg {
   18357     name: "output"
   18358     type: DT_INT64
   18359   }
   18360   attr {
   18361     name: "seed"
   18362     type: "int"
   18363     default_value {
   18364       i: 0
   18365     }
   18366   }
   18367   attr {
   18368     name: "seed2"
   18369     type: "int"
   18370     default_value {
   18371       i: 0
   18372     }
   18373   }
   18374   attr {
   18375     name: "T"
   18376     type: "type"
   18377     allowed_values {
   18378       list {
   18379         type: DT_FLOAT
   18380         type: DT_DOUBLE
   18381         type: DT_INT32
   18382         type: DT_INT64
   18383         type: DT_UINT8
   18384         type: DT_INT16
   18385         type: DT_INT8
   18386         type: DT_UINT16
   18387         type: DT_HALF
   18388       }
   18389     }
   18390   }
   18391 }
   18392 op {
   18393   name: "Multinomial"
   18394   input_arg {
   18395     name: "logits"
   18396     type_attr: "T"
   18397   }
   18398   input_arg {
   18399     name: "num_samples"
   18400     type: DT_INT32
   18401   }
   18402   output_arg {
   18403     name: "output"
   18404     type: DT_INT64
   18405   }
   18406   attr {
   18407     name: "seed"
   18408     type: "int"
   18409     default_value {
   18410       i: 0
   18411     }
   18412   }
   18413   attr {
   18414     name: "seed2"
   18415     type: "int"
   18416     default_value {
   18417       i: 0
   18418     }
   18419   }
   18420   attr {
   18421     name: "T"
   18422     type: "type"
   18423     allowed_values {
   18424       list {
   18425         type: DT_FLOAT
   18426         type: DT_DOUBLE
   18427         type: DT_INT32
   18428         type: DT_INT64
   18429         type: DT_UINT8
   18430         type: DT_INT16
   18431         type: DT_INT8
   18432         type: DT_UINT16
   18433         type: DT_HALF
   18434       }
   18435     }
   18436   }
   18437   is_stateful: true
   18438 }
   18439 op {
   18440   name: "MutableDenseHashTable"
   18441   input_arg {
   18442     name: "empty_key"
   18443     type_attr: "key_dtype"
   18444   }
   18445   output_arg {
   18446     name: "table_handle"
   18447     type: DT_STRING
   18448     is_ref: true
   18449   }
   18450   attr {
   18451     name: "container"
   18452     type: "string"
   18453     default_value {
   18454       s: ""
   18455     }
   18456   }
   18457   attr {
   18458     name: "shared_name"
   18459     type: "string"
   18460     default_value {
   18461       s: ""
   18462     }
   18463   }
   18464   attr {
   18465     name: "use_node_name_sharing"
   18466     type: "bool"
   18467     default_value {
   18468       b: false
   18469     }
   18470   }
   18471   attr {
   18472     name: "key_dtype"
   18473     type: "type"
   18474   }
   18475   attr {
   18476     name: "value_dtype"
   18477     type: "type"
   18478   }
   18479   attr {
   18480     name: "value_shape"
   18481     type: "shape"
   18482     default_value {
   18483       shape {
   18484       }
   18485     }
   18486   }
   18487   attr {
   18488     name: "initial_num_buckets"
   18489     type: "int"
   18490     default_value {
   18491       i: 131072
   18492     }
   18493   }
   18494   is_stateful: true
   18495 }
   18496 op {
   18497   name: "MutableDenseHashTable"
   18498   input_arg {
   18499     name: "empty_key"
   18500     type_attr: "key_dtype"
   18501   }
   18502   output_arg {
   18503     name: "table_handle"
   18504     type: DT_STRING
   18505     is_ref: true
   18506   }
   18507   attr {
   18508     name: "container"
   18509     type: "string"
   18510     default_value {
   18511       s: ""
   18512     }
   18513   }
   18514   attr {
   18515     name: "shared_name"
   18516     type: "string"
   18517     default_value {
   18518       s: ""
   18519     }
   18520   }
   18521   attr {
   18522     name: "use_node_name_sharing"
   18523     type: "bool"
   18524     default_value {
   18525       b: false
   18526     }
   18527   }
   18528   attr {
   18529     name: "key_dtype"
   18530     type: "type"
   18531   }
   18532   attr {
   18533     name: "value_dtype"
   18534     type: "type"
   18535   }
   18536   attr {
   18537     name: "value_shape"
   18538     type: "shape"
   18539     default_value {
   18540       shape {
   18541       }
   18542     }
   18543   }
   18544   attr {
   18545     name: "initial_num_buckets"
   18546     type: "int"
   18547     default_value {
   18548       i: 131072
   18549     }
   18550   }
   18551   attr {
   18552     name: "max_load_factor"
   18553     type: "float"
   18554     default_value {
   18555       f: 0.8
   18556     }
   18557   }
   18558   is_stateful: true
   18559 }
   18560 op {
   18561   name: "MutableHashTable"
   18562   output_arg {
   18563     name: "table_handle"
   18564     type: DT_STRING
   18565     is_ref: true
   18566   }
   18567   attr {
   18568     name: "container"
   18569     type: "string"
   18570     default_value {
   18571       s: ""
   18572     }
   18573   }
   18574   attr {
   18575     name: "shared_name"
   18576     type: "string"
   18577     default_value {
   18578       s: ""
   18579     }
   18580   }
   18581   attr {
   18582     name: "key_dtype"
   18583     type: "type"
   18584   }
   18585   attr {
   18586     name: "value_dtype"
   18587     type: "type"
   18588   }
   18589   is_stateful: true
   18590 }
   18591 op {
   18592   name: "MutableHashTable"
   18593   output_arg {
   18594     name: "table_handle"
   18595     type: DT_STRING
   18596     is_ref: true
   18597   }
   18598   attr {
   18599     name: "container"
   18600     type: "string"
   18601     default_value {
   18602       s: ""
   18603     }
   18604   }
   18605   attr {
   18606     name: "shared_name"
   18607     type: "string"
   18608     default_value {
   18609       s: ""
   18610     }
   18611   }
   18612   attr {
   18613     name: "use_node_name_sharing"
   18614     type: "bool"
   18615     default_value {
   18616       b: false
   18617     }
   18618   }
   18619   attr {
   18620     name: "key_dtype"
   18621     type: "type"
   18622   }
   18623   attr {
   18624     name: "value_dtype"
   18625     type: "type"
   18626   }
   18627   is_stateful: true
   18628 }
   18629 op {
   18630   name: "MutableHashTableOfTensors"
   18631   output_arg {
   18632     name: "table_handle"
   18633     type: DT_STRING
   18634     is_ref: true
   18635   }
   18636   attr {
   18637     name: "container"
   18638     type: "string"
   18639     default_value {
   18640       s: ""
   18641     }
   18642   }
   18643   attr {
   18644     name: "shared_name"
   18645     type: "string"
   18646     default_value {
   18647       s: ""
   18648     }
   18649   }
   18650   attr {
   18651     name: "key_dtype"
   18652     type: "type"
   18653   }
   18654   attr {
   18655     name: "value_dtype"
   18656     type: "type"
   18657   }
   18658   attr {
   18659     name: "value_shape"
   18660     type: "shape"
   18661     default_value {
   18662       shape {
   18663       }
   18664     }
   18665   }
   18666   is_stateful: true
   18667 }
   18668 op {
   18669   name: "MutableHashTableOfTensors"
   18670   output_arg {
   18671     name: "table_handle"
   18672     type: DT_STRING
   18673     is_ref: true
   18674   }
   18675   attr {
   18676     name: "container"
   18677     type: "string"
   18678     default_value {
   18679       s: ""
   18680     }
   18681   }
   18682   attr {
   18683     name: "shared_name"
   18684     type: "string"
   18685     default_value {
   18686       s: ""
   18687     }
   18688   }
   18689   attr {
   18690     name: "use_node_name_sharing"
   18691     type: "bool"
   18692     default_value {
   18693       b: false
   18694     }
   18695   }
   18696   attr {
   18697     name: "key_dtype"
   18698     type: "type"
   18699   }
   18700   attr {
   18701     name: "value_dtype"
   18702     type: "type"
   18703   }
   18704   attr {
   18705     name: "value_shape"
   18706     type: "shape"
   18707     default_value {
   18708       shape {
   18709       }
   18710     }
   18711   }
   18712   is_stateful: true
   18713 }
   18714 op {
   18715   name: "Neg"
   18716   input_arg {
   18717     name: "x"
   18718     type_attr: "T"
   18719   }
   18720   output_arg {
   18721     name: "y"
   18722     type_attr: "T"
   18723   }
   18724   attr {
   18725     name: "T"
   18726     type: "type"
   18727     allowed_values {
   18728       list {
   18729         type: DT_FLOAT
   18730         type: DT_DOUBLE
   18731         type: DT_INT32
   18732         type: DT_COMPLEX64
   18733         type: DT_INT64
   18734       }
   18735     }
   18736   }
   18737 }
   18738 op {
   18739   name: "Neg"
   18740   input_arg {
   18741     name: "x"
   18742     type_attr: "T"
   18743   }
   18744   output_arg {
   18745     name: "y"
   18746     type_attr: "T"
   18747   }
   18748   attr {
   18749     name: "T"
   18750     type: "type"
   18751     allowed_values {
   18752       list {
   18753         type: DT_HALF
   18754         type: DT_FLOAT
   18755         type: DT_DOUBLE
   18756         type: DT_INT32
   18757         type: DT_COMPLEX64
   18758         type: DT_INT64
   18759       }
   18760     }
   18761   }
   18762 }
   18763 op {
   18764   name: "Neg"
   18765   input_arg {
   18766     name: "x"
   18767     type_attr: "T"
   18768   }
   18769   output_arg {
   18770     name: "y"
   18771     type_attr: "T"
   18772   }
   18773   attr {
   18774     name: "T"
   18775     type: "type"
   18776     allowed_values {
   18777       list {
   18778         type: DT_HALF
   18779         type: DT_FLOAT
   18780         type: DT_DOUBLE
   18781         type: DT_INT32
   18782         type: DT_INT64
   18783         type: DT_COMPLEX64
   18784         type: DT_COMPLEX128
   18785       }
   18786     }
   18787   }
   18788 }
   18789 op {
   18790   name: "NegTrain"
   18791   input_arg {
   18792     name: "w_in"
   18793     type: DT_FLOAT
   18794     is_ref: true
   18795   }
   18796   input_arg {
   18797     name: "w_out"
   18798     type: DT_FLOAT
   18799     is_ref: true
   18800   }
   18801   input_arg {
   18802     name: "examples"
   18803     type: DT_INT32
   18804   }
   18805   input_arg {
   18806     name: "labels"
   18807     type: DT_INT32
   18808   }
   18809   input_arg {
   18810     name: "lr"
   18811     type: DT_FLOAT
   18812   }
   18813   attr {
   18814     name: "vocab_count"
   18815     type: "list(int)"
   18816   }
   18817   attr {
   18818     name: "num_negative_samples"
   18819     type: "int"
   18820   }
   18821 }
   18822 op {
   18823   name: "NegTrain"
   18824   input_arg {
   18825     name: "w_in"
   18826     type: DT_FLOAT
   18827     is_ref: true
   18828   }
   18829   input_arg {
   18830     name: "w_out"
   18831     type: DT_FLOAT
   18832     is_ref: true
   18833   }
   18834   input_arg {
   18835     name: "examples"
   18836     type: DT_INT32
   18837   }
   18838   input_arg {
   18839     name: "labels"
   18840     type: DT_INT32
   18841   }
   18842   input_arg {
   18843     name: "lr"
   18844     type: DT_FLOAT
   18845   }
   18846   attr {
   18847     name: "vocab_count"
   18848     type: "list(int)"
   18849   }
   18850   attr {
   18851     name: "num_negative_samples"
   18852     type: "int"
   18853   }
   18854   is_stateful: true
   18855 }
   18856 op {
   18857   name: "NegTrain"
   18858   input_arg {
   18859     name: "w_in"
   18860     type: DT_FLOAT
   18861     is_ref: true
   18862   }
   18863   input_arg {
   18864     name: "w_out"
   18865     type: DT_FLOAT
   18866     is_ref: true
   18867   }
   18868   input_arg {
   18869     name: "examples"
   18870     type: DT_INT32
   18871   }
   18872   input_arg {
   18873     name: "labels"
   18874     type: DT_INT32
   18875   }
   18876   input_arg {
   18877     name: "lr"
   18878     type: DT_FLOAT
   18879   }
   18880   attr {
   18881     name: "vocab_count"
   18882     type: "list(int)"
   18883   }
   18884   attr {
   18885     name: "num_negative_samples"
   18886     type: "int"
   18887   }
   18888   deprecation {
   18889     version: 19
   18890   }
   18891   is_stateful: true
   18892 }
   18893 op {
   18894   name: "NextIteration"
   18895   input_arg {
   18896     name: "data"
   18897     type_attr: "T"
   18898   }
   18899   output_arg {
   18900     name: "output"
   18901     type_attr: "T"
   18902   }
   18903   attr {
   18904     name: "T"
   18905     type: "type"
   18906   }
   18907 }
   18908 op {
   18909   name: "NoOp"
   18910 }
   18911 op {
   18912   name: "NonMaxSuppression"
   18913   input_arg {
   18914     name: "boxes"
   18915     type: DT_FLOAT
   18916   }
   18917   input_arg {
   18918     name: "scores"
   18919     type: DT_FLOAT
   18920   }
   18921   input_arg {
   18922     name: "max_output_size"
   18923     type: DT_INT32
   18924   }
   18925   output_arg {
   18926     name: "selected_indices"
   18927     type: DT_INT32
   18928   }
   18929   attr {
   18930     name: "iou_threshold"
   18931     type: "float"
   18932     default_value {
   18933       f: 0.5
   18934     }
   18935   }
   18936 }
   18937 op {
   18938   name: "NotEqual"
   18939   input_arg {
   18940     name: "x"
   18941     type_attr: "T"
   18942   }
   18943   input_arg {
   18944     name: "y"
   18945     type_attr: "T"
   18946   }
   18947   output_arg {
   18948     name: "z"
   18949     type: DT_BOOL
   18950   }
   18951   attr {
   18952     name: "T"
   18953     type: "type"
   18954     allowed_values {
   18955       list {
   18956         type: DT_FLOAT
   18957         type: DT_DOUBLE
   18958         type: DT_INT32
   18959         type: DT_INT64
   18960         type: DT_COMPLEX64
   18961         type: DT_QUINT8
   18962         type: DT_QINT8
   18963         type: DT_QINT32
   18964       }
   18965     }
   18966   }
   18967   is_commutative: true
   18968 }
   18969 op {
   18970   name: "NotEqual"
   18971   input_arg {
   18972     name: "x"
   18973     type_attr: "T"
   18974   }
   18975   input_arg {
   18976     name: "y"
   18977     type_attr: "T"
   18978   }
   18979   output_arg {
   18980     name: "z"
   18981     type: DT_BOOL
   18982   }
   18983   attr {
   18984     name: "T"
   18985     type: "type"
   18986     allowed_values {
   18987       list {
   18988         type: DT_FLOAT
   18989         type: DT_DOUBLE
   18990         type: DT_UINT8
   18991         type: DT_INT8
   18992         type: DT_INT16
   18993         type: DT_INT32
   18994         type: DT_INT64
   18995         type: DT_COMPLEX64
   18996         type: DT_QUINT8
   18997         type: DT_QINT8
   18998         type: DT_QINT32
   18999       }
   19000     }
   19001   }
   19002   is_commutative: true
   19003 }
   19004 op {
   19005   name: "NotEqual"
   19006   input_arg {
   19007     name: "x"
   19008     type_attr: "T"
   19009   }
   19010   input_arg {
   19011     name: "y"
   19012     type_attr: "T"
   19013   }
   19014   output_arg {
   19015     name: "z"
   19016     type: DT_BOOL
   19017   }
   19018   attr {
   19019     name: "T"
   19020     type: "type"
   19021     allowed_values {
   19022       list {
   19023         type: DT_FLOAT
   19024         type: DT_DOUBLE
   19025         type: DT_UINT8
   19026         type: DT_INT8
   19027         type: DT_INT16
   19028         type: DT_INT32
   19029         type: DT_INT64
   19030         type: DT_COMPLEX64
   19031         type: DT_QUINT8
   19032         type: DT_QINT8
   19033         type: DT_QINT32
   19034         type: DT_STRING
   19035       }
   19036     }
   19037   }
   19038   is_commutative: true
   19039 }
   19040 op {
   19041   name: "NotEqual"
   19042   input_arg {
   19043     name: "x"
   19044     type_attr: "T"
   19045   }
   19046   input_arg {
   19047     name: "y"
   19048     type_attr: "T"
   19049   }
   19050   output_arg {
   19051     name: "z"
   19052     type: DT_BOOL
   19053   }
   19054   attr {
   19055     name: "T"
   19056     type: "type"
   19057     allowed_values {
   19058       list {
   19059         type: DT_HALF
   19060         type: DT_FLOAT
   19061         type: DT_DOUBLE
   19062         type: DT_UINT8
   19063         type: DT_INT8
   19064         type: DT_INT16
   19065         type: DT_INT32
   19066         type: DT_INT64
   19067         type: DT_COMPLEX64
   19068         type: DT_QUINT8
   19069         type: DT_QINT8
   19070         type: DT_QINT32
   19071         type: DT_STRING
   19072       }
   19073     }
   19074   }
   19075   is_commutative: true
   19076 }
   19077 op {
   19078   name: "NotEqual"
   19079   input_arg {
   19080     name: "x"
   19081     type_attr: "T"
   19082   }
   19083   input_arg {
   19084     name: "y"
   19085     type_attr: "T"
   19086   }
   19087   output_arg {
   19088     name: "z"
   19089     type: DT_BOOL
   19090   }
   19091   attr {
   19092     name: "T"
   19093     type: "type"
   19094     allowed_values {
   19095       list {
   19096         type: DT_HALF
   19097         type: DT_FLOAT
   19098         type: DT_DOUBLE
   19099         type: DT_UINT8
   19100         type: DT_INT8
   19101         type: DT_INT16
   19102         type: DT_INT32
   19103         type: DT_INT64
   19104         type: DT_COMPLEX64
   19105         type: DT_QUINT8
   19106         type: DT_QINT8
   19107         type: DT_QINT32
   19108         type: DT_STRING
   19109         type: DT_BOOL
   19110       }
   19111     }
   19112   }
   19113   is_commutative: true
   19114 }
   19115 op {
   19116   name: "NotEqual"
   19117   input_arg {
   19118     name: "x"
   19119     type_attr: "T"
   19120   }
   19121   input_arg {
   19122     name: "y"
   19123     type_attr: "T"
   19124   }
   19125   output_arg {
   19126     name: "z"
   19127     type: DT_BOOL
   19128   }
   19129   attr {
   19130     name: "T"
   19131     type: "type"
   19132     allowed_values {
   19133       list {
   19134         type: DT_HALF
   19135         type: DT_FLOAT
   19136         type: DT_DOUBLE
   19137         type: DT_UINT8
   19138         type: DT_INT8
   19139         type: DT_INT16
   19140         type: DT_INT32
   19141         type: DT_INT64
   19142         type: DT_COMPLEX64
   19143         type: DT_QUINT8
   19144         type: DT_QINT8
   19145         type: DT_QINT32
   19146         type: DT_STRING
   19147         type: DT_BOOL
   19148         type: DT_COMPLEX128
   19149       }
   19150     }
   19151   }
   19152   is_commutative: true
   19153 }
   19154 op {
   19155   name: "OneHot"
   19156   input_arg {
   19157     name: "indices"
   19158     type: DT_INT64
   19159   }
   19160   input_arg {
   19161     name: "depth"
   19162     type: DT_INT32
   19163   }
   19164   input_arg {
   19165     name: "on_value"
   19166     type_attr: "T"
   19167   }
   19168   input_arg {
   19169     name: "off_value"
   19170     type_attr: "T"
   19171   }
   19172   output_arg {
   19173     name: "output"
   19174     type_attr: "T"
   19175   }
   19176   attr {
   19177     name: "axis"
   19178     type: "int"
   19179     default_value {
   19180       i: -1
   19181     }
   19182   }
   19183   attr {
   19184     name: "T"
   19185     type: "type"
   19186   }
   19187 }
   19188 op {
   19189   name: "OneHot"
   19190   input_arg {
   19191     name: "indices"
   19192     type_attr: "TI"
   19193   }
   19194   input_arg {
   19195     name: "depth"
   19196     type: DT_INT32
   19197   }
   19198   input_arg {
   19199     name: "on_value"
   19200     type_attr: "T"
   19201   }
   19202   input_arg {
   19203     name: "off_value"
   19204     type_attr: "T"
   19205   }
   19206   output_arg {
   19207     name: "output"
   19208     type_attr: "T"
   19209   }
   19210   attr {
   19211     name: "axis"
   19212     type: "int"
   19213     default_value {
   19214       i: -1
   19215     }
   19216   }
   19217   attr {
   19218     name: "T"
   19219     type: "type"
   19220   }
   19221   attr {
   19222     name: "TI"
   19223     type: "type"
   19224     default_value {
   19225       type: DT_INT64
   19226     }
   19227     allowed_values {
   19228       list {
   19229         type: DT_INT32
   19230         type: DT_INT64
   19231       }
   19232     }
   19233   }
   19234 }
   19235 op {
   19236   name: "OneHot"
   19237   input_arg {
   19238     name: "indices"
   19239     type_attr: "TI"
   19240   }
   19241   input_arg {
   19242     name: "depth"
   19243     type: DT_INT32
   19244   }
   19245   input_arg {
   19246     name: "on_value"
   19247     type_attr: "T"
   19248   }
   19249   input_arg {
   19250     name: "off_value"
   19251     type_attr: "T"
   19252   }
   19253   output_arg {
   19254     name: "output"
   19255     type_attr: "T"
   19256   }
   19257   attr {
   19258     name: "axis"
   19259     type: "int"
   19260     default_value {
   19261       i: -1
   19262     }
   19263   }
   19264   attr {
   19265     name: "T"
   19266     type: "type"
   19267   }
   19268   attr {
   19269     name: "TI"
   19270     type: "type"
   19271     default_value {
   19272       type: DT_INT64
   19273     }
   19274     allowed_values {
   19275       list {
   19276         type: DT_UINT8
   19277         type: DT_INT32
   19278         type: DT_INT64
   19279       }
   19280     }
   19281   }
   19282 }
   19283 op {
   19284   name: "Pack"
   19285   input_arg {
   19286     name: "values"
   19287     type_attr: "T"
   19288     number_attr: "N"
   19289   }
   19290   output_arg {
   19291     name: "output"
   19292     type_attr: "T"
   19293   }
   19294   attr {
   19295     name: "N"
   19296     type: "int"
   19297     has_minimum: true
   19298     minimum: 1
   19299   }
   19300   attr {
   19301     name: "T"
   19302     type: "type"
   19303   }
   19304 }
   19305 op {
   19306   name: "Pack"
   19307   input_arg {
   19308     name: "values"
   19309     type_attr: "T"
   19310     number_attr: "N"
   19311   }
   19312   output_arg {
   19313     name: "output"
   19314     type_attr: "T"
   19315   }
   19316   attr {
   19317     name: "N"
   19318     type: "int"
   19319     has_minimum: true
   19320     minimum: 1
   19321   }
   19322   attr {
   19323     name: "T"
   19324     type: "type"
   19325   }
   19326   attr {
   19327     name: "axis"
   19328     type: "int"
   19329     default_value {
   19330       i: 0
   19331     }
   19332   }
   19333 }
   19334 op {
   19335   name: "Pad"
   19336   input_arg {
   19337     name: "input"
   19338     type_attr: "T"
   19339   }
   19340   input_arg {
   19341     name: "paddings"
   19342     type: DT_INT32
   19343   }
   19344   output_arg {
   19345     name: "output"
   19346     type_attr: "T"
   19347   }
   19348   attr {
   19349     name: "T"
   19350     type: "type"
   19351   }
   19352 }
   19353 op {
   19354   name: "Pad"
   19355   input_arg {
   19356     name: "input"
   19357     type_attr: "T"
   19358   }
   19359   input_arg {
   19360     name: "paddings"
   19361     type_attr: "Tpaddings"
   19362   }
   19363   output_arg {
   19364     name: "output"
   19365     type_attr: "T"
   19366   }
   19367   attr {
   19368     name: "T"
   19369     type: "type"
   19370   }
   19371   attr {
   19372     name: "Tpaddings"
   19373     type: "type"
   19374     default_value {
   19375       type: DT_INT32
   19376     }
   19377     allowed_values {
   19378       list {
   19379         type: DT_INT32
   19380         type: DT_INT64
   19381       }
   19382     }
   19383   }
   19384 }
   19385 op {
   19386   name: "PaddingFIFOQueue"
   19387   output_arg {
   19388     name: "handle"
   19389     type: DT_STRING
   19390     is_ref: true
   19391   }
   19392   attr {
   19393     name: "component_types"
   19394     type: "list(type)"
   19395     has_minimum: true
   19396     minimum: 1
   19397   }
   19398   attr {
   19399     name: "shapes"
   19400     type: "list(shape)"
   19401     default_value {
   19402       list {
   19403       }
   19404     }
   19405     has_minimum: true
   19406   }
   19407   attr {
   19408     name: "capacity"
   19409     type: "int"
   19410     default_value {
   19411       i: -1
   19412     }
   19413   }
   19414   attr {
   19415     name: "container"
   19416     type: "string"
   19417     default_value {
   19418       s: ""
   19419     }
   19420   }
   19421   attr {
   19422     name: "shared_name"
   19423     type: "string"
   19424     default_value {
   19425       s: ""
   19426     }
   19427   }
   19428   is_stateful: true
   19429 }
   19430 op {
   19431   name: "PaddingFIFOQueueV2"
   19432   output_arg {
   19433     name: "handle"
   19434     type: DT_RESOURCE
   19435   }
   19436   attr {
   19437     name: "component_types"
   19438     type: "list(type)"
   19439     has_minimum: true
   19440     minimum: 1
   19441   }
   19442   attr {
   19443     name: "shapes"
   19444     type: "list(shape)"
   19445     default_value {
   19446       list {
   19447       }
   19448     }
   19449     has_minimum: true
   19450   }
   19451   attr {
   19452     name: "capacity"
   19453     type: "int"
   19454     default_value {
   19455       i: -1
   19456     }
   19457   }
   19458   attr {
   19459     name: "container"
   19460     type: "string"
   19461     default_value {
   19462       s: ""
   19463     }
   19464   }
   19465   attr {
   19466     name: "shared_name"
   19467     type: "string"
   19468     default_value {
   19469       s: ""
   19470     }
   19471   }
   19472   is_stateful: true
   19473 }
   19474 op {
   19475   name: "ParallelConcat"
   19476   input_arg {
   19477     name: "values"
   19478     type_attr: "T"
   19479     number_attr: "N"
   19480   }
   19481   output_arg {
   19482     name: "output"
   19483     type_attr: "T"
   19484   }
   19485   attr {
   19486     name: "N"
   19487     type: "int"
   19488     has_minimum: true
   19489     minimum: 1
   19490   }
   19491   attr {
   19492     name: "T"
   19493     type: "type"
   19494   }
   19495   attr {
   19496     name: "shape"
   19497     type: "shape"
   19498   }
   19499 }
   19500 op {
   19501   name: "ParameterizedTruncatedNormal"
   19502   input_arg {
   19503     name: "shape"
   19504     type_attr: "T"
   19505   }
   19506   input_arg {
   19507     name: "means"
   19508     type_attr: "dtype"
   19509   }
   19510   input_arg {
   19511     name: "stdevs"
   19512     type_attr: "dtype"
   19513   }
   19514   input_arg {
   19515     name: "minvals"
   19516     type_attr: "dtype"
   19517   }
   19518   input_arg {
   19519     name: "maxvals"
   19520     type_attr: "dtype"
   19521   }
   19522   output_arg {
   19523     name: "output"
   19524     type_attr: "dtype"
   19525   }
   19526   attr {
   19527     name: "seed"
   19528     type: "int"
   19529     default_value {
   19530       i: 0
   19531     }
   19532   }
   19533   attr {
   19534     name: "seed2"
   19535     type: "int"
   19536     default_value {
   19537       i: 0
   19538     }
   19539   }
   19540   attr {
   19541     name: "dtype"
   19542     type: "type"
   19543     allowed_values {
   19544       list {
   19545         type: DT_HALF
   19546         type: DT_FLOAT
   19547         type: DT_DOUBLE
   19548       }
   19549     }
   19550   }
   19551   attr {
   19552     name: "T"
   19553     type: "type"
   19554     allowed_values {
   19555       list {
   19556         type: DT_INT32
   19557         type: DT_INT64
   19558       }
   19559     }
   19560   }
   19561   is_stateful: true
   19562 }
   19563 op {
   19564   name: "ParseExample"
   19565   input_arg {
   19566     name: "serialized"
   19567     type: DT_STRING
   19568   }
   19569   input_arg {
   19570     name: "names"
   19571     type: DT_STRING
   19572   }
   19573   input_arg {
   19574     name: "sparse_keys"
   19575     type: DT_STRING
   19576     number_attr: "Nsparse"
   19577   }
   19578   input_arg {
   19579     name: "dense_keys"
   19580     type: DT_STRING
   19581     number_attr: "Ndense"
   19582   }
   19583   input_arg {
   19584     name: "dense_defaults"
   19585     type_list_attr: "Tdense"
   19586   }
   19587   output_arg {
   19588     name: "sparse_indices"
   19589     type: DT_INT64
   19590     number_attr: "Nsparse"
   19591   }
   19592   output_arg {
   19593     name: "sparse_values"
   19594     type_list_attr: "sparse_types"
   19595   }
   19596   output_arg {
   19597     name: "sparse_shapes"
   19598     type: DT_INT64
   19599     number_attr: "Nsparse"
   19600   }
   19601   output_arg {
   19602     name: "dense_values"
   19603     type_list_attr: "Tdense"
   19604   }
   19605   attr {
   19606     name: "Nsparse"
   19607     type: "int"
   19608     has_minimum: true
   19609   }
   19610   attr {
   19611     name: "Ndense"
   19612     type: "int"
   19613     has_minimum: true
   19614   }
   19615   attr {
   19616     name: "sparse_types"
   19617     type: "list(type)"
   19618     has_minimum: true
   19619     allowed_values {
   19620       list {
   19621         type: DT_FLOAT
   19622         type: DT_INT64
   19623         type: DT_STRING
   19624       }
   19625     }
   19626   }
   19627   attr {
   19628     name: "Tdense"
   19629     type: "list(type)"
   19630     has_minimum: true
   19631     allowed_values {
   19632       list {
   19633         type: DT_FLOAT
   19634         type: DT_INT64
   19635         type: DT_STRING
   19636       }
   19637     }
   19638   }
   19639   attr {
   19640     name: "dense_shapes"
   19641     type: "list(shape)"
   19642     has_minimum: true
   19643   }
   19644 }
   19645 op {
   19646   name: "ParseSingleSequenceExample"
   19647   input_arg {
   19648     name: "serialized"
   19649     type: DT_STRING
   19650   }
   19651   input_arg {
   19652     name: "feature_list_dense_missing_assumed_empty"
   19653     type: DT_STRING
   19654   }
   19655   input_arg {
   19656     name: "context_sparse_keys"
   19657     type: DT_STRING
   19658     number_attr: "Ncontext_sparse"
   19659   }
   19660   input_arg {
   19661     name: "context_dense_keys"
   19662     type: DT_STRING
   19663     number_attr: "Ncontext_dense"
   19664   }
   19665   input_arg {
   19666     name: "feature_list_dense_keys"
   19667     type: DT_STRING
   19668     number_attr: "Nfeature_list_dense"
   19669   }
   19670   input_arg {
   19671     name: "context_dense_defaults"
   19672     type_list_attr: "Tcontext_dense"
   19673   }
   19674   input_arg {
   19675     name: "debug_name"
   19676     type: DT_STRING
   19677   }
   19678   output_arg {
   19679     name: "context_sparse_indices"
   19680     type: DT_INT64
   19681     number_attr: "Ncontext_sparse"
   19682   }
   19683   output_arg {
   19684     name: "context_sparse_values"
   19685     type_list_attr: "context_sparse_types"
   19686   }
   19687   output_arg {
   19688     name: "context_sparse_shapes"
   19689     type: DT_INT64
   19690     number_attr: "Ncontext_sparse"
   19691   }
   19692   output_arg {
   19693     name: "context_dense_values"
   19694     type_list_attr: "Tcontext_dense"
   19695   }
   19696   output_arg {
   19697     name: "feature_list_dense_values"
   19698     type_list_attr: "feature_list_dense_types"
   19699   }
   19700   attr {
   19701     name: "Ncontext_sparse"
   19702     type: "int"
   19703     has_minimum: true
   19704   }
   19705   attr {
   19706     name: "Ncontext_dense"
   19707     type: "int"
   19708     has_minimum: true
   19709   }
   19710   attr {
   19711     name: "Nfeature_list_dense"
   19712     type: "int"
   19713     has_minimum: true
   19714   }
   19715   attr {
   19716     name: "context_sparse_types"
   19717     type: "list(type)"
   19718     has_minimum: true
   19719     allowed_values {
   19720       list {
   19721         type: DT_FLOAT
   19722         type: DT_INT64
   19723         type: DT_STRING
   19724       }
   19725     }
   19726   }
   19727   attr {
   19728     name: "Tcontext_dense"
   19729     type: "list(type)"
   19730     has_minimum: true
   19731     allowed_values {
   19732       list {
   19733         type: DT_FLOAT
   19734         type: DT_INT64
   19735         type: DT_STRING
   19736       }
   19737     }
   19738   }
   19739   attr {
   19740     name: "feature_list_dense_types"
   19741     type: "list(type)"
   19742     has_minimum: true
   19743     allowed_values {
   19744       list {
   19745         type: DT_FLOAT
   19746         type: DT_INT64
   19747         type: DT_STRING
   19748       }
   19749     }
   19750   }
   19751   attr {
   19752     name: "context_dense_shapes"
   19753     type: "list(shape)"
   19754     has_minimum: true
   19755   }
   19756   attr {
   19757     name: "feature_list_dense_shapes"
   19758     type: "list(shape)"
   19759     has_minimum: true
   19760   }
   19761 }
   19762 op {
   19763   name: "ParseSingleSequenceExample"
   19764   input_arg {
   19765     name: "serialized"
   19766     type: DT_STRING
   19767   }
   19768   input_arg {
   19769     name: "feature_list_dense_missing_assumed_empty"
   19770     type: DT_STRING
   19771   }
   19772   input_arg {
   19773     name: "context_sparse_keys"
   19774     type: DT_STRING
   19775     number_attr: "Ncontext_sparse"
   19776   }
   19777   input_arg {
   19778     name: "context_dense_keys"
   19779     type: DT_STRING
   19780     number_attr: "Ncontext_dense"
   19781   }
   19782   input_arg {
   19783     name: "feature_list_sparse_keys"
   19784     type: DT_STRING
   19785     number_attr: "Nfeature_list_sparse"
   19786   }
   19787   input_arg {
   19788     name: "feature_list_dense_keys"
   19789     type: DT_STRING
   19790     number_attr: "Nfeature_list_dense"
   19791   }
   19792   input_arg {
   19793     name: "context_dense_defaults"
   19794     type_list_attr: "Tcontext_dense"
   19795   }
   19796   input_arg {
   19797     name: "debug_name"
   19798     type: DT_STRING
   19799   }
   19800   output_arg {
   19801     name: "context_sparse_indices"
   19802     type: DT_INT64
   19803     number_attr: "Ncontext_sparse"
   19804   }
   19805   output_arg {
   19806     name: "context_sparse_values"
   19807     type_list_attr: "context_sparse_types"
   19808   }
   19809   output_arg {
   19810     name: "context_sparse_shapes"
   19811     type: DT_INT64
   19812     number_attr: "Ncontext_sparse"
   19813   }
   19814   output_arg {
   19815     name: "context_dense_values"
   19816     type_list_attr: "Tcontext_dense"
   19817   }
   19818   output_arg {
   19819     name: "feature_list_sparse_indices"
   19820     type: DT_INT64
   19821     number_attr: "Nfeature_list_sparse"
   19822   }
   19823   output_arg {
   19824     name: "feature_list_sparse_values"
   19825     type_list_attr: "feature_list_sparse_types"
   19826   }
   19827   output_arg {
   19828     name: "feature_list_sparse_shapes"
   19829     type: DT_INT64
   19830     number_attr: "Nfeature_list_sparse"
   19831   }
   19832   output_arg {
   19833     name: "feature_list_dense_values"
   19834     type_list_attr: "feature_list_dense_types"
   19835   }
   19836   attr {
   19837     name: "Ncontext_sparse"
   19838     type: "int"
   19839     default_value {
   19840       i: 0
   19841     }
   19842     has_minimum: true
   19843   }
   19844   attr {
   19845     name: "Ncontext_dense"
   19846     type: "int"
   19847     default_value {
   19848       i: 0
   19849     }
   19850     has_minimum: true
   19851   }
   19852   attr {
   19853     name: "Nfeature_list_sparse"
   19854     type: "int"
   19855     default_value {
   19856       i: 0
   19857     }
   19858     has_minimum: true
   19859   }
   19860   attr {
   19861     name: "Nfeature_list_dense"
   19862     type: "int"
   19863     default_value {
   19864       i: 0
   19865     }
   19866     has_minimum: true
   19867   }
   19868   attr {
   19869     name: "context_sparse_types"
   19870     type: "list(type)"
   19871     default_value {
   19872       list {
   19873       }
   19874     }
   19875     has_minimum: true
   19876     allowed_values {
   19877       list {
   19878         type: DT_FLOAT
   19879         type: DT_INT64
   19880         type: DT_STRING
   19881       }
   19882     }
   19883   }
   19884   attr {
   19885     name: "Tcontext_dense"
   19886     type: "list(type)"
   19887     default_value {
   19888       list {
   19889       }
   19890     }
   19891     has_minimum: true
   19892     allowed_values {
   19893       list {
   19894         type: DT_FLOAT
   19895         type: DT_INT64
   19896         type: DT_STRING
   19897       }
   19898     }
   19899   }
   19900   attr {
   19901     name: "feature_list_dense_types"
   19902     type: "list(type)"
   19903     default_value {
   19904       list {
   19905       }
   19906     }
   19907     has_minimum: true
   19908     allowed_values {
   19909       list {
   19910         type: DT_FLOAT
   19911         type: DT_INT64
   19912         type: DT_STRING
   19913       }
   19914     }
   19915   }
   19916   attr {
   19917     name: "context_dense_shapes"
   19918     type: "list(shape)"
   19919     default_value {
   19920       list {
   19921       }
   19922     }
   19923     has_minimum: true
   19924   }
   19925   attr {
   19926     name: "feature_list_sparse_types"
   19927     type: "list(type)"
   19928     default_value {
   19929       list {
   19930       }
   19931     }
   19932     has_minimum: true
   19933     allowed_values {
   19934       list {
   19935         type: DT_FLOAT
   19936         type: DT_INT64
   19937         type: DT_STRING
   19938       }
   19939     }
   19940   }
   19941   attr {
   19942     name: "feature_list_dense_shapes"
   19943     type: "list(shape)"
   19944     default_value {
   19945       list {
   19946       }
   19947     }
   19948     has_minimum: true
   19949   }
   19950 }
   19951 op {
   19952   name: "ParseTensor"
   19953   input_arg {
   19954     name: "serialized"
   19955     type: DT_STRING
   19956   }
   19957   output_arg {
   19958     name: "output"
   19959     type_attr: "out_type"
   19960   }
   19961   attr {
   19962     name: "out_type"
   19963     type: "type"
   19964   }
   19965 }
   19966 op {
   19967   name: "Placeholder"
   19968   output_arg {
   19969     name: "output"
   19970     type_attr: "dtype"
   19971   }
   19972   attr {
   19973     name: "dtype"
   19974     type: "type"
   19975   }
   19976   attr {
   19977     name: "shape"
   19978     type: "shape"
   19979   }
   19980 }
   19981 op {
   19982   name: "Placeholder"
   19983   output_arg {
   19984     name: "output"
   19985     type_attr: "dtype"
   19986   }
   19987   attr {
   19988     name: "dtype"
   19989     type: "type"
   19990   }
   19991   attr {
   19992     name: "shape"
   19993     type: "shape"
   19994     default_value {
   19995       shape {
   19996       }
   19997     }
   19998   }
   19999 }
   20000 op {
   20001   name: "PlaceholderV2"
   20002   output_arg {
   20003     name: "output"
   20004     type_attr: "dtype"
   20005   }
   20006   attr {
   20007     name: "dtype"
   20008     type: "type"
   20009   }
   20010   attr {
   20011     name: "shape"
   20012     type: "shape"
   20013   }
   20014 }
   20015 op {
   20016   name: "PlaceholderWithDefault"
   20017   input_arg {
   20018     name: "input"
   20019     type_attr: "dtype"
   20020   }
   20021   output_arg {
   20022     name: "output"
   20023     type_attr: "dtype"
   20024   }
   20025   attr {
   20026     name: "dtype"
   20027     type: "type"
   20028   }
   20029   attr {
   20030     name: "shape"
   20031     type: "shape"
   20032   }
   20033 }
   20034 op {
   20035   name: "Polygamma"
   20036   input_arg {
   20037     name: "a"
   20038     type_attr: "T"
   20039   }
   20040   input_arg {
   20041     name: "x"
   20042     type_attr: "T"
   20043   }
   20044   output_arg {
   20045     name: "z"
   20046     type_attr: "T"
   20047   }
   20048   attr {
   20049     name: "T"
   20050     type: "type"
   20051     allowed_values {
   20052       list {
   20053         type: DT_FLOAT
   20054         type: DT_DOUBLE
   20055       }
   20056     }
   20057   }
   20058 }
   20059 op {
   20060   name: "Pow"
   20061   input_arg {
   20062     name: "x"
   20063     type_attr: "T"
   20064   }
   20065   input_arg {
   20066     name: "y"
   20067     type_attr: "T"
   20068   }
   20069   output_arg {
   20070     name: "z"
   20071     type_attr: "T"
   20072   }
   20073   attr {
   20074     name: "T"
   20075     type: "type"
   20076     allowed_values {
   20077       list {
   20078         type: DT_FLOAT
   20079         type: DT_DOUBLE
   20080         type: DT_INT32
   20081         type: DT_COMPLEX64
   20082         type: DT_INT64
   20083       }
   20084     }
   20085   }
   20086 }
   20087 op {
   20088   name: "Pow"
   20089   input_arg {
   20090     name: "x"
   20091     type_attr: "T"
   20092   }
   20093   input_arg {
   20094     name: "y"
   20095     type_attr: "T"
   20096   }
   20097   output_arg {
   20098     name: "z"
   20099     type_attr: "T"
   20100   }
   20101   attr {
   20102     name: "T"
   20103     type: "type"
   20104     allowed_values {
   20105       list {
   20106         type: DT_HALF
   20107         type: DT_FLOAT
   20108         type: DT_DOUBLE
   20109         type: DT_INT32
   20110         type: DT_COMPLEX64
   20111         type: DT_INT64
   20112       }
   20113     }
   20114   }
   20115 }
   20116 op {
   20117   name: "Pow"
   20118   input_arg {
   20119     name: "x"
   20120     type_attr: "T"
   20121   }
   20122   input_arg {
   20123     name: "y"
   20124     type_attr: "T"
   20125   }
   20126   output_arg {
   20127     name: "z"
   20128     type_attr: "T"
   20129   }
   20130   attr {
   20131     name: "T"
   20132     type: "type"
   20133     allowed_values {
   20134       list {
   20135         type: DT_HALF
   20136         type: DT_FLOAT
   20137         type: DT_DOUBLE
   20138         type: DT_INT32
   20139         type: DT_INT64
   20140         type: DT_COMPLEX64
   20141         type: DT_COMPLEX128
   20142       }
   20143     }
   20144   }
   20145 }
   20146 op {
   20147   name: "PreventGradient"
   20148   input_arg {
   20149     name: "input"
   20150     type_attr: "T"
   20151   }
   20152   output_arg {
   20153     name: "output"
   20154     type_attr: "T"
   20155   }
   20156   attr {
   20157     name: "T"
   20158     type: "type"
   20159   }
   20160 }
   20161 op {
   20162   name: "PreventGradient"
   20163   input_arg {
   20164     name: "input"
   20165     type_attr: "T"
   20166   }
   20167   output_arg {
   20168     name: "output"
   20169     type_attr: "T"
   20170   }
   20171   attr {
   20172     name: "T"
   20173     type: "type"
   20174   }
   20175   attr {
   20176     name: "message"
   20177     type: "string"
   20178     default_value {
   20179       s: ""
   20180     }
   20181   }
   20182 }
   20183 op {
   20184   name: "Print"
   20185   input_arg {
   20186     name: "input"
   20187     type_attr: "T"
   20188   }
   20189   input_arg {
   20190     name: "data"
   20191     type_list_attr: "U"
   20192   }
   20193   output_arg {
   20194     name: "output"
   20195     type_attr: "T"
   20196   }
   20197   attr {
   20198     name: "T"
   20199     type: "type"
   20200   }
   20201   attr {
   20202     name: "U"
   20203     type: "list(type)"
   20204     has_minimum: true
   20205     minimum: 1
   20206   }
   20207   attr {
   20208     name: "message"
   20209     type: "string"
   20210     default_value {
   20211       s: ""
   20212     }
   20213   }
   20214   attr {
   20215     name: "first_n"
   20216     type: "int"
   20217     default_value {
   20218       i: -1
   20219     }
   20220   }
   20221   attr {
   20222     name: "summarize"
   20223     type: "int"
   20224     default_value {
   20225       i: 3
   20226     }
   20227   }
   20228 }
   20229 op {
   20230   name: "Print"
   20231   input_arg {
   20232     name: "input"
   20233     type_attr: "T"
   20234   }
   20235   input_arg {
   20236     name: "data"
   20237     type_list_attr: "U"
   20238   }
   20239   output_arg {
   20240     name: "output"
   20241     type_attr: "T"
   20242   }
   20243   attr {
   20244     name: "T"
   20245     type: "type"
   20246   }
   20247   attr {
   20248     name: "U"
   20249     type: "list(type)"
   20250     has_minimum: true
   20251     minimum: 1
   20252   }
   20253   attr {
   20254     name: "message"
   20255     type: "string"
   20256     default_value {
   20257       s: ""
   20258     }
   20259   }
   20260   attr {
   20261     name: "first_n"
   20262     type: "int"
   20263     default_value {
   20264       i: -1
   20265     }
   20266   }
   20267   attr {
   20268     name: "summarize"
   20269     type: "int"
   20270     default_value {
   20271       i: 3
   20272     }
   20273   }
   20274   is_stateful: true
   20275 }
   20276 op {
   20277   name: "PriorityQueue"
   20278   output_arg {
   20279     name: "handle"
   20280     type: DT_STRING
   20281     is_ref: true
   20282   }
   20283   attr {
   20284     name: "component_types"
   20285     type: "list(type)"
   20286     default_value {
   20287       list {
   20288       }
   20289     }
   20290     has_minimum: true
   20291   }
   20292   attr {
   20293     name: "shapes"
   20294     type: "list(shape)"
   20295     has_minimum: true
   20296   }
   20297   attr {
   20298     name: "capacity"
   20299     type: "int"
   20300     default_value {
   20301       i: -1
   20302     }
   20303   }
   20304   attr {
   20305     name: "container"
   20306     type: "string"
   20307     default_value {
   20308       s: ""
   20309     }
   20310   }
   20311   attr {
   20312     name: "shared_name"
   20313     type: "string"
   20314     default_value {
   20315       s: ""
   20316     }
   20317   }
   20318   is_stateful: true
   20319 }
   20320 op {
   20321   name: "PriorityQueueV2"
   20322   output_arg {
   20323     name: "handle"
   20324     type: DT_RESOURCE
   20325   }
   20326   attr {
   20327     name: "component_types"
   20328     type: "list(type)"
   20329     default_value {
   20330       list {
   20331       }
   20332     }
   20333     has_minimum: true
   20334   }
   20335   attr {
   20336     name: "shapes"
   20337     type: "list(shape)"
   20338     has_minimum: true
   20339   }
   20340   attr {
   20341     name: "capacity"
   20342     type: "int"
   20343     default_value {
   20344       i: -1
   20345     }
   20346   }
   20347   attr {
   20348     name: "container"
   20349     type: "string"
   20350     default_value {
   20351       s: ""
   20352     }
   20353   }
   20354   attr {
   20355     name: "shared_name"
   20356     type: "string"
   20357     default_value {
   20358       s: ""
   20359     }
   20360   }
   20361   is_stateful: true
   20362 }
   20363 op {
   20364   name: "Prod"
   20365   input_arg {
   20366     name: "input"
   20367     type_attr: "T"
   20368   }
   20369   input_arg {
   20370     name: "reduction_indices"
   20371     type: DT_INT32
   20372   }
   20373   output_arg {
   20374     name: "output"
   20375     type_attr: "T"
   20376   }
   20377   attr {
   20378     name: "keep_dims"
   20379     type: "bool"
   20380     default_value {
   20381       b: false
   20382     }
   20383   }
   20384   attr {
   20385     name: "T"
   20386     type: "type"
   20387     allowed_values {
   20388       list {
   20389         type: DT_FLOAT
   20390         type: DT_DOUBLE
   20391         type: DT_INT64
   20392         type: DT_INT32
   20393         type: DT_UINT8
   20394         type: DT_INT16
   20395         type: DT_INT8
   20396         type: DT_COMPLEX64
   20397         type: DT_QINT8
   20398         type: DT_QUINT8
   20399         type: DT_QINT32
   20400       }
   20401     }
   20402   }
   20403 }
   20404 op {
   20405   name: "Prod"
   20406   input_arg {
   20407     name: "input"
   20408     type_attr: "T"
   20409   }
   20410   input_arg {
   20411     name: "reduction_indices"
   20412     type: DT_INT32
   20413   }
   20414   output_arg {
   20415     name: "output"
   20416     type_attr: "T"
   20417   }
   20418   attr {
   20419     name: "keep_dims"
   20420     type: "bool"
   20421     default_value {
   20422       b: false
   20423     }
   20424   }
   20425   attr {
   20426     name: "T"
   20427     type: "type"
   20428     allowed_values {
   20429       list {
   20430         type: DT_FLOAT
   20431         type: DT_DOUBLE
   20432         type: DT_INT64
   20433         type: DT_INT32
   20434         type: DT_UINT8
   20435         type: DT_UINT16
   20436         type: DT_INT16
   20437         type: DT_INT8
   20438         type: DT_COMPLEX64
   20439         type: DT_QINT8
   20440         type: DT_QUINT8
   20441         type: DT_QINT32
   20442       }
   20443     }
   20444   }
   20445 }
   20446 op {
   20447   name: "Prod"
   20448   input_arg {
   20449     name: "input"
   20450     type_attr: "T"
   20451   }
   20452   input_arg {
   20453     name: "reduction_indices"
   20454     type: DT_INT32
   20455   }
   20456   output_arg {
   20457     name: "output"
   20458     type_attr: "T"
   20459   }
   20460   attr {
   20461     name: "keep_dims"
   20462     type: "bool"
   20463     default_value {
   20464       b: false
   20465     }
   20466   }
   20467   attr {
   20468     name: "T"
   20469     type: "type"
   20470     allowed_values {
   20471       list {
   20472         type: DT_FLOAT
   20473         type: DT_DOUBLE
   20474         type: DT_INT64
   20475         type: DT_INT32
   20476         type: DT_UINT8
   20477         type: DT_UINT16
   20478         type: DT_INT16
   20479         type: DT_INT8
   20480         type: DT_COMPLEX64
   20481         type: DT_COMPLEX128
   20482         type: DT_QINT8
   20483         type: DT_QUINT8
   20484         type: DT_QINT32
   20485       }
   20486     }
   20487   }
   20488 }
   20489 op {
   20490   name: "Prod"
   20491   input_arg {
   20492     name: "input"
   20493     type_attr: "T"
   20494   }
   20495   input_arg {
   20496     name: "reduction_indices"
   20497     type: DT_INT32
   20498   }
   20499   output_arg {
   20500     name: "output"
   20501     type_attr: "T"
   20502   }
   20503   attr {
   20504     name: "keep_dims"
   20505     type: "bool"
   20506     default_value {
   20507       b: false
   20508     }
   20509   }
   20510   attr {
   20511     name: "T"
   20512     type: "type"
   20513     allowed_values {
   20514       list {
   20515         type: DT_FLOAT
   20516         type: DT_DOUBLE
   20517         type: DT_INT64
   20518         type: DT_INT32
   20519         type: DT_UINT8
   20520         type: DT_UINT16
   20521         type: DT_INT16
   20522         type: DT_INT8
   20523         type: DT_COMPLEX64
   20524         type: DT_COMPLEX128
   20525         type: DT_QINT8
   20526         type: DT_QUINT8
   20527         type: DT_QINT32
   20528         type: DT_HALF
   20529       }
   20530     }
   20531   }
   20532 }
   20533 op {
   20534   name: "Prod"
   20535   input_arg {
   20536     name: "input"
   20537     type_attr: "T"
   20538   }
   20539   input_arg {
   20540     name: "reduction_indices"
   20541     type_attr: "Tidx"
   20542   }
   20543   output_arg {
   20544     name: "output"
   20545     type_attr: "T"
   20546   }
   20547   attr {
   20548     name: "keep_dims"
   20549     type: "bool"
   20550     default_value {
   20551       b: false
   20552     }
   20553   }
   20554   attr {
   20555     name: "T"
   20556     type: "type"
   20557     allowed_values {
   20558       list {
   20559         type: DT_FLOAT
   20560         type: DT_DOUBLE
   20561         type: DT_INT64
   20562         type: DT_INT32
   20563         type: DT_UINT8
   20564         type: DT_UINT16
   20565         type: DT_INT16
   20566         type: DT_INT8
   20567         type: DT_COMPLEX64
   20568         type: DT_COMPLEX128
   20569         type: DT_QINT8
   20570         type: DT_QUINT8
   20571         type: DT_QINT32
   20572         type: DT_HALF
   20573       }
   20574     }
   20575   }
   20576   attr {
   20577     name: "Tidx"
   20578     type: "type"
   20579     default_value {
   20580       type: DT_INT32
   20581     }
   20582     allowed_values {
   20583       list {
   20584         type: DT_INT32
   20585         type: DT_INT64
   20586       }
   20587     }
   20588   }
   20589 }
   20590 op {
   20591   name: "PyFunc"
   20592   input_arg {
   20593     name: "input"
   20594     type_list_attr: "Tin"
   20595   }
   20596   output_arg {
   20597     name: "output"
   20598     type_list_attr: "Tout"
   20599   }
   20600   attr {
   20601     name: "token"
   20602     type: "string"
   20603   }
   20604   attr {
   20605     name: "Tin"
   20606     type: "list(type)"
   20607     has_minimum: true
   20608     minimum: 1
   20609   }
   20610   attr {
   20611     name: "Tout"
   20612     type: "list(type)"
   20613     has_minimum: true
   20614     minimum: 1
   20615   }
   20616 }
   20617 op {
   20618   name: "PyFunc"
   20619   input_arg {
   20620     name: "input"
   20621     type_list_attr: "Tin"
   20622   }
   20623   output_arg {
   20624     name: "output"
   20625     type_list_attr: "Tout"
   20626   }
   20627   attr {
   20628     name: "token"
   20629     type: "string"
   20630   }
   20631   attr {
   20632     name: "Tin"
   20633     type: "list(type)"
   20634     has_minimum: true
   20635   }
   20636   attr {
   20637     name: "Tout"
   20638     type: "list(type)"
   20639     has_minimum: true
   20640     minimum: 1
   20641   }
   20642 }
   20643 op {
   20644   name: "PyFunc"
   20645   input_arg {
   20646     name: "input"
   20647     type_list_attr: "Tin"
   20648   }
   20649   output_arg {
   20650     name: "output"
   20651     type_list_attr: "Tout"
   20652   }
   20653   attr {
   20654     name: "token"
   20655     type: "string"
   20656   }
   20657   attr {
   20658     name: "Tin"
   20659     type: "list(type)"
   20660     has_minimum: true
   20661   }
   20662   attr {
   20663     name: "Tout"
   20664     type: "list(type)"
   20665     has_minimum: true
   20666     minimum: 1
   20667   }
   20668   is_stateful: true
   20669 }
   20670 op {
   20671   name: "PyFunc"
   20672   input_arg {
   20673     name: "input"
   20674     type_list_attr: "Tin"
   20675   }
   20676   output_arg {
   20677     name: "output"
   20678     type_list_attr: "Tout"
   20679   }
   20680   attr {
   20681     name: "token"
   20682     type: "string"
   20683   }
   20684   attr {
   20685     name: "Tin"
   20686     type: "list(type)"
   20687     has_minimum: true
   20688   }
   20689   attr {
   20690     name: "Tout"
   20691     type: "list(type)"
   20692     has_minimum: true
   20693   }
   20694   is_stateful: true
   20695 }
   20696 op {
   20697   name: "PyFuncStateless"
   20698   input_arg {
   20699     name: "input"
   20700     type_list_attr: "Tin"
   20701   }
   20702   output_arg {
   20703     name: "output"
   20704     type_list_attr: "Tout"
   20705   }
   20706   attr {
   20707     name: "token"
   20708     type: "string"
   20709   }
   20710   attr {
   20711     name: "Tin"
   20712     type: "list(type)"
   20713     has_minimum: true
   20714   }
   20715   attr {
   20716     name: "Tout"
   20717     type: "list(type)"
   20718     has_minimum: true
   20719     minimum: 1
   20720   }
   20721 }
   20722 op {
   20723   name: "PyFuncStateless"
   20724   input_arg {
   20725     name: "input"
   20726     type_list_attr: "Tin"
   20727   }
   20728   output_arg {
   20729     name: "output"
   20730     type_list_attr: "Tout"
   20731   }
   20732   attr {
   20733     name: "token"
   20734     type: "string"
   20735   }
   20736   attr {
   20737     name: "Tin"
   20738     type: "list(type)"
   20739     has_minimum: true
   20740   }
   20741   attr {
   20742     name: "Tout"
   20743     type: "list(type)"
   20744     has_minimum: true
   20745   }
   20746 }
   20747 op {
   20748   name: "Qr"
   20749   input_arg {
   20750     name: "input"
   20751     type_attr: "T"
   20752   }
   20753   output_arg {
   20754     name: "q"
   20755     type_attr: "T"
   20756   }
   20757   output_arg {
   20758     name: "r"
   20759     type_attr: "T"
   20760   }
   20761   attr {
   20762     name: "full_matrices"
   20763     type: "bool"
   20764     default_value {
   20765       b: false
   20766     }
   20767   }
   20768   attr {
   20769     name: "T"
   20770     type: "type"
   20771     allowed_values {
   20772       list {
   20773         type: DT_DOUBLE
   20774         type: DT_FLOAT
   20775         type: DT_COMPLEX64
   20776         type: DT_COMPLEX128
   20777       }
   20778     }
   20779   }
   20780 }
   20781 op {
   20782   name: "QuantizeAndDequantize"
   20783   input_arg {
   20784     name: "input"
   20785     type_attr: "T"
   20786   }
   20787   output_arg {
   20788     name: "output"
   20789     type_attr: "T"
   20790   }
   20791   attr {
   20792     name: "signed_input"
   20793     type: "bool"
   20794     default_value {
   20795       b: true
   20796     }
   20797   }
   20798   attr {
   20799     name: "num_bits"
   20800     type: "int"
   20801     default_value {
   20802       i: 8
   20803     }
   20804   }
   20805   attr {
   20806     name: "range_given"
   20807     type: "bool"
   20808     default_value {
   20809       b: false
   20810     }
   20811   }
   20812   attr {
   20813     name: "input_min"
   20814     type: "float"
   20815     default_value {
   20816       f: 0
   20817     }
   20818   }
   20819   attr {
   20820     name: "input_max"
   20821     type: "float"
   20822     default_value {
   20823       f: 0
   20824     }
   20825   }
   20826   attr {
   20827     name: "T"
   20828     type: "type"
   20829     allowed_values {
   20830       list {
   20831         type: DT_FLOAT
   20832         type: DT_DOUBLE
   20833       }
   20834     }
   20835   }
   20836 }
   20837 op {
   20838   name: "QuantizeDownAndShrinkRange"
   20839   input_arg {
   20840     name: "input"
   20841     type_attr: "Tinput"
   20842   }
   20843   input_arg {
   20844     name: "input_min"
   20845     type: DT_FLOAT
   20846   }
   20847   input_arg {
   20848     name: "input_max"
   20849     type: DT_FLOAT
   20850   }
   20851   output_arg {
   20852     name: "output"
   20853     type_attr: "out_type"
   20854   }
   20855   output_arg {
   20856     name: "output_min"
   20857     type: DT_FLOAT
   20858   }
   20859   output_arg {
   20860     name: "output_max"
   20861     type: DT_FLOAT
   20862   }
   20863   attr {
   20864     name: "Tinput"
   20865     type: "type"
   20866     allowed_values {
   20867       list {
   20868         type: DT_QINT8
   20869         type: DT_QUINT8
   20870         type: DT_QINT16
   20871         type: DT_QUINT16
   20872         type: DT_QINT32
   20873       }
   20874     }
   20875   }
   20876   attr {
   20877     name: "out_type"
   20878     type: "type"
   20879     allowed_values {
   20880       list {
   20881         type: DT_QINT8
   20882         type: DT_QUINT8
   20883         type: DT_QINT16
   20884         type: DT_QUINT16
   20885         type: DT_QINT32
   20886       }
   20887     }
   20888   }
   20889 }
   20890 op {
   20891   name: "QuantizeV2"
   20892   input_arg {
   20893     name: "input"
   20894     type: DT_FLOAT
   20895   }
   20896   input_arg {
   20897     name: "min_range"
   20898     type: DT_FLOAT
   20899   }
   20900   input_arg {
   20901     name: "max_range"
   20902     type: DT_FLOAT
   20903   }
   20904   output_arg {
   20905     name: "output"
   20906     type_attr: "T"
   20907   }
   20908   output_arg {
   20909     name: "output_min"
   20910     type: DT_FLOAT
   20911   }
   20912   output_arg {
   20913     name: "output_max"
   20914     type: DT_FLOAT
   20915   }
   20916   attr {
   20917     name: "T"
   20918     type: "type"
   20919     allowed_values {
   20920       list {
   20921         type: DT_QINT8
   20922         type: DT_QUINT8
   20923         type: DT_QINT16
   20924         type: DT_QUINT16
   20925         type: DT_QINT32
   20926       }
   20927     }
   20928   }
   20929   attr {
   20930     name: "mode"
   20931     type: "string"
   20932     default_value {
   20933       s: "MIN_COMBINED"
   20934     }
   20935     allowed_values {
   20936       list {
   20937         s: "MIN_COMBINED"
   20938         s: "MIN_FIRST"
   20939       }
   20940     }
   20941   }
   20942 }
   20943 op {
   20944   name: "QuantizedAvgPool"
   20945   input_arg {
   20946     name: "input"
   20947     type_attr: "T"
   20948   }
   20949   input_arg {
   20950     name: "min_input"
   20951     type: DT_FLOAT
   20952   }
   20953   input_arg {
   20954     name: "max_input"
   20955     type: DT_FLOAT
   20956   }
   20957   output_arg {
   20958     name: "output"
   20959     type_attr: "T"
   20960   }
   20961   output_arg {
   20962     name: "min_output"
   20963     type: DT_FLOAT
   20964   }
   20965   output_arg {
   20966     name: "max_output"
   20967     type: DT_FLOAT
   20968   }
   20969   attr {
   20970     name: "T"
   20971     type: "type"
   20972     allowed_values {
   20973       list {
   20974         type: DT_QINT8
   20975         type: DT_QUINT8
   20976         type: DT_QINT16
   20977         type: DT_QUINT16
   20978         type: DT_QINT32
   20979       }
   20980     }
   20981   }
   20982   attr {
   20983     name: "ksize"
   20984     type: "list(int)"
   20985   }
   20986   attr {
   20987     name: "strides"
   20988     type: "list(int)"
   20989   }
   20990   attr {
   20991     name: "padding"
   20992     type: "string"
   20993     allowed_values {
   20994       list {
   20995         s: "SAME"
   20996         s: "VALID"
   20997       }
   20998     }
   20999   }
   21000 }
   21001 op {
   21002   name: "QuantizedBatchNormWithGlobalNormalization"
   21003   input_arg {
   21004     name: "t"
   21005     type_attr: "Tinput"
   21006   }
   21007   input_arg {
   21008     name: "t_min"
   21009     type: DT_FLOAT
   21010   }
   21011   input_arg {
   21012     name: "t_max"
   21013     type: DT_FLOAT
   21014   }
   21015   input_arg {
   21016     name: "m"
   21017     type_attr: "Tinput"
   21018   }
   21019   input_arg {
   21020     name: "m_min"
   21021     type: DT_FLOAT
   21022   }
   21023   input_arg {
   21024     name: "m_max"
   21025     type: DT_FLOAT
   21026   }
   21027   input_arg {
   21028     name: "v"
   21029     type_attr: "Tinput"
   21030   }
   21031   input_arg {
   21032     name: "v_min"
   21033     type: DT_FLOAT
   21034   }
   21035   input_arg {
   21036     name: "v_max"
   21037     type: DT_FLOAT
   21038   }
   21039   input_arg {
   21040     name: "beta"
   21041     type_attr: "Tinput"
   21042   }
   21043   input_arg {
   21044     name: "beta_min"
   21045     type: DT_FLOAT
   21046   }
   21047   input_arg {
   21048     name: "beta_max"
   21049     type: DT_FLOAT
   21050   }
   21051   input_arg {
   21052     name: "gamma"
   21053     type_attr: "Tinput"
   21054   }
   21055   input_arg {
   21056     name: "gamma_min"
   21057     type: DT_FLOAT
   21058   }
   21059   input_arg {
   21060     name: "gamma_max"
   21061     type: DT_FLOAT
   21062   }
   21063   output_arg {
   21064     name: "result"
   21065     type_attr: "out_type"
   21066   }
   21067   output_arg {
   21068     name: "result_min"
   21069     type: DT_FLOAT
   21070   }
   21071   output_arg {
   21072     name: "result_max"
   21073     type: DT_FLOAT
   21074   }
   21075   attr {
   21076     name: "Tinput"
   21077     type: "type"
   21078     allowed_values {
   21079       list {
   21080         type: DT_QINT8
   21081         type: DT_QUINT8
   21082         type: DT_QINT16
   21083         type: DT_QUINT16
   21084         type: DT_QINT32
   21085       }
   21086     }
   21087   }
   21088   attr {
   21089     name: "out_type"
   21090     type: "type"
   21091     allowed_values {
   21092       list {
   21093         type: DT_QINT8
   21094         type: DT_QUINT8
   21095         type: DT_QINT16
   21096         type: DT_QUINT16
   21097         type: DT_QINT32
   21098       }
   21099     }
   21100   }
   21101   attr {
   21102     name: "variance_epsilon"
   21103     type: "float"
   21104   }
   21105   attr {
   21106     name: "scale_after_normalization"
   21107     type: "bool"
   21108   }
   21109 }
   21110 op {
   21111   name: "QuantizedBiasAdd"
   21112   input_arg {
   21113     name: "input"
   21114     type_attr: "T1"
   21115   }
   21116   input_arg {
   21117     name: "bias"
   21118     type_attr: "T2"
   21119   }
   21120   input_arg {
   21121     name: "min_input"
   21122     type: DT_FLOAT
   21123   }
   21124   input_arg {
   21125     name: "max_input"
   21126     type: DT_FLOAT
   21127   }
   21128   input_arg {
   21129     name: "min_bias"
   21130     type: DT_FLOAT
   21131   }
   21132   input_arg {
   21133     name: "max_bias"
   21134     type: DT_FLOAT
   21135   }
   21136   output_arg {
   21137     name: "output"
   21138     type_attr: "out_type"
   21139   }
   21140   output_arg {
   21141     name: "min_out"
   21142     type: DT_FLOAT
   21143   }
   21144   output_arg {
   21145     name: "max_out"
   21146     type: DT_FLOAT
   21147   }
   21148   attr {
   21149     name: "T1"
   21150     type: "type"
   21151     allowed_values {
   21152       list {
   21153         type: DT_QINT8
   21154         type: DT_QUINT8
   21155         type: DT_QINT16
   21156         type: DT_QUINT16
   21157         type: DT_QINT32
   21158       }
   21159     }
   21160   }
   21161   attr {
   21162     name: "T2"
   21163     type: "type"
   21164     allowed_values {
   21165       list {
   21166         type: DT_QINT8
   21167         type: DT_QUINT8
   21168         type: DT_QINT16
   21169         type: DT_QUINT16
   21170         type: DT_QINT32
   21171       }
   21172     }
   21173   }
   21174   attr {
   21175     name: "out_type"
   21176     type: "type"
   21177     allowed_values {
   21178       list {
   21179         type: DT_QINT8
   21180         type: DT_QUINT8
   21181         type: DT_QINT16
   21182         type: DT_QUINT16
   21183         type: DT_QINT32
   21184       }
   21185     }
   21186   }
   21187 }
   21188 op {
   21189   name: "QuantizedConcat"
   21190   input_arg {
   21191     name: "concat_dim"
   21192     type: DT_INT32
   21193   }
   21194   input_arg {
   21195     name: "values"
   21196     type_attr: "T"
   21197     number_attr: "N"
   21198   }
   21199   input_arg {
   21200     name: "input_mins"
   21201     type: DT_FLOAT
   21202     number_attr: "N"
   21203   }
   21204   input_arg {
   21205     name: "input_maxes"
   21206     type: DT_FLOAT
   21207     number_attr: "N"
   21208   }
   21209   output_arg {
   21210     name: "output"
   21211     type_attr: "T"
   21212   }
   21213   output_arg {
   21214     name: "output_min"
   21215     type: DT_FLOAT
   21216   }
   21217   output_arg {
   21218     name: "output_max"
   21219     type: DT_FLOAT
   21220   }
   21221   attr {
   21222     name: "N"
   21223     type: "int"
   21224     has_minimum: true
   21225     minimum: 2
   21226   }
   21227   attr {
   21228     name: "T"
   21229     type: "type"
   21230   }
   21231 }
   21232 op {
   21233   name: "QuantizedConv2D"
   21234   input_arg {
   21235     name: "input"
   21236     type_attr: "Tinput"
   21237   }
   21238   input_arg {
   21239     name: "filter"
   21240     type_attr: "Tfilter"
   21241   }
   21242   input_arg {
   21243     name: "min_input"
   21244     type: DT_FLOAT
   21245   }
   21246   input_arg {
   21247     name: "max_input"
   21248     type: DT_FLOAT
   21249   }
   21250   input_arg {
   21251     name: "min_filter"
   21252     type: DT_FLOAT
   21253   }
   21254   input_arg {
   21255     name: "max_filter"
   21256     type: DT_FLOAT
   21257   }
   21258   output_arg {
   21259     name: "output"
   21260     type_attr: "out_type"
   21261   }
   21262   output_arg {
   21263     name: "min_output"
   21264     type: DT_FLOAT
   21265   }
   21266   output_arg {
   21267     name: "max_output"
   21268     type: DT_FLOAT
   21269   }
   21270   attr {
   21271     name: "Tinput"
   21272     type: "type"
   21273     allowed_values {
   21274       list {
   21275         type: DT_QINT8
   21276         type: DT_QUINT8
   21277         type: DT_QINT16
   21278         type: DT_QUINT16
   21279         type: DT_QINT32
   21280       }
   21281     }
   21282   }
   21283   attr {
   21284     name: "Tfilter"
   21285     type: "type"
   21286     allowed_values {
   21287       list {
   21288         type: DT_QINT8
   21289         type: DT_QUINT8
   21290         type: DT_QINT16
   21291         type: DT_QUINT16
   21292         type: DT_QINT32
   21293       }
   21294     }
   21295   }
   21296   attr {
   21297     name: "out_type"
   21298     type: "type"
   21299     default_value {
   21300       type: DT_QINT32
   21301     }
   21302     allowed_values {
   21303       list {
   21304         type: DT_QINT8
   21305         type: DT_QUINT8
   21306         type: DT_QINT16
   21307         type: DT_QUINT16
   21308         type: DT_QINT32
   21309       }
   21310     }
   21311   }
   21312   attr {
   21313     name: "strides"
   21314     type: "list(int)"
   21315   }
   21316   attr {
   21317     name: "padding"
   21318     type: "string"
   21319     allowed_values {
   21320       list {
   21321         s: "SAME"
   21322         s: "VALID"
   21323       }
   21324     }
   21325   }
   21326 }
   21327 op {
   21328   name: "QuantizedInstanceNorm"
   21329   input_arg {
   21330     name: "x"
   21331     type_attr: "T"
   21332   }
   21333   input_arg {
   21334     name: "x_min"
   21335     type: DT_FLOAT
   21336   }
   21337   input_arg {
   21338     name: "x_max"
   21339     type: DT_FLOAT
   21340   }
   21341   output_arg {
   21342     name: "y"
   21343     type_attr: "T"
   21344   }
   21345   output_arg {
   21346     name: "y_min"
   21347     type: DT_FLOAT
   21348   }
   21349   output_arg {
   21350     name: "y_max"
   21351     type: DT_FLOAT
   21352   }
   21353   attr {
   21354     name: "T"
   21355     type: "type"
   21356     allowed_values {
   21357       list {
   21358         type: DT_QINT8
   21359         type: DT_QUINT8
   21360         type: DT_QINT16
   21361         type: DT_QUINT16
   21362         type: DT_QINT32
   21363       }
   21364     }
   21365   }
   21366   attr {
   21367     name: "output_range_given"
   21368     type: "bool"
   21369     default_value {
   21370       b: false
   21371     }
   21372   }
   21373   attr {
   21374     name: "given_y_min"
   21375     type: "float"
   21376     default_value {
   21377       f: 0
   21378     }
   21379   }
   21380   attr {
   21381     name: "given_y_max"
   21382     type: "float"
   21383     default_value {
   21384       f: 0
   21385     }
   21386   }
   21387   attr {
   21388     name: "variance_epsilon"
   21389     type: "float"
   21390     default_value {
   21391       f: 1e-05
   21392     }
   21393   }
   21394   attr {
   21395     name: "min_separation"
   21396     type: "float"
   21397     default_value {
   21398       f: 0.001
   21399     }
   21400   }
   21401 }
   21402 op {
   21403   name: "QuantizedMatMul"
   21404   input_arg {
   21405     name: "a"
   21406     type_attr: "T1"
   21407   }
   21408   input_arg {
   21409     name: "b"
   21410     type_attr: "T2"
   21411   }
   21412   input_arg {
   21413     name: "min_a"
   21414     type: DT_FLOAT
   21415   }
   21416   input_arg {
   21417     name: "max_a"
   21418     type: DT_FLOAT
   21419   }
   21420   input_arg {
   21421     name: "min_b"
   21422     type: DT_FLOAT
   21423   }
   21424   input_arg {
   21425     name: "max_b"
   21426     type: DT_FLOAT
   21427   }
   21428   output_arg {
   21429     name: "out"
   21430     type_attr: "Toutput"
   21431   }
   21432   output_arg {
   21433     name: "min_out"
   21434     type: DT_FLOAT
   21435   }
   21436   output_arg {
   21437     name: "max_out"
   21438     type: DT_FLOAT
   21439   }
   21440   attr {
   21441     name: "T1"
   21442     type: "type"
   21443     allowed_values {
   21444       list {
   21445         type: DT_QINT8
   21446         type: DT_QUINT8
   21447         type: DT_QINT16
   21448         type: DT_QUINT16
   21449         type: DT_QINT32
   21450       }
   21451     }
   21452   }
   21453   attr {
   21454     name: "T2"
   21455     type: "type"
   21456     allowed_values {
   21457       list {
   21458         type: DT_QINT8
   21459         type: DT_QUINT8
   21460         type: DT_QINT16
   21461         type: DT_QUINT16
   21462         type: DT_QINT32
   21463       }
   21464     }
   21465   }
   21466   attr {
   21467     name: "Toutput"
   21468     type: "type"
   21469     default_value {
   21470       type: DT_QINT32
   21471     }
   21472     allowed_values {
   21473       list {
   21474         type: DT_QINT8
   21475         type: DT_QUINT8
   21476         type: DT_QINT16
   21477         type: DT_QUINT16
   21478         type: DT_QINT32
   21479       }
   21480     }
   21481   }
   21482   attr {
   21483     name: "transpose_a"
   21484     type: "bool"
   21485     default_value {
   21486       b: false
   21487     }
   21488   }
   21489   attr {
   21490     name: "transpose_b"
   21491     type: "bool"
   21492     default_value {
   21493       b: false
   21494     }
   21495   }
   21496 }
   21497 op {
   21498   name: "QuantizedMatMul"
   21499   input_arg {
   21500     name: "a"
   21501     type_attr: "T1"
   21502   }
   21503   input_arg {
   21504     name: "b"
   21505     type_attr: "T2"
   21506   }
   21507   input_arg {
   21508     name: "min_a"
   21509     type: DT_FLOAT
   21510   }
   21511   input_arg {
   21512     name: "max_a"
   21513     type: DT_FLOAT
   21514   }
   21515   input_arg {
   21516     name: "min_b"
   21517     type: DT_FLOAT
   21518   }
   21519   input_arg {
   21520     name: "max_b"
   21521     type: DT_FLOAT
   21522   }
   21523   output_arg {
   21524     name: "out"
   21525     type_attr: "Toutput"
   21526   }
   21527   output_arg {
   21528     name: "min_out"
   21529     type: DT_FLOAT
   21530   }
   21531   output_arg {
   21532     name: "max_out"
   21533     type: DT_FLOAT
   21534   }
   21535   attr {
   21536     name: "T1"
   21537     type: "type"
   21538     allowed_values {
   21539       list {
   21540         type: DT_QINT8
   21541         type: DT_QUINT8
   21542         type: DT_QINT16
   21543         type: DT_QUINT16
   21544         type: DT_QINT32
   21545       }
   21546     }
   21547   }
   21548   attr {
   21549     name: "T2"
   21550     type: "type"
   21551     allowed_values {
   21552       list {
   21553         type: DT_QINT8
   21554         type: DT_QUINT8
   21555         type: DT_QINT16
   21556         type: DT_QUINT16
   21557         type: DT_QINT32
   21558       }
   21559     }
   21560   }
   21561   attr {
   21562     name: "Toutput"
   21563     type: "type"
   21564     default_value {
   21565       type: DT_QINT32
   21566     }
   21567     allowed_values {
   21568       list {
   21569         type: DT_QINT8
   21570         type: DT_QUINT8
   21571         type: DT_QINT16
   21572         type: DT_QUINT16
   21573         type: DT_QINT32
   21574       }
   21575     }
   21576   }
   21577   attr {
   21578     name: "transpose_a"
   21579     type: "bool"
   21580     default_value {
   21581       b: false
   21582     }
   21583   }
   21584   attr {
   21585     name: "transpose_b"
   21586     type: "bool"
   21587     default_value {
   21588       b: false
   21589     }
   21590   }
   21591   attr {
   21592     name: "Tactivation"
   21593     type: "type"
   21594     default_value {
   21595       type: DT_QUINT8
   21596     }
   21597     allowed_values {
   21598       list {
   21599         type: DT_QINT8
   21600         type: DT_QUINT8
   21601         type: DT_QINT16
   21602         type: DT_QUINT16
   21603         type: DT_QINT32
   21604       }
   21605     }
   21606   }
   21607 }
   21608 op {
   21609   name: "QuantizedMaxPool"
   21610   input_arg {
   21611     name: "input"
   21612     type_attr: "T"
   21613   }
   21614   input_arg {
   21615     name: "min_input"
   21616     type: DT_FLOAT
   21617   }
   21618   input_arg {
   21619     name: "max_input"
   21620     type: DT_FLOAT
   21621   }
   21622   output_arg {
   21623     name: "output"
   21624     type_attr: "T"
   21625   }
   21626   output_arg {
   21627     name: "min_output"
   21628     type: DT_FLOAT
   21629   }
   21630   output_arg {
   21631     name: "max_output"
   21632     type: DT_FLOAT
   21633   }
   21634   attr {
   21635     name: "T"
   21636     type: "type"
   21637     allowed_values {
   21638       list {
   21639         type: DT_QINT8
   21640         type: DT_QUINT8
   21641         type: DT_QINT16
   21642         type: DT_QUINT16
   21643         type: DT_QINT32
   21644       }
   21645     }
   21646   }
   21647   attr {
   21648     name: "ksize"
   21649     type: "list(int)"
   21650   }
   21651   attr {
   21652     name: "strides"
   21653     type: "list(int)"
   21654   }
   21655   attr {
   21656     name: "padding"
   21657     type: "string"
   21658     allowed_values {
   21659       list {
   21660         s: "SAME"
   21661         s: "VALID"
   21662       }
   21663     }
   21664   }
   21665 }
   21666 op {
   21667   name: "QuantizedMul"
   21668   input_arg {
   21669     name: "x"
   21670     type_attr: "T1"
   21671   }
   21672   input_arg {
   21673     name: "y"
   21674     type_attr: "T2"
   21675   }
   21676   input_arg {
   21677     name: "min_x"
   21678     type: DT_FLOAT
   21679   }
   21680   input_arg {
   21681     name: "max_x"
   21682     type: DT_FLOAT
   21683   }
   21684   input_arg {
   21685     name: "min_y"
   21686     type: DT_FLOAT
   21687   }
   21688   input_arg {
   21689     name: "max_y"
   21690     type: DT_FLOAT
   21691   }
   21692   output_arg {
   21693     name: "z"
   21694     type_attr: "Toutput"
   21695   }
   21696   output_arg {
   21697     name: "min_z"
   21698     type: DT_FLOAT
   21699   }
   21700   output_arg {
   21701     name: "max_z"
   21702     type: DT_FLOAT
   21703   }
   21704   attr {
   21705     name: "T1"
   21706     type: "type"
   21707     allowed_values {
   21708       list {
   21709         type: DT_QINT8
   21710         type: DT_QUINT8
   21711         type: DT_QINT16
   21712         type: DT_QUINT16
   21713         type: DT_QINT32
   21714       }
   21715     }
   21716   }
   21717   attr {
   21718     name: "T2"
   21719     type: "type"
   21720     allowed_values {
   21721       list {
   21722         type: DT_QINT8
   21723         type: DT_QUINT8
   21724         type: DT_QINT16
   21725         type: DT_QUINT16
   21726         type: DT_QINT32
   21727       }
   21728     }
   21729   }
   21730   attr {
   21731     name: "Toutput"
   21732     type: "type"
   21733     default_value {
   21734       type: DT_QINT32
   21735     }
   21736     allowed_values {
   21737       list {
   21738         type: DT_QINT8
   21739         type: DT_QUINT8
   21740         type: DT_QINT16
   21741         type: DT_QUINT16
   21742         type: DT_QINT32
   21743       }
   21744     }
   21745   }
   21746   is_commutative: true
   21747 }
   21748 op {
   21749   name: "QuantizedRelu"
   21750   input_arg {
   21751     name: "features"
   21752     type_attr: "Tinput"
   21753   }
   21754   input_arg {
   21755     name: "min_features"
   21756     type: DT_FLOAT
   21757   }
   21758   input_arg {
   21759     name: "max_features"
   21760     type: DT_FLOAT
   21761   }
   21762   output_arg {
   21763     name: "activations"
   21764     type_attr: "out_type"
   21765   }
   21766   output_arg {
   21767     name: "min_activations"
   21768     type: DT_FLOAT
   21769   }
   21770   output_arg {
   21771     name: "max_activations"
   21772     type: DT_FLOAT
   21773   }
   21774   attr {
   21775     name: "Tinput"
   21776     type: "type"
   21777     allowed_values {
   21778       list {
   21779         type: DT_QINT8
   21780         type: DT_QUINT8
   21781         type: DT_QINT16
   21782         type: DT_QUINT16
   21783         type: DT_QINT32
   21784       }
   21785     }
   21786   }
   21787   attr {
   21788     name: "out_type"
   21789     type: "type"
   21790     default_value {
   21791       type: DT_QUINT8
   21792     }
   21793     allowed_values {
   21794       list {
   21795         type: DT_QINT8
   21796         type: DT_QUINT8
   21797         type: DT_QINT16
   21798         type: DT_QUINT16
   21799         type: DT_QINT32
   21800       }
   21801     }
   21802   }
   21803 }
   21804 op {
   21805   name: "QuantizedRelu6"
   21806   input_arg {
   21807     name: "features"
   21808     type_attr: "Tinput"
   21809   }
   21810   input_arg {
   21811     name: "min_features"
   21812     type: DT_FLOAT
   21813   }
   21814   input_arg {
   21815     name: "max_features"
   21816     type: DT_FLOAT
   21817   }
   21818   output_arg {
   21819     name: "activations"
   21820     type_attr: "out_type"
   21821   }
   21822   output_arg {
   21823     name: "min_activations"
   21824     type: DT_FLOAT
   21825   }
   21826   output_arg {
   21827     name: "max_activations"
   21828     type: DT_FLOAT
   21829   }
   21830   attr {
   21831     name: "Tinput"
   21832     type: "type"
   21833     allowed_values {
   21834       list {
   21835         type: DT_QINT8
   21836         type: DT_QUINT8
   21837         type: DT_QINT16
   21838         type: DT_QUINT16
   21839         type: DT_QINT32
   21840       }
   21841     }
   21842   }
   21843   attr {
   21844     name: "out_type"
   21845     type: "type"
   21846     default_value {
   21847       type: DT_QUINT8
   21848     }
   21849     allowed_values {
   21850       list {
   21851         type: DT_QINT8
   21852         type: DT_QUINT8
   21853         type: DT_QINT16
   21854         type: DT_QUINT16
   21855         type: DT_QINT32
   21856       }
   21857     }
   21858   }
   21859 }
   21860 op {
   21861   name: "QuantizedReluX"
   21862   input_arg {
   21863     name: "features"
   21864     type_attr: "Tinput"
   21865   }
   21866   input_arg {
   21867     name: "max_value"
   21868     type: DT_FLOAT
   21869   }
   21870   input_arg {
   21871     name: "min_features"
   21872     type: DT_FLOAT
   21873   }
   21874   input_arg {
   21875     name: "max_features"
   21876     type: DT_FLOAT
   21877   }
   21878   output_arg {
   21879     name: "activations"
   21880     type_attr: "out_type"
   21881   }
   21882   output_arg {
   21883     name: "min_activations"
   21884     type: DT_FLOAT
   21885   }
   21886   output_arg {
   21887     name: "max_activations"
   21888     type: DT_FLOAT
   21889   }
   21890   attr {
   21891     name: "Tinput"
   21892     type: "type"
   21893     allowed_values {
   21894       list {
   21895         type: DT_QINT8
   21896         type: DT_QUINT8
   21897         type: DT_QINT16
   21898         type: DT_QUINT16
   21899         type: DT_QINT32
   21900       }
   21901     }
   21902   }
   21903   attr {
   21904     name: "out_type"
   21905     type: "type"
   21906     default_value {
   21907       type: DT_QUINT8
   21908     }
   21909     allowed_values {
   21910       list {
   21911         type: DT_QINT8
   21912         type: DT_QUINT8
   21913         type: DT_QINT16
   21914         type: DT_QUINT16
   21915         type: DT_QINT32
   21916       }
   21917     }
   21918   }
   21919 }
   21920 op {
   21921   name: "QuantizedReshape"
   21922   input_arg {
   21923     name: "tensor"
   21924     type_attr: "T"
   21925   }
   21926   input_arg {
   21927     name: "shape"
   21928     type_attr: "Tshape"
   21929   }
   21930   input_arg {
   21931     name: "input_min"
   21932     type: DT_FLOAT
   21933   }
   21934   input_arg {
   21935     name: "input_max"
   21936     type: DT_FLOAT
   21937   }
   21938   output_arg {
   21939     name: "output"
   21940     type_attr: "T"
   21941   }
   21942   output_arg {
   21943     name: "output_min"
   21944     type: DT_FLOAT
   21945   }
   21946   output_arg {
   21947     name: "output_max"
   21948     type: DT_FLOAT
   21949   }
   21950   attr {
   21951     name: "T"
   21952     type: "type"
   21953   }
   21954   attr {
   21955     name: "Tshape"
   21956     type: "type"
   21957     default_value {
   21958       type: DT_INT32
   21959     }
   21960     allowed_values {
   21961       list {
   21962         type: DT_INT32
   21963         type: DT_INT64
   21964       }
   21965     }
   21966   }
   21967 }
   21968 op {
   21969   name: "QueueClose"
   21970   input_arg {
   21971     name: "handle"
   21972     type: DT_STRING
   21973     is_ref: true
   21974   }
   21975   attr {
   21976     name: "cancel_pending_enqueues"
   21977     type: "bool"
   21978     default_value {
   21979       b: false
   21980     }
   21981   }
   21982 }
   21983 op {
   21984   name: "QueueCloseV2"
   21985   input_arg {
   21986     name: "handle"
   21987     type: DT_RESOURCE
   21988   }
   21989   attr {
   21990     name: "cancel_pending_enqueues"
   21991     type: "bool"
   21992     default_value {
   21993       b: false
   21994     }
   21995   }
   21996 }
   21997 op {
   21998   name: "QueueCloseV2"
   21999   input_arg {
   22000     name: "handle"
   22001     type: DT_RESOURCE
   22002   }
   22003   attr {
   22004     name: "cancel_pending_enqueues"
   22005     type: "bool"
   22006     default_value {
   22007       b: false
   22008     }
   22009   }
   22010   is_stateful: true
   22011 }
   22012 op {
   22013   name: "QueueDequeue"
   22014   input_arg {
   22015     name: "handle"
   22016     type: DT_STRING
   22017     is_ref: true
   22018   }
   22019   output_arg {
   22020     name: "components"
   22021     type_list_attr: "component_types"
   22022   }
   22023   attr {
   22024     name: "component_types"
   22025     type: "list(type)"
   22026     has_minimum: true
   22027     minimum: 1
   22028   }
   22029   attr {
   22030     name: "timeout_ms"
   22031     type: "int"
   22032     default_value {
   22033       i: -1
   22034     }
   22035   }
   22036 }
   22037 op {
   22038   name: "QueueDequeueMany"
   22039   input_arg {
   22040     name: "handle"
   22041     type: DT_STRING
   22042     is_ref: true
   22043   }
   22044   input_arg {
   22045     name: "n"
   22046     type: DT_INT32
   22047   }
   22048   output_arg {
   22049     name: "components"
   22050     type_list_attr: "component_types"
   22051   }
   22052   attr {
   22053     name: "component_types"
   22054     type: "list(type)"
   22055     has_minimum: true
   22056     minimum: 1
   22057   }
   22058   attr {
   22059     name: "timeout_ms"
   22060     type: "int"
   22061     default_value {
   22062       i: -1
   22063     }
   22064   }
   22065 }
   22066 op {
   22067   name: "QueueDequeueManyV2"
   22068   input_arg {
   22069     name: "handle"
   22070     type: DT_RESOURCE
   22071   }
   22072   input_arg {
   22073     name: "n"
   22074     type: DT_INT32
   22075   }
   22076   output_arg {
   22077     name: "components"
   22078     type_list_attr: "component_types"
   22079   }
   22080   attr {
   22081     name: "component_types"
   22082     type: "list(type)"
   22083     has_minimum: true
   22084     minimum: 1
   22085   }
   22086   attr {
   22087     name: "timeout_ms"
   22088     type: "int"
   22089     default_value {
   22090       i: -1
   22091     }
   22092   }
   22093 }
   22094 op {
   22095   name: "QueueDequeueManyV2"
   22096   input_arg {
   22097     name: "handle"
   22098     type: DT_RESOURCE
   22099   }
   22100   input_arg {
   22101     name: "n"
   22102     type: DT_INT32
   22103   }
   22104   output_arg {
   22105     name: "components"
   22106     type_list_attr: "component_types"
   22107   }
   22108   attr {
   22109     name: "component_types"
   22110     type: "list(type)"
   22111     has_minimum: true
   22112     minimum: 1
   22113   }
   22114   attr {
   22115     name: "timeout_ms"
   22116     type: "int"
   22117     default_value {
   22118       i: -1
   22119     }
   22120   }
   22121   is_stateful: true
   22122 }
   22123 op {
   22124   name: "QueueDequeueUpTo"
   22125   input_arg {
   22126     name: "handle"
   22127     type: DT_STRING
   22128     is_ref: true
   22129   }
   22130   input_arg {
   22131     name: "n"
   22132     type: DT_INT32
   22133   }
   22134   output_arg {
   22135     name: "components"
   22136     type_list_attr: "component_types"
   22137   }
   22138   attr {
   22139     name: "component_types"
   22140     type: "list(type)"
   22141     has_minimum: true
   22142     minimum: 1
   22143   }
   22144   attr {
   22145     name: "timeout_ms"
   22146     type: "int"
   22147     default_value {
   22148       i: -1
   22149     }
   22150   }
   22151 }
   22152 op {
   22153   name: "QueueDequeueUpToV2"
   22154   input_arg {
   22155     name: "handle"
   22156     type: DT_RESOURCE
   22157   }
   22158   input_arg {
   22159     name: "n"
   22160     type: DT_INT32
   22161   }
   22162   output_arg {
   22163     name: "components"
   22164     type_list_attr: "component_types"
   22165   }
   22166   attr {
   22167     name: "component_types"
   22168     type: "list(type)"
   22169     has_minimum: true
   22170     minimum: 1
   22171   }
   22172   attr {
   22173     name: "timeout_ms"
   22174     type: "int"
   22175     default_value {
   22176       i: -1
   22177     }
   22178   }
   22179 }
   22180 op {
   22181   name: "QueueDequeueUpToV2"
   22182   input_arg {
   22183     name: "handle"
   22184     type: DT_RESOURCE
   22185   }
   22186   input_arg {
   22187     name: "n"
   22188     type: DT_INT32
   22189   }
   22190   output_arg {
   22191     name: "components"
   22192     type_list_attr: "component_types"
   22193   }
   22194   attr {
   22195     name: "component_types"
   22196     type: "list(type)"
   22197     has_minimum: true
   22198     minimum: 1
   22199   }
   22200   attr {
   22201     name: "timeout_ms"
   22202     type: "int"
   22203     default_value {
   22204       i: -1
   22205     }
   22206   }
   22207   is_stateful: true
   22208 }
   22209 op {
   22210   name: "QueueDequeueV2"
   22211   input_arg {
   22212     name: "handle"
   22213     type: DT_RESOURCE
   22214   }
   22215   output_arg {
   22216     name: "components"
   22217     type_list_attr: "component_types"
   22218   }
   22219   attr {
   22220     name: "component_types"
   22221     type: "list(type)"
   22222     has_minimum: true
   22223     minimum: 1
   22224   }
   22225   attr {
   22226     name: "timeout_ms"
   22227     type: "int"
   22228     default_value {
   22229       i: -1
   22230     }
   22231   }
   22232 }
   22233 op {
   22234   name: "QueueDequeueV2"
   22235   input_arg {
   22236     name: "handle"
   22237     type: DT_RESOURCE
   22238   }
   22239   output_arg {
   22240     name: "components"
   22241     type_list_attr: "component_types"
   22242   }
   22243   attr {
   22244     name: "component_types"
   22245     type: "list(type)"
   22246     has_minimum: true
   22247     minimum: 1
   22248   }
   22249   attr {
   22250     name: "timeout_ms"
   22251     type: "int"
   22252     default_value {
   22253       i: -1
   22254     }
   22255   }
   22256   is_stateful: true
   22257 }
   22258 op {
   22259   name: "QueueEnqueue"
   22260   input_arg {
   22261     name: "handle"
   22262     type: DT_STRING
   22263     is_ref: true
   22264   }
   22265   input_arg {
   22266     name: "components"
   22267     type_list_attr: "Tcomponents"
   22268   }
   22269   attr {
   22270     name: "Tcomponents"
   22271     type: "list(type)"
   22272     has_minimum: true
   22273     minimum: 1
   22274   }
   22275   attr {
   22276     name: "timeout_ms"
   22277     type: "int"
   22278     default_value {
   22279       i: -1
   22280     }
   22281   }
   22282 }
   22283 op {
   22284   name: "QueueEnqueueMany"
   22285   input_arg {
   22286     name: "handle"
   22287     type: DT_STRING
   22288     is_ref: true
   22289   }
   22290   input_arg {
   22291     name: "components"
   22292     type_list_attr: "Tcomponents"
   22293   }
   22294   attr {
   22295     name: "Tcomponents"
   22296     type: "list(type)"
   22297     has_minimum: true
   22298     minimum: 1
   22299   }
   22300   attr {
   22301     name: "timeout_ms"
   22302     type: "int"
   22303     default_value {
   22304       i: -1
   22305     }
   22306   }
   22307 }
   22308 op {
   22309   name: "QueueEnqueueManyV2"
   22310   input_arg {
   22311     name: "handle"
   22312     type: DT_RESOURCE
   22313   }
   22314   input_arg {
   22315     name: "components"
   22316     type_list_attr: "Tcomponents"
   22317   }
   22318   attr {
   22319     name: "Tcomponents"
   22320     type: "list(type)"
   22321     has_minimum: true
   22322     minimum: 1
   22323   }
   22324   attr {
   22325     name: "timeout_ms"
   22326     type: "int"
   22327     default_value {
   22328       i: -1
   22329     }
   22330   }
   22331 }
   22332 op {
   22333   name: "QueueEnqueueManyV2"
   22334   input_arg {
   22335     name: "handle"
   22336     type: DT_RESOURCE
   22337   }
   22338   input_arg {
   22339     name: "components"
   22340     type_list_attr: "Tcomponents"
   22341   }
   22342   attr {
   22343     name: "Tcomponents"
   22344     type: "list(type)"
   22345     has_minimum: true
   22346     minimum: 1
   22347   }
   22348   attr {
   22349     name: "timeout_ms"
   22350     type: "int"
   22351     default_value {
   22352       i: -1
   22353     }
   22354   }
   22355   is_stateful: true
   22356 }
   22357 op {
   22358   name: "QueueEnqueueV2"
   22359   input_arg {
   22360     name: "handle"
   22361     type: DT_RESOURCE
   22362   }
   22363   input_arg {
   22364     name: "components"
   22365     type_list_attr: "Tcomponents"
   22366   }
   22367   attr {
   22368     name: "Tcomponents"
   22369     type: "list(type)"
   22370     has_minimum: true
   22371     minimum: 1
   22372   }
   22373   attr {
   22374     name: "timeout_ms"
   22375     type: "int"
   22376     default_value {
   22377       i: -1
   22378     }
   22379   }
   22380 }
   22381 op {
   22382   name: "QueueEnqueueV2"
   22383   input_arg {
   22384     name: "handle"
   22385     type: DT_RESOURCE
   22386   }
   22387   input_arg {
   22388     name: "components"
   22389     type_list_attr: "Tcomponents"
   22390   }
   22391   attr {
   22392     name: "Tcomponents"
   22393     type: "list(type)"
   22394     has_minimum: true
   22395     minimum: 1
   22396   }
   22397   attr {
   22398     name: "timeout_ms"
   22399     type: "int"
   22400     default_value {
   22401       i: -1
   22402     }
   22403   }
   22404   is_stateful: true
   22405 }
   22406 op {
   22407   name: "QueueSize"
   22408   input_arg {
   22409     name: "handle"
   22410     type: DT_STRING
   22411     is_ref: true
   22412   }
   22413   output_arg {
   22414     name: "size"
   22415     type: DT_INT32
   22416   }
   22417 }
   22418 op {
   22419   name: "QueueSizeV2"
   22420   input_arg {
   22421     name: "handle"
   22422     type: DT_RESOURCE
   22423   }
   22424   output_arg {
   22425     name: "size"
   22426     type: DT_INT32
   22427   }
   22428 }
   22429 op {
   22430   name: "QueueSizeV2"
   22431   input_arg {
   22432     name: "handle"
   22433     type: DT_RESOURCE
   22434   }
   22435   output_arg {
   22436     name: "size"
   22437     type: DT_INT32
   22438   }
   22439   is_stateful: true
   22440 }
   22441 op {
   22442   name: "RGBToHSV"
   22443   input_arg {
   22444     name: "images"
   22445     type: DT_FLOAT
   22446   }
   22447   output_arg {
   22448     name: "output"
   22449     type: DT_FLOAT
   22450   }
   22451 }
   22452 op {
   22453   name: "RGBToHSV"
   22454   input_arg {
   22455     name: "images"
   22456     type_attr: "T"
   22457   }
   22458   output_arg {
   22459     name: "output"
   22460     type_attr: "T"
   22461   }
   22462   attr {
   22463     name: "T"
   22464     type: "type"
   22465     default_value {
   22466       type: DT_FLOAT
   22467     }
   22468     allowed_values {
   22469       list {
   22470         type: DT_FLOAT
   22471         type: DT_DOUBLE
   22472       }
   22473     }
   22474   }
   22475 }
   22476 op {
   22477   name: "RandomCrop"
   22478   input_arg {
   22479     name: "image"
   22480     type_attr: "T"
   22481   }
   22482   input_arg {
   22483     name: "size"
   22484     type: DT_INT64
   22485   }
   22486   output_arg {
   22487     name: "output"
   22488     type_attr: "T"
   22489   }
   22490   attr {
   22491     name: "T"
   22492     type: "type"
   22493     allowed_values {
   22494       list {
   22495         type: DT_UINT8
   22496         type: DT_INT8
   22497         type: DT_INT16
   22498         type: DT_INT32
   22499         type: DT_INT64
   22500         type: DT_FLOAT
   22501         type: DT_DOUBLE
   22502       }
   22503     }
   22504   }
   22505   attr {
   22506     name: "seed"
   22507     type: "int"
   22508     default_value {
   22509       i: 0
   22510     }
   22511   }
   22512   attr {
   22513     name: "seed2"
   22514     type: "int"
   22515     default_value {
   22516       i: 0
   22517     }
   22518   }
   22519   is_stateful: true
   22520 }
   22521 op {
   22522   name: "RandomCrop"
   22523   input_arg {
   22524     name: "image"
   22525     type_attr: "T"
   22526   }
   22527   input_arg {
   22528     name: "size"
   22529     type: DT_INT64
   22530   }
   22531   output_arg {
   22532     name: "output"
   22533     type_attr: "T"
   22534   }
   22535   attr {
   22536     name: "T"
   22537     type: "type"
   22538     allowed_values {
   22539       list {
   22540         type: DT_UINT8
   22541         type: DT_INT8
   22542         type: DT_INT16
   22543         type: DT_INT32
   22544         type: DT_INT64
   22545         type: DT_FLOAT
   22546         type: DT_DOUBLE
   22547       }
   22548     }
   22549   }
   22550   attr {
   22551     name: "seed"
   22552     type: "int"
   22553     default_value {
   22554       i: 0
   22555     }
   22556   }
   22557   attr {
   22558     name: "seed2"
   22559     type: "int"
   22560     default_value {
   22561       i: 0
   22562     }
   22563   }
   22564   deprecation {
   22565     version: 8
   22566   }
   22567   is_stateful: true
   22568 }
   22569 op {
   22570   name: "RandomGamma"
   22571   input_arg {
   22572     name: "shape"
   22573     type_attr: "S"
   22574   }
   22575   input_arg {
   22576     name: "alpha"
   22577     type_attr: "T"
   22578   }
   22579   output_arg {
   22580     name: "output"
   22581     type_attr: "T"
   22582   }
   22583   attr {
   22584     name: "seed"
   22585     type: "int"
   22586     default_value {
   22587       i: 0
   22588     }
   22589   }
   22590   attr {
   22591     name: "seed2"
   22592     type: "int"
   22593     default_value {
   22594       i: 0
   22595     }
   22596   }
   22597   attr {
   22598     name: "S"
   22599     type: "type"
   22600     allowed_values {
   22601       list {
   22602         type: DT_INT32
   22603         type: DT_INT64
   22604       }
   22605     }
   22606   }
   22607   attr {
   22608     name: "T"
   22609     type: "type"
   22610     allowed_values {
   22611       list {
   22612         type: DT_HALF
   22613         type: DT_FLOAT
   22614         type: DT_DOUBLE
   22615       }
   22616     }
   22617   }
   22618   is_stateful: true
   22619 }
   22620 op {
   22621   name: "RandomPoisson"
   22622   input_arg {
   22623     name: "shape"
   22624     type_attr: "S"
   22625   }
   22626   input_arg {
   22627     name: "rate"
   22628     type_attr: "dtype"
   22629   }
   22630   output_arg {
   22631     name: "output"
   22632     type_attr: "dtype"
   22633   }
   22634   attr {
   22635     name: "seed"
   22636     type: "int"
   22637     default_value {
   22638       i: 0
   22639     }
   22640   }
   22641   attr {
   22642     name: "seed2"
   22643     type: "int"
   22644     default_value {
   22645       i: 0
   22646     }
   22647   }
   22648   attr {
   22649     name: "S"
   22650     type: "type"
   22651     allowed_values {
   22652       list {
   22653         type: DT_INT32
   22654         type: DT_INT64
   22655       }
   22656     }
   22657   }
   22658   attr {
   22659     name: "dtype"
   22660     type: "type"
   22661     allowed_values {
   22662       list {
   22663         type: DT_HALF
   22664         type: DT_FLOAT
   22665         type: DT_DOUBLE
   22666       }
   22667     }
   22668   }
   22669   is_stateful: true
   22670 }
   22671 op {
   22672   name: "RandomShuffle"
   22673   input_arg {
   22674     name: "value"
   22675     type_attr: "T"
   22676   }
   22677   output_arg {
   22678     name: "output"
   22679     type_attr: "T"
   22680   }
   22681   attr {
   22682     name: "seed"
   22683     type: "int"
   22684     default_value {
   22685       i: 0
   22686     }
   22687   }
   22688   attr {
   22689     name: "seed2"
   22690     type: "int"
   22691     default_value {
   22692       i: 0
   22693     }
   22694   }
   22695   attr {
   22696     name: "T"
   22697     type: "type"
   22698   }
   22699   is_stateful: true
   22700 }
   22701 op {
   22702   name: "RandomShuffleQueue"
   22703   output_arg {
   22704     name: "handle"
   22705     type: DT_STRING
   22706     is_ref: true
   22707   }
   22708   attr {
   22709     name: "component_types"
   22710     type: "list(type)"
   22711     has_minimum: true
   22712     minimum: 1
   22713   }
   22714   attr {
   22715     name: "shapes"
   22716     type: "list(shape)"
   22717     default_value {
   22718       list {
   22719       }
   22720     }
   22721     has_minimum: true
   22722   }
   22723   attr {
   22724     name: "capacity"
   22725     type: "int"
   22726     default_value {
   22727       i: -1
   22728     }
   22729   }
   22730   attr {
   22731     name: "min_after_dequeue"
   22732     type: "int"
   22733     default_value {
   22734       i: 0
   22735     }
   22736   }
   22737   attr {
   22738     name: "seed"
   22739     type: "int"
   22740     default_value {
   22741       i: 0
   22742     }
   22743   }
   22744   attr {
   22745     name: "seed2"
   22746     type: "int"
   22747     default_value {
   22748       i: 0
   22749     }
   22750   }
   22751   attr {
   22752     name: "container"
   22753     type: "string"
   22754     default_value {
   22755       s: ""
   22756     }
   22757   }
   22758   attr {
   22759     name: "shared_name"
   22760     type: "string"
   22761     default_value {
   22762       s: ""
   22763     }
   22764   }
   22765   is_stateful: true
   22766 }
   22767 op {
   22768   name: "RandomShuffleQueueV2"
   22769   output_arg {
   22770     name: "handle"
   22771     type: DT_RESOURCE
   22772   }
   22773   attr {
   22774     name: "component_types"
   22775     type: "list(type)"
   22776     has_minimum: true
   22777     minimum: 1
   22778   }
   22779   attr {
   22780     name: "shapes"
   22781     type: "list(shape)"
   22782     default_value {
   22783       list {
   22784       }
   22785     }
   22786     has_minimum: true
   22787   }
   22788   attr {
   22789     name: "capacity"
   22790     type: "int"
   22791     default_value {
   22792       i: -1
   22793     }
   22794   }
   22795   attr {
   22796     name: "min_after_dequeue"
   22797     type: "int"
   22798     default_value {
   22799       i: 0
   22800     }
   22801   }
   22802   attr {
   22803     name: "seed"
   22804     type: "int"
   22805     default_value {
   22806       i: 0
   22807     }
   22808   }
   22809   attr {
   22810     name: "seed2"
   22811     type: "int"
   22812     default_value {
   22813       i: 0
   22814     }
   22815   }
   22816   attr {
   22817     name: "container"
   22818     type: "string"
   22819     default_value {
   22820       s: ""
   22821     }
   22822   }
   22823   attr {
   22824     name: "shared_name"
   22825     type: "string"
   22826     default_value {
   22827       s: ""
   22828     }
   22829   }
   22830   is_stateful: true
   22831 }
   22832 op {
   22833   name: "RandomStandardNormal"
   22834   input_arg {
   22835     name: "shape"
   22836     type_attr: "T"
   22837   }
   22838   output_arg {
   22839     name: "output"
   22840     type_attr: "dtype"
   22841   }
   22842   attr {
   22843     name: "seed"
   22844     type: "int"
   22845     default_value {
   22846       i: 0
   22847     }
   22848   }
   22849   attr {
   22850     name: "seed2"
   22851     type: "int"
   22852     default_value {
   22853       i: 0
   22854     }
   22855   }
   22856   attr {
   22857     name: "dtype"
   22858     type: "type"
   22859     allowed_values {
   22860       list {
   22861         type: DT_FLOAT
   22862         type: DT_DOUBLE
   22863       }
   22864     }
   22865   }
   22866   attr {
   22867     name: "T"
   22868     type: "type"
   22869     allowed_values {
   22870       list {
   22871         type: DT_INT32
   22872         type: DT_INT64
   22873       }
   22874     }
   22875   }
   22876   is_stateful: true
   22877 }
   22878 op {
   22879   name: "RandomStandardNormal"
   22880   input_arg {
   22881     name: "shape"
   22882     type_attr: "T"
   22883   }
   22884   output_arg {
   22885     name: "output"
   22886     type_attr: "dtype"
   22887   }
   22888   attr {
   22889     name: "seed"
   22890     type: "int"
   22891     default_value {
   22892       i: 0
   22893     }
   22894   }
   22895   attr {
   22896     name: "seed2"
   22897     type: "int"
   22898     default_value {
   22899       i: 0
   22900     }
   22901   }
   22902   attr {
   22903     name: "dtype"
   22904     type: "type"
   22905     allowed_values {
   22906       list {
   22907         type: DT_HALF
   22908         type: DT_FLOAT
   22909         type: DT_DOUBLE
   22910       }
   22911     }
   22912   }
   22913   attr {
   22914     name: "T"
   22915     type: "type"
   22916     allowed_values {
   22917       list {
   22918         type: DT_INT32
   22919         type: DT_INT64
   22920       }
   22921     }
   22922   }
   22923   is_stateful: true
   22924 }
   22925 op {
   22926   name: "RandomUniform"
   22927   input_arg {
   22928     name: "shape"
   22929     type_attr: "T"
   22930   }
   22931   output_arg {
   22932     name: "output"
   22933     type_attr: "dtype"
   22934   }
   22935   attr {
   22936     name: "seed"
   22937     type: "int"
   22938     default_value {
   22939       i: 0
   22940     }
   22941   }
   22942   attr {
   22943     name: "seed2"
   22944     type: "int"
   22945     default_value {
   22946       i: 0
   22947     }
   22948   }
   22949   attr {
   22950     name: "dtype"
   22951     type: "type"
   22952     allowed_values {
   22953       list {
   22954         type: DT_FLOAT
   22955         type: DT_DOUBLE
   22956       }
   22957     }
   22958   }
   22959   attr {
   22960     name: "T"
   22961     type: "type"
   22962     allowed_values {
   22963       list {
   22964         type: DT_INT32
   22965         type: DT_INT64
   22966       }
   22967     }
   22968   }
   22969   is_stateful: true
   22970 }
   22971 op {
   22972   name: "RandomUniform"
   22973   input_arg {
   22974     name: "shape"
   22975     type_attr: "T"
   22976   }
   22977   output_arg {
   22978     name: "output"
   22979     type_attr: "dtype"
   22980   }
   22981   attr {
   22982     name: "seed"
   22983     type: "int"
   22984     default_value {
   22985       i: 0
   22986     }
   22987   }
   22988   attr {
   22989     name: "seed2"
   22990     type: "int"
   22991     default_value {
   22992       i: 0
   22993     }
   22994   }
   22995   attr {
   22996     name: "dtype"
   22997     type: "type"
   22998     allowed_values {
   22999       list {
   23000         type: DT_HALF
   23001         type: DT_FLOAT
   23002         type: DT_DOUBLE
   23003       }
   23004     }
   23005   }
   23006   attr {
   23007     name: "T"
   23008     type: "type"
   23009     allowed_values {
   23010       list {
   23011         type: DT_INT32
   23012         type: DT_INT64
   23013       }
   23014     }
   23015   }
   23016   is_stateful: true
   23017 }
   23018 op {
   23019   name: "RandomUniformInt"
   23020   input_arg {
   23021     name: "shape"
   23022     type_attr: "T"
   23023   }
   23024   input_arg {
   23025     name: "minval"
   23026     type_attr: "Tout"
   23027   }
   23028   input_arg {
   23029     name: "maxval"
   23030     type_attr: "Tout"
   23031   }
   23032   output_arg {
   23033     name: "output"
   23034     type_attr: "Tout"
   23035   }
   23036   attr {
   23037     name: "seed"
   23038     type: "int"
   23039     default_value {
   23040       i: 0
   23041     }
   23042   }
   23043   attr {
   23044     name: "seed2"
   23045     type: "int"
   23046     default_value {
   23047       i: 0
   23048     }
   23049   }
   23050   attr {
   23051     name: "Tout"
   23052     type: "type"
   23053     allowed_values {
   23054       list {
   23055         type: DT_INT32
   23056         type: DT_INT64
   23057       }
   23058     }
   23059   }
   23060   attr {
   23061     name: "T"
   23062     type: "type"
   23063     allowed_values {
   23064       list {
   23065         type: DT_INT32
   23066         type: DT_INT64
   23067       }
   23068     }
   23069   }
   23070   is_stateful: true
   23071 }
   23072 op {
   23073   name: "Range"
   23074   input_arg {
   23075     name: "start"
   23076     type: DT_INT32
   23077   }
   23078   input_arg {
   23079     name: "limit"
   23080     type: DT_INT32
   23081   }
   23082   input_arg {
   23083     name: "delta"
   23084     type: DT_INT32
   23085   }
   23086   output_arg {
   23087     name: "output"
   23088     type: DT_INT32
   23089   }
   23090 }
   23091 op {
   23092   name: "Range"
   23093   input_arg {
   23094     name: "start"
   23095     type_attr: "Tidx"
   23096   }
   23097   input_arg {
   23098     name: "limit"
   23099     type_attr: "Tidx"
   23100   }
   23101   input_arg {
   23102     name: "delta"
   23103     type_attr: "Tidx"
   23104   }
   23105   output_arg {
   23106     name: "output"
   23107     type_attr: "Tidx"
   23108   }
   23109   attr {
   23110     name: "Tidx"
   23111     type: "type"
   23112     default_value {
   23113       type: DT_INT32
   23114     }
   23115     allowed_values {
   23116       list {
   23117         type: DT_INT32
   23118         type: DT_INT64
   23119       }
   23120     }
   23121   }
   23122 }
   23123 op {
   23124   name: "Range"
   23125   input_arg {
   23126     name: "start"
   23127     type_attr: "Tidx"
   23128   }
   23129   input_arg {
   23130     name: "limit"
   23131     type_attr: "Tidx"
   23132   }
   23133   input_arg {
   23134     name: "delta"
   23135     type_attr: "Tidx"
   23136   }
   23137   output_arg {
   23138     name: "output"
   23139     type_attr: "Tidx"
   23140   }
   23141   attr {
   23142     name: "Tidx"
   23143     type: "type"
   23144     default_value {
   23145       type: DT_INT32
   23146     }
   23147     allowed_values {
   23148       list {
   23149         type: DT_FLOAT
   23150         type: DT_DOUBLE
   23151         type: DT_INT32
   23152         type: DT_INT64
   23153       }
   23154     }
   23155   }
   23156 }
   23157 op {
   23158   name: "Rank"
   23159   input_arg {
   23160     name: "input"
   23161     type_attr: "T"
   23162   }
   23163   output_arg {
   23164     name: "output"
   23165     type: DT_INT32
   23166   }
   23167   attr {
   23168     name: "T"
   23169     type: "type"
   23170   }
   23171 }
   23172 op {
   23173   name: "ReadFile"
   23174   input_arg {
   23175     name: "filename"
   23176     type: DT_STRING
   23177   }
   23178   output_arg {
   23179     name: "contents"
   23180     type: DT_STRING
   23181   }
   23182 }
   23183 op {
   23184   name: "ReaderNumRecordsProduced"
   23185   input_arg {
   23186     name: "reader_handle"
   23187     type: DT_STRING
   23188     is_ref: true
   23189   }
   23190   output_arg {
   23191     name: "records_produced"
   23192     type: DT_INT64
   23193   }
   23194 }
   23195 op {
   23196   name: "ReaderNumRecordsProducedV2"
   23197   input_arg {
   23198     name: "reader_handle"
   23199     type: DT_RESOURCE
   23200   }
   23201   output_arg {
   23202     name: "records_produced"
   23203     type: DT_INT64
   23204   }
   23205 }
   23206 op {
   23207   name: "ReaderNumRecordsProducedV2"
   23208   input_arg {
   23209     name: "reader_handle"
   23210     type: DT_RESOURCE
   23211   }
   23212   output_arg {
   23213     name: "records_produced"
   23214     type: DT_INT64
   23215   }
   23216   is_stateful: true
   23217 }
   23218 op {
   23219   name: "ReaderNumWorkUnitsCompleted"
   23220   input_arg {
   23221     name: "reader_handle"
   23222     type: DT_STRING
   23223     is_ref: true
   23224   }
   23225   output_arg {
   23226     name: "units_completed"
   23227     type: DT_INT64
   23228   }
   23229 }
   23230 op {
   23231   name: "ReaderNumWorkUnitsCompletedV2"
   23232   input_arg {
   23233     name: "reader_handle"
   23234     type: DT_RESOURCE
   23235   }
   23236   output_arg {
   23237     name: "units_completed"
   23238     type: DT_INT64
   23239   }
   23240 }
   23241 op {
   23242   name: "ReaderNumWorkUnitsCompletedV2"
   23243   input_arg {
   23244     name: "reader_handle"
   23245     type: DT_RESOURCE
   23246   }
   23247   output_arg {
   23248     name: "units_completed"
   23249     type: DT_INT64
   23250   }
   23251   is_stateful: true
   23252 }
   23253 op {
   23254   name: "ReaderRead"
   23255   input_arg {
   23256     name: "reader_handle"
   23257     type: DT_STRING
   23258     is_ref: true
   23259   }
   23260   input_arg {
   23261     name: "queue_handle"
   23262     type: DT_STRING
   23263     is_ref: true
   23264   }
   23265   output_arg {
   23266     name: "key"
   23267     type: DT_STRING
   23268   }
   23269   output_arg {
   23270     name: "value"
   23271     type: DT_STRING
   23272   }
   23273 }
   23274 op {
   23275   name: "ReaderReadUpTo"
   23276   input_arg {
   23277     name: "reader_handle"
   23278     type: DT_STRING
   23279     is_ref: true
   23280   }
   23281   input_arg {
   23282     name: "queue_handle"
   23283     type: DT_STRING
   23284     is_ref: true
   23285   }
   23286   input_arg {
   23287     name: "num_records"
   23288     type: DT_INT64
   23289   }
   23290   output_arg {
   23291     name: "keys"
   23292     type: DT_STRING
   23293   }
   23294   output_arg {
   23295     name: "values"
   23296     type: DT_STRING
   23297   }
   23298 }
   23299 op {
   23300   name: "ReaderReadUpToV2"
   23301   input_arg {
   23302     name: "reader_handle"
   23303     type: DT_RESOURCE
   23304   }
   23305   input_arg {
   23306     name: "queue_handle"
   23307     type: DT_RESOURCE
   23308   }
   23309   input_arg {
   23310     name: "num_records"
   23311     type: DT_INT64
   23312   }
   23313   output_arg {
   23314     name: "keys"
   23315     type: DT_STRING
   23316   }
   23317   output_arg {
   23318     name: "values"
   23319     type: DT_STRING
   23320   }
   23321 }
   23322 op {
   23323   name: "ReaderReadUpToV2"
   23324   input_arg {
   23325     name: "reader_handle"
   23326     type: DT_RESOURCE
   23327   }
   23328   input_arg {
   23329     name: "queue_handle"
   23330     type: DT_RESOURCE
   23331   }
   23332   input_arg {
   23333     name: "num_records"
   23334     type: DT_INT64
   23335   }
   23336   output_arg {
   23337     name: "keys"
   23338     type: DT_STRING
   23339   }
   23340   output_arg {
   23341     name: "values"
   23342     type: DT_STRING
   23343   }
   23344   is_stateful: true
   23345 }
   23346 op {
   23347   name: "ReaderReadV2"
   23348   input_arg {
   23349     name: "reader_handle"
   23350     type: DT_RESOURCE
   23351   }
   23352   input_arg {
   23353     name: "queue_handle"
   23354     type: DT_RESOURCE
   23355   }
   23356   output_arg {
   23357     name: "key"
   23358     type: DT_STRING
   23359   }
   23360   output_arg {
   23361     name: "value"
   23362     type: DT_STRING
   23363   }
   23364 }
   23365 op {
   23366   name: "ReaderReadV2"
   23367   input_arg {
   23368     name: "reader_handle"
   23369     type: DT_RESOURCE
   23370   }
   23371   input_arg {
   23372     name: "queue_handle"
   23373     type: DT_RESOURCE
   23374   }
   23375   output_arg {
   23376     name: "key"
   23377     type: DT_STRING
   23378   }
   23379   output_arg {
   23380     name: "value"
   23381     type: DT_STRING
   23382   }
   23383   is_stateful: true
   23384 }
   23385 op {
   23386   name: "ReaderReset"
   23387   input_arg {
   23388     name: "reader_handle"
   23389     type: DT_STRING
   23390     is_ref: true
   23391   }
   23392 }
   23393 op {
   23394   name: "ReaderResetV2"
   23395   input_arg {
   23396     name: "reader_handle"
   23397     type: DT_RESOURCE
   23398   }
   23399 }
   23400 op {
   23401   name: "ReaderResetV2"
   23402   input_arg {
   23403     name: "reader_handle"
   23404     type: DT_RESOURCE
   23405   }
   23406   is_stateful: true
   23407 }
   23408 op {
   23409   name: "ReaderRestoreState"
   23410   input_arg {
   23411     name: "reader_handle"
   23412     type: DT_STRING
   23413     is_ref: true
   23414   }
   23415   input_arg {
   23416     name: "state"
   23417     type: DT_STRING
   23418   }
   23419 }
   23420 op {
   23421   name: "ReaderRestoreStateV2"
   23422   input_arg {
   23423     name: "reader_handle"
   23424     type: DT_RESOURCE
   23425   }
   23426   input_arg {
   23427     name: "state"
   23428     type: DT_STRING
   23429   }
   23430 }
   23431 op {
   23432   name: "ReaderRestoreStateV2"
   23433   input_arg {
   23434     name: "reader_handle"
   23435     type: DT_RESOURCE
   23436   }
   23437   input_arg {
   23438     name: "state"
   23439     type: DT_STRING
   23440   }
   23441   is_stateful: true
   23442 }
   23443 op {
   23444   name: "ReaderSerializeState"
   23445   input_arg {
   23446     name: "reader_handle"
   23447     type: DT_STRING
   23448     is_ref: true
   23449   }
   23450   output_arg {
   23451     name: "state"
   23452     type: DT_STRING
   23453   }
   23454 }
   23455 op {
   23456   name: "ReaderSerializeStateV2"
   23457   input_arg {
   23458     name: "reader_handle"
   23459     type: DT_RESOURCE
   23460   }
   23461   output_arg {
   23462     name: "state"
   23463     type: DT_STRING
   23464   }
   23465 }
   23466 op {
   23467   name: "ReaderSerializeStateV2"
   23468   input_arg {
   23469     name: "reader_handle"
   23470     type: DT_RESOURCE
   23471   }
   23472   output_arg {
   23473     name: "state"
   23474     type: DT_STRING
   23475   }
   23476   is_stateful: true
   23477 }
   23478 op {
   23479   name: "Real"
   23480   input_arg {
   23481     name: "in"
   23482     type: DT_COMPLEX64
   23483   }
   23484   output_arg {
   23485     name: "out"
   23486     type: DT_FLOAT
   23487   }
   23488 }
   23489 op {
   23490   name: "Real"
   23491   input_arg {
   23492     name: "input"
   23493     type: DT_COMPLEX64
   23494   }
   23495   output_arg {
   23496     name: "out"
   23497     type: DT_FLOAT
   23498   }
   23499 }
   23500 op {
   23501   name: "Real"
   23502   input_arg {
   23503     name: "input"
   23504     type: DT_COMPLEX64
   23505   }
   23506   output_arg {
   23507     name: "output"
   23508     type: DT_FLOAT
   23509   }
   23510 }
   23511 op {
   23512   name: "Real"
   23513   input_arg {
   23514     name: "input"
   23515     type_attr: "T"
   23516   }
   23517   output_arg {
   23518     name: "output"
   23519     type_attr: "Tout"
   23520   }
   23521   attr {
   23522     name: "T"
   23523     type: "type"
   23524     default_value {
   23525       type: DT_COMPLEX64
   23526     }
   23527     allowed_values {
   23528       list {
   23529         type: DT_COMPLEX64
   23530         type: DT_COMPLEX128
   23531       }
   23532     }
   23533   }
   23534   attr {
   23535     name: "Tout"
   23536     type: "type"
   23537     default_value {
   23538       type: DT_FLOAT
   23539     }
   23540     allowed_values {
   23541       list {
   23542         type: DT_FLOAT
   23543         type: DT_DOUBLE
   23544       }
   23545     }
   23546   }
   23547 }
   23548 op {
   23549   name: "RealDiv"
   23550   input_arg {
   23551     name: "x"
   23552     type_attr: "T"
   23553   }
   23554   input_arg {
   23555     name: "y"
   23556     type_attr: "T"
   23557   }
   23558   output_arg {
   23559     name: "z"
   23560     type_attr: "T"
   23561   }
   23562   attr {
   23563     name: "T"
   23564     type: "type"
   23565     allowed_values {
   23566       list {
   23567         type: DT_HALF
   23568         type: DT_FLOAT
   23569         type: DT_DOUBLE
   23570         type: DT_UINT8
   23571         type: DT_INT8
   23572         type: DT_UINT16
   23573         type: DT_INT16
   23574         type: DT_INT32
   23575         type: DT_INT64
   23576         type: DT_COMPLEX64
   23577         type: DT_COMPLEX128
   23578       }
   23579     }
   23580   }
   23581 }
   23582 op {
   23583   name: "Reciprocal"
   23584   input_arg {
   23585     name: "x"
   23586     type_attr: "T"
   23587   }
   23588   output_arg {
   23589     name: "y"
   23590     type_attr: "T"
   23591   }
   23592   attr {
   23593     name: "T"
   23594     type: "type"
   23595     allowed_values {
   23596       list {
   23597         type: DT_HALF
   23598         type: DT_FLOAT
   23599         type: DT_DOUBLE
   23600         type: DT_INT32
   23601         type: DT_INT64
   23602         type: DT_COMPLEX64
   23603         type: DT_COMPLEX128
   23604       }
   23605     }
   23606   }
   23607 }
   23608 op {
   23609   name: "ReciprocalGrad"
   23610   input_arg {
   23611     name: "x"
   23612     type_attr: "T"
   23613   }
   23614   input_arg {
   23615     name: "y"
   23616     type_attr: "T"
   23617   }
   23618   output_arg {
   23619     name: "z"
   23620     type_attr: "T"
   23621   }
   23622   attr {
   23623     name: "T"
   23624     type: "type"
   23625     allowed_values {
   23626       list {
   23627         type: DT_HALF
   23628         type: DT_FLOAT
   23629         type: DT_DOUBLE
   23630         type: DT_COMPLEX64
   23631         type: DT_COMPLEX128
   23632       }
   23633     }
   23634   }
   23635 }
   23636 op {
   23637   name: "RecordInput"
   23638   output_arg {
   23639     name: "records"
   23640     type: DT_STRING
   23641   }
   23642   attr {
   23643     name: "file_pattern"
   23644     type: "string"
   23645   }
   23646   attr {
   23647     name: "file_random_seed"
   23648     type: "int"
   23649     default_value {
   23650       i: 301
   23651     }
   23652   }
   23653   attr {
   23654     name: "file_shuffle_shift_ratio"
   23655     type: "float"
   23656     default_value {
   23657       f: 0
   23658     }
   23659   }
   23660   attr {
   23661     name: "file_buffer_size"
   23662     type: "int"
   23663     default_value {
   23664       i: 10000
   23665     }
   23666   }
   23667   attr {
   23668     name: "file_parallelism"
   23669     type: "int"
   23670     default_value {
   23671       i: 16
   23672     }
   23673   }
   23674   attr {
   23675     name: "batch_size"
   23676     type: "int"
   23677     default_value {
   23678       i: 32
   23679     }
   23680   }
   23681   is_stateful: true
   23682 }
   23683 op {
   23684   name: "ReduceJoin"
   23685   input_arg {
   23686     name: "inputs"
   23687     type: DT_STRING
   23688   }
   23689   input_arg {
   23690     name: "reduction_indices"
   23691     type: DT_INT32
   23692   }
   23693   output_arg {
   23694     name: "output"
   23695     type: DT_STRING
   23696   }
   23697   attr {
   23698     name: "keep_dims"
   23699     type: "bool"
   23700     default_value {
   23701       b: false
   23702     }
   23703   }
   23704   attr {
   23705     name: "separator"
   23706     type: "string"
   23707     default_value {
   23708       s: ""
   23709     }
   23710   }
   23711 }
   23712 op {
   23713   name: "RefEnter"
   23714   input_arg {
   23715     name: "data"
   23716     type_attr: "T"
   23717     is_ref: true
   23718   }
   23719   output_arg {
   23720     name: "output"
   23721     type_attr: "T"
   23722     is_ref: true
   23723   }
   23724   attr {
   23725     name: "T"
   23726     type: "type"
   23727   }
   23728   attr {
   23729     name: "frame_name"
   23730     type: "string"
   23731   }
   23732   attr {
   23733     name: "is_constant"
   23734     type: "bool"
   23735     default_value {
   23736       b: false
   23737     }
   23738   }
   23739   attr {
   23740     name: "parallel_iterations"
   23741     type: "int"
   23742     default_value {
   23743       i: 10
   23744     }
   23745   }
   23746 }
   23747 op {
   23748   name: "RefExit"
   23749   input_arg {
   23750     name: "data"
   23751     type_attr: "T"
   23752     is_ref: true
   23753   }
   23754   output_arg {
   23755     name: "output"
   23756     type_attr: "T"
   23757     is_ref: true
   23758   }
   23759   attr {
   23760     name: "T"
   23761     type: "type"
   23762   }
   23763 }
   23764 op {
   23765   name: "RefIdentity"
   23766   input_arg {
   23767     name: "input"
   23768     type_attr: "T"
   23769     is_ref: true
   23770   }
   23771   output_arg {
   23772     name: "output"
   23773     type_attr: "T"
   23774     is_ref: true
   23775   }
   23776   attr {
   23777     name: "T"
   23778     type: "type"
   23779   }
   23780 }
   23781 op {
   23782   name: "RefIdentity"
   23783   input_arg {
   23784     name: "input"
   23785     type_attr: "T"
   23786     is_ref: true
   23787   }
   23788   output_arg {
   23789     name: "output"
   23790     type_attr: "T"
   23791     is_ref: true
   23792   }
   23793   attr {
   23794     name: "T"
   23795     type: "type"
   23796   }
   23797   allows_uninitialized_input: true
   23798 }
   23799 op {
   23800   name: "RefMerge"
   23801   input_arg {
   23802     name: "inputs"
   23803     type_attr: "T"
   23804     number_attr: "N"
   23805     is_ref: true
   23806   }
   23807   output_arg {
   23808     name: "output"
   23809     type_attr: "T"
   23810     is_ref: true
   23811   }
   23812   output_arg {
   23813     name: "value_index"
   23814     type: DT_INT32
   23815   }
   23816   attr {
   23817     name: "T"
   23818     type: "type"
   23819   }
   23820   attr {
   23821     name: "N"
   23822     type: "int"
   23823     has_minimum: true
   23824     minimum: 1
   23825   }
   23826 }
   23827 op {
   23828   name: "RefNextIteration"
   23829   input_arg {
   23830     name: "data"
   23831     type_attr: "T"
   23832     is_ref: true
   23833   }
   23834   output_arg {
   23835     name: "output"
   23836     type_attr: "T"
   23837     is_ref: true
   23838   }
   23839   attr {
   23840     name: "T"
   23841     type: "type"
   23842   }
   23843 }
   23844 op {
   23845   name: "RefSelect"
   23846   input_arg {
   23847     name: "index"
   23848     type: DT_INT32
   23849   }
   23850   input_arg {
   23851     name: "inputs"
   23852     type_attr: "T"
   23853     number_attr: "N"
   23854     is_ref: true
   23855   }
   23856   output_arg {
   23857     name: "output"
   23858     type_attr: "T"
   23859     is_ref: true
   23860   }
   23861   attr {
   23862     name: "T"
   23863     type: "type"
   23864   }
   23865   attr {
   23866     name: "N"
   23867     type: "int"
   23868     has_minimum: true
   23869     minimum: 1
   23870   }
   23871 }
   23872 op {
   23873   name: "RefSwitch"
   23874   input_arg {
   23875     name: "data"
   23876     type_attr: "T"
   23877     is_ref: true
   23878   }
   23879   input_arg {
   23880     name: "pred"
   23881     type: DT_BOOL
   23882   }
   23883   output_arg {
   23884     name: "output_false"
   23885     type_attr: "T"
   23886     is_ref: true
   23887   }
   23888   output_arg {
   23889     name: "output_true"
   23890     type_attr: "T"
   23891     is_ref: true
   23892   }
   23893   attr {
   23894     name: "T"
   23895     type: "type"
   23896   }
   23897 }
   23898 op {
   23899   name: "RefSwitch"
   23900   input_arg {
   23901     name: "data"
   23902     type_attr: "T"
   23903     is_ref: true
   23904   }
   23905   input_arg {
   23906     name: "pred"
   23907     type: DT_BOOL
   23908   }
   23909   output_arg {
   23910     name: "output_false"
   23911     type_attr: "T"
   23912     is_ref: true
   23913   }
   23914   output_arg {
   23915     name: "output_true"
   23916     type_attr: "T"
   23917     is_ref: true
   23918   }
   23919   attr {
   23920     name: "T"
   23921     type: "type"
   23922   }
   23923   allows_uninitialized_input: true
   23924 }
   23925 op {
   23926   name: "Relu"
   23927   input_arg {
   23928     name: "features"
   23929     type_attr: "T"
   23930   }
   23931   output_arg {
   23932     name: "activations"
   23933     type_attr: "T"
   23934   }
   23935   attr {
   23936     name: "T"
   23937     type: "type"
   23938     allowed_values {
   23939       list {
   23940         type: DT_FLOAT
   23941         type: DT_DOUBLE
   23942         type: DT_INT32
   23943         type: DT_INT64
   23944         type: DT_UINT8
   23945         type: DT_INT16
   23946         type: DT_INT8
   23947       }
   23948     }
   23949   }
   23950 }
   23951 op {
   23952   name: "Relu"
   23953   input_arg {
   23954     name: "features"
   23955     type_attr: "T"
   23956   }
   23957   output_arg {
   23958     name: "activations"
   23959     type_attr: "T"
   23960   }
   23961   attr {
   23962     name: "T"
   23963     type: "type"
   23964     allowed_values {
   23965       list {
   23966         type: DT_FLOAT
   23967         type: DT_DOUBLE
   23968         type: DT_INT32
   23969         type: DT_INT64
   23970         type: DT_UINT8
   23971         type: DT_INT16
   23972         type: DT_INT8
   23973         type: DT_UINT16
   23974       }
   23975     }
   23976   }
   23977 }
   23978 op {
   23979   name: "Relu"
   23980   input_arg {
   23981     name: "features"
   23982     type_attr: "T"
   23983   }
   23984   output_arg {
   23985     name: "activations"
   23986     type_attr: "T"
   23987   }
   23988   attr {
   23989     name: "T"
   23990     type: "type"
   23991     allowed_values {
   23992       list {
   23993         type: DT_FLOAT
   23994         type: DT_DOUBLE
   23995         type: DT_INT32
   23996         type: DT_INT64
   23997         type: DT_UINT8
   23998         type: DT_INT16
   23999         type: DT_INT8
   24000         type: DT_UINT16
   24001         type: DT_HALF
   24002       }
   24003     }
   24004   }
   24005 }
   24006 op {
   24007   name: "Relu6"
   24008   input_arg {
   24009     name: "features"
   24010     type_attr: "T"
   24011   }
   24012   output_arg {
   24013     name: "activations"
   24014     type_attr: "T"
   24015   }
   24016   attr {
   24017     name: "T"
   24018     type: "type"
   24019     allowed_values {
   24020       list {
   24021         type: DT_FLOAT
   24022         type: DT_DOUBLE
   24023         type: DT_INT32
   24024         type: DT_INT64
   24025         type: DT_UINT8
   24026         type: DT_INT16
   24027         type: DT_INT8
   24028       }
   24029     }
   24030   }
   24031 }
   24032 op {
   24033   name: "Relu6"
   24034   input_arg {
   24035     name: "features"
   24036     type_attr: "T"
   24037   }
   24038   output_arg {
   24039     name: "activations"
   24040     type_attr: "T"
   24041   }
   24042   attr {
   24043     name: "T"
   24044     type: "type"
   24045     allowed_values {
   24046       list {
   24047         type: DT_FLOAT
   24048         type: DT_DOUBLE
   24049         type: DT_INT32
   24050         type: DT_INT64
   24051         type: DT_UINT8
   24052         type: DT_INT16
   24053         type: DT_INT8
   24054         type: DT_UINT16
   24055       }
   24056     }
   24057   }
   24058 }
   24059 op {
   24060   name: "Relu6"
   24061   input_arg {
   24062     name: "features"
   24063     type_attr: "T"
   24064   }
   24065   output_arg {
   24066     name: "activations"
   24067     type_attr: "T"
   24068   }
   24069   attr {
   24070     name: "T"
   24071     type: "type"
   24072     allowed_values {
   24073       list {
   24074         type: DT_FLOAT
   24075         type: DT_DOUBLE
   24076         type: DT_INT32
   24077         type: DT_INT64
   24078         type: DT_UINT8
   24079         type: DT_INT16
   24080         type: DT_INT8
   24081         type: DT_UINT16
   24082         type: DT_HALF
   24083       }
   24084     }
   24085   }
   24086 }
   24087 op {
   24088   name: "Relu6Grad"
   24089   input_arg {
   24090     name: "gradients"
   24091     type_attr: "T"
   24092   }
   24093   input_arg {
   24094     name: "features"
   24095     type_attr: "T"
   24096   }
   24097   output_arg {
   24098     name: "backprops"
   24099     type_attr: "T"
   24100   }
   24101   attr {
   24102     name: "T"
   24103     type: "type"
   24104     allowed_values {
   24105       list {
   24106         type: DT_FLOAT
   24107         type: DT_DOUBLE
   24108         type: DT_INT32
   24109         type: DT_INT64
   24110         type: DT_UINT8
   24111         type: DT_INT16
   24112         type: DT_INT8
   24113       }
   24114     }
   24115   }
   24116 }
   24117 op {
   24118   name: "Relu6Grad"
   24119   input_arg {
   24120     name: "gradients"
   24121     type_attr: "T"
   24122   }
   24123   input_arg {
   24124     name: "features"
   24125     type_attr: "T"
   24126   }
   24127   output_arg {
   24128     name: "backprops"
   24129     type_attr: "T"
   24130   }
   24131   attr {
   24132     name: "T"
   24133     type: "type"
   24134     allowed_values {
   24135       list {
   24136         type: DT_FLOAT
   24137         type: DT_DOUBLE
   24138         type: DT_INT32
   24139         type: DT_INT64
   24140         type: DT_UINT8
   24141         type: DT_INT16
   24142         type: DT_INT8
   24143         type: DT_UINT16
   24144       }
   24145     }
   24146   }
   24147 }
   24148 op {
   24149   name: "Relu6Grad"
   24150   input_arg {
   24151     name: "gradients"
   24152     type_attr: "T"
   24153   }
   24154   input_arg {
   24155     name: "features"
   24156     type_attr: "T"
   24157   }
   24158   output_arg {
   24159     name: "backprops"
   24160     type_attr: "T"
   24161   }
   24162   attr {
   24163     name: "T"
   24164     type: "type"
   24165     allowed_values {
   24166       list {
   24167         type: DT_FLOAT
   24168         type: DT_DOUBLE
   24169         type: DT_INT32
   24170         type: DT_INT64
   24171         type: DT_UINT8
   24172         type: DT_INT16
   24173         type: DT_INT8
   24174         type: DT_UINT16
   24175         type: DT_HALF
   24176       }
   24177     }
   24178   }
   24179 }
   24180 op {
   24181   name: "ReluGrad"
   24182   input_arg {
   24183     name: "gradients"
   24184     type_attr: "T"
   24185   }
   24186   input_arg {
   24187     name: "features"
   24188     type_attr: "T"
   24189   }
   24190   output_arg {
   24191     name: "backprops"
   24192     type_attr: "T"
   24193   }
   24194   attr {
   24195     name: "T"
   24196     type: "type"
   24197     allowed_values {
   24198       list {
   24199         type: DT_FLOAT
   24200         type: DT_DOUBLE
   24201         type: DT_INT32
   24202         type: DT_INT64
   24203         type: DT_UINT8
   24204         type: DT_INT16
   24205         type: DT_INT8
   24206       }
   24207     }
   24208   }
   24209 }
   24210 op {
   24211   name: "ReluGrad"
   24212   input_arg {
   24213     name: "gradients"
   24214     type_attr: "T"
   24215   }
   24216   input_arg {
   24217     name: "features"
   24218     type_attr: "T"
   24219   }
   24220   output_arg {
   24221     name: "backprops"
   24222     type_attr: "T"
   24223   }
   24224   attr {
   24225     name: "T"
   24226     type: "type"
   24227     allowed_values {
   24228       list {
   24229         type: DT_FLOAT
   24230         type: DT_DOUBLE
   24231         type: DT_INT32
   24232         type: DT_INT64
   24233         type: DT_UINT8
   24234         type: DT_INT16
   24235         type: DT_INT8
   24236         type: DT_UINT16
   24237       }
   24238     }
   24239   }
   24240 }
   24241 op {
   24242   name: "ReluGrad"
   24243   input_arg {
   24244     name: "gradients"
   24245     type_attr: "T"
   24246   }
   24247   input_arg {
   24248     name: "features"
   24249     type_attr: "T"
   24250   }
   24251   output_arg {
   24252     name: "backprops"
   24253     type_attr: "T"
   24254   }
   24255   attr {
   24256     name: "T"
   24257     type: "type"
   24258     allowed_values {
   24259       list {
   24260         type: DT_FLOAT
   24261         type: DT_DOUBLE
   24262         type: DT_INT32
   24263         type: DT_INT64
   24264         type: DT_UINT8
   24265         type: DT_INT16
   24266         type: DT_INT8
   24267         type: DT_UINT16
   24268         type: DT_HALF
   24269       }
   24270     }
   24271   }
   24272 }
   24273 op {
   24274   name: "RequantizationRange"
   24275   input_arg {
   24276     name: "input"
   24277     type_attr: "Tinput"
   24278   }
   24279   input_arg {
   24280     name: "input_min"
   24281     type: DT_FLOAT
   24282   }
   24283   input_arg {
   24284     name: "input_max"
   24285     type: DT_FLOAT
   24286   }
   24287   output_arg {
   24288     name: "output_min"
   24289     type: DT_FLOAT
   24290   }
   24291   output_arg {
   24292     name: "output_max"
   24293     type: DT_FLOAT
   24294   }
   24295   attr {
   24296     name: "Tinput"
   24297     type: "type"
   24298     allowed_values {
   24299       list {
   24300         type: DT_QINT8
   24301         type: DT_QUINT8
   24302         type: DT_QINT16
   24303         type: DT_QUINT16
   24304         type: DT_QINT32
   24305       }
   24306     }
   24307   }
   24308 }
   24309 op {
   24310   name: "Requantize"
   24311   input_arg {
   24312     name: "input"
   24313     type_attr: "Tinput"
   24314   }
   24315   input_arg {
   24316     name: "input_min"
   24317     type: DT_FLOAT
   24318   }
   24319   input_arg {
   24320     name: "input_max"
   24321     type: DT_FLOAT
   24322   }
   24323   input_arg {
   24324     name: "requested_output_min"
   24325     type: DT_FLOAT
   24326   }
   24327   input_arg {
   24328     name: "requested_output_max"
   24329     type: DT_FLOAT
   24330   }
   24331   output_arg {
   24332     name: "output"
   24333     type_attr: "out_type"
   24334   }
   24335   output_arg {
   24336     name: "output_min"
   24337     type: DT_FLOAT
   24338   }
   24339   output_arg {
   24340     name: "output_max"
   24341     type: DT_FLOAT
   24342   }
   24343   attr {
   24344     name: "Tinput"
   24345     type: "type"
   24346     allowed_values {
   24347       list {
   24348         type: DT_QINT8
   24349         type: DT_QUINT8
   24350         type: DT_QINT16
   24351         type: DT_QUINT16
   24352         type: DT_QINT32
   24353       }
   24354     }
   24355   }
   24356   attr {
   24357     name: "out_type"
   24358     type: "type"
   24359     allowed_values {
   24360       list {
   24361         type: DT_QINT8
   24362         type: DT_QUINT8
   24363         type: DT_QINT16
   24364         type: DT_QUINT16
   24365         type: DT_QINT32
   24366       }
   24367     }
   24368   }
   24369 }
   24370 op {
   24371   name: "Reshape"
   24372   input_arg {
   24373     name: "tensor"
   24374     type_attr: "T"
   24375   }
   24376   input_arg {
   24377     name: "shape"
   24378     type: DT_INT32
   24379   }
   24380   output_arg {
   24381     name: "output"
   24382     type_attr: "T"
   24383   }
   24384   attr {
   24385     name: "T"
   24386     type: "type"
   24387   }
   24388 }
   24389 op {
   24390   name: "Reshape"
   24391   input_arg {
   24392     name: "tensor"
   24393     type_attr: "T"
   24394   }
   24395   input_arg {
   24396     name: "shape"
   24397     type_attr: "Tshape"
   24398   }
   24399   output_arg {
   24400     name: "output"
   24401     type_attr: "T"
   24402   }
   24403   attr {
   24404     name: "T"
   24405     type: "type"
   24406   }
   24407   attr {
   24408     name: "Tshape"
   24409     type: "type"
   24410     default_value {
   24411       type: DT_INT32
   24412     }
   24413     allowed_values {
   24414       list {
   24415         type: DT_INT32
   24416         type: DT_INT64
   24417       }
   24418     }
   24419   }
   24420 }
   24421 op {
   24422   name: "ResizeArea"
   24423   input_arg {
   24424     name: "images"
   24425     type_attr: "T"
   24426   }
   24427   input_arg {
   24428     name: "size"
   24429     type: DT_INT32
   24430   }
   24431   output_arg {
   24432     name: "resized_images"
   24433     type: DT_FLOAT
   24434   }
   24435   attr {
   24436     name: "T"
   24437     type: "type"
   24438     allowed_values {
   24439       list {
   24440         type: DT_UINT8
   24441         type: DT_INT8
   24442         type: DT_INT32
   24443         type: DT_FLOAT
   24444         type: DT_DOUBLE
   24445       }
   24446     }
   24447   }
   24448 }
   24449 op {
   24450   name: "ResizeArea"
   24451   input_arg {
   24452     name: "images"
   24453     type_attr: "T"
   24454   }
   24455   input_arg {
   24456     name: "size"
   24457     type: DT_INT32
   24458   }
   24459   output_arg {
   24460     name: "resized_images"
   24461     type: DT_FLOAT
   24462   }
   24463   attr {
   24464     name: "T"
   24465     type: "type"
   24466     allowed_values {
   24467       list {
   24468         type: DT_UINT8
   24469         type: DT_INT8
   24470         type: DT_INT16
   24471         type: DT_INT32
   24472         type: DT_INT64
   24473         type: DT_FLOAT
   24474         type: DT_DOUBLE
   24475       }
   24476     }
   24477   }
   24478 }
   24479 op {
   24480   name: "ResizeArea"
   24481   input_arg {
   24482     name: "images"
   24483     type_attr: "T"
   24484   }
   24485   input_arg {
   24486     name: "size"
   24487     type: DT_INT32
   24488   }
   24489   output_arg {
   24490     name: "resized_images"
   24491     type: DT_FLOAT
   24492   }
   24493   attr {
   24494     name: "T"
   24495     type: "type"
   24496     allowed_values {
   24497       list {
   24498         type: DT_UINT8
   24499         type: DT_INT8
   24500         type: DT_INT16
   24501         type: DT_INT32
   24502         type: DT_INT64
   24503         type: DT_FLOAT
   24504         type: DT_DOUBLE
   24505       }
   24506     }
   24507   }
   24508   attr {
   24509     name: "align_corners"
   24510     type: "bool"
   24511     default_value {
   24512       b: false
   24513     }
   24514   }
   24515 }
   24516 op {
   24517   name: "ResizeArea"
   24518   input_arg {
   24519     name: "images"
   24520     type_attr: "T"
   24521   }
   24522   input_arg {
   24523     name: "size"
   24524     type: DT_INT32
   24525   }
   24526   output_arg {
   24527     name: "resized_images"
   24528     type: DT_FLOAT
   24529   }
   24530   attr {
   24531     name: "T"
   24532     type: "type"
   24533     allowed_values {
   24534       list {
   24535         type: DT_UINT8
   24536         type: DT_INT8
   24537         type: DT_INT16
   24538         type: DT_INT32
   24539         type: DT_INT64
   24540         type: DT_HALF
   24541         type: DT_FLOAT
   24542         type: DT_DOUBLE
   24543       }
   24544     }
   24545   }
   24546   attr {
   24547     name: "align_corners"
   24548     type: "bool"
   24549     default_value {
   24550       b: false
   24551     }
   24552   }
   24553 }
   24554 op {
   24555   name: "ResizeBicubic"
   24556   input_arg {
   24557     name: "images"
   24558     type_attr: "T"
   24559   }
   24560   input_arg {
   24561     name: "size"
   24562     type: DT_INT32
   24563   }
   24564   output_arg {
   24565     name: "resized_images"
   24566     type: DT_FLOAT
   24567   }
   24568   attr {
   24569     name: "T"
   24570     type: "type"
   24571     allowed_values {
   24572       list {
   24573         type: DT_UINT8
   24574         type: DT_INT8
   24575         type: DT_INT32
   24576         type: DT_FLOAT
   24577         type: DT_DOUBLE
   24578       }
   24579     }
   24580   }
   24581 }
   24582 op {
   24583   name: "ResizeBicubic"
   24584   input_arg {
   24585     name: "images"
   24586     type_attr: "T"
   24587   }
   24588   input_arg {
   24589     name: "size"
   24590     type: DT_INT32
   24591   }
   24592   output_arg {
   24593     name: "resized_images"
   24594     type: DT_FLOAT
   24595   }
   24596   attr {
   24597     name: "T"
   24598     type: "type"
   24599     allowed_values {
   24600       list {
   24601         type: DT_UINT8
   24602         type: DT_INT8
   24603         type: DT_INT16
   24604         type: DT_INT32
   24605         type: DT_INT64
   24606         type: DT_FLOAT
   24607         type: DT_DOUBLE
   24608       }
   24609     }
   24610   }
   24611 }
   24612 op {
   24613   name: "ResizeBicubic"
   24614   input_arg {
   24615     name: "images"
   24616     type_attr: "T"
   24617   }
   24618   input_arg {
   24619     name: "size"
   24620     type: DT_INT32
   24621   }
   24622   output_arg {
   24623     name: "resized_images"
   24624     type: DT_FLOAT
   24625   }
   24626   attr {
   24627     name: "T"
   24628     type: "type"
   24629     allowed_values {
   24630       list {
   24631         type: DT_UINT8
   24632         type: DT_INT8
   24633         type: DT_INT16
   24634         type: DT_INT32
   24635         type: DT_INT64
   24636         type: DT_FLOAT
   24637         type: DT_DOUBLE
   24638       }
   24639     }
   24640   }
   24641   attr {
   24642     name: "align_corners"
   24643     type: "bool"
   24644     default_value {
   24645       b: false
   24646     }
   24647   }
   24648 }
   24649 op {
   24650   name: "ResizeBicubic"
   24651   input_arg {
   24652     name: "images"
   24653     type_attr: "T"
   24654   }
   24655   input_arg {
   24656     name: "size"
   24657     type: DT_INT32
   24658   }
   24659   output_arg {
   24660     name: "resized_images"
   24661     type: DT_FLOAT
   24662   }
   24663   attr {
   24664     name: "T"
   24665     type: "type"
   24666     allowed_values {
   24667       list {
   24668         type: DT_UINT8
   24669         type: DT_INT8
   24670         type: DT_INT16
   24671         type: DT_INT32
   24672         type: DT_INT64
   24673         type: DT_HALF
   24674         type: DT_FLOAT
   24675         type: DT_DOUBLE
   24676       }
   24677     }
   24678   }
   24679   attr {
   24680     name: "align_corners"
   24681     type: "bool"
   24682     default_value {
   24683       b: false
   24684     }
   24685   }
   24686 }
   24687 op {
   24688   name: "ResizeBilinear"
   24689   input_arg {
   24690     name: "images"
   24691     type_attr: "T"
   24692   }
   24693   input_arg {
   24694     name: "size"
   24695     type: DT_INT32
   24696   }
   24697   output_arg {
   24698     name: "resized_images"
   24699     type: DT_FLOAT
   24700   }
   24701   attr {
   24702     name: "T"
   24703     type: "type"
   24704     allowed_values {
   24705       list {
   24706         type: DT_UINT8
   24707         type: DT_INT8
   24708         type: DT_INT32
   24709         type: DT_FLOAT
   24710         type: DT_DOUBLE
   24711       }
   24712     }
   24713   }
   24714 }
   24715 op {
   24716   name: "ResizeBilinear"
   24717   input_arg {
   24718     name: "images"
   24719     type_attr: "T"
   24720   }
   24721   input_arg {
   24722     name: "size"
   24723     type: DT_INT32
   24724   }
   24725   output_arg {
   24726     name: "resized_images"
   24727     type: DT_FLOAT
   24728   }
   24729   attr {
   24730     name: "T"
   24731     type: "type"
   24732     allowed_values {
   24733       list {
   24734         type: DT_UINT8
   24735         type: DT_INT8
   24736         type: DT_INT16
   24737         type: DT_INT32
   24738         type: DT_INT64
   24739         type: DT_FLOAT
   24740         type: DT_DOUBLE
   24741       }
   24742     }
   24743   }
   24744 }
   24745 op {
   24746   name: "ResizeBilinear"
   24747   input_arg {
   24748     name: "images"
   24749     type_attr: "T"
   24750   }
   24751   input_arg {
   24752     name: "size"
   24753     type: DT_INT32
   24754   }
   24755   output_arg {
   24756     name: "resized_images"
   24757     type: DT_FLOAT
   24758   }
   24759   attr {
   24760     name: "T"
   24761     type: "type"
   24762     allowed_values {
   24763       list {
   24764         type: DT_UINT8
   24765         type: DT_INT8
   24766         type: DT_INT16
   24767         type: DT_INT32
   24768         type: DT_INT64
   24769         type: DT_FLOAT
   24770         type: DT_DOUBLE
   24771       }
   24772     }
   24773   }
   24774   attr {
   24775     name: "align_corners"
   24776     type: "bool"
   24777     default_value {
   24778       b: false
   24779     }
   24780   }
   24781 }
   24782 op {
   24783   name: "ResizeBilinear"
   24784   input_arg {
   24785     name: "images"
   24786     type_attr: "T"
   24787   }
   24788   input_arg {
   24789     name: "size"
   24790     type: DT_INT32
   24791   }
   24792   output_arg {
   24793     name: "resized_images"
   24794     type: DT_FLOAT
   24795   }
   24796   attr {
   24797     name: "T"
   24798     type: "type"
   24799     allowed_values {
   24800       list {
   24801         type: DT_UINT8
   24802         type: DT_INT8
   24803         type: DT_INT16
   24804         type: DT_INT32
   24805         type: DT_INT64
   24806         type: DT_HALF
   24807         type: DT_FLOAT
   24808         type: DT_DOUBLE
   24809       }
   24810     }
   24811   }
   24812   attr {
   24813     name: "align_corners"
   24814     type: "bool"
   24815     default_value {
   24816       b: false
   24817     }
   24818   }
   24819 }
   24820 op {
   24821   name: "ResizeBilinearGrad"
   24822   input_arg {
   24823     name: "grads"
   24824     type: DT_FLOAT
   24825   }
   24826   input_arg {
   24827     name: "original_image"
   24828     type_attr: "T"
   24829   }
   24830   output_arg {
   24831     name: "output"
   24832     type_attr: "T"
   24833   }
   24834   attr {
   24835     name: "T"
   24836     type: "type"
   24837     allowed_values {
   24838       list {
   24839         type: DT_FLOAT
   24840         type: DT_DOUBLE
   24841       }
   24842     }
   24843   }
   24844 }
   24845 op {
   24846   name: "ResizeBilinearGrad"
   24847   input_arg {
   24848     name: "grads"
   24849     type: DT_FLOAT
   24850   }
   24851   input_arg {
   24852     name: "original_image"
   24853     type_attr: "T"
   24854   }
   24855   output_arg {
   24856     name: "output"
   24857     type_attr: "T"
   24858   }
   24859   attr {
   24860     name: "T"
   24861     type: "type"
   24862     allowed_values {
   24863       list {
   24864         type: DT_FLOAT
   24865         type: DT_DOUBLE
   24866       }
   24867     }
   24868   }
   24869   attr {
   24870     name: "align_corners"
   24871     type: "bool"
   24872     default_value {
   24873       b: false
   24874     }
   24875   }
   24876 }
   24877 op {
   24878   name: "ResizeBilinearGrad"
   24879   input_arg {
   24880     name: "grads"
   24881     type: DT_FLOAT
   24882   }
   24883   input_arg {
   24884     name: "original_image"
   24885     type_attr: "T"
   24886   }
   24887   output_arg {
   24888     name: "output"
   24889     type_attr: "T"
   24890   }
   24891   attr {
   24892     name: "T"
   24893     type: "type"
   24894     allowed_values {
   24895       list {
   24896         type: DT_FLOAT
   24897         type: DT_HALF
   24898         type: DT_DOUBLE
   24899       }
   24900     }
   24901   }
   24902   attr {
   24903     name: "align_corners"
   24904     type: "bool"
   24905     default_value {
   24906       b: false
   24907     }
   24908   }
   24909 }
   24910 op {
   24911   name: "ResizeNearestNeighbor"
   24912   input_arg {
   24913     name: "images"
   24914     type_attr: "T"
   24915   }
   24916   input_arg {
   24917     name: "size"
   24918     type: DT_INT32
   24919   }
   24920   output_arg {
   24921     name: "resized_images"
   24922     type_attr: "T"
   24923   }
   24924   attr {
   24925     name: "T"
   24926     type: "type"
   24927     allowed_values {
   24928       list {
   24929         type: DT_UINT8
   24930         type: DT_INT8
   24931         type: DT_INT32
   24932         type: DT_FLOAT
   24933         type: DT_DOUBLE
   24934       }
   24935     }
   24936   }
   24937 }
   24938 op {
   24939   name: "ResizeNearestNeighbor"
   24940   input_arg {
   24941     name: "images"
   24942     type_attr: "T"
   24943   }
   24944   input_arg {
   24945     name: "size"
   24946     type: DT_INT32
   24947   }
   24948   output_arg {
   24949     name: "resized_images"
   24950     type_attr: "T"
   24951   }
   24952   attr {
   24953     name: "T"
   24954     type: "type"
   24955     allowed_values {
   24956       list {
   24957         type: DT_UINT8
   24958         type: DT_INT8
   24959         type: DT_INT16
   24960         type: DT_INT32
   24961         type: DT_INT64
   24962         type: DT_FLOAT
   24963         type: DT_DOUBLE
   24964       }
   24965     }
   24966   }
   24967 }
   24968 op {
   24969   name: "ResizeNearestNeighbor"
   24970   input_arg {
   24971     name: "images"
   24972     type_attr: "T"
   24973   }
   24974   input_arg {
   24975     name: "size"
   24976     type: DT_INT32
   24977   }
   24978   output_arg {
   24979     name: "resized_images"
   24980     type_attr: "T"
   24981   }
   24982   attr {
   24983     name: "T"
   24984     type: "type"
   24985     allowed_values {
   24986       list {
   24987         type: DT_UINT8
   24988         type: DT_INT8
   24989         type: DT_INT16
   24990         type: DT_INT32
   24991         type: DT_INT64
   24992         type: DT_FLOAT
   24993         type: DT_DOUBLE
   24994       }
   24995     }
   24996   }
   24997   attr {
   24998     name: "align_corners"
   24999     type: "bool"
   25000     default_value {
   25001       b: false
   25002     }
   25003   }
   25004 }
   25005 op {
   25006   name: "ResizeNearestNeighbor"
   25007   input_arg {
   25008     name: "images"
   25009     type_attr: "T"
   25010   }
   25011   input_arg {
   25012     name: "size"
   25013     type: DT_INT32
   25014   }
   25015   output_arg {
   25016     name: "resized_images"
   25017     type_attr: "T"
   25018   }
   25019   attr {
   25020     name: "T"
   25021     type: "type"
   25022     allowed_values {
   25023       list {
   25024         type: DT_UINT8
   25025         type: DT_INT8
   25026         type: DT_INT16
   25027         type: DT_INT32
   25028         type: DT_INT64
   25029         type: DT_HALF
   25030         type: DT_FLOAT
   25031         type: DT_DOUBLE
   25032       }
   25033     }
   25034   }
   25035   attr {
   25036     name: "align_corners"
   25037     type: "bool"
   25038     default_value {
   25039       b: false
   25040     }
   25041   }
   25042 }
   25043 op {
   25044   name: "ResizeNearestNeighborGrad"
   25045   input_arg {
   25046     name: "grads"
   25047     type_attr: "T"
   25048   }
   25049   input_arg {
   25050     name: "size"
   25051     type: DT_INT32
   25052   }
   25053   output_arg {
   25054     name: "output"
   25055     type_attr: "T"
   25056   }
   25057   attr {
   25058     name: "T"
   25059     type: "type"
   25060     allowed_values {
   25061       list {
   25062         type: DT_UINT8
   25063         type: DT_INT8
   25064         type: DT_INT32
   25065         type: DT_FLOAT
   25066         type: DT_DOUBLE
   25067       }
   25068     }
   25069   }
   25070 }
   25071 op {
   25072   name: "ResizeNearestNeighborGrad"
   25073   input_arg {
   25074     name: "grads"
   25075     type_attr: "T"
   25076   }
   25077   input_arg {
   25078     name: "size"
   25079     type: DT_INT32
   25080   }
   25081   output_arg {
   25082     name: "output"
   25083     type_attr: "T"
   25084   }
   25085   attr {
   25086     name: "T"
   25087     type: "type"
   25088     allowed_values {
   25089       list {
   25090         type: DT_UINT8
   25091         type: DT_INT8
   25092         type: DT_INT32
   25093         type: DT_FLOAT
   25094         type: DT_DOUBLE
   25095       }
   25096     }
   25097   }
   25098   attr {
   25099     name: "align_corners"
   25100     type: "bool"
   25101     default_value {
   25102       b: false
   25103     }
   25104   }
   25105 }
   25106 op {
   25107   name: "ResizeNearestNeighborGrad"
   25108   input_arg {
   25109     name: "grads"
   25110     type_attr: "T"
   25111   }
   25112   input_arg {
   25113     name: "size"
   25114     type: DT_INT32
   25115   }
   25116   output_arg {
   25117     name: "output"
   25118     type_attr: "T"
   25119   }
   25120   attr {
   25121     name: "T"
   25122     type: "type"
   25123     allowed_values {
   25124       list {
   25125         type: DT_UINT8
   25126         type: DT_INT8
   25127         type: DT_INT32
   25128         type: DT_HALF
   25129         type: DT_FLOAT
   25130         type: DT_DOUBLE
   25131       }
   25132     }
   25133   }
   25134   attr {
   25135     name: "align_corners"
   25136     type: "bool"
   25137     default_value {
   25138       b: false
   25139     }
   25140   }
   25141 }
   25142 op {
   25143   name: "ResourceApplyAdadelta"
   25144   input_arg {
   25145     name: "var"
   25146     type: DT_RESOURCE
   25147   }
   25148   input_arg {
   25149     name: "accum"
   25150     type: DT_RESOURCE
   25151   }
   25152   input_arg {
   25153     name: "accum_update"
   25154     type: DT_RESOURCE
   25155   }
   25156   input_arg {
   25157     name: "lr"
   25158     type_attr: "T"
   25159   }
   25160   input_arg {
   25161     name: "rho"
   25162     type_attr: "T"
   25163   }
   25164   input_arg {
   25165     name: "epsilon"
   25166     type_attr: "T"
   25167   }
   25168   input_arg {
   25169     name: "grad"
   25170     type_attr: "T"
   25171   }
   25172   attr {
   25173     name: "T"
   25174     type: "type"
   25175     allowed_values {
   25176       list {
   25177         type: DT_FLOAT
   25178         type: DT_DOUBLE
   25179         type: DT_INT64
   25180         type: DT_INT32
   25181         type: DT_UINT8
   25182         type: DT_UINT16
   25183         type: DT_INT16
   25184         type: DT_INT8
   25185         type: DT_COMPLEX64
   25186         type: DT_COMPLEX128
   25187         type: DT_QINT8
   25188         type: DT_QUINT8
   25189         type: DT_QINT32
   25190         type: DT_HALF
   25191       }
   25192     }
   25193   }
   25194   attr {
   25195     name: "use_locking"
   25196     type: "bool"
   25197     default_value {
   25198       b: false
   25199     }
   25200   }
   25201 }
   25202 op {
   25203   name: "ResourceApplyAdadelta"
   25204   input_arg {
   25205     name: "var"
   25206     type: DT_RESOURCE
   25207   }
   25208   input_arg {
   25209     name: "accum"
   25210     type: DT_RESOURCE
   25211   }
   25212   input_arg {
   25213     name: "accum_update"
   25214     type: DT_RESOURCE
   25215   }
   25216   input_arg {
   25217     name: "lr"
   25218     type_attr: "T"
   25219   }
   25220   input_arg {
   25221     name: "rho"
   25222     type_attr: "T"
   25223   }
   25224   input_arg {
   25225     name: "epsilon"
   25226     type_attr: "T"
   25227   }
   25228   input_arg {
   25229     name: "grad"
   25230     type_attr: "T"
   25231   }
   25232   attr {
   25233     name: "T"
   25234     type: "type"
   25235     allowed_values {
   25236       list {
   25237         type: DT_FLOAT
   25238         type: DT_DOUBLE
   25239         type: DT_INT64
   25240         type: DT_INT32
   25241         type: DT_UINT8
   25242         type: DT_UINT16
   25243         type: DT_INT16
   25244         type: DT_INT8
   25245         type: DT_COMPLEX64
   25246         type: DT_COMPLEX128
   25247         type: DT_QINT8
   25248         type: DT_QUINT8
   25249         type: DT_QINT32
   25250         type: DT_HALF
   25251       }
   25252     }
   25253   }
   25254   attr {
   25255     name: "use_locking"
   25256     type: "bool"
   25257     default_value {
   25258       b: false
   25259     }
   25260   }
   25261   is_stateful: true
   25262 }
   25263 op {
   25264   name: "ResourceApplyAdagrad"
   25265   input_arg {
   25266     name: "var"
   25267     type: DT_RESOURCE
   25268   }
   25269   input_arg {
   25270     name: "accum"
   25271     type: DT_RESOURCE
   25272   }
   25273   input_arg {
   25274     name: "lr"
   25275     type_attr: "T"
   25276   }
   25277   input_arg {
   25278     name: "grad"
   25279     type_attr: "T"
   25280   }
   25281   attr {
   25282     name: "T"
   25283     type: "type"
   25284     allowed_values {
   25285       list {
   25286         type: DT_FLOAT
   25287         type: DT_DOUBLE
   25288         type: DT_INT64
   25289         type: DT_INT32
   25290         type: DT_UINT8
   25291         type: DT_UINT16
   25292         type: DT_INT16
   25293         type: DT_INT8
   25294         type: DT_COMPLEX64
   25295         type: DT_COMPLEX128
   25296         type: DT_QINT8
   25297         type: DT_QUINT8
   25298         type: DT_QINT32
   25299         type: DT_HALF
   25300       }
   25301     }
   25302   }
   25303   attr {
   25304     name: "use_locking"
   25305     type: "bool"
   25306     default_value {
   25307       b: false
   25308     }
   25309   }
   25310 }
   25311 op {
   25312   name: "ResourceApplyAdagrad"
   25313   input_arg {
   25314     name: "var"
   25315     type: DT_RESOURCE
   25316   }
   25317   input_arg {
   25318     name: "accum"
   25319     type: DT_RESOURCE
   25320   }
   25321   input_arg {
   25322     name: "lr"
   25323     type_attr: "T"
   25324   }
   25325   input_arg {
   25326     name: "grad"
   25327     type_attr: "T"
   25328   }
   25329   attr {
   25330     name: "T"
   25331     type: "type"
   25332     allowed_values {
   25333       list {
   25334         type: DT_FLOAT
   25335         type: DT_DOUBLE
   25336         type: DT_INT64
   25337         type: DT_INT32
   25338         type: DT_UINT8
   25339         type: DT_UINT16
   25340         type: DT_INT16
   25341         type: DT_INT8
   25342         type: DT_COMPLEX64
   25343         type: DT_COMPLEX128
   25344         type: DT_QINT8
   25345         type: DT_QUINT8
   25346         type: DT_QINT32
   25347         type: DT_HALF
   25348       }
   25349     }
   25350   }
   25351   attr {
   25352     name: "use_locking"
   25353     type: "bool"
   25354     default_value {
   25355       b: false
   25356     }
   25357   }
   25358   is_stateful: true
   25359 }
   25360 op {
   25361   name: "ResourceApplyAdagradDA"
   25362   input_arg {
   25363     name: "var"
   25364     type: DT_RESOURCE
   25365   }
   25366   input_arg {
   25367     name: "gradient_accumulator"
   25368     type: DT_RESOURCE
   25369   }
   25370   input_arg {
   25371     name: "gradient_squared_accumulator"
   25372     type: DT_RESOURCE
   25373   }
   25374   input_arg {
   25375     name: "grad"
   25376     type_attr: "T"
   25377   }
   25378   input_arg {
   25379     name: "lr"
   25380     type_attr: "T"
   25381   }
   25382   input_arg {
   25383     name: "l1"
   25384     type_attr: "T"
   25385   }
   25386   input_arg {
   25387     name: "l2"
   25388     type_attr: "T"
   25389   }
   25390   input_arg {
   25391     name: "global_step"
   25392     type: DT_INT64
   25393   }
   25394   attr {
   25395     name: "T"
   25396     type: "type"
   25397     allowed_values {
   25398       list {
   25399         type: DT_FLOAT
   25400         type: DT_DOUBLE
   25401         type: DT_INT64
   25402         type: DT_INT32
   25403         type: DT_UINT8
   25404         type: DT_UINT16
   25405         type: DT_INT16
   25406         type: DT_INT8
   25407         type: DT_COMPLEX64
   25408         type: DT_COMPLEX128
   25409         type: DT_QINT8
   25410         type: DT_QUINT8
   25411         type: DT_QINT32
   25412         type: DT_HALF
   25413       }
   25414     }
   25415   }
   25416   attr {
   25417     name: "use_locking"
   25418     type: "bool"
   25419     default_value {
   25420       b: false
   25421     }
   25422   }
   25423 }
   25424 op {
   25425   name: "ResourceApplyAdagradDA"
   25426   input_arg {
   25427     name: "var"
   25428     type: DT_RESOURCE
   25429   }
   25430   input_arg {
   25431     name: "gradient_accumulator"
   25432     type: DT_RESOURCE
   25433   }
   25434   input_arg {
   25435     name: "gradient_squared_accumulator"
   25436     type: DT_RESOURCE
   25437   }
   25438   input_arg {
   25439     name: "grad"
   25440     type_attr: "T"
   25441   }
   25442   input_arg {
   25443     name: "lr"
   25444     type_attr: "T"
   25445   }
   25446   input_arg {
   25447     name: "l1"
   25448     type_attr: "T"
   25449   }
   25450   input_arg {
   25451     name: "l2"
   25452     type_attr: "T"
   25453   }
   25454   input_arg {
   25455     name: "global_step"
   25456     type: DT_INT64
   25457   }
   25458   attr {
   25459     name: "T"
   25460     type: "type"
   25461     allowed_values {
   25462       list {
   25463         type: DT_FLOAT
   25464         type: DT_DOUBLE
   25465         type: DT_INT64
   25466         type: DT_INT32
   25467         type: DT_UINT8
   25468         type: DT_UINT16
   25469         type: DT_INT16
   25470         type: DT_INT8
   25471         type: DT_COMPLEX64
   25472         type: DT_COMPLEX128
   25473         type: DT_QINT8
   25474         type: DT_QUINT8
   25475         type: DT_QINT32
   25476         type: DT_HALF
   25477       }
   25478     }
   25479   }
   25480   attr {
   25481     name: "use_locking"
   25482     type: "bool"
   25483     default_value {
   25484       b: false
   25485     }
   25486   }
   25487   is_stateful: true
   25488 }
   25489 op {
   25490   name: "ResourceApplyAdam"
   25491   input_arg {
   25492     name: "var"
   25493     type: DT_RESOURCE
   25494   }
   25495   input_arg {
   25496     name: "m"
   25497     type: DT_RESOURCE
   25498   }
   25499   input_arg {
   25500     name: "v"
   25501     type: DT_RESOURCE
   25502   }
   25503   input_arg {
   25504     name: "beta1_power"
   25505     type_attr: "T"
   25506   }
   25507   input_arg {
   25508     name: "beta2_power"
   25509     type_attr: "T"
   25510   }
   25511   input_arg {
   25512     name: "lr"
   25513     type_attr: "T"
   25514   }
   25515   input_arg {
   25516     name: "beta1"
   25517     type_attr: "T"
   25518   }
   25519   input_arg {
   25520     name: "beta2"
   25521     type_attr: "T"
   25522   }
   25523   input_arg {
   25524     name: "epsilon"
   25525     type_attr: "T"
   25526   }
   25527   input_arg {
   25528     name: "grad"
   25529     type_attr: "T"
   25530   }
   25531   attr {
   25532     name: "T"
   25533     type: "type"
   25534     allowed_values {
   25535       list {
   25536         type: DT_FLOAT
   25537         type: DT_DOUBLE
   25538         type: DT_INT64
   25539         type: DT_INT32
   25540         type: DT_UINT8
   25541         type: DT_UINT16
   25542         type: DT_INT16
   25543         type: DT_INT8
   25544         type: DT_COMPLEX64
   25545         type: DT_COMPLEX128
   25546         type: DT_QINT8
   25547         type: DT_QUINT8
   25548         type: DT_QINT32
   25549         type: DT_HALF
   25550       }
   25551     }
   25552   }
   25553   attr {
   25554     name: "use_locking"
   25555     type: "bool"
   25556     default_value {
   25557       b: false
   25558     }
   25559   }
   25560 }
   25561 op {
   25562   name: "ResourceApplyAdam"
   25563   input_arg {
   25564     name: "var"
   25565     type: DT_RESOURCE
   25566   }
   25567   input_arg {
   25568     name: "m"
   25569     type: DT_RESOURCE
   25570   }
   25571   input_arg {
   25572     name: "v"
   25573     type: DT_RESOURCE
   25574   }
   25575   input_arg {
   25576     name: "beta1_power"
   25577     type_attr: "T"
   25578   }
   25579   input_arg {
   25580     name: "beta2_power"
   25581     type_attr: "T"
   25582   }
   25583   input_arg {
   25584     name: "lr"
   25585     type_attr: "T"
   25586   }
   25587   input_arg {
   25588     name: "beta1"
   25589     type_attr: "T"
   25590   }
   25591   input_arg {
   25592     name: "beta2"
   25593     type_attr: "T"
   25594   }
   25595   input_arg {
   25596     name: "epsilon"
   25597     type_attr: "T"
   25598   }
   25599   input_arg {
   25600     name: "grad"
   25601     type_attr: "T"
   25602   }
   25603   attr {
   25604     name: "T"
   25605     type: "type"
   25606     allowed_values {
   25607       list {
   25608         type: DT_FLOAT
   25609         type: DT_DOUBLE
   25610         type: DT_INT64
   25611         type: DT_INT32
   25612         type: DT_UINT8
   25613         type: DT_UINT16
   25614         type: DT_INT16
   25615         type: DT_INT8
   25616         type: DT_COMPLEX64
   25617         type: DT_COMPLEX128
   25618         type: DT_QINT8
   25619         type: DT_QUINT8
   25620         type: DT_QINT32
   25621         type: DT_HALF
   25622       }
   25623     }
   25624   }
   25625   attr {
   25626     name: "use_locking"
   25627     type: "bool"
   25628     default_value {
   25629       b: false
   25630     }
   25631   }
   25632   is_stateful: true
   25633 }
   25634 op {
   25635   name: "ResourceApplyCenteredRMSProp"
   25636   input_arg {
   25637     name: "var"
   25638     type: DT_RESOURCE
   25639   }
   25640   input_arg {
   25641     name: "mg"
   25642     type: DT_RESOURCE
   25643   }
   25644   input_arg {
   25645     name: "ms"
   25646     type: DT_RESOURCE
   25647   }
   25648   input_arg {
   25649     name: "mom"
   25650     type: DT_RESOURCE
   25651   }
   25652   input_arg {
   25653     name: "lr"
   25654     type_attr: "T"
   25655   }
   25656   input_arg {
   25657     name: "rho"
   25658     type_attr: "T"
   25659   }
   25660   input_arg {
   25661     name: "momentum"
   25662     type_attr: "T"
   25663   }
   25664   input_arg {
   25665     name: "epsilon"
   25666     type_attr: "T"
   25667   }
   25668   input_arg {
   25669     name: "grad"
   25670     type_attr: "T"
   25671   }
   25672   attr {
   25673     name: "T"
   25674     type: "type"
   25675     allowed_values {
   25676       list {
   25677         type: DT_FLOAT
   25678         type: DT_DOUBLE
   25679         type: DT_INT64
   25680         type: DT_INT32
   25681         type: DT_UINT8
   25682         type: DT_UINT16
   25683         type: DT_INT16
   25684         type: DT_INT8
   25685         type: DT_COMPLEX64
   25686         type: DT_COMPLEX128
   25687         type: DT_QINT8
   25688         type: DT_QUINT8
   25689         type: DT_QINT32
   25690         type: DT_HALF
   25691       }
   25692     }
   25693   }
   25694   attr {
   25695     name: "use_locking"
   25696     type: "bool"
   25697     default_value {
   25698       b: false
   25699     }
   25700   }
   25701 }
   25702 op {
   25703   name: "ResourceApplyCenteredRMSProp"
   25704   input_arg {
   25705     name: "var"
   25706     type: DT_RESOURCE
   25707   }
   25708   input_arg {
   25709     name: "mg"
   25710     type: DT_RESOURCE
   25711   }
   25712   input_arg {
   25713     name: "ms"
   25714     type: DT_RESOURCE
   25715   }
   25716   input_arg {
   25717     name: "mom"
   25718     type: DT_RESOURCE
   25719   }
   25720   input_arg {
   25721     name: "lr"
   25722     type_attr: "T"
   25723   }
   25724   input_arg {
   25725     name: "rho"
   25726     type_attr: "T"
   25727   }
   25728   input_arg {
   25729     name: "momentum"
   25730     type_attr: "T"
   25731   }
   25732   input_arg {
   25733     name: "epsilon"
   25734     type_attr: "T"
   25735   }
   25736   input_arg {
   25737     name: "grad"
   25738     type_attr: "T"
   25739   }
   25740   attr {
   25741     name: "T"
   25742     type: "type"
   25743     allowed_values {
   25744       list {
   25745         type: DT_FLOAT
   25746         type: DT_DOUBLE
   25747         type: DT_INT64
   25748         type: DT_INT32
   25749         type: DT_UINT8
   25750         type: DT_UINT16
   25751         type: DT_INT16
   25752         type: DT_INT8
   25753         type: DT_COMPLEX64
   25754         type: DT_COMPLEX128
   25755         type: DT_QINT8
   25756         type: DT_QUINT8
   25757         type: DT_QINT32
   25758         type: DT_HALF
   25759       }
   25760     }
   25761   }
   25762   attr {
   25763     name: "use_locking"
   25764     type: "bool"
   25765     default_value {
   25766       b: false
   25767     }
   25768   }
   25769   is_stateful: true
   25770 }
   25771 op {
   25772   name: "ResourceApplyFtrl"
   25773   input_arg {
   25774     name: "var"
   25775     type: DT_RESOURCE
   25776   }
   25777   input_arg {
   25778     name: "accum"
   25779     type: DT_RESOURCE
   25780   }
   25781   input_arg {
   25782     name: "linear"
   25783     type: DT_RESOURCE
   25784   }
   25785   input_arg {
   25786     name: "grad"
   25787     type_attr: "T"
   25788   }
   25789   input_arg {
   25790     name: "lr"
   25791     type_attr: "T"
   25792   }
   25793   input_arg {
   25794     name: "l1"
   25795     type_attr: "T"
   25796   }
   25797   input_arg {
   25798     name: "l2"
   25799     type_attr: "T"
   25800   }
   25801   input_arg {
   25802     name: "lr_power"
   25803     type_attr: "T"
   25804   }
   25805   attr {
   25806     name: "T"
   25807     type: "type"
   25808     allowed_values {
   25809       list {
   25810         type: DT_FLOAT
   25811         type: DT_DOUBLE
   25812         type: DT_INT64
   25813         type: DT_INT32
   25814         type: DT_UINT8
   25815         type: DT_UINT16
   25816         type: DT_INT16
   25817         type: DT_INT8
   25818         type: DT_COMPLEX64
   25819         type: DT_COMPLEX128
   25820         type: DT_QINT8
   25821         type: DT_QUINT8
   25822         type: DT_QINT32
   25823         type: DT_HALF
   25824       }
   25825     }
   25826   }
   25827   attr {
   25828     name: "use_locking"
   25829     type: "bool"
   25830     default_value {
   25831       b: false
   25832     }
   25833   }
   25834 }
   25835 op {
   25836   name: "ResourceApplyFtrl"
   25837   input_arg {
   25838     name: "var"
   25839     type: DT_RESOURCE
   25840   }
   25841   input_arg {
   25842     name: "accum"
   25843     type: DT_RESOURCE
   25844   }
   25845   input_arg {
   25846     name: "linear"
   25847     type: DT_RESOURCE
   25848   }
   25849   input_arg {
   25850     name: "grad"
   25851     type_attr: "T"
   25852   }
   25853   input_arg {
   25854     name: "lr"
   25855     type_attr: "T"
   25856   }
   25857   input_arg {
   25858     name: "l1"
   25859     type_attr: "T"
   25860   }
   25861   input_arg {
   25862     name: "l2"
   25863     type_attr: "T"
   25864   }
   25865   input_arg {
   25866     name: "lr_power"
   25867     type_attr: "T"
   25868   }
   25869   attr {
   25870     name: "T"
   25871     type: "type"
   25872     allowed_values {
   25873       list {
   25874         type: DT_FLOAT
   25875         type: DT_DOUBLE
   25876         type: DT_INT64
   25877         type: DT_INT32
   25878         type: DT_UINT8
   25879         type: DT_UINT16
   25880         type: DT_INT16
   25881         type: DT_INT8
   25882         type: DT_COMPLEX64
   25883         type: DT_COMPLEX128
   25884         type: DT_QINT8
   25885         type: DT_QUINT8
   25886         type: DT_QINT32
   25887         type: DT_HALF
   25888       }
   25889     }
   25890   }
   25891   attr {
   25892     name: "use_locking"
   25893     type: "bool"
   25894     default_value {
   25895       b: false
   25896     }
   25897   }
   25898   is_stateful: true
   25899 }
   25900 op {
   25901   name: "ResourceApplyGradientDescent"
   25902   input_arg {
   25903     name: "var"
   25904     type: DT_RESOURCE
   25905   }
   25906   input_arg {
   25907     name: "alpha"
   25908     type_attr: "T"
   25909   }
   25910   input_arg {
   25911     name: "delta"
   25912     type_attr: "T"
   25913   }
   25914   attr {
   25915     name: "T"
   25916     type: "type"
   25917     allowed_values {
   25918       list {
   25919         type: DT_FLOAT
   25920         type: DT_DOUBLE
   25921         type: DT_INT64
   25922         type: DT_INT32
   25923         type: DT_UINT8
   25924         type: DT_UINT16
   25925         type: DT_INT16
   25926         type: DT_INT8
   25927         type: DT_COMPLEX64
   25928         type: DT_COMPLEX128
   25929         type: DT_QINT8
   25930         type: DT_QUINT8
   25931         type: DT_QINT32
   25932         type: DT_HALF
   25933       }
   25934     }
   25935   }
   25936   attr {
   25937     name: "use_locking"
   25938     type: "bool"
   25939     default_value {
   25940       b: false
   25941     }
   25942   }
   25943 }
   25944 op {
   25945   name: "ResourceApplyGradientDescent"
   25946   input_arg {
   25947     name: "var"
   25948     type: DT_RESOURCE
   25949   }
   25950   input_arg {
   25951     name: "alpha"
   25952     type_attr: "T"
   25953   }
   25954   input_arg {
   25955     name: "delta"
   25956     type_attr: "T"
   25957   }
   25958   attr {
   25959     name: "T"
   25960     type: "type"
   25961     allowed_values {
   25962       list {
   25963         type: DT_FLOAT
   25964         type: DT_DOUBLE
   25965         type: DT_INT64
   25966         type: DT_INT32
   25967         type: DT_UINT8
   25968         type: DT_UINT16
   25969         type: DT_INT16
   25970         type: DT_INT8
   25971         type: DT_COMPLEX64
   25972         type: DT_COMPLEX128
   25973         type: DT_QINT8
   25974         type: DT_QUINT8
   25975         type: DT_QINT32
   25976         type: DT_HALF
   25977       }
   25978     }
   25979   }
   25980   attr {
   25981     name: "use_locking"
   25982     type: "bool"
   25983     default_value {
   25984       b: false
   25985     }
   25986   }
   25987   is_stateful: true
   25988 }
   25989 op {
   25990   name: "ResourceApplyMomentum"
   25991   input_arg {
   25992     name: "var"
   25993     type: DT_RESOURCE
   25994   }
   25995   input_arg {
   25996     name: "accum"
   25997     type: DT_RESOURCE
   25998   }
   25999   input_arg {
   26000     name: "lr"
   26001     type_attr: "T"
   26002   }
   26003   input_arg {
   26004     name: "grad"
   26005     type_attr: "T"
   26006   }
   26007   input_arg {
   26008     name: "momentum"
   26009     type_attr: "T"
   26010   }
   26011   attr {
   26012     name: "T"
   26013     type: "type"
   26014     allowed_values {
   26015       list {
   26016         type: DT_FLOAT
   26017         type: DT_DOUBLE
   26018         type: DT_INT64
   26019         type: DT_INT32
   26020         type: DT_UINT8
   26021         type: DT_UINT16
   26022         type: DT_INT16
   26023         type: DT_INT8
   26024         type: DT_COMPLEX64
   26025         type: DT_COMPLEX128
   26026         type: DT_QINT8
   26027         type: DT_QUINT8
   26028         type: DT_QINT32
   26029         type: DT_HALF
   26030       }
   26031     }
   26032   }
   26033   attr {
   26034     name: "use_locking"
   26035     type: "bool"
   26036     default_value {
   26037       b: false
   26038     }
   26039   }
   26040   attr {
   26041     name: "use_nesterov"
   26042     type: "bool"
   26043     default_value {
   26044       b: false
   26045     }
   26046   }
   26047 }
   26048 op {
   26049   name: "ResourceApplyMomentum"
   26050   input_arg {
   26051     name: "var"
   26052     type: DT_RESOURCE
   26053   }
   26054   input_arg {
   26055     name: "accum"
   26056     type: DT_RESOURCE
   26057   }
   26058   input_arg {
   26059     name: "lr"
   26060     type_attr: "T"
   26061   }
   26062   input_arg {
   26063     name: "grad"
   26064     type_attr: "T"
   26065   }
   26066   input_arg {
   26067     name: "momentum"
   26068     type_attr: "T"
   26069   }
   26070   attr {
   26071     name: "T"
   26072     type: "type"
   26073     allowed_values {
   26074       list {
   26075         type: DT_FLOAT
   26076         type: DT_DOUBLE
   26077         type: DT_INT64
   26078         type: DT_INT32
   26079         type: DT_UINT8
   26080         type: DT_UINT16
   26081         type: DT_INT16
   26082         type: DT_INT8
   26083         type: DT_COMPLEX64
   26084         type: DT_COMPLEX128
   26085         type: DT_QINT8
   26086         type: DT_QUINT8
   26087         type: DT_QINT32
   26088         type: DT_HALF
   26089       }
   26090     }
   26091   }
   26092   attr {
   26093     name: "use_locking"
   26094     type: "bool"
   26095     default_value {
   26096       b: false
   26097     }
   26098   }
   26099   attr {
   26100     name: "use_nesterov"
   26101     type: "bool"
   26102     default_value {
   26103       b: false
   26104     }
   26105   }
   26106   is_stateful: true
   26107 }
   26108 op {
   26109   name: "ResourceApplyProximalAdagrad"
   26110   input_arg {
   26111     name: "var"
   26112     type: DT_RESOURCE
   26113   }
   26114   input_arg {
   26115     name: "accum"
   26116     type: DT_RESOURCE
   26117   }
   26118   input_arg {
   26119     name: "lr"
   26120     type_attr: "T"
   26121   }
   26122   input_arg {
   26123     name: "l1"
   26124     type_attr: "T"
   26125   }
   26126   input_arg {
   26127     name: "l2"
   26128     type_attr: "T"
   26129   }
   26130   input_arg {
   26131     name: "grad"
   26132     type_attr: "T"
   26133   }
   26134   attr {
   26135     name: "T"
   26136     type: "type"
   26137     allowed_values {
   26138       list {
   26139         type: DT_FLOAT
   26140         type: DT_DOUBLE
   26141         type: DT_INT64
   26142         type: DT_INT32
   26143         type: DT_UINT8
   26144         type: DT_UINT16
   26145         type: DT_INT16
   26146         type: DT_INT8
   26147         type: DT_COMPLEX64
   26148         type: DT_COMPLEX128
   26149         type: DT_QINT8
   26150         type: DT_QUINT8
   26151         type: DT_QINT32
   26152         type: DT_HALF
   26153       }
   26154     }
   26155   }
   26156   attr {
   26157     name: "use_locking"
   26158     type: "bool"
   26159     default_value {
   26160       b: false
   26161     }
   26162   }
   26163 }
   26164 op {
   26165   name: "ResourceApplyProximalAdagrad"
   26166   input_arg {
   26167     name: "var"
   26168     type: DT_RESOURCE
   26169   }
   26170   input_arg {
   26171     name: "accum"
   26172     type: DT_RESOURCE
   26173   }
   26174   input_arg {
   26175     name: "lr"
   26176     type_attr: "T"
   26177   }
   26178   input_arg {
   26179     name: "l1"
   26180     type_attr: "T"
   26181   }
   26182   input_arg {
   26183     name: "l2"
   26184     type_attr: "T"
   26185   }
   26186   input_arg {
   26187     name: "grad"
   26188     type_attr: "T"
   26189   }
   26190   attr {
   26191     name: "T"
   26192     type: "type"
   26193     allowed_values {
   26194       list {
   26195         type: DT_FLOAT
   26196         type: DT_DOUBLE
   26197         type: DT_INT64
   26198         type: DT_INT32
   26199         type: DT_UINT8
   26200         type: DT_UINT16
   26201         type: DT_INT16
   26202         type: DT_INT8
   26203         type: DT_COMPLEX64
   26204         type: DT_COMPLEX128
   26205         type: DT_QINT8
   26206         type: DT_QUINT8
   26207         type: DT_QINT32
   26208         type: DT_HALF
   26209       }
   26210     }
   26211   }
   26212   attr {
   26213     name: "use_locking"
   26214     type: "bool"
   26215     default_value {
   26216       b: false
   26217     }
   26218   }
   26219   is_stateful: true
   26220 }
   26221 op {
   26222   name: "ResourceApplyProximalGradientDescent"
   26223   input_arg {
   26224     name: "var"
   26225     type: DT_RESOURCE
   26226   }
   26227   input_arg {
   26228     name: "alpha"
   26229     type_attr: "T"
   26230   }
   26231   input_arg {
   26232     name: "l1"
   26233     type_attr: "T"
   26234   }
   26235   input_arg {
   26236     name: "l2"
   26237     type_attr: "T"
   26238   }
   26239   input_arg {
   26240     name: "delta"
   26241     type_attr: "T"
   26242   }
   26243   attr {
   26244     name: "T"
   26245     type: "type"
   26246     allowed_values {
   26247       list {
   26248         type: DT_FLOAT
   26249         type: DT_DOUBLE
   26250         type: DT_INT64
   26251         type: DT_INT32
   26252         type: DT_UINT8
   26253         type: DT_UINT16
   26254         type: DT_INT16
   26255         type: DT_INT8
   26256         type: DT_COMPLEX64
   26257         type: DT_COMPLEX128
   26258         type: DT_QINT8
   26259         type: DT_QUINT8
   26260         type: DT_QINT32
   26261         type: DT_HALF
   26262       }
   26263     }
   26264   }
   26265   attr {
   26266     name: "use_locking"
   26267     type: "bool"
   26268     default_value {
   26269       b: false
   26270     }
   26271   }
   26272 }
   26273 op {
   26274   name: "ResourceApplyProximalGradientDescent"
   26275   input_arg {
   26276     name: "var"
   26277     type: DT_RESOURCE
   26278   }
   26279   input_arg {
   26280     name: "alpha"
   26281     type_attr: "T"
   26282   }
   26283   input_arg {
   26284     name: "l1"
   26285     type_attr: "T"
   26286   }
   26287   input_arg {
   26288     name: "l2"
   26289     type_attr: "T"
   26290   }
   26291   input_arg {
   26292     name: "delta"
   26293     type_attr: "T"
   26294   }
   26295   attr {
   26296     name: "T"
   26297     type: "type"
   26298     allowed_values {
   26299       list {
   26300         type: DT_FLOAT
   26301         type: DT_DOUBLE
   26302         type: DT_INT64
   26303         type: DT_INT32
   26304         type: DT_UINT8
   26305         type: DT_UINT16
   26306         type: DT_INT16
   26307         type: DT_INT8
   26308         type: DT_COMPLEX64
   26309         type: DT_COMPLEX128
   26310         type: DT_QINT8
   26311         type: DT_QUINT8
   26312         type: DT_QINT32
   26313         type: DT_HALF
   26314       }
   26315     }
   26316   }
   26317   attr {
   26318     name: "use_locking"
   26319     type: "bool"
   26320     default_value {
   26321       b: false
   26322     }
   26323   }
   26324   is_stateful: true
   26325 }
   26326 op {
   26327   name: "ResourceApplyRMSProp"
   26328   input_arg {
   26329     name: "var"
   26330     type: DT_RESOURCE
   26331   }
   26332   input_arg {
   26333     name: "ms"
   26334     type: DT_RESOURCE
   26335   }
   26336   input_arg {
   26337     name: "mom"
   26338     type: DT_RESOURCE
   26339   }
   26340   input_arg {
   26341     name: "lr"
   26342     type_attr: "T"
   26343   }
   26344   input_arg {
   26345     name: "rho"
   26346     type_attr: "T"
   26347   }
   26348   input_arg {
   26349     name: "momentum"
   26350     type_attr: "T"
   26351   }
   26352   input_arg {
   26353     name: "epsilon"
   26354     type_attr: "T"
   26355   }
   26356   input_arg {
   26357     name: "grad"
   26358     type_attr: "T"
   26359   }
   26360   attr {
   26361     name: "T"
   26362     type: "type"
   26363     allowed_values {
   26364       list {
   26365         type: DT_FLOAT
   26366         type: DT_DOUBLE
   26367         type: DT_INT64
   26368         type: DT_INT32
   26369         type: DT_UINT8
   26370         type: DT_UINT16
   26371         type: DT_INT16
   26372         type: DT_INT8
   26373         type: DT_COMPLEX64
   26374         type: DT_COMPLEX128
   26375         type: DT_QINT8
   26376         type: DT_QUINT8
   26377         type: DT_QINT32
   26378         type: DT_HALF
   26379       }
   26380     }
   26381   }
   26382   attr {
   26383     name: "use_locking"
   26384     type: "bool"
   26385     default_value {
   26386       b: false
   26387     }
   26388   }
   26389 }
   26390 op {
   26391   name: "ResourceApplyRMSProp"
   26392   input_arg {
   26393     name: "var"
   26394     type: DT_RESOURCE
   26395   }
   26396   input_arg {
   26397     name: "ms"
   26398     type: DT_RESOURCE
   26399   }
   26400   input_arg {
   26401     name: "mom"
   26402     type: DT_RESOURCE
   26403   }
   26404   input_arg {
   26405     name: "lr"
   26406     type_attr: "T"
   26407   }
   26408   input_arg {
   26409     name: "rho"
   26410     type_attr: "T"
   26411   }
   26412   input_arg {
   26413     name: "momentum"
   26414     type_attr: "T"
   26415   }
   26416   input_arg {
   26417     name: "epsilon"
   26418     type_attr: "T"
   26419   }
   26420   input_arg {
   26421     name: "grad"
   26422     type_attr: "T"
   26423   }
   26424   attr {
   26425     name: "T"
   26426     type: "type"
   26427     allowed_values {
   26428       list {
   26429         type: DT_FLOAT
   26430         type: DT_DOUBLE
   26431         type: DT_INT64
   26432         type: DT_INT32
   26433         type: DT_UINT8
   26434         type: DT_UINT16
   26435         type: DT_INT16
   26436         type: DT_INT8
   26437         type: DT_COMPLEX64
   26438         type: DT_COMPLEX128
   26439         type: DT_QINT8
   26440         type: DT_QUINT8
   26441         type: DT_QINT32
   26442         type: DT_HALF
   26443       }
   26444     }
   26445   }
   26446   attr {
   26447     name: "use_locking"
   26448     type: "bool"
   26449     default_value {
   26450       b: false
   26451     }
   26452   }
   26453   is_stateful: true
   26454 }
   26455 op {
   26456   name: "ResourceSparseApplyAdadelta"
   26457   input_arg {
   26458     name: "var"
   26459     type: DT_RESOURCE
   26460   }
   26461   input_arg {
   26462     name: "accum"
   26463     type: DT_RESOURCE
   26464   }
   26465   input_arg {
   26466     name: "accum_update"
   26467     type: DT_RESOURCE
   26468   }
   26469   input_arg {
   26470     name: "lr"
   26471     type_attr: "T"
   26472   }
   26473   input_arg {
   26474     name: "rho"
   26475     type_attr: "T"
   26476   }
   26477   input_arg {
   26478     name: "epsilon"
   26479     type_attr: "T"
   26480   }
   26481   input_arg {
   26482     name: "grad"
   26483     type_attr: "T"
   26484   }
   26485   input_arg {
   26486     name: "indices"
   26487     type_attr: "Tindices"
   26488   }
   26489   attr {
   26490     name: "T"
   26491     type: "type"
   26492     allowed_values {
   26493       list {
   26494         type: DT_FLOAT
   26495         type: DT_DOUBLE
   26496         type: DT_INT64
   26497         type: DT_INT32
   26498         type: DT_UINT8
   26499         type: DT_UINT16
   26500         type: DT_INT16
   26501         type: DT_INT8
   26502         type: DT_COMPLEX64
   26503         type: DT_COMPLEX128
   26504         type: DT_QINT8
   26505         type: DT_QUINT8
   26506         type: DT_QINT32
   26507         type: DT_HALF
   26508       }
   26509     }
   26510   }
   26511   attr {
   26512     name: "Tindices"
   26513     type: "type"
   26514     allowed_values {
   26515       list {
   26516         type: DT_INT32
   26517         type: DT_INT64
   26518       }
   26519     }
   26520   }
   26521   attr {
   26522     name: "use_locking"
   26523     type: "bool"
   26524     default_value {
   26525       b: false
   26526     }
   26527   }
   26528 }
   26529 op {
   26530   name: "ResourceSparseApplyAdadelta"
   26531   input_arg {
   26532     name: "var"
   26533     type: DT_RESOURCE
   26534   }
   26535   input_arg {
   26536     name: "accum"
   26537     type: DT_RESOURCE
   26538   }
   26539   input_arg {
   26540     name: "accum_update"
   26541     type: DT_RESOURCE
   26542   }
   26543   input_arg {
   26544     name: "lr"
   26545     type_attr: "T"
   26546   }
   26547   input_arg {
   26548     name: "rho"
   26549     type_attr: "T"
   26550   }
   26551   input_arg {
   26552     name: "epsilon"
   26553     type_attr: "T"
   26554   }
   26555   input_arg {
   26556     name: "grad"
   26557     type_attr: "T"
   26558   }
   26559   input_arg {
   26560     name: "indices"
   26561     type_attr: "Tindices"
   26562   }
   26563   attr {
   26564     name: "T"
   26565     type: "type"
   26566     allowed_values {
   26567       list {
   26568         type: DT_FLOAT
   26569         type: DT_DOUBLE
   26570         type: DT_INT64
   26571         type: DT_INT32
   26572         type: DT_UINT8
   26573         type: DT_UINT16
   26574         type: DT_INT16
   26575         type: DT_INT8
   26576         type: DT_COMPLEX64
   26577         type: DT_COMPLEX128
   26578         type: DT_QINT8
   26579         type: DT_QUINT8
   26580         type: DT_QINT32
   26581         type: DT_HALF
   26582       }
   26583     }
   26584   }
   26585   attr {
   26586     name: "Tindices"
   26587     type: "type"
   26588     allowed_values {
   26589       list {
   26590         type: DT_INT32
   26591         type: DT_INT64
   26592       }
   26593     }
   26594   }
   26595   attr {
   26596     name: "use_locking"
   26597     type: "bool"
   26598     default_value {
   26599       b: false
   26600     }
   26601   }
   26602   is_stateful: true
   26603 }
   26604 op {
   26605   name: "ResourceSparseApplyAdagrad"
   26606   input_arg {
   26607     name: "var"
   26608     type: DT_RESOURCE
   26609   }
   26610   input_arg {
   26611     name: "accum"
   26612     type: DT_RESOURCE
   26613   }
   26614   input_arg {
   26615     name: "lr"
   26616     type_attr: "T"
   26617   }
   26618   input_arg {
   26619     name: "grad"
   26620     type_attr: "T"
   26621   }
   26622   input_arg {
   26623     name: "indices"
   26624     type_attr: "Tindices"
   26625   }
   26626   attr {
   26627     name: "T"
   26628     type: "type"
   26629     allowed_values {
   26630       list {
   26631         type: DT_FLOAT
   26632         type: DT_DOUBLE
   26633         type: DT_INT64
   26634         type: DT_INT32
   26635         type: DT_UINT8
   26636         type: DT_UINT16
   26637         type: DT_INT16
   26638         type: DT_INT8
   26639         type: DT_COMPLEX64
   26640         type: DT_COMPLEX128
   26641         type: DT_QINT8
   26642         type: DT_QUINT8
   26643         type: DT_QINT32
   26644         type: DT_HALF
   26645       }
   26646     }
   26647   }
   26648   attr {
   26649     name: "Tindices"
   26650     type: "type"
   26651     allowed_values {
   26652       list {
   26653         type: DT_INT32
   26654         type: DT_INT64
   26655       }
   26656     }
   26657   }
   26658   attr {
   26659     name: "use_locking"
   26660     type: "bool"
   26661     default_value {
   26662       b: false
   26663     }
   26664   }
   26665 }
   26666 op {
   26667   name: "ResourceSparseApplyAdagrad"
   26668   input_arg {
   26669     name: "var"
   26670     type: DT_RESOURCE
   26671   }
   26672   input_arg {
   26673     name: "accum"
   26674     type: DT_RESOURCE
   26675   }
   26676   input_arg {
   26677     name: "lr"
   26678     type_attr: "T"
   26679   }
   26680   input_arg {
   26681     name: "grad"
   26682     type_attr: "T"
   26683   }
   26684   input_arg {
   26685     name: "indices"
   26686     type_attr: "Tindices"
   26687   }
   26688   attr {
   26689     name: "T"
   26690     type: "type"
   26691     allowed_values {
   26692       list {
   26693         type: DT_FLOAT
   26694         type: DT_DOUBLE
   26695         type: DT_INT64
   26696         type: DT_INT32
   26697         type: DT_UINT8
   26698         type: DT_UINT16
   26699         type: DT_INT16
   26700         type: DT_INT8
   26701         type: DT_COMPLEX64
   26702         type: DT_COMPLEX128
   26703         type: DT_QINT8
   26704         type: DT_QUINT8
   26705         type: DT_QINT32
   26706         type: DT_HALF
   26707       }
   26708     }
   26709   }
   26710   attr {
   26711     name: "Tindices"
   26712     type: "type"
   26713     allowed_values {
   26714       list {
   26715         type: DT_INT32
   26716         type: DT_INT64
   26717       }
   26718     }
   26719   }
   26720   attr {
   26721     name: "use_locking"
   26722     type: "bool"
   26723     default_value {
   26724       b: false
   26725     }
   26726   }
   26727   is_stateful: true
   26728 }
   26729 op {
   26730   name: "ResourceSparseApplyAdagradDA"
   26731   input_arg {
   26732     name: "var"
   26733     type: DT_RESOURCE
   26734   }
   26735   input_arg {
   26736     name: "gradient_accumulator"
   26737     type: DT_RESOURCE
   26738   }
   26739   input_arg {
   26740     name: "gradient_squared_accumulator"
   26741     type: DT_RESOURCE
   26742   }
   26743   input_arg {
   26744     name: "grad"
   26745     type_attr: "T"
   26746   }
   26747   input_arg {
   26748     name: "indices"
   26749     type_attr: "Tindices"
   26750   }
   26751   input_arg {
   26752     name: "lr"
   26753     type_attr: "T"
   26754   }
   26755   input_arg {
   26756     name: "l1"
   26757     type_attr: "T"
   26758   }
   26759   input_arg {
   26760     name: "l2"
   26761     type_attr: "T"
   26762   }
   26763   input_arg {
   26764     name: "global_step"
   26765     type: DT_INT64
   26766   }
   26767   attr {
   26768     name: "T"
   26769     type: "type"
   26770     allowed_values {
   26771       list {
   26772         type: DT_FLOAT
   26773         type: DT_DOUBLE
   26774         type: DT_INT64
   26775         type: DT_INT32
   26776         type: DT_UINT8
   26777         type: DT_UINT16
   26778         type: DT_INT16
   26779         type: DT_INT8
   26780         type: DT_COMPLEX64
   26781         type: DT_COMPLEX128
   26782         type: DT_QINT8
   26783         type: DT_QUINT8
   26784         type: DT_QINT32
   26785         type: DT_HALF
   26786       }
   26787     }
   26788   }
   26789   attr {
   26790     name: "Tindices"
   26791     type: "type"
   26792     allowed_values {
   26793       list {
   26794         type: DT_INT32
   26795         type: DT_INT64
   26796       }
   26797     }
   26798   }
   26799   attr {
   26800     name: "use_locking"
   26801     type: "bool"
   26802     default_value {
   26803       b: false
   26804     }
   26805   }
   26806 }
   26807 op {
   26808   name: "ResourceSparseApplyAdagradDA"
   26809   input_arg {
   26810     name: "var"
   26811     type: DT_RESOURCE
   26812   }
   26813   input_arg {
   26814     name: "gradient_accumulator"
   26815     type: DT_RESOURCE
   26816   }
   26817   input_arg {
   26818     name: "gradient_squared_accumulator"
   26819     type: DT_RESOURCE
   26820   }
   26821   input_arg {
   26822     name: "grad"
   26823     type_attr: "T"
   26824   }
   26825   input_arg {
   26826     name: "indices"
   26827     type_attr: "Tindices"
   26828   }
   26829   input_arg {
   26830     name: "lr"
   26831     type_attr: "T"
   26832   }
   26833   input_arg {
   26834     name: "l1"
   26835     type_attr: "T"
   26836   }
   26837   input_arg {
   26838     name: "l2"
   26839     type_attr: "T"
   26840   }
   26841   input_arg {
   26842     name: "global_step"
   26843     type: DT_INT64
   26844   }
   26845   attr {
   26846     name: "T"
   26847     type: "type"
   26848     allowed_values {
   26849       list {
   26850         type: DT_FLOAT
   26851         type: DT_DOUBLE
   26852         type: DT_INT64
   26853         type: DT_INT32
   26854         type: DT_UINT8
   26855         type: DT_UINT16
   26856         type: DT_INT16
   26857         type: DT_INT8
   26858         type: DT_COMPLEX64
   26859         type: DT_COMPLEX128
   26860         type: DT_QINT8
   26861         type: DT_QUINT8
   26862         type: DT_QINT32
   26863         type: DT_HALF
   26864       }
   26865     }
   26866   }
   26867   attr {
   26868     name: "Tindices"
   26869     type: "type"
   26870     allowed_values {
   26871       list {
   26872         type: DT_INT32
   26873         type: DT_INT64
   26874       }
   26875     }
   26876   }
   26877   attr {
   26878     name: "use_locking"
   26879     type: "bool"
   26880     default_value {
   26881       b: false
   26882     }
   26883   }
   26884   is_stateful: true
   26885 }
   26886 op {
   26887   name: "ResourceSparseApplyCenteredRMSProp"
   26888   input_arg {
   26889     name: "var"
   26890     type: DT_RESOURCE
   26891   }
   26892   input_arg {
   26893     name: "mg"
   26894     type: DT_RESOURCE
   26895   }
   26896   input_arg {
   26897     name: "ms"
   26898     type: DT_RESOURCE
   26899   }
   26900   input_arg {
   26901     name: "mom"
   26902     type: DT_RESOURCE
   26903   }
   26904   input_arg {
   26905     name: "lr"
   26906     type_attr: "T"
   26907   }
   26908   input_arg {
   26909     name: "rho"
   26910     type_attr: "T"
   26911   }
   26912   input_arg {
   26913     name: "momentum"
   26914     type_attr: "T"
   26915   }
   26916   input_arg {
   26917     name: "epsilon"
   26918     type_attr: "T"
   26919   }
   26920   input_arg {
   26921     name: "grad"
   26922     type_attr: "T"
   26923   }
   26924   input_arg {
   26925     name: "indices"
   26926     type_attr: "Tindices"
   26927   }
   26928   attr {
   26929     name: "T"
   26930     type: "type"
   26931     allowed_values {
   26932       list {
   26933         type: DT_FLOAT
   26934         type: DT_DOUBLE
   26935         type: DT_INT64
   26936         type: DT_INT32
   26937         type: DT_UINT8
   26938         type: DT_UINT16
   26939         type: DT_INT16
   26940         type: DT_INT8
   26941         type: DT_COMPLEX64
   26942         type: DT_COMPLEX128
   26943         type: DT_QINT8
   26944         type: DT_QUINT8
   26945         type: DT_QINT32
   26946         type: DT_HALF
   26947       }
   26948     }
   26949   }
   26950   attr {
   26951     name: "Tindices"
   26952     type: "type"
   26953     allowed_values {
   26954       list {
   26955         type: DT_INT32
   26956         type: DT_INT64
   26957       }
   26958     }
   26959   }
   26960   attr {
   26961     name: "use_locking"
   26962     type: "bool"
   26963     default_value {
   26964       b: false
   26965     }
   26966   }
   26967 }
   26968 op {
   26969   name: "ResourceSparseApplyCenteredRMSProp"
   26970   input_arg {
   26971     name: "var"
   26972     type: DT_RESOURCE
   26973   }
   26974   input_arg {
   26975     name: "mg"
   26976     type: DT_RESOURCE
   26977   }
   26978   input_arg {
   26979     name: "ms"
   26980     type: DT_RESOURCE
   26981   }
   26982   input_arg {
   26983     name: "mom"
   26984     type: DT_RESOURCE
   26985   }
   26986   input_arg {
   26987     name: "lr"
   26988     type_attr: "T"
   26989   }
   26990   input_arg {
   26991     name: "rho"
   26992     type_attr: "T"
   26993   }
   26994   input_arg {
   26995     name: "momentum"
   26996     type_attr: "T"
   26997   }
   26998   input_arg {
   26999     name: "epsilon"
   27000     type_attr: "T"
   27001   }
   27002   input_arg {
   27003     name: "grad"
   27004     type_attr: "T"
   27005   }
   27006   input_arg {
   27007     name: "indices"
   27008     type_attr: "Tindices"
   27009   }
   27010   attr {
   27011     name: "T"
   27012     type: "type"
   27013     allowed_values {
   27014       list {
   27015         type: DT_FLOAT
   27016         type: DT_DOUBLE
   27017         type: DT_INT64
   27018         type: DT_INT32
   27019         type: DT_UINT8
   27020         type: DT_UINT16
   27021         type: DT_INT16
   27022         type: DT_INT8
   27023         type: DT_COMPLEX64
   27024         type: DT_COMPLEX128
   27025         type: DT_QINT8
   27026         type: DT_QUINT8
   27027         type: DT_QINT32
   27028         type: DT_HALF
   27029       }
   27030     }
   27031   }
   27032   attr {
   27033     name: "Tindices"
   27034     type: "type"
   27035     allowed_values {
   27036       list {
   27037         type: DT_INT32
   27038         type: DT_INT64
   27039       }
   27040     }
   27041   }
   27042   attr {
   27043     name: "use_locking"
   27044     type: "bool"
   27045     default_value {
   27046       b: false
   27047     }
   27048   }
   27049   is_stateful: true
   27050 }
   27051 op {
   27052   name: "ResourceSparseApplyFtrl"
   27053   input_arg {
   27054     name: "var"
   27055     type: DT_RESOURCE
   27056   }
   27057   input_arg {
   27058     name: "accum"
   27059     type: DT_RESOURCE
   27060   }
   27061   input_arg {
   27062     name: "linear"
   27063     type: DT_RESOURCE
   27064   }
   27065   input_arg {
   27066     name: "grad"
   27067     type_attr: "T"
   27068   }
   27069   input_arg {
   27070     name: "indices"
   27071     type_attr: "Tindices"
   27072   }
   27073   input_arg {
   27074     name: "lr"
   27075     type_attr: "T"
   27076   }
   27077   input_arg {
   27078     name: "l1"
   27079     type_attr: "T"
   27080   }
   27081   input_arg {
   27082     name: "l2"
   27083     type_attr: "T"
   27084   }
   27085   input_arg {
   27086     name: "lr_power"
   27087     type_attr: "T"
   27088   }
   27089   attr {
   27090     name: "T"
   27091     type: "type"
   27092     allowed_values {
   27093       list {
   27094         type: DT_FLOAT
   27095         type: DT_DOUBLE
   27096         type: DT_INT64
   27097         type: DT_INT32
   27098         type: DT_UINT8
   27099         type: DT_UINT16
   27100         type: DT_INT16
   27101         type: DT_INT8
   27102         type: DT_COMPLEX64
   27103         type: DT_COMPLEX128
   27104         type: DT_QINT8
   27105         type: DT_QUINT8
   27106         type: DT_QINT32
   27107         type: DT_HALF
   27108       }
   27109     }
   27110   }
   27111   attr {
   27112     name: "Tindices"
   27113     type: "type"
   27114     allowed_values {
   27115       list {
   27116         type: DT_INT32
   27117         type: DT_INT64
   27118       }
   27119     }
   27120   }
   27121   attr {
   27122     name: "use_locking"
   27123     type: "bool"
   27124     default_value {
   27125       b: false
   27126     }
   27127   }
   27128 }
   27129 op {
   27130   name: "ResourceSparseApplyFtrl"
   27131   input_arg {
   27132     name: "var"
   27133     type: DT_RESOURCE
   27134   }
   27135   input_arg {
   27136     name: "accum"
   27137     type: DT_RESOURCE
   27138   }
   27139   input_arg {
   27140     name: "linear"
   27141     type: DT_RESOURCE
   27142   }
   27143   input_arg {
   27144     name: "grad"
   27145     type_attr: "T"
   27146   }
   27147   input_arg {
   27148     name: "indices"
   27149     type_attr: "Tindices"
   27150   }
   27151   input_arg {
   27152     name: "lr"
   27153     type_attr: "T"
   27154   }
   27155   input_arg {
   27156     name: "l1"
   27157     type_attr: "T"
   27158   }
   27159   input_arg {
   27160     name: "l2"
   27161     type_attr: "T"
   27162   }
   27163   input_arg {
   27164     name: "lr_power"
   27165     type_attr: "T"
   27166   }
   27167   attr {
   27168     name: "T"
   27169     type: "type"
   27170     allowed_values {
   27171       list {
   27172         type: DT_FLOAT
   27173         type: DT_DOUBLE
   27174         type: DT_INT64
   27175         type: DT_INT32
   27176         type: DT_UINT8
   27177         type: DT_UINT16
   27178         type: DT_INT16
   27179         type: DT_INT8
   27180         type: DT_COMPLEX64
   27181         type: DT_COMPLEX128
   27182         type: DT_QINT8
   27183         type: DT_QUINT8
   27184         type: DT_QINT32
   27185         type: DT_HALF
   27186       }
   27187     }
   27188   }
   27189   attr {
   27190     name: "Tindices"
   27191     type: "type"
   27192     allowed_values {
   27193       list {
   27194         type: DT_INT32
   27195         type: DT_INT64
   27196       }
   27197     }
   27198   }
   27199   attr {
   27200     name: "use_locking"
   27201     type: "bool"
   27202     default_value {
   27203       b: false
   27204     }
   27205   }
   27206   is_stateful: true
   27207 }
   27208 op {
   27209   name: "ResourceSparseApplyMomentum"
   27210   input_arg {
   27211     name: "var"
   27212     type: DT_RESOURCE
   27213   }
   27214   input_arg {
   27215     name: "accum"
   27216     type: DT_RESOURCE
   27217   }
   27218   input_arg {
   27219     name: "lr"
   27220     type_attr: "T"
   27221   }
   27222   input_arg {
   27223     name: "grad"
   27224     type_attr: "T"
   27225   }
   27226   input_arg {
   27227     name: "indices"
   27228     type_attr: "Tindices"
   27229   }
   27230   input_arg {
   27231     name: "momentum"
   27232     type_attr: "T"
   27233   }
   27234   attr {
   27235     name: "T"
   27236     type: "type"
   27237     allowed_values {
   27238       list {
   27239         type: DT_FLOAT
   27240         type: DT_DOUBLE
   27241         type: DT_INT64
   27242         type: DT_INT32
   27243         type: DT_UINT8
   27244         type: DT_UINT16
   27245         type: DT_INT16
   27246         type: DT_INT8
   27247         type: DT_COMPLEX64
   27248         type: DT_COMPLEX128
   27249         type: DT_QINT8
   27250         type: DT_QUINT8
   27251         type: DT_QINT32
   27252         type: DT_HALF
   27253       }
   27254     }
   27255   }
   27256   attr {
   27257     name: "Tindices"
   27258     type: "type"
   27259     allowed_values {
   27260       list {
   27261         type: DT_INT32
   27262         type: DT_INT64
   27263       }
   27264     }
   27265   }
   27266   attr {
   27267     name: "use_locking"
   27268     type: "bool"
   27269     default_value {
   27270       b: false
   27271     }
   27272   }
   27273   attr {
   27274     name: "use_nesterov"
   27275     type: "bool"
   27276     default_value {
   27277       b: false
   27278     }
   27279   }
   27280 }
   27281 op {
   27282   name: "ResourceSparseApplyMomentum"
   27283   input_arg {
   27284     name: "var"
   27285     type: DT_RESOURCE
   27286   }
   27287   input_arg {
   27288     name: "accum"
   27289     type: DT_RESOURCE
   27290   }
   27291   input_arg {
   27292     name: "lr"
   27293     type_attr: "T"
   27294   }
   27295   input_arg {
   27296     name: "grad"
   27297     type_attr: "T"
   27298   }
   27299   input_arg {
   27300     name: "indices"
   27301     type_attr: "Tindices"
   27302   }
   27303   input_arg {
   27304     name: "momentum"
   27305     type_attr: "T"
   27306   }
   27307   attr {
   27308     name: "T"
   27309     type: "type"
   27310     allowed_values {
   27311       list {
   27312         type: DT_FLOAT
   27313         type: DT_DOUBLE
   27314         type: DT_INT64
   27315         type: DT_INT32
   27316         type: DT_UINT8
   27317         type: DT_UINT16
   27318         type: DT_INT16
   27319         type: DT_INT8
   27320         type: DT_COMPLEX64
   27321         type: DT_COMPLEX128
   27322         type: DT_QINT8
   27323         type: DT_QUINT8
   27324         type: DT_QINT32
   27325         type: DT_HALF
   27326       }
   27327     }
   27328   }
   27329   attr {
   27330     name: "Tindices"
   27331     type: "type"
   27332     allowed_values {
   27333       list {
   27334         type: DT_INT32
   27335         type: DT_INT64
   27336       }
   27337     }
   27338   }
   27339   attr {
   27340     name: "use_locking"
   27341     type: "bool"
   27342     default_value {
   27343       b: false
   27344     }
   27345   }
   27346   attr {
   27347     name: "use_nesterov"
   27348     type: "bool"
   27349     default_value {
   27350       b: false
   27351     }
   27352   }
   27353   is_stateful: true
   27354 }
   27355 op {
   27356   name: "ResourceSparseApplyProximalAdagrad"
   27357   input_arg {
   27358     name: "var"
   27359     type: DT_RESOURCE
   27360   }
   27361   input_arg {
   27362     name: "accum"
   27363     type: DT_RESOURCE
   27364   }
   27365   input_arg {
   27366     name: "lr"
   27367     type_attr: "T"
   27368   }
   27369   input_arg {
   27370     name: "l1"
   27371     type_attr: "T"
   27372   }
   27373   input_arg {
   27374     name: "l2"
   27375     type_attr: "T"
   27376   }
   27377   input_arg {
   27378     name: "grad"
   27379     type_attr: "T"
   27380   }
   27381   input_arg {
   27382     name: "indices"
   27383     type_attr: "Tindices"
   27384   }
   27385   attr {
   27386     name: "T"
   27387     type: "type"
   27388     allowed_values {
   27389       list {
   27390         type: DT_FLOAT
   27391         type: DT_DOUBLE
   27392         type: DT_INT64
   27393         type: DT_INT32
   27394         type: DT_UINT8
   27395         type: DT_UINT16
   27396         type: DT_INT16
   27397         type: DT_INT8
   27398         type: DT_COMPLEX64
   27399         type: DT_COMPLEX128
   27400         type: DT_QINT8
   27401         type: DT_QUINT8
   27402         type: DT_QINT32
   27403         type: DT_HALF
   27404       }
   27405     }
   27406   }
   27407   attr {
   27408     name: "Tindices"
   27409     type: "type"
   27410     allowed_values {
   27411       list {
   27412         type: DT_INT32
   27413         type: DT_INT64
   27414       }
   27415     }
   27416   }
   27417   attr {
   27418     name: "use_locking"
   27419     type: "bool"
   27420     default_value {
   27421       b: false
   27422     }
   27423   }
   27424 }
   27425 op {
   27426   name: "ResourceSparseApplyProximalAdagrad"
   27427   input_arg {
   27428     name: "var"
   27429     type: DT_RESOURCE
   27430   }
   27431   input_arg {
   27432     name: "accum"
   27433     type: DT_RESOURCE
   27434   }
   27435   input_arg {
   27436     name: "lr"
   27437     type_attr: "T"
   27438   }
   27439   input_arg {
   27440     name: "l1"
   27441     type_attr: "T"
   27442   }
   27443   input_arg {
   27444     name: "l2"
   27445     type_attr: "T"
   27446   }
   27447   input_arg {
   27448     name: "grad"
   27449     type_attr: "T"
   27450   }
   27451   input_arg {
   27452     name: "indices"
   27453     type_attr: "Tindices"
   27454   }
   27455   attr {
   27456     name: "T"
   27457     type: "type"
   27458     allowed_values {
   27459       list {
   27460         type: DT_FLOAT
   27461         type: DT_DOUBLE
   27462         type: DT_INT64
   27463         type: DT_INT32
   27464         type: DT_UINT8
   27465         type: DT_UINT16
   27466         type: DT_INT16
   27467         type: DT_INT8
   27468         type: DT_COMPLEX64
   27469         type: DT_COMPLEX128
   27470         type: DT_QINT8
   27471         type: DT_QUINT8
   27472         type: DT_QINT32
   27473         type: DT_HALF
   27474       }
   27475     }
   27476   }
   27477   attr {
   27478     name: "Tindices"
   27479     type: "type"
   27480     allowed_values {
   27481       list {
   27482         type: DT_INT32
   27483         type: DT_INT64
   27484       }
   27485     }
   27486   }
   27487   attr {
   27488     name: "use_locking"
   27489     type: "bool"
   27490     default_value {
   27491       b: false
   27492     }
   27493   }
   27494   is_stateful: true
   27495 }
   27496 op {
   27497   name: "ResourceSparseApplyProximalGradientDescent"
   27498   input_arg {
   27499     name: "var"
   27500     type: DT_RESOURCE
   27501   }
   27502   input_arg {
   27503     name: "alpha"
   27504     type_attr: "T"
   27505   }
   27506   input_arg {
   27507     name: "l1"
   27508     type_attr: "T"
   27509   }
   27510   input_arg {
   27511     name: "l2"
   27512     type_attr: "T"
   27513   }
   27514   input_arg {
   27515     name: "grad"
   27516     type_attr: "T"
   27517   }
   27518   input_arg {
   27519     name: "indices"
   27520     type_attr: "Tindices"
   27521   }
   27522   attr {
   27523     name: "T"
   27524     type: "type"
   27525     allowed_values {
   27526       list {
   27527         type: DT_FLOAT
   27528         type: DT_DOUBLE
   27529         type: DT_INT64
   27530         type: DT_INT32
   27531         type: DT_UINT8
   27532         type: DT_UINT16
   27533         type: DT_INT16
   27534         type: DT_INT8
   27535         type: DT_COMPLEX64
   27536         type: DT_COMPLEX128
   27537         type: DT_QINT8
   27538         type: DT_QUINT8
   27539         type: DT_QINT32
   27540         type: DT_HALF
   27541       }
   27542     }
   27543   }
   27544   attr {
   27545     name: "Tindices"
   27546     type: "type"
   27547     allowed_values {
   27548       list {
   27549         type: DT_INT32
   27550         type: DT_INT64
   27551       }
   27552     }
   27553   }
   27554   attr {
   27555     name: "use_locking"
   27556     type: "bool"
   27557     default_value {
   27558       b: false
   27559     }
   27560   }
   27561 }
   27562 op {
   27563   name: "ResourceSparseApplyProximalGradientDescent"
   27564   input_arg {
   27565     name: "var"
   27566     type: DT_RESOURCE
   27567   }
   27568   input_arg {
   27569     name: "alpha"
   27570     type_attr: "T"
   27571   }
   27572   input_arg {
   27573     name: "l1"
   27574     type_attr: "T"
   27575   }
   27576   input_arg {
   27577     name: "l2"
   27578     type_attr: "T"
   27579   }
   27580   input_arg {
   27581     name: "grad"
   27582     type_attr: "T"
   27583   }
   27584   input_arg {
   27585     name: "indices"
   27586     type_attr: "Tindices"
   27587   }
   27588   attr {
   27589     name: "T"
   27590     type: "type"
   27591     allowed_values {
   27592       list {
   27593         type: DT_FLOAT
   27594         type: DT_DOUBLE
   27595         type: DT_INT64
   27596         type: DT_INT32
   27597         type: DT_UINT8
   27598         type: DT_UINT16
   27599         type: DT_INT16
   27600         type: DT_INT8
   27601         type: DT_COMPLEX64
   27602         type: DT_COMPLEX128
   27603         type: DT_QINT8
   27604         type: DT_QUINT8
   27605         type: DT_QINT32
   27606         type: DT_HALF
   27607       }
   27608     }
   27609   }
   27610   attr {
   27611     name: "Tindices"
   27612     type: "type"
   27613     allowed_values {
   27614       list {
   27615         type: DT_INT32
   27616         type: DT_INT64
   27617       }
   27618     }
   27619   }
   27620   attr {
   27621     name: "use_locking"
   27622     type: "bool"
   27623     default_value {
   27624       b: false
   27625     }
   27626   }
   27627   is_stateful: true
   27628 }
   27629 op {
   27630   name: "ResourceSparseApplyRMSProp"
   27631   input_arg {
   27632     name: "var"
   27633     type: DT_RESOURCE
   27634   }
   27635   input_arg {
   27636     name: "ms"
   27637     type: DT_RESOURCE
   27638   }
   27639   input_arg {
   27640     name: "mom"
   27641     type: DT_RESOURCE
   27642   }
   27643   input_arg {
   27644     name: "lr"
   27645     type_attr: "T"
   27646   }
   27647   input_arg {
   27648     name: "rho"
   27649     type_attr: "T"
   27650   }
   27651   input_arg {
   27652     name: "momentum"
   27653     type_attr: "T"
   27654   }
   27655   input_arg {
   27656     name: "epsilon"
   27657     type_attr: "T"
   27658   }
   27659   input_arg {
   27660     name: "grad"
   27661     type_attr: "T"
   27662   }
   27663   input_arg {
   27664     name: "indices"
   27665     type_attr: "Tindices"
   27666   }
   27667   attr {
   27668     name: "T"
   27669     type: "type"
   27670     allowed_values {
   27671       list {
   27672         type: DT_FLOAT
   27673         type: DT_DOUBLE
   27674         type: DT_INT64
   27675         type: DT_INT32
   27676         type: DT_UINT8
   27677         type: DT_UINT16
   27678         type: DT_INT16
   27679         type: DT_INT8
   27680         type: DT_COMPLEX64
   27681         type: DT_COMPLEX128
   27682         type: DT_QINT8
   27683         type: DT_QUINT8
   27684         type: DT_QINT32
   27685         type: DT_HALF
   27686       }
   27687     }
   27688   }
   27689   attr {
   27690     name: "Tindices"
   27691     type: "type"
   27692     allowed_values {
   27693       list {
   27694         type: DT_INT32
   27695         type: DT_INT64
   27696       }
   27697     }
   27698   }
   27699   attr {
   27700     name: "use_locking"
   27701     type: "bool"
   27702     default_value {
   27703       b: false
   27704     }
   27705   }
   27706 }
   27707 op {
   27708   name: "ResourceSparseApplyRMSProp"
   27709   input_arg {
   27710     name: "var"
   27711     type: DT_RESOURCE
   27712   }
   27713   input_arg {
   27714     name: "ms"
   27715     type: DT_RESOURCE
   27716   }
   27717   input_arg {
   27718     name: "mom"
   27719     type: DT_RESOURCE
   27720   }
   27721   input_arg {
   27722     name: "lr"
   27723     type_attr: "T"
   27724   }
   27725   input_arg {
   27726     name: "rho"
   27727     type_attr: "T"
   27728   }
   27729   input_arg {
   27730     name: "momentum"
   27731     type_attr: "T"
   27732   }
   27733   input_arg {
   27734     name: "epsilon"
   27735     type_attr: "T"
   27736   }
   27737   input_arg {
   27738     name: "grad"
   27739     type_attr: "T"
   27740   }
   27741   input_arg {
   27742     name: "indices"
   27743     type_attr: "Tindices"
   27744   }
   27745   attr {
   27746     name: "T"
   27747     type: "type"
   27748     allowed_values {
   27749       list {
   27750         type: DT_FLOAT
   27751         type: DT_DOUBLE
   27752         type: DT_INT64
   27753         type: DT_INT32
   27754         type: DT_UINT8
   27755         type: DT_UINT16
   27756         type: DT_INT16
   27757         type: DT_INT8
   27758         type: DT_COMPLEX64
   27759         type: DT_COMPLEX128
   27760         type: DT_QINT8
   27761         type: DT_QUINT8
   27762         type: DT_QINT32
   27763         type: DT_HALF
   27764       }
   27765     }
   27766   }
   27767   attr {
   27768     name: "Tindices"
   27769     type: "type"
   27770     allowed_values {
   27771       list {
   27772         type: DT_INT32
   27773         type: DT_INT64
   27774       }
   27775     }
   27776   }
   27777   attr {
   27778     name: "use_locking"
   27779     type: "bool"
   27780     default_value {
   27781       b: false
   27782     }
   27783   }
   27784   is_stateful: true
   27785 }
   27786 op {
   27787   name: "Restore"
   27788   input_arg {
   27789     name: "file_pattern"
   27790     type: DT_STRING
   27791   }
   27792   input_arg {
   27793     name: "tensor_name"
   27794     type: DT_STRING
   27795   }
   27796   output_arg {
   27797     name: "tensor"
   27798     type_attr: "dt"
   27799   }
   27800   attr {
   27801     name: "dt"
   27802     type: "type"
   27803   }
   27804   attr {
   27805     name: "preferred_shard"
   27806     type: "int"
   27807     default_value {
   27808       i: -1
   27809     }
   27810   }
   27811 }
   27812 op {
   27813   name: "RestoreSlice"
   27814   input_arg {
   27815     name: "file_pattern"
   27816     type: DT_STRING
   27817   }
   27818   input_arg {
   27819     name: "tensor_name"
   27820     type: DT_STRING
   27821   }
   27822   input_arg {
   27823     name: "shape_and_slice"
   27824     type: DT_STRING
   27825   }
   27826   output_arg {
   27827     name: "tensor"
   27828     type_attr: "dt"
   27829   }
   27830   attr {
   27831     name: "dt"
   27832     type: "type"
   27833   }
   27834   attr {
   27835     name: "preferred_shard"
   27836     type: "int"
   27837     default_value {
   27838       i: -1
   27839     }
   27840   }
   27841 }
   27842 op {
   27843   name: "RestoreV2"
   27844   input_arg {
   27845     name: "prefix"
   27846     type: DT_STRING
   27847   }
   27848   input_arg {
   27849     name: "tensor_names"
   27850     type: DT_STRING
   27851   }
   27852   input_arg {
   27853     name: "shape_and_slices"
   27854     type: DT_STRING
   27855   }
   27856   output_arg {
   27857     name: "tensors"
   27858     type_list_attr: "dtypes"
   27859   }
   27860   attr {
   27861     name: "dtypes"
   27862     type: "list(type)"
   27863     has_minimum: true
   27864     minimum: 1
   27865   }
   27866 }
   27867 op {
   27868   name: "Reverse"
   27869   input_arg {
   27870     name: "tensor"
   27871     type_attr: "T"
   27872   }
   27873   input_arg {
   27874     name: "dims"
   27875     type: DT_BOOL
   27876   }
   27877   output_arg {
   27878     name: "output"
   27879     type_attr: "T"
   27880   }
   27881   attr {
   27882     name: "T"
   27883     type: "type"
   27884     allowed_values {
   27885       list {
   27886         type: DT_UINT8
   27887         type: DT_INT8
   27888         type: DT_INT32
   27889         type: DT_BOOL
   27890         type: DT_FLOAT
   27891         type: DT_DOUBLE
   27892       }
   27893     }
   27894   }
   27895 }
   27896 op {
   27897   name: "Reverse"
   27898   input_arg {
   27899     name: "tensor"
   27900     type_attr: "T"
   27901   }
   27902   input_arg {
   27903     name: "dims"
   27904     type: DT_BOOL
   27905   }
   27906   output_arg {
   27907     name: "output"
   27908     type_attr: "T"
   27909   }
   27910   attr {
   27911     name: "T"
   27912     type: "type"
   27913     allowed_values {
   27914       list {
   27915         type: DT_UINT8
   27916         type: DT_INT8
   27917         type: DT_INT32
   27918         type: DT_BOOL
   27919         type: DT_HALF
   27920         type: DT_FLOAT
   27921         type: DT_DOUBLE
   27922       }
   27923     }
   27924   }
   27925 }
   27926 op {
   27927   name: "Reverse"
   27928   input_arg {
   27929     name: "tensor"
   27930     type_attr: "T"
   27931   }
   27932   input_arg {
   27933     name: "dims"
   27934     type: DT_BOOL
   27935   }
   27936   output_arg {
   27937     name: "output"
   27938     type_attr: "T"
   27939   }
   27940   attr {
   27941     name: "T"
   27942     type: "type"
   27943     allowed_values {
   27944       list {
   27945         type: DT_UINT8
   27946         type: DT_INT8
   27947         type: DT_INT32
   27948         type: DT_BOOL
   27949         type: DT_HALF
   27950         type: DT_FLOAT
   27951         type: DT_DOUBLE
   27952         type: DT_COMPLEX64
   27953         type: DT_COMPLEX128
   27954       }
   27955     }
   27956   }
   27957 }
   27958 op {
   27959   name: "Reverse"
   27960   input_arg {
   27961     name: "tensor"
   27962     type_attr: "T"
   27963   }
   27964   input_arg {
   27965     name: "dims"
   27966     type: DT_BOOL
   27967   }
   27968   output_arg {
   27969     name: "output"
   27970     type_attr: "T"
   27971   }
   27972   attr {
   27973     name: "T"
   27974     type: "type"
   27975     allowed_values {
   27976       list {
   27977         type: DT_UINT8
   27978         type: DT_INT8
   27979         type: DT_INT32
   27980         type: DT_INT64
   27981         type: DT_BOOL
   27982         type: DT_HALF
   27983         type: DT_FLOAT
   27984         type: DT_DOUBLE
   27985         type: DT_COMPLEX64
   27986         type: DT_COMPLEX128
   27987       }
   27988     }
   27989   }
   27990 }
   27991 op {
   27992   name: "ReverseSequence"
   27993   input_arg {
   27994     name: "input"
   27995     type_attr: "T"
   27996   }
   27997   input_arg {
   27998     name: "seq_lengths"
   27999     type: DT_INT64
   28000   }
   28001   output_arg {
   28002     name: "output"
   28003     type_attr: "T"
   28004   }
   28005   attr {
   28006     name: "seq_dim"
   28007     type: "int"
   28008   }
   28009   attr {
   28010     name: "T"
   28011     type: "type"
   28012   }
   28013 }
   28014 op {
   28015   name: "ReverseSequence"
   28016   input_arg {
   28017     name: "input"
   28018     type_attr: "T"
   28019   }
   28020   input_arg {
   28021     name: "seq_lengths"
   28022     type: DT_INT64
   28023   }
   28024   output_arg {
   28025     name: "output"
   28026     type_attr: "T"
   28027   }
   28028   attr {
   28029     name: "seq_dim"
   28030     type: "int"
   28031   }
   28032   attr {
   28033     name: "batch_dim"
   28034     type: "int"
   28035     default_value {
   28036       i: 0
   28037     }
   28038   }
   28039   attr {
   28040     name: "T"
   28041     type: "type"
   28042   }
   28043 }
   28044 op {
   28045   name: "ReverseSequence"
   28046   input_arg {
   28047     name: "input"
   28048     type_attr: "T"
   28049   }
   28050   input_arg {
   28051     name: "seq_lengths"
   28052     type_attr: "Tlen"
   28053   }
   28054   output_arg {
   28055     name: "output"
   28056     type_attr: "T"
   28057   }
   28058   attr {
   28059     name: "seq_dim"
   28060     type: "int"
   28061   }
   28062   attr {
   28063     name: "batch_dim"
   28064     type: "int"
   28065     default_value {
   28066       i: 0
   28067     }
   28068   }
   28069   attr {
   28070     name: "T"
   28071     type: "type"
   28072   }
   28073   attr {
   28074     name: "Tlen"
   28075     type: "type"
   28076     default_value {
   28077       type: DT_INT64
   28078     }
   28079     allowed_values {
   28080       list {
   28081         type: DT_INT32
   28082         type: DT_INT64
   28083       }
   28084     }
   28085   }
   28086 }
   28087 op {
   28088   name: "ReverseV2"
   28089   input_arg {
   28090     name: "tensor"
   28091     type_attr: "T"
   28092   }
   28093   input_arg {
   28094     name: "axis"
   28095     type_attr: "Tidx"
   28096   }
   28097   output_arg {
   28098     name: "output"
   28099     type_attr: "T"
   28100   }
   28101   attr {
   28102     name: "Tidx"
   28103     type: "type"
   28104     default_value {
   28105       type: DT_INT32
   28106     }
   28107     allowed_values {
   28108       list {
   28109         type: DT_INT32
   28110         type: DT_INT64
   28111       }
   28112     }
   28113   }
   28114   attr {
   28115     name: "T"
   28116     type: "type"
   28117     allowed_values {
   28118       list {
   28119         type: DT_UINT8
   28120         type: DT_INT8
   28121         type: DT_INT32
   28122         type: DT_INT64
   28123         type: DT_BOOL
   28124         type: DT_HALF
   28125         type: DT_FLOAT
   28126         type: DT_DOUBLE
   28127         type: DT_COMPLEX64
   28128         type: DT_COMPLEX128
   28129       }
   28130     }
   28131   }
   28132 }
   28133 op {
   28134   name: "Rint"
   28135   input_arg {
   28136     name: "x"
   28137     type_attr: "T"
   28138   }
   28139   output_arg {
   28140     name: "y"
   28141     type_attr: "T"
   28142   }
   28143   attr {
   28144     name: "T"
   28145     type: "type"
   28146     allowed_values {
   28147       list {
   28148         type: DT_FLOAT
   28149         type: DT_DOUBLE
   28150       }
   28151     }
   28152   }
   28153 }
   28154 op {
   28155   name: "Round"
   28156   input_arg {
   28157     name: "x"
   28158     type_attr: "T"
   28159   }
   28160   output_arg {
   28161     name: "y"
   28162     type_attr: "T"
   28163   }
   28164   attr {
   28165     name: "T"
   28166     type: "type"
   28167     allowed_values {
   28168       list {
   28169         type: DT_HALF
   28170         type: DT_FLOAT
   28171         type: DT_DOUBLE
   28172         type: DT_INT32
   28173         type: DT_INT64
   28174         type: DT_COMPLEX64
   28175         type: DT_COMPLEX128
   28176       }
   28177     }
   28178   }
   28179 }
   28180 op {
   28181   name: "Rsqrt"
   28182   input_arg {
   28183     name: "x"
   28184     type_attr: "T"
   28185   }
   28186   output_arg {
   28187     name: "y"
   28188     type_attr: "T"
   28189   }
   28190   attr {
   28191     name: "T"
   28192     type: "type"
   28193     allowed_values {
   28194       list {
   28195         type: DT_FLOAT
   28196         type: DT_DOUBLE
   28197         type: DT_COMPLEX64
   28198       }
   28199     }
   28200   }
   28201 }
   28202 op {
   28203   name: "Rsqrt"
   28204   input_arg {
   28205     name: "x"
   28206     type_attr: "T"
   28207   }
   28208   output_arg {
   28209     name: "y"
   28210     type_attr: "T"
   28211   }
   28212   attr {
   28213     name: "T"
   28214     type: "type"
   28215     allowed_values {
   28216       list {
   28217         type: DT_HALF
   28218         type: DT_FLOAT
   28219         type: DT_DOUBLE
   28220         type: DT_COMPLEX64
   28221       }
   28222     }
   28223   }
   28224 }
   28225 op {
   28226   name: "Rsqrt"
   28227   input_arg {
   28228     name: "x"
   28229     type_attr: "T"
   28230   }
   28231   output_arg {
   28232     name: "y"
   28233     type_attr: "T"
   28234   }
   28235   attr {
   28236     name: "T"
   28237     type: "type"
   28238     allowed_values {
   28239       list {
   28240         type: DT_HALF
   28241         type: DT_FLOAT
   28242         type: DT_DOUBLE
   28243         type: DT_COMPLEX64
   28244         type: DT_COMPLEX128
   28245       }
   28246     }
   28247   }
   28248 }
   28249 op {
   28250   name: "RsqrtGrad"
   28251   input_arg {
   28252     name: "x"
   28253     type_attr: "T"
   28254   }
   28255   input_arg {
   28256     name: "y"
   28257     type_attr: "T"
   28258   }
   28259   output_arg {
   28260     name: "z"
   28261     type_attr: "T"
   28262   }
   28263   attr {
   28264     name: "T"
   28265     type: "type"
   28266     allowed_values {
   28267       list {
   28268         type: DT_HALF
   28269         type: DT_FLOAT
   28270         type: DT_DOUBLE
   28271         type: DT_COMPLEX64
   28272         type: DT_COMPLEX128
   28273       }
   28274     }
   28275   }
   28276 }
   28277 op {
   28278   name: "SampleDistortedBoundingBox"
   28279   input_arg {
   28280     name: "image_size"
   28281     type_attr: "T"
   28282   }
   28283   input_arg {
   28284     name: "bounding_boxes"
   28285     type: DT_FLOAT
   28286   }
   28287   output_arg {
   28288     name: "begin"
   28289     type_attr: "T"
   28290   }
   28291   output_arg {
   28292     name: "size"
   28293     type_attr: "T"
   28294   }
   28295   output_arg {
   28296     name: "bboxes"
   28297     type: DT_FLOAT
   28298   }
   28299   attr {
   28300     name: "T"
   28301     type: "type"
   28302     allowed_values {
   28303       list {
   28304         type: DT_UINT8
   28305         type: DT_INT8
   28306         type: DT_INT16
   28307         type: DT_INT32
   28308         type: DT_INT64
   28309       }
   28310     }
   28311   }
   28312   attr {
   28313     name: "seed"
   28314     type: "int"
   28315     default_value {
   28316       i: 0
   28317     }
   28318   }
   28319   attr {
   28320     name: "seed2"
   28321     type: "int"
   28322     default_value {
   28323       i: 0
   28324     }
   28325   }
   28326   attr {
   28327     name: "min_object_covered"
   28328     type: "float"
   28329     default_value {
   28330       f: 0.1
   28331     }
   28332   }
   28333   attr {
   28334     name: "aspect_ratio_range"
   28335     type: "list(float)"
   28336     default_value {
   28337       list {
   28338         f: 0.75
   28339         f: 1.33
   28340       }
   28341     }
   28342   }
   28343   attr {
   28344     name: "area_range"
   28345     type: "list(float)"
   28346     default_value {
   28347       list {
   28348         f: 0.05
   28349         f: 1
   28350       }
   28351     }
   28352   }
   28353   attr {
   28354     name: "max_attempts"
   28355     type: "int"
   28356     default_value {
   28357       i: 100
   28358     }
   28359   }
   28360   attr {
   28361     name: "use_image_if_no_bounding_boxes"
   28362     type: "bool"
   28363     default_value {
   28364       b: false
   28365     }
   28366   }
   28367   is_stateful: true
   28368 }
   28369 op {
   28370   name: "Save"
   28371   input_arg {
   28372     name: "filename"
   28373     type: DT_STRING
   28374   }
   28375   input_arg {
   28376     name: "tensor_names"
   28377     type: DT_STRING
   28378   }
   28379   input_arg {
   28380     name: "data"
   28381     type_list_attr: "T"
   28382   }
   28383   attr {
   28384     name: "T"
   28385     type: "list(type)"
   28386     has_minimum: true
   28387     minimum: 1
   28388     allowed_values {
   28389       list {
   28390         type: DT_FLOAT
   28391         type: DT_DOUBLE
   28392         type: DT_INT32
   28393         type: DT_INT64
   28394         type: DT_QUINT8
   28395         type: DT_QINT8
   28396         type: DT_QINT32
   28397       }
   28398     }
   28399   }
   28400 }
   28401 op {
   28402   name: "Save"
   28403   input_arg {
   28404     name: "filename"
   28405     type: DT_STRING
   28406   }
   28407   input_arg {
   28408     name: "tensor_names"
   28409     type: DT_STRING
   28410   }
   28411   input_arg {
   28412     name: "data"
   28413     type_list_attr: "T"
   28414   }
   28415   attr {
   28416     name: "T"
   28417     type: "list(type)"
   28418     has_minimum: true
   28419     minimum: 1
   28420     allowed_values {
   28421       list {
   28422         type: DT_BOOL
   28423         type: DT_FLOAT
   28424         type: DT_DOUBLE
   28425         type: DT_INT32
   28426         type: DT_INT64
   28427         type: DT_QUINT8
   28428         type: DT_QINT8
   28429         type: DT_QINT32
   28430       }
   28431     }
   28432   }
   28433 }
   28434 op {
   28435   name: "Save"
   28436   input_arg {
   28437     name: "filename"
   28438     type: DT_STRING
   28439   }
   28440   input_arg {
   28441     name: "tensor_names"
   28442     type: DT_STRING
   28443   }
   28444   input_arg {
   28445     name: "data"
   28446     type_list_attr: "T"
   28447   }
   28448   attr {
   28449     name: "T"
   28450     type: "list(type)"
   28451     has_minimum: true
   28452     minimum: 1
   28453   }
   28454 }
   28455 op {
   28456   name: "SaveSlices"
   28457   input_arg {
   28458     name: "filename"
   28459     type: DT_STRING
   28460   }
   28461   input_arg {
   28462     name: "tensor_names"
   28463     type: DT_STRING
   28464   }
   28465   input_arg {
   28466     name: "shapes_and_slices"
   28467     type: DT_STRING
   28468   }
   28469   input_arg {
   28470     name: "data"
   28471     type_list_attr: "T"
   28472   }
   28473   attr {
   28474     name: "T"
   28475     type: "list(type)"
   28476     has_minimum: true
   28477     minimum: 1
   28478     allowed_values {
   28479       list {
   28480         type: DT_FLOAT
   28481         type: DT_DOUBLE
   28482         type: DT_INT32
   28483         type: DT_INT64
   28484         type: DT_QUINT8
   28485         type: DT_QINT8
   28486         type: DT_QINT32
   28487       }
   28488     }
   28489   }
   28490 }
   28491 op {
   28492   name: "SaveSlices"
   28493   input_arg {
   28494     name: "filename"
   28495     type: DT_STRING
   28496   }
   28497   input_arg {
   28498     name: "tensor_names"
   28499     type: DT_STRING
   28500   }
   28501   input_arg {
   28502     name: "shapes_and_slices"
   28503     type: DT_STRING
   28504   }
   28505   input_arg {
   28506     name: "data"
   28507     type_list_attr: "T"
   28508   }
   28509   attr {
   28510     name: "T"
   28511     type: "list(type)"
   28512     has_minimum: true
   28513     minimum: 1
   28514     allowed_values {
   28515       list {
   28516         type: DT_BOOL
   28517         type: DT_FLOAT
   28518         type: DT_DOUBLE
   28519         type: DT_INT32
   28520         type: DT_INT64
   28521         type: DT_QUINT8
   28522         type: DT_QINT8
   28523         type: DT_QINT32
   28524       }
   28525     }
   28526   }
   28527 }
   28528 op {
   28529   name: "SaveSlices"
   28530   input_arg {
   28531     name: "filename"
   28532     type: DT_STRING
   28533   }
   28534   input_arg {
   28535     name: "tensor_names"
   28536     type: DT_STRING
   28537   }
   28538   input_arg {
   28539     name: "shapes_and_slices"
   28540     type: DT_STRING
   28541   }
   28542   input_arg {
   28543     name: "data"
   28544     type_list_attr: "T"
   28545   }
   28546   attr {
   28547     name: "T"
   28548     type: "list(type)"
   28549     has_minimum: true
   28550     minimum: 1
   28551   }
   28552 }
   28553 op {
   28554   name: "SaveV2"
   28555   input_arg {
   28556     name: "prefix"
   28557     type: DT_STRING
   28558   }
   28559   input_arg {
   28560     name: "tensor_names"
   28561     type: DT_STRING
   28562   }
   28563   input_arg {
   28564     name: "shape_and_slices"
   28565     type: DT_STRING
   28566   }
   28567   input_arg {
   28568     name: "tensors"
   28569     type_list_attr: "dtypes"
   28570   }
   28571   attr {
   28572     name: "dtypes"
   28573     type: "list(type)"
   28574     has_minimum: true
   28575     minimum: 1
   28576   }
   28577 }
   28578 op {
   28579   name: "ScalarSummary"
   28580   input_arg {
   28581     name: "tags"
   28582     type: DT_STRING
   28583   }
   28584   input_arg {
   28585     name: "values"
   28586     type_attr: "T"
   28587   }
   28588   output_arg {
   28589     name: "summary"
   28590     type: DT_STRING
   28591   }
   28592   attr {
   28593     name: "T"
   28594     type: "type"
   28595     allowed_values {
   28596       list {
   28597         type: DT_FLOAT
   28598         type: DT_DOUBLE
   28599       }
   28600     }
   28601   }
   28602 }
   28603 op {
   28604   name: "ScalarSummary"
   28605   input_arg {
   28606     name: "tags"
   28607     type: DT_STRING
   28608   }
   28609   input_arg {
   28610     name: "values"
   28611     type_attr: "T"
   28612   }
   28613   output_arg {
   28614     name: "summary"
   28615     type: DT_STRING
   28616   }
   28617   attr {
   28618     name: "T"
   28619     type: "type"
   28620     allowed_values {
   28621       list {
   28622         type: DT_FLOAT
   28623         type: DT_DOUBLE
   28624         type: DT_INT32
   28625         type: DT_INT64
   28626         type: DT_UINT8
   28627         type: DT_INT16
   28628         type: DT_INT8
   28629       }
   28630     }
   28631   }
   28632 }
   28633 op {
   28634   name: "ScalarSummary"
   28635   input_arg {
   28636     name: "tags"
   28637     type: DT_STRING
   28638   }
   28639   input_arg {
   28640     name: "values"
   28641     type_attr: "T"
   28642   }
   28643   output_arg {
   28644     name: "summary"
   28645     type: DT_STRING
   28646   }
   28647   attr {
   28648     name: "T"
   28649     type: "type"
   28650     allowed_values {
   28651       list {
   28652         type: DT_FLOAT
   28653         type: DT_DOUBLE
   28654         type: DT_INT32
   28655         type: DT_INT64
   28656         type: DT_UINT8
   28657         type: DT_INT16
   28658         type: DT_INT8
   28659         type: DT_UINT16
   28660       }
   28661     }
   28662   }
   28663 }
   28664 op {
   28665   name: "ScalarSummary"
   28666   input_arg {
   28667     name: "tags"
   28668     type: DT_STRING
   28669   }
   28670   input_arg {
   28671     name: "values"
   28672     type_attr: "T"
   28673   }
   28674   output_arg {
   28675     name: "summary"
   28676     type: DT_STRING
   28677   }
   28678   attr {
   28679     name: "T"
   28680     type: "type"
   28681     allowed_values {
   28682       list {
   28683         type: DT_FLOAT
   28684         type: DT_DOUBLE
   28685         type: DT_INT32
   28686         type: DT_INT64
   28687         type: DT_UINT8
   28688         type: DT_INT16
   28689         type: DT_INT8
   28690         type: DT_UINT16
   28691         type: DT_HALF
   28692       }
   28693     }
   28694   }
   28695 }
   28696 op {
   28697   name: "ScatterAdd"
   28698   input_arg {
   28699     name: "ref"
   28700     type_attr: "T"
   28701     is_ref: true
   28702   }
   28703   input_arg {
   28704     name: "indices"
   28705     type_attr: "Tindices"
   28706   }
   28707   input_arg {
   28708     name: "updates"
   28709     type_attr: "T"
   28710   }
   28711   output_arg {
   28712     name: "output_ref"
   28713     type_attr: "T"
   28714     is_ref: true
   28715   }
   28716   attr {
   28717     name: "T"
   28718     type: "type"
   28719     allowed_values {
   28720       list {
   28721         type: DT_FLOAT
   28722         type: DT_DOUBLE
   28723         type: DT_INT64
   28724         type: DT_INT32
   28725         type: DT_UINT8
   28726         type: DT_INT16
   28727         type: DT_INT8
   28728         type: DT_COMPLEX64
   28729         type: DT_QINT8
   28730         type: DT_QUINT8
   28731         type: DT_QINT32
   28732       }
   28733     }
   28734   }
   28735   attr {
   28736     name: "Tindices"
   28737     type: "type"
   28738     allowed_values {
   28739       list {
   28740         type: DT_INT32
   28741         type: DT_INT64
   28742       }
   28743     }
   28744   }
   28745   attr {
   28746     name: "use_locking"
   28747     type: "bool"
   28748     default_value {
   28749       b: false
   28750     }
   28751   }
   28752 }
   28753 op {
   28754   name: "ScatterAdd"
   28755   input_arg {
   28756     name: "ref"
   28757     type_attr: "T"
   28758     is_ref: true
   28759   }
   28760   input_arg {
   28761     name: "indices"
   28762     type_attr: "Tindices"
   28763   }
   28764   input_arg {
   28765     name: "updates"
   28766     type_attr: "T"
   28767   }
   28768   output_arg {
   28769     name: "output_ref"
   28770     type_attr: "T"
   28771     is_ref: true
   28772   }
   28773   attr {
   28774     name: "T"
   28775     type: "type"
   28776     allowed_values {
   28777       list {
   28778         type: DT_FLOAT
   28779         type: DT_DOUBLE
   28780         type: DT_INT64
   28781         type: DT_INT32
   28782         type: DT_UINT8
   28783         type: DT_UINT16
   28784         type: DT_INT16
   28785         type: DT_INT8
   28786         type: DT_COMPLEX64
   28787         type: DT_QINT8
   28788         type: DT_QUINT8
   28789         type: DT_QINT32
   28790       }
   28791     }
   28792   }
   28793   attr {
   28794     name: "Tindices"
   28795     type: "type"
   28796     allowed_values {
   28797       list {
   28798         type: DT_INT32
   28799         type: DT_INT64
   28800       }
   28801     }
   28802   }
   28803   attr {
   28804     name: "use_locking"
   28805     type: "bool"
   28806     default_value {
   28807       b: false
   28808     }
   28809   }
   28810 }
   28811 op {
   28812   name: "ScatterAdd"
   28813   input_arg {
   28814     name: "ref"
   28815     type_attr: "T"
   28816     is_ref: true
   28817   }
   28818   input_arg {
   28819     name: "indices"
   28820     type_attr: "Tindices"
   28821   }
   28822   input_arg {
   28823     name: "updates"
   28824     type_attr: "T"
   28825   }
   28826   output_arg {
   28827     name: "output_ref"
   28828     type_attr: "T"
   28829     is_ref: true
   28830   }
   28831   attr {
   28832     name: "T"
   28833     type: "type"
   28834     allowed_values {
   28835       list {
   28836         type: DT_FLOAT
   28837         type: DT_DOUBLE
   28838         type: DT_INT64
   28839         type: DT_INT32
   28840         type: DT_UINT8
   28841         type: DT_UINT16
   28842         type: DT_INT16
   28843         type: DT_INT8
   28844         type: DT_COMPLEX64
   28845         type: DT_COMPLEX128
   28846         type: DT_QINT8
   28847         type: DT_QUINT8
   28848         type: DT_QINT32
   28849       }
   28850     }
   28851   }
   28852   attr {
   28853     name: "Tindices"
   28854     type: "type"
   28855     allowed_values {
   28856       list {
   28857         type: DT_INT32
   28858         type: DT_INT64
   28859       }
   28860     }
   28861   }
   28862   attr {
   28863     name: "use_locking"
   28864     type: "bool"
   28865     default_value {
   28866       b: false
   28867     }
   28868   }
   28869 }
   28870 op {
   28871   name: "ScatterAdd"
   28872   input_arg {
   28873     name: "ref"
   28874     type_attr: "T"
   28875     is_ref: true
   28876   }
   28877   input_arg {
   28878     name: "indices"
   28879     type_attr: "Tindices"
   28880   }
   28881   input_arg {
   28882     name: "updates"
   28883     type_attr: "T"
   28884   }
   28885   output_arg {
   28886     name: "output_ref"
   28887     type_attr: "T"
   28888     is_ref: true
   28889   }
   28890   attr {
   28891     name: "T"
   28892     type: "type"
   28893     allowed_values {
   28894       list {
   28895         type: DT_FLOAT
   28896         type: DT_DOUBLE
   28897         type: DT_INT64
   28898         type: DT_INT32
   28899         type: DT_UINT8
   28900         type: DT_UINT16
   28901         type: DT_INT16
   28902         type: DT_INT8
   28903         type: DT_COMPLEX64
   28904         type: DT_COMPLEX128
   28905         type: DT_QINT8
   28906         type: DT_QUINT8
   28907         type: DT_QINT32
   28908         type: DT_HALF
   28909       }
   28910     }
   28911   }
   28912   attr {
   28913     name: "Tindices"
   28914     type: "type"
   28915     allowed_values {
   28916       list {
   28917         type: DT_INT32
   28918         type: DT_INT64
   28919       }
   28920     }
   28921   }
   28922   attr {
   28923     name: "use_locking"
   28924     type: "bool"
   28925     default_value {
   28926       b: false
   28927     }
   28928   }
   28929 }
   28930 op {
   28931   name: "ScatterDiv"
   28932   input_arg {
   28933     name: "ref"
   28934     type_attr: "T"
   28935     is_ref: true
   28936   }
   28937   input_arg {
   28938     name: "indices"
   28939     type_attr: "Tindices"
   28940   }
   28941   input_arg {
   28942     name: "updates"
   28943     type_attr: "T"
   28944   }
   28945   output_arg {
   28946     name: "output_ref"
   28947     type_attr: "T"
   28948     is_ref: true
   28949   }
   28950   attr {
   28951     name: "T"
   28952     type: "type"
   28953     allowed_values {
   28954       list {
   28955         type: DT_FLOAT
   28956         type: DT_DOUBLE
   28957         type: DT_INT64
   28958         type: DT_INT32
   28959         type: DT_UINT8
   28960         type: DT_UINT16
   28961         type: DT_INT16
   28962         type: DT_INT8
   28963         type: DT_COMPLEX64
   28964         type: DT_COMPLEX128
   28965         type: DT_QINT8
   28966         type: DT_QUINT8
   28967         type: DT_QINT32
   28968         type: DT_HALF
   28969       }
   28970     }
   28971   }
   28972   attr {
   28973     name: "Tindices"
   28974     type: "type"
   28975     allowed_values {
   28976       list {
   28977         type: DT_INT32
   28978         type: DT_INT64
   28979       }
   28980     }
   28981   }
   28982   attr {
   28983     name: "use_locking"
   28984     type: "bool"
   28985     default_value {
   28986       b: false
   28987     }
   28988   }
   28989 }
   28990 op {
   28991   name: "ScatterMul"
   28992   input_arg {
   28993     name: "ref"
   28994     type_attr: "T"
   28995     is_ref: true
   28996   }
   28997   input_arg {
   28998     name: "indices"
   28999     type_attr: "Tindices"
   29000   }
   29001   input_arg {
   29002     name: "updates"
   29003     type_attr: "T"
   29004   }
   29005   output_arg {
   29006     name: "output_ref"
   29007     type_attr: "T"
   29008     is_ref: true
   29009   }
   29010   attr {
   29011     name: "T"
   29012     type: "type"
   29013     allowed_values {
   29014       list {
   29015         type: DT_FLOAT
   29016         type: DT_DOUBLE
   29017         type: DT_INT64
   29018         type: DT_INT32
   29019         type: DT_UINT8
   29020         type: DT_UINT16
   29021         type: DT_INT16
   29022         type: DT_INT8
   29023         type: DT_COMPLEX64
   29024         type: DT_COMPLEX128
   29025         type: DT_QINT8
   29026         type: DT_QUINT8
   29027         type: DT_QINT32
   29028         type: DT_HALF
   29029       }
   29030     }
   29031   }
   29032   attr {
   29033     name: "Tindices"
   29034     type: "type"
   29035     allowed_values {
   29036       list {
   29037         type: DT_INT32
   29038         type: DT_INT64
   29039       }
   29040     }
   29041   }
   29042   attr {
   29043     name: "use_locking"
   29044     type: "bool"
   29045     default_value {
   29046       b: false
   29047     }
   29048   }
   29049 }
   29050 op {
   29051   name: "ScatterNd"
   29052   input_arg {
   29053     name: "indices"
   29054     type_attr: "Tindices"
   29055   }
   29056   input_arg {
   29057     name: "updates"
   29058     type_attr: "T"
   29059   }
   29060   input_arg {
   29061     name: "shape"
   29062     type_attr: "Tindices"
   29063   }
   29064   output_arg {
   29065     name: "output"
   29066     type_attr: "T"
   29067   }
   29068   attr {
   29069     name: "T"
   29070     type: "type"
   29071   }
   29072   attr {
   29073     name: "Tindices"
   29074     type: "type"
   29075     allowed_values {
   29076       list {
   29077         type: DT_INT32
   29078         type: DT_INT64
   29079       }
   29080     }
   29081   }
   29082 }
   29083 op {
   29084   name: "ScatterNdAdd"
   29085   input_arg {
   29086     name: "ref"
   29087     type_attr: "T"
   29088     is_ref: true
   29089   }
   29090   input_arg {
   29091     name: "indices"
   29092     type_attr: "Tindices"
   29093   }
   29094   input_arg {
   29095     name: "updates"
   29096     type_attr: "T"
   29097   }
   29098   output_arg {
   29099     name: "output_ref"
   29100     type_attr: "T"
   29101     is_ref: true
   29102   }
   29103   attr {
   29104     name: "T"
   29105     type: "type"
   29106     allowed_values {
   29107       list {
   29108         type: DT_FLOAT
   29109         type: DT_DOUBLE
   29110         type: DT_INT64
   29111         type: DT_INT32
   29112         type: DT_UINT8
   29113         type: DT_UINT16
   29114         type: DT_INT16
   29115         type: DT_INT8
   29116         type: DT_COMPLEX64
   29117         type: DT_COMPLEX128
   29118         type: DT_QINT8
   29119         type: DT_QUINT8
   29120         type: DT_QINT32
   29121         type: DT_HALF
   29122       }
   29123     }
   29124   }
   29125   attr {
   29126     name: "Tindices"
   29127     type: "type"
   29128     allowed_values {
   29129       list {
   29130         type: DT_INT32
   29131         type: DT_INT64
   29132       }
   29133     }
   29134   }
   29135   attr {
   29136     name: "use_locking"
   29137     type: "bool"
   29138     default_value {
   29139       b: false
   29140     }
   29141   }
   29142 }
   29143 op {
   29144   name: "ScatterNdSub"
   29145   input_arg {
   29146     name: "ref"
   29147     type_attr: "T"
   29148     is_ref: true
   29149   }
   29150   input_arg {
   29151     name: "indices"
   29152     type_attr: "Tindices"
   29153   }
   29154   input_arg {
   29155     name: "updates"
   29156     type_attr: "T"
   29157   }
   29158   output_arg {
   29159     name: "output_ref"
   29160     type_attr: "T"
   29161     is_ref: true
   29162   }
   29163   attr {
   29164     name: "T"
   29165     type: "type"
   29166     allowed_values {
   29167       list {
   29168         type: DT_FLOAT
   29169         type: DT_DOUBLE
   29170         type: DT_INT64
   29171         type: DT_INT32
   29172         type: DT_UINT8
   29173         type: DT_UINT16
   29174         type: DT_INT16
   29175         type: DT_INT8
   29176         type: DT_COMPLEX64
   29177         type: DT_COMPLEX128
   29178         type: DT_QINT8
   29179         type: DT_QUINT8
   29180         type: DT_QINT32
   29181         type: DT_HALF
   29182       }
   29183     }
   29184   }
   29185   attr {
   29186     name: "Tindices"
   29187     type: "type"
   29188     allowed_values {
   29189       list {
   29190         type: DT_INT32
   29191         type: DT_INT64
   29192       }
   29193     }
   29194   }
   29195   attr {
   29196     name: "use_locking"
   29197     type: "bool"
   29198     default_value {
   29199       b: false
   29200     }
   29201   }
   29202 }
   29203 op {
   29204   name: "ScatterNdUpdate"
   29205   input_arg {
   29206     name: "ref"
   29207     type_attr: "T"
   29208     is_ref: true
   29209   }
   29210   input_arg {
   29211     name: "indices"
   29212     type_attr: "Tindices"
   29213   }
   29214   input_arg {
   29215     name: "updates"
   29216     type_attr: "T"
   29217   }
   29218   output_arg {
   29219     name: "output_ref"
   29220     type_attr: "T"
   29221     is_ref: true
   29222   }
   29223   attr {
   29224     name: "T"
   29225     type: "type"
   29226   }
   29227   attr {
   29228     name: "Tindices"
   29229     type: "type"
   29230     allowed_values {
   29231       list {
   29232         type: DT_INT32
   29233         type: DT_INT64
   29234       }
   29235     }
   29236   }
   29237   attr {
   29238     name: "use_locking"
   29239     type: "bool"
   29240     default_value {
   29241       b: true
   29242     }
   29243   }
   29244 }
   29245 op {
   29246   name: "ScatterSub"
   29247   input_arg {
   29248     name: "ref"
   29249     type_attr: "T"
   29250     is_ref: true
   29251   }
   29252   input_arg {
   29253     name: "indices"
   29254     type_attr: "Tindices"
   29255   }
   29256   input_arg {
   29257     name: "updates"
   29258     type_attr: "T"
   29259   }
   29260   output_arg {
   29261     name: "output_ref"
   29262     type_attr: "T"
   29263     is_ref: true
   29264   }
   29265   attr {
   29266     name: "T"
   29267     type: "type"
   29268     allowed_values {
   29269       list {
   29270         type: DT_FLOAT
   29271         type: DT_DOUBLE
   29272         type: DT_INT64
   29273         type: DT_INT32
   29274         type: DT_UINT8
   29275         type: DT_INT16
   29276         type: DT_INT8
   29277         type: DT_COMPLEX64
   29278         type: DT_QINT8
   29279         type: DT_QUINT8
   29280         type: DT_QINT32
   29281       }
   29282     }
   29283   }
   29284   attr {
   29285     name: "Tindices"
   29286     type: "type"
   29287     allowed_values {
   29288       list {
   29289         type: DT_INT32
   29290         type: DT_INT64
   29291       }
   29292     }
   29293   }
   29294   attr {
   29295     name: "use_locking"
   29296     type: "bool"
   29297     default_value {
   29298       b: false
   29299     }
   29300   }
   29301 }
   29302 op {
   29303   name: "ScatterSub"
   29304   input_arg {
   29305     name: "ref"
   29306     type_attr: "T"
   29307     is_ref: true
   29308   }
   29309   input_arg {
   29310     name: "indices"
   29311     type_attr: "Tindices"
   29312   }
   29313   input_arg {
   29314     name: "updates"
   29315     type_attr: "T"
   29316   }
   29317   output_arg {
   29318     name: "output_ref"
   29319     type_attr: "T"
   29320     is_ref: true
   29321   }
   29322   attr {
   29323     name: "T"
   29324     type: "type"
   29325     allowed_values {
   29326       list {
   29327         type: DT_FLOAT
   29328         type: DT_DOUBLE
   29329         type: DT_INT64
   29330         type: DT_INT32
   29331         type: DT_UINT8
   29332         type: DT_UINT16
   29333         type: DT_INT16
   29334         type: DT_INT8
   29335         type: DT_COMPLEX64
   29336         type: DT_QINT8
   29337         type: DT_QUINT8
   29338         type: DT_QINT32
   29339       }
   29340     }
   29341   }
   29342   attr {
   29343     name: "Tindices"
   29344     type: "type"
   29345     allowed_values {
   29346       list {
   29347         type: DT_INT32
   29348         type: DT_INT64
   29349       }
   29350     }
   29351   }
   29352   attr {
   29353     name: "use_locking"
   29354     type: "bool"
   29355     default_value {
   29356       b: false
   29357     }
   29358   }
   29359 }
   29360 op {
   29361   name: "ScatterSub"
   29362   input_arg {
   29363     name: "ref"
   29364     type_attr: "T"
   29365     is_ref: true
   29366   }
   29367   input_arg {
   29368     name: "indices"
   29369     type_attr: "Tindices"
   29370   }
   29371   input_arg {
   29372     name: "updates"
   29373     type_attr: "T"
   29374   }
   29375   output_arg {
   29376     name: "output_ref"
   29377     type_attr: "T"
   29378     is_ref: true
   29379   }
   29380   attr {
   29381     name: "T"
   29382     type: "type"
   29383     allowed_values {
   29384       list {
   29385         type: DT_FLOAT
   29386         type: DT_DOUBLE
   29387         type: DT_INT64
   29388         type: DT_INT32
   29389         type: DT_UINT8
   29390         type: DT_UINT16
   29391         type: DT_INT16
   29392         type: DT_INT8
   29393         type: DT_COMPLEX64
   29394         type: DT_COMPLEX128
   29395         type: DT_QINT8
   29396         type: DT_QUINT8
   29397         type: DT_QINT32
   29398       }
   29399     }
   29400   }
   29401   attr {
   29402     name: "Tindices"
   29403     type: "type"
   29404     allowed_values {
   29405       list {
   29406         type: DT_INT32
   29407         type: DT_INT64
   29408       }
   29409     }
   29410   }
   29411   attr {
   29412     name: "use_locking"
   29413     type: "bool"
   29414     default_value {
   29415       b: false
   29416     }
   29417   }
   29418 }
   29419 op {
   29420   name: "ScatterSub"
   29421   input_arg {
   29422     name: "ref"
   29423     type_attr: "T"
   29424     is_ref: true
   29425   }
   29426   input_arg {
   29427     name: "indices"
   29428     type_attr: "Tindices"
   29429   }
   29430   input_arg {
   29431     name: "updates"
   29432     type_attr: "T"
   29433   }
   29434   output_arg {
   29435     name: "output_ref"
   29436     type_attr: "T"
   29437     is_ref: true
   29438   }
   29439   attr {
   29440     name: "T"
   29441     type: "type"
   29442     allowed_values {
   29443       list {
   29444         type: DT_FLOAT
   29445         type: DT_DOUBLE
   29446         type: DT_INT64
   29447         type: DT_INT32
   29448         type: DT_UINT8
   29449         type: DT_UINT16
   29450         type: DT_INT16
   29451         type: DT_INT8
   29452         type: DT_COMPLEX64
   29453         type: DT_COMPLEX128
   29454         type: DT_QINT8
   29455         type: DT_QUINT8
   29456         type: DT_QINT32
   29457         type: DT_HALF
   29458       }
   29459     }
   29460   }
   29461   attr {
   29462     name: "Tindices"
   29463     type: "type"
   29464     allowed_values {
   29465       list {
   29466         type: DT_INT32
   29467         type: DT_INT64
   29468       }
   29469     }
   29470   }
   29471   attr {
   29472     name: "use_locking"
   29473     type: "bool"
   29474     default_value {
   29475       b: false
   29476     }
   29477   }
   29478 }
   29479 op {
   29480   name: "ScatterUpdate"
   29481   input_arg {
   29482     name: "ref"
   29483     type_attr: "T"
   29484     is_ref: true
   29485   }
   29486   input_arg {
   29487     name: "indices"
   29488     type_attr: "Tindices"
   29489   }
   29490   input_arg {
   29491     name: "updates"
   29492     type_attr: "T"
   29493   }
   29494   output_arg {
   29495     name: "output_ref"
   29496     type_attr: "T"
   29497     is_ref: true
   29498   }
   29499   attr {
   29500     name: "T"
   29501     type: "type"
   29502   }
   29503   attr {
   29504     name: "Tindices"
   29505     type: "type"
   29506     allowed_values {
   29507       list {
   29508         type: DT_INT32
   29509         type: DT_INT64
   29510       }
   29511     }
   29512   }
   29513   attr {
   29514     name: "use_locking"
   29515     type: "bool"
   29516     default_value {
   29517       b: true
   29518     }
   29519   }
   29520 }
   29521 op {
   29522   name: "SdcaFprint"
   29523   input_arg {
   29524     name: "input"
   29525     type: DT_STRING
   29526   }
   29527   output_arg {
   29528     name: "output"
   29529     type: DT_INT64
   29530   }
   29531 }
   29532 op {
   29533   name: "SdcaOptimizer"
   29534   input_arg {
   29535     name: "sparse_example_indices"
   29536     type: DT_INT64
   29537     number_attr: "num_sparse_features"
   29538   }
   29539   input_arg {
   29540     name: "sparse_feature_indices"
   29541     type: DT_INT64
   29542     number_attr: "num_sparse_features"
   29543   }
   29544   input_arg {
   29545     name: "sparse_feature_values"
   29546     type: DT_FLOAT
   29547     number_attr: "num_sparse_features_with_values"
   29548   }
   29549   input_arg {
   29550     name: "dense_features"
   29551     type: DT_FLOAT
   29552     number_attr: "num_dense_features"
   29553   }
   29554   input_arg {
   29555     name: "example_weights"
   29556     type: DT_FLOAT
   29557   }
   29558   input_arg {
   29559     name: "example_labels"
   29560     type: DT_FLOAT
   29561   }
   29562   input_arg {
   29563     name: "sparse_indices"
   29564     type: DT_INT64
   29565     number_attr: "num_sparse_features"
   29566   }
   29567   input_arg {
   29568     name: "sparse_weights"
   29569     type: DT_FLOAT
   29570     number_attr: "num_sparse_features"
   29571   }
   29572   input_arg {
   29573     name: "dense_weights"
   29574     type: DT_FLOAT
   29575     number_attr: "num_dense_features"
   29576   }
   29577   input_arg {
   29578     name: "example_state_data"
   29579     type: DT_FLOAT
   29580   }
   29581   output_arg {
   29582     name: "out_example_state_data"
   29583     type: DT_FLOAT
   29584   }
   29585   output_arg {
   29586     name: "out_delta_sparse_weights"
   29587     type: DT_FLOAT
   29588     number_attr: "num_sparse_features"
   29589   }
   29590   output_arg {
   29591     name: "out_delta_dense_weights"
   29592     type: DT_FLOAT
   29593     number_attr: "num_dense_features"
   29594   }
   29595   attr {
   29596     name: "loss_type"
   29597     type: "string"
   29598     allowed_values {
   29599       list {
   29600         s: "logistic_loss"
   29601         s: "squared_loss"
   29602         s: "hinge_loss"
   29603         s: "smooth_hinge_loss"
   29604       }
   29605     }
   29606   }
   29607   attr {
   29608     name: "adaptative"
   29609     type: "bool"
   29610     default_value {
   29611       b: false
   29612     }
   29613   }
   29614   attr {
   29615     name: "num_sparse_features"
   29616     type: "int"
   29617     has_minimum: true
   29618   }
   29619   attr {
   29620     name: "num_sparse_features_with_values"
   29621     type: "int"
   29622     has_minimum: true
   29623   }
   29624   attr {
   29625     name: "num_dense_features"
   29626     type: "int"
   29627     has_minimum: true
   29628   }
   29629   attr {
   29630     name: "l1"
   29631     type: "float"
   29632   }
   29633   attr {
   29634     name: "l2"
   29635     type: "float"
   29636   }
   29637   attr {
   29638     name: "num_loss_partitions"
   29639     type: "int"
   29640     has_minimum: true
   29641     minimum: 1
   29642   }
   29643   attr {
   29644     name: "num_inner_iterations"
   29645     type: "int"
   29646     has_minimum: true
   29647     minimum: 1
   29648   }
   29649 }
   29650 op {
   29651   name: "SdcaShrinkL1"
   29652   input_arg {
   29653     name: "weights"
   29654     type: DT_FLOAT
   29655     number_attr: "num_features"
   29656     is_ref: true
   29657   }
   29658   attr {
   29659     name: "num_features"
   29660     type: "int"
   29661     has_minimum: true
   29662   }
   29663   attr {
   29664     name: "l1"
   29665     type: "float"
   29666   }
   29667   attr {
   29668     name: "l2"
   29669     type: "float"
   29670   }
   29671 }
   29672 op {
   29673   name: "SegmentMax"
   29674   input_arg {
   29675     name: "data"
   29676     type_attr: "T"
   29677   }
   29678   input_arg {
   29679     name: "segment_ids"
   29680     type_attr: "Tindices"
   29681   }
   29682   output_arg {
   29683     name: "output"
   29684     type_attr: "T"
   29685   }
   29686   attr {
   29687     name: "T"
   29688     type: "type"
   29689     allowed_values {
   29690       list {
   29691         type: DT_FLOAT
   29692         type: DT_DOUBLE
   29693         type: DT_INT32
   29694         type: DT_INT64
   29695         type: DT_UINT8
   29696         type: DT_INT16
   29697         type: DT_INT8
   29698       }
   29699     }
   29700   }
   29701   attr {
   29702     name: "Tindices"
   29703     type: "type"
   29704     allowed_values {
   29705       list {
   29706         type: DT_INT32
   29707         type: DT_INT64
   29708       }
   29709     }
   29710   }
   29711 }
   29712 op {
   29713   name: "SegmentMax"
   29714   input_arg {
   29715     name: "data"
   29716     type_attr: "T"
   29717   }
   29718   input_arg {
   29719     name: "segment_ids"
   29720     type_attr: "Tindices"
   29721   }
   29722   output_arg {
   29723     name: "output"
   29724     type_attr: "T"
   29725   }
   29726   attr {
   29727     name: "T"
   29728     type: "type"
   29729     allowed_values {
   29730       list {
   29731         type: DT_FLOAT
   29732         type: DT_DOUBLE
   29733         type: DT_INT32
   29734         type: DT_INT64
   29735         type: DT_UINT8
   29736         type: DT_INT16
   29737         type: DT_INT8
   29738         type: DT_UINT16
   29739       }
   29740     }
   29741   }
   29742   attr {
   29743     name: "Tindices"
   29744     type: "type"
   29745     allowed_values {
   29746       list {
   29747         type: DT_INT32
   29748         type: DT_INT64
   29749       }
   29750     }
   29751   }
   29752 }
   29753 op {
   29754   name: "SegmentMax"
   29755   input_arg {
   29756     name: "data"
   29757     type_attr: "T"
   29758   }
   29759   input_arg {
   29760     name: "segment_ids"
   29761     type_attr: "Tindices"
   29762   }
   29763   output_arg {
   29764     name: "output"
   29765     type_attr: "T"
   29766   }
   29767   attr {
   29768     name: "T"
   29769     type: "type"
   29770     allowed_values {
   29771       list {
   29772         type: DT_FLOAT
   29773         type: DT_DOUBLE
   29774         type: DT_INT32
   29775         type: DT_INT64
   29776         type: DT_UINT8
   29777         type: DT_INT16
   29778         type: DT_INT8
   29779         type: DT_UINT16
   29780         type: DT_HALF
   29781       }
   29782     }
   29783   }
   29784   attr {
   29785     name: "Tindices"
   29786     type: "type"
   29787     allowed_values {
   29788       list {
   29789         type: DT_INT32
   29790         type: DT_INT64
   29791       }
   29792     }
   29793   }
   29794 }
   29795 op {
   29796   name: "SegmentMean"
   29797   input_arg {
   29798     name: "data"
   29799     type_attr: "T"
   29800   }
   29801   input_arg {
   29802     name: "segment_ids"
   29803     type_attr: "Tindices"
   29804   }
   29805   output_arg {
   29806     name: "output"
   29807     type_attr: "T"
   29808   }
   29809   attr {
   29810     name: "T"
   29811     type: "type"
   29812     allowed_values {
   29813       list {
   29814         type: DT_FLOAT
   29815         type: DT_DOUBLE
   29816         type: DT_INT32
   29817         type: DT_INT64
   29818         type: DT_UINT8
   29819         type: DT_INT16
   29820         type: DT_INT8
   29821       }
   29822     }
   29823   }
   29824   attr {
   29825     name: "Tindices"
   29826     type: "type"
   29827     allowed_values {
   29828       list {
   29829         type: DT_INT32
   29830         type: DT_INT64
   29831       }
   29832     }
   29833   }
   29834 }
   29835 op {
   29836   name: "SegmentMean"
   29837   input_arg {
   29838     name: "data"
   29839     type_attr: "T"
   29840   }
   29841   input_arg {
   29842     name: "segment_ids"
   29843     type_attr: "Tindices"
   29844   }
   29845   output_arg {
   29846     name: "output"
   29847     type_attr: "T"
   29848   }
   29849   attr {
   29850     name: "T"
   29851     type: "type"
   29852     allowed_values {
   29853       list {
   29854         type: DT_FLOAT
   29855         type: DT_DOUBLE
   29856         type: DT_INT32
   29857         type: DT_INT64
   29858         type: DT_UINT8
   29859         type: DT_INT16
   29860         type: DT_INT8
   29861         type: DT_UINT16
   29862       }
   29863     }
   29864   }
   29865   attr {
   29866     name: "Tindices"
   29867     type: "type"
   29868     allowed_values {
   29869       list {
   29870         type: DT_INT32
   29871         type: DT_INT64
   29872       }
   29873     }
   29874   }
   29875 }
   29876 op {
   29877   name: "SegmentMean"
   29878   input_arg {
   29879     name: "data"
   29880     type_attr: "T"
   29881   }
   29882   input_arg {
   29883     name: "segment_ids"
   29884     type_attr: "Tindices"
   29885   }
   29886   output_arg {
   29887     name: "output"
   29888     type_attr: "T"
   29889   }
   29890   attr {
   29891     name: "T"
   29892     type: "type"
   29893     allowed_values {
   29894       list {
   29895         type: DT_FLOAT
   29896         type: DT_DOUBLE
   29897         type: DT_INT32
   29898         type: DT_INT64
   29899         type: DT_UINT8
   29900         type: DT_INT16
   29901         type: DT_INT8
   29902         type: DT_UINT16
   29903         type: DT_HALF
   29904       }
   29905     }
   29906   }
   29907   attr {
   29908     name: "Tindices"
   29909     type: "type"
   29910     allowed_values {
   29911       list {
   29912         type: DT_INT32
   29913         type: DT_INT64
   29914       }
   29915     }
   29916   }
   29917 }
   29918 op {
   29919   name: "SegmentMin"
   29920   input_arg {
   29921     name: "data"
   29922     type_attr: "T"
   29923   }
   29924   input_arg {
   29925     name: "segment_ids"
   29926     type_attr: "Tindices"
   29927   }
   29928   output_arg {
   29929     name: "output"
   29930     type_attr: "T"
   29931   }
   29932   attr {
   29933     name: "T"
   29934     type: "type"
   29935     allowed_values {
   29936       list {
   29937         type: DT_FLOAT
   29938         type: DT_DOUBLE
   29939         type: DT_INT32
   29940         type: DT_INT64
   29941         type: DT_UINT8
   29942         type: DT_INT16
   29943         type: DT_INT8
   29944       }
   29945     }
   29946   }
   29947   attr {
   29948     name: "Tindices"
   29949     type: "type"
   29950     allowed_values {
   29951       list {
   29952         type: DT_INT32
   29953         type: DT_INT64
   29954       }
   29955     }
   29956   }
   29957 }
   29958 op {
   29959   name: "SegmentMin"
   29960   input_arg {
   29961     name: "data"
   29962     type_attr: "T"
   29963   }
   29964   input_arg {
   29965     name: "segment_ids"
   29966     type_attr: "Tindices"
   29967   }
   29968   output_arg {
   29969     name: "output"
   29970     type_attr: "T"
   29971   }
   29972   attr {
   29973     name: "T"
   29974     type: "type"
   29975     allowed_values {
   29976       list {
   29977         type: DT_FLOAT
   29978         type: DT_DOUBLE
   29979         type: DT_INT32
   29980         type: DT_INT64
   29981         type: DT_UINT8
   29982         type: DT_INT16
   29983         type: DT_INT8
   29984         type: DT_UINT16
   29985       }
   29986     }
   29987   }
   29988   attr {
   29989     name: "Tindices"
   29990     type: "type"
   29991     allowed_values {
   29992       list {
   29993         type: DT_INT32
   29994         type: DT_INT64
   29995       }
   29996     }
   29997   }
   29998 }
   29999 op {
   30000   name: "SegmentMin"
   30001   input_arg {
   30002     name: "data"
   30003     type_attr: "T"
   30004   }
   30005   input_arg {
   30006     name: "segment_ids"
   30007     type_attr: "Tindices"
   30008   }
   30009   output_arg {
   30010     name: "output"
   30011     type_attr: "T"
   30012   }
   30013   attr {
   30014     name: "T"
   30015     type: "type"
   30016     allowed_values {
   30017       list {
   30018         type: DT_FLOAT
   30019         type: DT_DOUBLE
   30020         type: DT_INT32
   30021         type: DT_INT64
   30022         type: DT_UINT8
   30023         type: DT_INT16
   30024         type: DT_INT8
   30025         type: DT_UINT16
   30026         type: DT_HALF
   30027       }
   30028     }
   30029   }
   30030   attr {
   30031     name: "Tindices"
   30032     type: "type"
   30033     allowed_values {
   30034       list {
   30035         type: DT_INT32
   30036         type: DT_INT64
   30037       }
   30038     }
   30039   }
   30040 }
   30041 op {
   30042   name: "SegmentProd"
   30043   input_arg {
   30044     name: "data"
   30045     type_attr: "T"
   30046   }
   30047   input_arg {
   30048     name: "segment_ids"
   30049     type_attr: "Tindices"
   30050   }
   30051   output_arg {
   30052     name: "output"
   30053     type_attr: "T"
   30054   }
   30055   attr {
   30056     name: "T"
   30057     type: "type"
   30058     allowed_values {
   30059       list {
   30060         type: DT_FLOAT
   30061         type: DT_DOUBLE
   30062         type: DT_INT32
   30063         type: DT_INT64
   30064         type: DT_UINT8
   30065         type: DT_INT16
   30066         type: DT_INT8
   30067       }
   30068     }
   30069   }
   30070   attr {
   30071     name: "Tindices"
   30072     type: "type"
   30073     allowed_values {
   30074       list {
   30075         type: DT_INT32
   30076         type: DT_INT64
   30077       }
   30078     }
   30079   }
   30080 }
   30081 op {
   30082   name: "SegmentProd"
   30083   input_arg {
   30084     name: "data"
   30085     type_attr: "T"
   30086   }
   30087   input_arg {
   30088     name: "segment_ids"
   30089     type_attr: "Tindices"
   30090   }
   30091   output_arg {
   30092     name: "output"
   30093     type_attr: "T"
   30094   }
   30095   attr {
   30096     name: "T"
   30097     type: "type"
   30098     allowed_values {
   30099       list {
   30100         type: DT_FLOAT
   30101         type: DT_DOUBLE
   30102         type: DT_INT32
   30103         type: DT_INT64
   30104         type: DT_UINT8
   30105         type: DT_INT16
   30106         type: DT_INT8
   30107         type: DT_UINT16
   30108       }
   30109     }
   30110   }
   30111   attr {
   30112     name: "Tindices"
   30113     type: "type"
   30114     allowed_values {
   30115       list {
   30116         type: DT_INT32
   30117         type: DT_INT64
   30118       }
   30119     }
   30120   }
   30121 }
   30122 op {
   30123   name: "SegmentProd"
   30124   input_arg {
   30125     name: "data"
   30126     type_attr: "T"
   30127   }
   30128   input_arg {
   30129     name: "segment_ids"
   30130     type_attr: "Tindices"
   30131   }
   30132   output_arg {
   30133     name: "output"
   30134     type_attr: "T"
   30135   }
   30136   attr {
   30137     name: "T"
   30138     type: "type"
   30139     allowed_values {
   30140       list {
   30141         type: DT_FLOAT
   30142         type: DT_DOUBLE
   30143         type: DT_INT32
   30144         type: DT_INT64
   30145         type: DT_UINT8
   30146         type: DT_INT16
   30147         type: DT_INT8
   30148         type: DT_UINT16
   30149         type: DT_HALF
   30150       }
   30151     }
   30152   }
   30153   attr {
   30154     name: "Tindices"
   30155     type: "type"
   30156     allowed_values {
   30157       list {
   30158         type: DT_INT32
   30159         type: DT_INT64
   30160       }
   30161     }
   30162   }
   30163 }
   30164 op {
   30165   name: "SegmentProd"
   30166   input_arg {
   30167     name: "data"
   30168     type_attr: "T"
   30169   }
   30170   input_arg {
   30171     name: "segment_ids"
   30172     type_attr: "Tindices"
   30173   }
   30174   output_arg {
   30175     name: "output"
   30176     type_attr: "T"
   30177   }
   30178   attr {
   30179     name: "T"
   30180     type: "type"
   30181     allowed_values {
   30182       list {
   30183         type: DT_FLOAT
   30184         type: DT_DOUBLE
   30185         type: DT_INT64
   30186         type: DT_INT32
   30187         type: DT_UINT8
   30188         type: DT_UINT16
   30189         type: DT_INT16
   30190         type: DT_INT8
   30191         type: DT_COMPLEX64
   30192         type: DT_COMPLEX128
   30193         type: DT_QINT8
   30194         type: DT_QUINT8
   30195         type: DT_QINT32
   30196         type: DT_HALF
   30197       }
   30198     }
   30199   }
   30200   attr {
   30201     name: "Tindices"
   30202     type: "type"
   30203     allowed_values {
   30204       list {
   30205         type: DT_INT32
   30206         type: DT_INT64
   30207       }
   30208     }
   30209   }
   30210 }
   30211 op {
   30212   name: "SegmentSum"
   30213   input_arg {
   30214     name: "data"
   30215     type_attr: "T"
   30216   }
   30217   input_arg {
   30218     name: "segment_ids"
   30219     type_attr: "Tindices"
   30220   }
   30221   output_arg {
   30222     name: "output"
   30223     type_attr: "T"
   30224   }
   30225   attr {
   30226     name: "T"
   30227     type: "type"
   30228     allowed_values {
   30229       list {
   30230         type: DT_FLOAT
   30231         type: DT_DOUBLE
   30232         type: DT_INT32
   30233         type: DT_INT64
   30234         type: DT_UINT8
   30235         type: DT_INT16
   30236         type: DT_INT8
   30237       }
   30238     }
   30239   }
   30240   attr {
   30241     name: "Tindices"
   30242     type: "type"
   30243     allowed_values {
   30244       list {
   30245         type: DT_INT32
   30246         type: DT_INT64
   30247       }
   30248     }
   30249   }
   30250 }
   30251 op {
   30252   name: "SegmentSum"
   30253   input_arg {
   30254     name: "data"
   30255     type_attr: "T"
   30256   }
   30257   input_arg {
   30258     name: "segment_ids"
   30259     type_attr: "Tindices"
   30260   }
   30261   output_arg {
   30262     name: "output"
   30263     type_attr: "T"
   30264   }
   30265   attr {
   30266     name: "T"
   30267     type: "type"
   30268     allowed_values {
   30269       list {
   30270         type: DT_FLOAT
   30271         type: DT_DOUBLE
   30272         type: DT_INT32
   30273         type: DT_INT64
   30274         type: DT_UINT8
   30275         type: DT_INT16
   30276         type: DT_INT8
   30277         type: DT_UINT16
   30278       }
   30279     }
   30280   }
   30281   attr {
   30282     name: "Tindices"
   30283     type: "type"
   30284     allowed_values {
   30285       list {
   30286         type: DT_INT32
   30287         type: DT_INT64
   30288       }
   30289     }
   30290   }
   30291 }
   30292 op {
   30293   name: "SegmentSum"
   30294   input_arg {
   30295     name: "data"
   30296     type_attr: "T"
   30297   }
   30298   input_arg {
   30299     name: "segment_ids"
   30300     type_attr: "Tindices"
   30301   }
   30302   output_arg {
   30303     name: "output"
   30304     type_attr: "T"
   30305   }
   30306   attr {
   30307     name: "T"
   30308     type: "type"
   30309     allowed_values {
   30310       list {
   30311         type: DT_FLOAT
   30312         type: DT_DOUBLE
   30313         type: DT_INT32
   30314         type: DT_INT64
   30315         type: DT_UINT8
   30316         type: DT_INT16
   30317         type: DT_INT8
   30318         type: DT_UINT16
   30319         type: DT_HALF
   30320       }
   30321     }
   30322   }
   30323   attr {
   30324     name: "Tindices"
   30325     type: "type"
   30326     allowed_values {
   30327       list {
   30328         type: DT_INT32
   30329         type: DT_INT64
   30330       }
   30331     }
   30332   }
   30333 }
   30334 op {
   30335   name: "SegmentSum"
   30336   input_arg {
   30337     name: "data"
   30338     type_attr: "T"
   30339   }
   30340   input_arg {
   30341     name: "segment_ids"
   30342     type_attr: "Tindices"
   30343   }
   30344   output_arg {
   30345     name: "output"
   30346     type_attr: "T"
   30347   }
   30348   attr {
   30349     name: "T"
   30350     type: "type"
   30351     allowed_values {
   30352       list {
   30353         type: DT_FLOAT
   30354         type: DT_DOUBLE
   30355         type: DT_INT64
   30356         type: DT_INT32
   30357         type: DT_UINT8
   30358         type: DT_UINT16
   30359         type: DT_INT16
   30360         type: DT_INT8
   30361         type: DT_COMPLEX64
   30362         type: DT_COMPLEX128
   30363         type: DT_QINT8
   30364         type: DT_QUINT8
   30365         type: DT_QINT32
   30366         type: DT_HALF
   30367       }
   30368     }
   30369   }
   30370   attr {
   30371     name: "Tindices"
   30372     type: "type"
   30373     allowed_values {
   30374       list {
   30375         type: DT_INT32
   30376         type: DT_INT64
   30377       }
   30378     }
   30379   }
   30380 }
   30381 op {
   30382   name: "Select"
   30383   input_arg {
   30384     name: "condition"
   30385     type: DT_BOOL
   30386   }
   30387   input_arg {
   30388     name: "t"
   30389     type_attr: "T"
   30390   }
   30391   input_arg {
   30392     name: "e"
   30393     type_attr: "T"
   30394   }
   30395   output_arg {
   30396     name: "out"
   30397     type_attr: "T"
   30398   }
   30399   attr {
   30400     name: "T"
   30401     type: "type"
   30402   }
   30403 }
   30404 op {
   30405   name: "Select"
   30406   input_arg {
   30407     name: "condition"
   30408     type: DT_BOOL
   30409   }
   30410   input_arg {
   30411     name: "t"
   30412     type_attr: "T"
   30413   }
   30414   input_arg {
   30415     name: "e"
   30416     type_attr: "T"
   30417   }
   30418   output_arg {
   30419     name: "output"
   30420     type_attr: "T"
   30421   }
   30422   attr {
   30423     name: "T"
   30424     type: "type"
   30425   }
   30426 }
   30427 op {
   30428   name: "SelfAdjointEig"
   30429   input_arg {
   30430     name: "input"
   30431     type_attr: "T"
   30432   }
   30433   output_arg {
   30434     name: "output"
   30435     type_attr: "T"
   30436   }
   30437   attr {
   30438     name: "T"
   30439     type: "type"
   30440     allowed_values {
   30441       list {
   30442         type: DT_DOUBLE
   30443         type: DT_FLOAT
   30444       }
   30445     }
   30446   }
   30447 }
   30448 op {
   30449   name: "SelfAdjointEig"
   30450   input_arg {
   30451     name: "input"
   30452     type_attr: "T"
   30453   }
   30454   output_arg {
   30455     name: "output"
   30456     type_attr: "T"
   30457   }
   30458   attr {
   30459     name: "T"
   30460     type: "type"
   30461     allowed_values {
   30462       list {
   30463         type: DT_DOUBLE
   30464         type: DT_FLOAT
   30465       }
   30466     }
   30467   }
   30468   deprecation {
   30469     version: 11
   30470   }
   30471 }
   30472 op {
   30473   name: "SelfAdjointEigV2"
   30474   input_arg {
   30475     name: "input"
   30476     type_attr: "T"
   30477   }
   30478   output_arg {
   30479     name: "e"
   30480     type_attr: "T"
   30481   }
   30482   output_arg {
   30483     name: "v"
   30484     type_attr: "T"
   30485   }
   30486   attr {
   30487     name: "compute_v"
   30488     type: "bool"
   30489     default_value {
   30490       b: true
   30491     }
   30492   }
   30493   attr {
   30494     name: "T"
   30495     type: "type"
   30496     allowed_values {
   30497       list {
   30498         type: DT_DOUBLE
   30499         type: DT_FLOAT
   30500       }
   30501     }
   30502   }
   30503 }
   30504 op {
   30505   name: "SerializeManySparse"
   30506   input_arg {
   30507     name: "sparse_indices"
   30508     type: DT_INT64
   30509   }
   30510   input_arg {
   30511     name: "sparse_values"
   30512     type_attr: "T"
   30513   }
   30514   input_arg {
   30515     name: "sparse_shape"
   30516     type: DT_INT64
   30517   }
   30518   output_arg {
   30519     name: "serialized_sparse"
   30520     type: DT_STRING
   30521   }
   30522   attr {
   30523     name: "T"
   30524     type: "type"
   30525   }
   30526 }
   30527 op {
   30528   name: "SerializeSparse"
   30529   input_arg {
   30530     name: "sparse_indices"
   30531     type: DT_INT64
   30532   }
   30533   input_arg {
   30534     name: "sparse_values"
   30535     type_attr: "T"
   30536   }
   30537   input_arg {
   30538     name: "sparse_shape"
   30539     type: DT_INT64
   30540   }
   30541   output_arg {
   30542     name: "serialized_sparse"
   30543     type: DT_STRING
   30544   }
   30545   attr {
   30546     name: "T"
   30547     type: "type"
   30548   }
   30549 }
   30550 op {
   30551   name: "SetSize"
   30552   input_arg {
   30553     name: "set_indices"
   30554     type: DT_INT64
   30555   }
   30556   input_arg {
   30557     name: "set_values"
   30558     type_attr: "T"
   30559   }
   30560   input_arg {
   30561     name: "set_shape"
   30562     type: DT_INT64
   30563   }
   30564   output_arg {
   30565     name: "size"
   30566     type: DT_INT32
   30567   }
   30568   attr {
   30569     name: "validate_indices"
   30570     type: "bool"
   30571     default_value {
   30572       b: true
   30573     }
   30574   }
   30575   attr {
   30576     name: "T"
   30577     type: "type"
   30578     allowed_values {
   30579       list {
   30580         type: DT_INT8
   30581         type: DT_INT16
   30582         type: DT_INT32
   30583         type: DT_INT64
   30584         type: DT_UINT8
   30585         type: DT_UINT16
   30586         type: DT_STRING
   30587       }
   30588     }
   30589   }
   30590 }
   30591 op {
   30592   name: "Shape"
   30593   input_arg {
   30594     name: "input"
   30595     type_attr: "T"
   30596   }
   30597   output_arg {
   30598     name: "output"
   30599     type: DT_INT32
   30600   }
   30601   attr {
   30602     name: "T"
   30603     type: "type"
   30604   }
   30605 }
   30606 op {
   30607   name: "Shape"
   30608   input_arg {
   30609     name: "input"
   30610     type_attr: "T"
   30611   }
   30612   output_arg {
   30613     name: "output"
   30614     type_attr: "out_type"
   30615   }
   30616   attr {
   30617     name: "T"
   30618     type: "type"
   30619   }
   30620   attr {
   30621     name: "out_type"
   30622     type: "type"
   30623     default_value {
   30624       type: DT_INT32
   30625     }
   30626     allowed_values {
   30627       list {
   30628         type: DT_INT32
   30629         type: DT_INT64
   30630       }
   30631     }
   30632   }
   30633 }
   30634 op {
   30635   name: "ShapeN"
   30636   input_arg {
   30637     name: "input"
   30638     type_attr: "T"
   30639     number_attr: "N"
   30640   }
   30641   output_arg {
   30642     name: "output"
   30643     type: DT_INT32
   30644     number_attr: "N"
   30645   }
   30646   attr {
   30647     name: "N"
   30648     type: "int"
   30649     has_minimum: true
   30650     minimum: 1
   30651   }
   30652   attr {
   30653     name: "T"
   30654     type: "type"
   30655   }
   30656 }
   30657 op {
   30658   name: "ShapeN"
   30659   input_arg {
   30660     name: "input"
   30661     type_attr: "T"
   30662     number_attr: "N"
   30663   }
   30664   output_arg {
   30665     name: "output"
   30666     type_attr: "out_type"
   30667     number_attr: "N"
   30668   }
   30669   attr {
   30670     name: "N"
   30671     type: "int"
   30672     has_minimum: true
   30673     minimum: 1
   30674   }
   30675   attr {
   30676     name: "T"
   30677     type: "type"
   30678   }
   30679   attr {
   30680     name: "out_type"
   30681     type: "type"
   30682     default_value {
   30683       type: DT_INT32
   30684     }
   30685     allowed_values {
   30686       list {
   30687         type: DT_INT32
   30688         type: DT_INT64
   30689       }
   30690     }
   30691   }
   30692 }
   30693 op {
   30694   name: "ShardedFilename"
   30695   input_arg {
   30696     name: "basename"
   30697     type: DT_STRING
   30698   }
   30699   input_arg {
   30700     name: "shard"
   30701     type: DT_INT32
   30702   }
   30703   input_arg {
   30704     name: "num_shards"
   30705     type: DT_INT32
   30706   }
   30707   output_arg {
   30708     name: "filename"
   30709     type: DT_STRING
   30710   }
   30711 }
   30712 op {
   30713   name: "ShardedFilespec"
   30714   input_arg {
   30715     name: "basename"
   30716     type: DT_STRING
   30717   }
   30718   input_arg {
   30719     name: "num_shards"
   30720     type: DT_INT32
   30721   }
   30722   output_arg {
   30723     name: "filename"
   30724     type: DT_STRING
   30725   }
   30726 }
   30727 op {
   30728   name: "Sigmoid"
   30729   input_arg {
   30730     name: "x"
   30731     type_attr: "T"
   30732   }
   30733   output_arg {
   30734     name: "y"
   30735     type_attr: "T"
   30736   }
   30737   attr {
   30738     name: "T"
   30739     type: "type"
   30740     allowed_values {
   30741       list {
   30742         type: DT_FLOAT
   30743         type: DT_DOUBLE
   30744         type: DT_COMPLEX64
   30745       }
   30746     }
   30747   }
   30748 }
   30749 op {
   30750   name: "Sigmoid"
   30751   input_arg {
   30752     name: "x"
   30753     type_attr: "T"
   30754   }
   30755   output_arg {
   30756     name: "y"
   30757     type_attr: "T"
   30758   }
   30759   attr {
   30760     name: "T"
   30761     type: "type"
   30762     allowed_values {
   30763       list {
   30764         type: DT_HALF
   30765         type: DT_FLOAT
   30766         type: DT_DOUBLE
   30767         type: DT_COMPLEX64
   30768       }
   30769     }
   30770   }
   30771 }
   30772 op {
   30773   name: "Sigmoid"
   30774   input_arg {
   30775     name: "x"
   30776     type_attr: "T"
   30777   }
   30778   output_arg {
   30779     name: "y"
   30780     type_attr: "T"
   30781   }
   30782   attr {
   30783     name: "T"
   30784     type: "type"
   30785     allowed_values {
   30786       list {
   30787         type: DT_HALF
   30788         type: DT_FLOAT
   30789         type: DT_DOUBLE
   30790         type: DT_COMPLEX64
   30791         type: DT_COMPLEX128
   30792       }
   30793     }
   30794   }
   30795 }
   30796 op {
   30797   name: "SigmoidGrad"
   30798   input_arg {
   30799     name: "x"
   30800     type_attr: "T"
   30801   }
   30802   input_arg {
   30803     name: "y"
   30804     type_attr: "T"
   30805   }
   30806   output_arg {
   30807     name: "z"
   30808     type_attr: "T"
   30809   }
   30810   attr {
   30811     name: "T"
   30812     type: "type"
   30813     allowed_values {
   30814       list {
   30815         type: DT_HALF
   30816         type: DT_FLOAT
   30817         type: DT_DOUBLE
   30818         type: DT_COMPLEX64
   30819         type: DT_COMPLEX128
   30820       }
   30821     }
   30822   }
   30823 }
   30824 op {
   30825   name: "Sign"
   30826   input_arg {
   30827     name: "x"
   30828     type_attr: "T"
   30829   }
   30830   output_arg {
   30831     name: "y"
   30832     type_attr: "T"
   30833   }
   30834   attr {
   30835     name: "T"
   30836     type: "type"
   30837     allowed_values {
   30838       list {
   30839         type: DT_FLOAT
   30840         type: DT_DOUBLE
   30841         type: DT_INT32
   30842         type: DT_INT64
   30843       }
   30844     }
   30845   }
   30846 }
   30847 op {
   30848   name: "Sign"
   30849   input_arg {
   30850     name: "x"
   30851     type_attr: "T"
   30852   }
   30853   output_arg {
   30854     name: "y"
   30855     type_attr: "T"
   30856   }
   30857   attr {
   30858     name: "T"
   30859     type: "type"
   30860     allowed_values {
   30861       list {
   30862         type: DT_FLOAT
   30863         type: DT_DOUBLE
   30864         type: DT_INT32
   30865         type: DT_INT64
   30866         type: DT_COMPLEX64
   30867       }
   30868     }
   30869   }
   30870 }
   30871 op {
   30872   name: "Sign"
   30873   input_arg {
   30874     name: "x"
   30875     type_attr: "T"
   30876   }
   30877   output_arg {
   30878     name: "y"
   30879     type_attr: "T"
   30880   }
   30881   attr {
   30882     name: "T"
   30883     type: "type"
   30884     allowed_values {
   30885       list {
   30886         type: DT_HALF
   30887         type: DT_FLOAT
   30888         type: DT_DOUBLE
   30889         type: DT_INT32
   30890         type: DT_INT64
   30891         type: DT_COMPLEX64
   30892       }
   30893     }
   30894   }
   30895 }
   30896 op {
   30897   name: "Sign"
   30898   input_arg {
   30899     name: "x"
   30900     type_attr: "T"
   30901   }
   30902   output_arg {
   30903     name: "y"
   30904     type_attr: "T"
   30905   }
   30906   attr {
   30907     name: "T"
   30908     type: "type"
   30909     allowed_values {
   30910       list {
   30911         type: DT_HALF
   30912         type: DT_FLOAT
   30913         type: DT_DOUBLE
   30914         type: DT_INT32
   30915         type: DT_INT64
   30916         type: DT_COMPLEX64
   30917         type: DT_COMPLEX128
   30918       }
   30919     }
   30920   }
   30921 }
   30922 op {
   30923   name: "Sin"
   30924   input_arg {
   30925     name: "x"
   30926     type_attr: "T"
   30927   }
   30928   output_arg {
   30929     name: "y"
   30930     type_attr: "T"
   30931   }
   30932   attr {
   30933     name: "T"
   30934     type: "type"
   30935     allowed_values {
   30936       list {
   30937         type: DT_FLOAT
   30938         type: DT_DOUBLE
   30939         type: DT_COMPLEX64
   30940       }
   30941     }
   30942   }
   30943 }
   30944 op {
   30945   name: "Sin"
   30946   input_arg {
   30947     name: "x"
   30948     type_attr: "T"
   30949   }
   30950   output_arg {
   30951     name: "y"
   30952     type_attr: "T"
   30953   }
   30954   attr {
   30955     name: "T"
   30956     type: "type"
   30957     allowed_values {
   30958       list {
   30959         type: DT_HALF
   30960         type: DT_FLOAT
   30961         type: DT_DOUBLE
   30962         type: DT_COMPLEX64
   30963       }
   30964     }
   30965   }
   30966 }
   30967 op {
   30968   name: "Sin"
   30969   input_arg {
   30970     name: "x"
   30971     type_attr: "T"
   30972   }
   30973   output_arg {
   30974     name: "y"
   30975     type_attr: "T"
   30976   }
   30977   attr {
   30978     name: "T"
   30979     type: "type"
   30980     allowed_values {
   30981       list {
   30982         type: DT_HALF
   30983         type: DT_FLOAT
   30984         type: DT_DOUBLE
   30985         type: DT_COMPLEX64
   30986         type: DT_COMPLEX128
   30987       }
   30988     }
   30989   }
   30990 }
   30991 op {
   30992   name: "Size"
   30993   input_arg {
   30994     name: "input"
   30995     type_attr: "T"
   30996   }
   30997   output_arg {
   30998     name: "output"
   30999     type: DT_INT32
   31000   }
   31001   attr {
   31002     name: "T"
   31003     type: "type"
   31004   }
   31005 }
   31006 op {
   31007   name: "Size"
   31008   input_arg {
   31009     name: "input"
   31010     type_attr: "T"
   31011   }
   31012   output_arg {
   31013     name: "output"
   31014     type_attr: "out_type"
   31015   }
   31016   attr {
   31017     name: "T"
   31018     type: "type"
   31019   }
   31020   attr {
   31021     name: "out_type"
   31022     type: "type"
   31023     default_value {
   31024       type: DT_INT32
   31025     }
   31026     allowed_values {
   31027       list {
   31028         type: DT_INT32
   31029         type: DT_INT64
   31030       }
   31031     }
   31032   }
   31033 }
   31034 op {
   31035   name: "Skipgram"
   31036   output_arg {
   31037     name: "vocab_word"
   31038     type: DT_STRING
   31039   }
   31040   output_arg {
   31041     name: "vocab_freq"
   31042     type: DT_INT32
   31043   }
   31044   output_arg {
   31045     name: "words_per_epoch"
   31046     type: DT_INT64
   31047   }
   31048   output_arg {
   31049     name: "current_epoch"
   31050     type: DT_INT32
   31051   }
   31052   output_arg {
   31053     name: "total_words_processed"
   31054     type: DT_INT64
   31055   }
   31056   output_arg {
   31057     name: "examples"
   31058     type: DT_INT32
   31059   }
   31060   output_arg {
   31061     name: "labels"
   31062     type: DT_INT32
   31063   }
   31064   attr {
   31065     name: "filename"
   31066     type: "string"
   31067   }
   31068   attr {
   31069     name: "batch_size"
   31070     type: "int"
   31071   }
   31072   attr {
   31073     name: "window_size"
   31074     type: "int"
   31075     default_value {
   31076       i: 5
   31077     }
   31078   }
   31079   attr {
   31080     name: "min_count"
   31081     type: "int"
   31082     default_value {
   31083       i: 5
   31084     }
   31085   }
   31086   attr {
   31087     name: "subsample"
   31088     type: "float"
   31089     default_value {
   31090       f: 0.001
   31091     }
   31092   }
   31093 }
   31094 op {
   31095   name: "Skipgram"
   31096   output_arg {
   31097     name: "vocab_word"
   31098     type: DT_STRING
   31099   }
   31100   output_arg {
   31101     name: "vocab_freq"
   31102     type: DT_INT32
   31103   }
   31104   output_arg {
   31105     name: "words_per_epoch"
   31106     type: DT_INT64
   31107   }
   31108   output_arg {
   31109     name: "current_epoch"
   31110     type: DT_INT32
   31111   }
   31112   output_arg {
   31113     name: "total_words_processed"
   31114     type: DT_INT64
   31115   }
   31116   output_arg {
   31117     name: "examples"
   31118     type: DT_INT32
   31119   }
   31120   output_arg {
   31121     name: "labels"
   31122     type: DT_INT32
   31123   }
   31124   attr {
   31125     name: "filename"
   31126     type: "string"
   31127   }
   31128   attr {
   31129     name: "batch_size"
   31130     type: "int"
   31131   }
   31132   attr {
   31133     name: "window_size"
   31134     type: "int"
   31135     default_value {
   31136       i: 5
   31137     }
   31138   }
   31139   attr {
   31140     name: "min_count"
   31141     type: "int"
   31142     default_value {
   31143       i: 5
   31144     }
   31145   }
   31146   attr {
   31147     name: "subsample"
   31148     type: "float"
   31149     default_value {
   31150       f: 0.001
   31151     }
   31152   }
   31153   is_stateful: true
   31154 }
   31155 op {
   31156   name: "Skipgram"
   31157   output_arg {
   31158     name: "vocab_word"
   31159     type: DT_STRING
   31160   }
   31161   output_arg {
   31162     name: "vocab_freq"
   31163     type: DT_INT32
   31164   }
   31165   output_arg {
   31166     name: "words_per_epoch"
   31167     type: DT_INT64
   31168   }
   31169   output_arg {
   31170     name: "current_epoch"
   31171     type: DT_INT32
   31172   }
   31173   output_arg {
   31174     name: "total_words_processed"
   31175     type: DT_INT64
   31176   }
   31177   output_arg {
   31178     name: "examples"
   31179     type: DT_INT32
   31180   }
   31181   output_arg {
   31182     name: "labels"
   31183     type: DT_INT32
   31184   }
   31185   attr {
   31186     name: "filename"
   31187     type: "string"
   31188   }
   31189   attr {
   31190     name: "batch_size"
   31191     type: "int"
   31192   }
   31193   attr {
   31194     name: "window_size"
   31195     type: "int"
   31196     default_value {
   31197       i: 5
   31198     }
   31199   }
   31200   attr {
   31201     name: "min_count"
   31202     type: "int"
   31203     default_value {
   31204       i: 5
   31205     }
   31206   }
   31207   attr {
   31208     name: "subsample"
   31209     type: "float"
   31210     default_value {
   31211       f: 0.001
   31212     }
   31213   }
   31214   deprecation {
   31215     version: 19
   31216   }
   31217   is_stateful: true
   31218 }
   31219 op {
   31220   name: "Slice"
   31221   input_arg {
   31222     name: "input"
   31223     type_attr: "T"
   31224   }
   31225   input_arg {
   31226     name: "begin"
   31227     type_attr: "Index"
   31228   }
   31229   input_arg {
   31230     name: "size"
   31231     type_attr: "Index"
   31232   }
   31233   output_arg {
   31234     name: "output"
   31235     type_attr: "T"
   31236   }
   31237   attr {
   31238     name: "T"
   31239     type: "type"
   31240   }
   31241   attr {
   31242     name: "Index"
   31243     type: "type"
   31244     allowed_values {
   31245       list {
   31246         type: DT_INT32
   31247         type: DT_INT64
   31248       }
   31249     }
   31250   }
   31251 }
   31252 op {
   31253   name: "Softmax"
   31254   input_arg {
   31255     name: "logits"
   31256     type_attr: "T"
   31257   }
   31258   output_arg {
   31259     name: "softmax"
   31260     type_attr: "T"
   31261   }
   31262   attr {
   31263     name: "T"
   31264     type: "type"
   31265     allowed_values {
   31266       list {
   31267         type: DT_FLOAT
   31268         type: DT_DOUBLE
   31269       }
   31270     }
   31271   }
   31272 }
   31273 op {
   31274   name: "Softmax"
   31275   input_arg {
   31276     name: "logits"
   31277     type_attr: "T"
   31278   }
   31279   output_arg {
   31280     name: "softmax"
   31281     type_attr: "T"
   31282   }
   31283   attr {
   31284     name: "T"
   31285     type: "type"
   31286     allowed_values {
   31287       list {
   31288         type: DT_HALF
   31289         type: DT_FLOAT
   31290         type: DT_DOUBLE
   31291       }
   31292     }
   31293   }
   31294 }
   31295 op {
   31296   name: "SoftmaxCrossEntropyWithLogits"
   31297   input_arg {
   31298     name: "features"
   31299     type_attr: "T"
   31300   }
   31301   input_arg {
   31302     name: "labels"
   31303     type_attr: "T"
   31304   }
   31305   output_arg {
   31306     name: "loss"
   31307     type_attr: "T"
   31308   }
   31309   output_arg {
   31310     name: "backprop"
   31311     type_attr: "T"
   31312   }
   31313   attr {
   31314     name: "T"
   31315     type: "type"
   31316     allowed_values {
   31317       list {
   31318         type: DT_FLOAT
   31319         type: DT_DOUBLE
   31320       }
   31321     }
   31322   }
   31323 }
   31324 op {
   31325   name: "SoftmaxCrossEntropyWithLogits"
   31326   input_arg {
   31327     name: "features"
   31328     type_attr: "T"
   31329   }
   31330   input_arg {
   31331     name: "labels"
   31332     type_attr: "T"
   31333   }
   31334   output_arg {
   31335     name: "loss"
   31336     type_attr: "T"
   31337   }
   31338   output_arg {
   31339     name: "backprop"
   31340     type_attr: "T"
   31341   }
   31342   attr {
   31343     name: "T"
   31344     type: "type"
   31345     allowed_values {
   31346       list {
   31347         type: DT_HALF
   31348         type: DT_FLOAT
   31349         type: DT_DOUBLE
   31350       }
   31351     }
   31352   }
   31353 }
   31354 op {
   31355   name: "Softplus"
   31356   input_arg {
   31357     name: "features"
   31358     type_attr: "T"
   31359   }
   31360   output_arg {
   31361     name: "activations"
   31362     type_attr: "T"
   31363   }
   31364   attr {
   31365     name: "T"
   31366     type: "type"
   31367     allowed_values {
   31368       list {
   31369         type: DT_FLOAT
   31370         type: DT_DOUBLE
   31371         type: DT_INT32
   31372         type: DT_INT64
   31373         type: DT_UINT8
   31374         type: DT_INT16
   31375         type: DT_INT8
   31376       }
   31377     }
   31378   }
   31379 }
   31380 op {
   31381   name: "Softplus"
   31382   input_arg {
   31383     name: "features"
   31384     type_attr: "T"
   31385   }
   31386   output_arg {
   31387     name: "activations"
   31388     type_attr: "T"
   31389   }
   31390   attr {
   31391     name: "T"
   31392     type: "type"
   31393     allowed_values {
   31394       list {
   31395         type: DT_FLOAT
   31396         type: DT_DOUBLE
   31397         type: DT_INT32
   31398         type: DT_INT64
   31399         type: DT_UINT8
   31400         type: DT_INT16
   31401         type: DT_INT8
   31402         type: DT_UINT16
   31403       }
   31404     }
   31405   }
   31406 }
   31407 op {
   31408   name: "Softplus"
   31409   input_arg {
   31410     name: "features"
   31411     type_attr: "T"
   31412   }
   31413   output_arg {
   31414     name: "activations"
   31415     type_attr: "T"
   31416   }
   31417   attr {
   31418     name: "T"
   31419     type: "type"
   31420     allowed_values {
   31421       list {
   31422         type: DT_FLOAT
   31423         type: DT_DOUBLE
   31424         type: DT_INT32
   31425         type: DT_INT64
   31426         type: DT_UINT8
   31427         type: DT_INT16
   31428         type: DT_INT8
   31429         type: DT_UINT16
   31430         type: DT_HALF
   31431       }
   31432     }
   31433   }
   31434 }
   31435 op {
   31436   name: "SoftplusGrad"
   31437   input_arg {
   31438     name: "gradients"
   31439     type_attr: "T"
   31440   }
   31441   input_arg {
   31442     name: "features"
   31443     type_attr: "T"
   31444   }
   31445   output_arg {
   31446     name: "backprops"
   31447     type_attr: "T"
   31448   }
   31449   attr {
   31450     name: "T"
   31451     type: "type"
   31452     allowed_values {
   31453       list {
   31454         type: DT_FLOAT
   31455         type: DT_DOUBLE
   31456         type: DT_INT32
   31457         type: DT_INT64
   31458         type: DT_UINT8
   31459         type: DT_INT16
   31460         type: DT_INT8
   31461       }
   31462     }
   31463   }
   31464 }
   31465 op {
   31466   name: "SoftplusGrad"
   31467   input_arg {
   31468     name: "gradients"
   31469     type_attr: "T"
   31470   }
   31471   input_arg {
   31472     name: "features"
   31473     type_attr: "T"
   31474   }
   31475   output_arg {
   31476     name: "backprops"
   31477     type_attr: "T"
   31478   }
   31479   attr {
   31480     name: "T"
   31481     type: "type"
   31482     allowed_values {
   31483       list {
   31484         type: DT_FLOAT
   31485         type: DT_DOUBLE
   31486         type: DT_INT32
   31487         type: DT_INT64
   31488         type: DT_UINT8
   31489         type: DT_INT16
   31490         type: DT_INT8
   31491         type: DT_UINT16
   31492       }
   31493     }
   31494   }
   31495 }
   31496 op {
   31497   name: "SoftplusGrad"
   31498   input_arg {
   31499     name: "gradients"
   31500     type_attr: "T"
   31501   }
   31502   input_arg {
   31503     name: "features"
   31504     type_attr: "T"
   31505   }
   31506   output_arg {
   31507     name: "backprops"
   31508     type_attr: "T"
   31509   }
   31510   attr {
   31511     name: "T"
   31512     type: "type"
   31513     allowed_values {
   31514       list {
   31515         type: DT_FLOAT
   31516         type: DT_DOUBLE
   31517         type: DT_INT32
   31518         type: DT_INT64
   31519         type: DT_UINT8
   31520         type: DT_INT16
   31521         type: DT_INT8
   31522         type: DT_UINT16
   31523         type: DT_HALF
   31524       }
   31525     }
   31526   }
   31527 }
   31528 op {
   31529   name: "Softsign"
   31530   input_arg {
   31531     name: "features"
   31532     type_attr: "T"
   31533   }
   31534   output_arg {
   31535     name: "activations"
   31536     type_attr: "T"
   31537   }
   31538   attr {
   31539     name: "T"
   31540     type: "type"
   31541     allowed_values {
   31542       list {
   31543         type: DT_FLOAT
   31544         type: DT_DOUBLE
   31545         type: DT_INT32
   31546         type: DT_INT64
   31547         type: DT_UINT8
   31548         type: DT_INT16
   31549         type: DT_INT8
   31550       }
   31551     }
   31552   }
   31553 }
   31554 op {
   31555   name: "Softsign"
   31556   input_arg {
   31557     name: "features"
   31558     type_attr: "T"
   31559   }
   31560   output_arg {
   31561     name: "activations"
   31562     type_attr: "T"
   31563   }
   31564   attr {
   31565     name: "T"
   31566     type: "type"
   31567     allowed_values {
   31568       list {
   31569         type: DT_FLOAT
   31570         type: DT_DOUBLE
   31571         type: DT_INT32
   31572         type: DT_INT64
   31573         type: DT_UINT8
   31574         type: DT_INT16
   31575         type: DT_INT8
   31576         type: DT_UINT16
   31577       }
   31578     }
   31579   }
   31580 }
   31581 op {
   31582   name: "Softsign"
   31583   input_arg {
   31584     name: "features"
   31585     type_attr: "T"
   31586   }
   31587   output_arg {
   31588     name: "activations"
   31589     type_attr: "T"
   31590   }
   31591   attr {
   31592     name: "T"
   31593     type: "type"
   31594     allowed_values {
   31595       list {
   31596         type: DT_FLOAT
   31597         type: DT_DOUBLE
   31598         type: DT_INT32
   31599         type: DT_INT64
   31600         type: DT_UINT8
   31601         type: DT_INT16
   31602         type: DT_INT8
   31603         type: DT_UINT16
   31604         type: DT_HALF
   31605       }
   31606     }
   31607   }
   31608 }
   31609 op {
   31610   name: "SoftsignGrad"
   31611   input_arg {
   31612     name: "gradients"
   31613     type_attr: "T"
   31614   }
   31615   input_arg {
   31616     name: "features"
   31617     type_attr: "T"
   31618   }
   31619   output_arg {
   31620     name: "backprops"
   31621     type_attr: "T"
   31622   }
   31623   attr {
   31624     name: "T"
   31625     type: "type"
   31626     allowed_values {
   31627       list {
   31628         type: DT_FLOAT
   31629         type: DT_DOUBLE
   31630         type: DT_INT32
   31631         type: DT_INT64
   31632         type: DT_UINT8
   31633         type: DT_INT16
   31634         type: DT_INT8
   31635       }
   31636     }
   31637   }
   31638 }
   31639 op {
   31640   name: "SoftsignGrad"
   31641   input_arg {
   31642     name: "gradients"
   31643     type_attr: "T"
   31644   }
   31645   input_arg {
   31646     name: "features"
   31647     type_attr: "T"
   31648   }
   31649   output_arg {
   31650     name: "backprops"
   31651     type_attr: "T"
   31652   }
   31653   attr {
   31654     name: "T"
   31655     type: "type"
   31656     allowed_values {
   31657       list {
   31658         type: DT_FLOAT
   31659         type: DT_DOUBLE
   31660         type: DT_INT32
   31661         type: DT_INT64
   31662         type: DT_UINT8
   31663         type: DT_INT16
   31664         type: DT_INT8
   31665         type: DT_UINT16
   31666       }
   31667     }
   31668   }
   31669 }
   31670 op {
   31671   name: "SoftsignGrad"
   31672   input_arg {
   31673     name: "gradients"
   31674     type_attr: "T"
   31675   }
   31676   input_arg {
   31677     name: "features"
   31678     type_attr: "T"
   31679   }
   31680   output_arg {
   31681     name: "backprops"
   31682     type_attr: "T"
   31683   }
   31684   attr {
   31685     name: "T"
   31686     type: "type"
   31687     allowed_values {
   31688       list {
   31689         type: DT_FLOAT
   31690         type: DT_DOUBLE
   31691         type: DT_INT32
   31692         type: DT_INT64
   31693         type: DT_UINT8
   31694         type: DT_INT16
   31695         type: DT_INT8
   31696         type: DT_UINT16
   31697         type: DT_HALF
   31698       }
   31699     }
   31700   }
   31701 }
   31702 op {
   31703   name: "SpaceToBatch"
   31704   input_arg {
   31705     name: "input"
   31706     type_attr: "T"
   31707   }
   31708   input_arg {
   31709     name: "paddings"
   31710     type: DT_INT32
   31711   }
   31712   output_arg {
   31713     name: "output"
   31714     type_attr: "T"
   31715   }
   31716   attr {
   31717     name: "T"
   31718     type: "type"
   31719   }
   31720   attr {
   31721     name: "block_size"
   31722     type: "int"
   31723     has_minimum: true
   31724     minimum: 2
   31725   }
   31726 }
   31727 op {
   31728   name: "SpaceToBatch"
   31729   input_arg {
   31730     name: "input"
   31731     type_attr: "T"
   31732   }
   31733   input_arg {
   31734     name: "paddings"
   31735     type_attr: "Tpaddings"
   31736   }
   31737   output_arg {
   31738     name: "output"
   31739     type_attr: "T"
   31740   }
   31741   attr {
   31742     name: "T"
   31743     type: "type"
   31744   }
   31745   attr {
   31746     name: "Tpaddings"
   31747     type: "type"
   31748     default_value {
   31749       type: DT_INT32
   31750     }
   31751     allowed_values {
   31752       list {
   31753         type: DT_INT32
   31754         type: DT_INT64
   31755       }
   31756     }
   31757   }
   31758   attr {
   31759     name: "block_size"
   31760     type: "int"
   31761     has_minimum: true
   31762     minimum: 2
   31763   }
   31764 }
   31765 op {
   31766   name: "SpaceToBatchND"
   31767   input_arg {
   31768     name: "input"
   31769     type_attr: "T"
   31770   }
   31771   input_arg {
   31772     name: "block_shape"
   31773     type_attr: "Tblock_shape"
   31774   }
   31775   input_arg {
   31776     name: "paddings"
   31777     type_attr: "Tpaddings"
   31778   }
   31779   output_arg {
   31780     name: "output"
   31781     type_attr: "T"
   31782   }
   31783   attr {
   31784     name: "T"
   31785     type: "type"
   31786   }
   31787   attr {
   31788     name: "Tblock_shape"
   31789     type: "type"
   31790     default_value {
   31791       type: DT_INT32
   31792     }
   31793     allowed_values {
   31794       list {
   31795         type: DT_INT32
   31796         type: DT_INT64
   31797       }
   31798     }
   31799   }
   31800   attr {
   31801     name: "Tpaddings"
   31802     type: "type"
   31803     default_value {
   31804       type: DT_INT32
   31805     }
   31806     allowed_values {
   31807       list {
   31808         type: DT_INT32
   31809         type: DT_INT64
   31810       }
   31811     }
   31812   }
   31813 }
   31814 op {
   31815   name: "SpaceToDepth"
   31816   input_arg {
   31817     name: "input"
   31818     type_attr: "T"
   31819   }
   31820   output_arg {
   31821     name: "output"
   31822     type_attr: "T"
   31823   }
   31824   attr {
   31825     name: "T"
   31826     type: "type"
   31827   }
   31828   attr {
   31829     name: "block_size"
   31830     type: "int"
   31831     has_minimum: true
   31832     minimum: 2
   31833   }
   31834 }
   31835 op {
   31836   name: "SparseAccumulatorApplyGradient"
   31837   input_arg {
   31838     name: "handle"
   31839     type: DT_STRING
   31840     is_ref: true
   31841   }
   31842   input_arg {
   31843     name: "local_step"
   31844     type: DT_INT64
   31845   }
   31846   input_arg {
   31847     name: "gradient_indices"
   31848     type: DT_INT64
   31849   }
   31850   input_arg {
   31851     name: "gradient_values"
   31852     type_attr: "dtype"
   31853   }
   31854   input_arg {
   31855     name: "gradient_shape"
   31856     type: DT_INT64
   31857   }
   31858   attr {
   31859     name: "dtype"
   31860     type: "type"
   31861     allowed_values {
   31862       list {
   31863         type: DT_FLOAT
   31864         type: DT_DOUBLE
   31865         type: DT_INT64
   31866         type: DT_INT32
   31867         type: DT_UINT8
   31868         type: DT_UINT16
   31869         type: DT_INT16
   31870         type: DT_INT8
   31871         type: DT_COMPLEX64
   31872         type: DT_COMPLEX128
   31873         type: DT_QINT8
   31874         type: DT_QUINT8
   31875         type: DT_QINT32
   31876         type: DT_HALF
   31877       }
   31878     }
   31879   }
   31880   attr {
   31881     name: "has_known_shape"
   31882     type: "bool"
   31883   }
   31884 }
   31885 op {
   31886   name: "SparseAccumulatorTakeGradient"
   31887   input_arg {
   31888     name: "handle"
   31889     type: DT_STRING
   31890     is_ref: true
   31891   }
   31892   input_arg {
   31893     name: "num_required"
   31894     type: DT_INT32
   31895   }
   31896   output_arg {
   31897     name: "indices"
   31898     type: DT_INT64
   31899   }
   31900   output_arg {
   31901     name: "values"
   31902     type_attr: "dtype"
   31903   }
   31904   output_arg {
   31905     name: "shape"
   31906     type: DT_INT64
   31907   }
   31908   attr {
   31909     name: "dtype"
   31910     type: "type"
   31911     allowed_values {
   31912       list {
   31913         type: DT_FLOAT
   31914         type: DT_DOUBLE
   31915         type: DT_INT64
   31916         type: DT_INT32
   31917         type: DT_UINT8
   31918         type: DT_UINT16
   31919         type: DT_INT16
   31920         type: DT_INT8
   31921         type: DT_COMPLEX64
   31922         type: DT_COMPLEX128
   31923         type: DT_QINT8
   31924         type: DT_QUINT8
   31925         type: DT_QINT32
   31926         type: DT_HALF
   31927       }
   31928     }
   31929   }
   31930 }
   31931 op {
   31932   name: "SparseAdd"
   31933   input_arg {
   31934     name: "a_indices"
   31935     type: DT_INT64
   31936   }
   31937   input_arg {
   31938     name: "a_values"
   31939     type_attr: "T"
   31940   }
   31941   input_arg {
   31942     name: "a_shape"
   31943     type: DT_INT64
   31944   }
   31945   input_arg {
   31946     name: "b_indices"
   31947     type: DT_INT64
   31948   }
   31949   input_arg {
   31950     name: "b_values"
   31951     type_attr: "T"
   31952   }
   31953   input_arg {
   31954     name: "b_shape"
   31955     type: DT_INT64
   31956   }
   31957   input_arg {
   31958     name: "thresh"
   31959     type_attr: "Treal"
   31960   }
   31961   output_arg {
   31962     name: "sum_indices"
   31963     type: DT_INT64
   31964   }
   31965   output_arg {
   31966     name: "sum_values"
   31967     type_attr: "T"
   31968   }
   31969   output_arg {
   31970     name: "sum_shape"
   31971     type: DT_INT64
   31972   }
   31973   attr {
   31974     name: "T"
   31975     type: "type"
   31976     allowed_values {
   31977       list {
   31978         type: DT_FLOAT
   31979         type: DT_DOUBLE
   31980         type: DT_INT64
   31981         type: DT_INT32
   31982         type: DT_UINT8
   31983         type: DT_UINT16
   31984         type: DT_INT16
   31985         type: DT_INT8
   31986         type: DT_COMPLEX64
   31987         type: DT_COMPLEX128
   31988         type: DT_QINT8
   31989         type: DT_QUINT8
   31990         type: DT_QINT32
   31991       }
   31992     }
   31993   }
   31994   attr {
   31995     name: "Treal"
   31996     type: "type"
   31997     allowed_values {
   31998       list {
   31999         type: DT_FLOAT
   32000         type: DT_DOUBLE
   32001         type: DT_INT32
   32002         type: DT_INT64
   32003         type: DT_UINT8
   32004         type: DT_INT16
   32005         type: DT_INT8
   32006         type: DT_UINT16
   32007       }
   32008     }
   32009   }
   32010 }
   32011 op {
   32012   name: "SparseAdd"
   32013   input_arg {
   32014     name: "a_indices"
   32015     type: DT_INT64
   32016   }
   32017   input_arg {
   32018     name: "a_values"
   32019     type_attr: "T"
   32020   }
   32021   input_arg {
   32022     name: "a_shape"
   32023     type: DT_INT64
   32024   }
   32025   input_arg {
   32026     name: "b_indices"
   32027     type: DT_INT64
   32028   }
   32029   input_arg {
   32030     name: "b_values"
   32031     type_attr: "T"
   32032   }
   32033   input_arg {
   32034     name: "b_shape"
   32035     type: DT_INT64
   32036   }
   32037   input_arg {
   32038     name: "thresh"
   32039     type_attr: "Treal"
   32040   }
   32041   output_arg {
   32042     name: "sum_indices"
   32043     type: DT_INT64
   32044   }
   32045   output_arg {
   32046     name: "sum_values"
   32047     type_attr: "T"
   32048   }
   32049   output_arg {
   32050     name: "sum_shape"
   32051     type: DT_INT64
   32052   }
   32053   attr {
   32054     name: "T"
   32055     type: "type"
   32056     allowed_values {
   32057       list {
   32058         type: DT_FLOAT
   32059         type: DT_DOUBLE
   32060         type: DT_INT64
   32061         type: DT_INT32
   32062         type: DT_UINT8
   32063         type: DT_UINT16
   32064         type: DT_INT16
   32065         type: DT_INT8
   32066         type: DT_COMPLEX64
   32067         type: DT_COMPLEX128
   32068         type: DT_QINT8
   32069         type: DT_QUINT8
   32070         type: DT_QINT32
   32071         type: DT_HALF
   32072       }
   32073     }
   32074   }
   32075   attr {
   32076     name: "Treal"
   32077     type: "type"
   32078     allowed_values {
   32079       list {
   32080         type: DT_FLOAT
   32081         type: DT_DOUBLE
   32082         type: DT_INT32
   32083         type: DT_INT64
   32084         type: DT_UINT8
   32085         type: DT_INT16
   32086         type: DT_INT8
   32087         type: DT_UINT16
   32088         type: DT_HALF
   32089       }
   32090     }
   32091   }
   32092 }
   32093 op {
   32094   name: "SparseAddGrad"
   32095   input_arg {
   32096     name: "backprop_val_grad"
   32097     type_attr: "T"
   32098   }
   32099   input_arg {
   32100     name: "a_indices"
   32101     type: DT_INT64
   32102   }
   32103   input_arg {
   32104     name: "b_indices"
   32105     type: DT_INT64
   32106   }
   32107   input_arg {
   32108     name: "sum_indices"
   32109     type: DT_INT64
   32110   }
   32111   output_arg {
   32112     name: "a_val_grad"
   32113     type_attr: "T"
   32114   }
   32115   output_arg {
   32116     name: "b_val_grad"
   32117     type_attr: "T"
   32118   }
   32119   attr {
   32120     name: "T"
   32121     type: "type"
   32122     allowed_values {
   32123       list {
   32124         type: DT_FLOAT
   32125         type: DT_DOUBLE
   32126         type: DT_INT64
   32127         type: DT_INT32
   32128         type: DT_UINT8
   32129         type: DT_UINT16
   32130         type: DT_INT16
   32131         type: DT_INT8
   32132         type: DT_COMPLEX64
   32133         type: DT_COMPLEX128
   32134         type: DT_QINT8
   32135         type: DT_QUINT8
   32136         type: DT_QINT32
   32137         type: DT_HALF
   32138       }
   32139     }
   32140   }
   32141 }
   32142 op {
   32143   name: "SparseApplyAdadelta"
   32144   input_arg {
   32145     name: "var"
   32146     type_attr: "T"
   32147     is_ref: true
   32148   }
   32149   input_arg {
   32150     name: "accum"
   32151     type_attr: "T"
   32152     is_ref: true
   32153   }
   32154   input_arg {
   32155     name: "accum_update"
   32156     type_attr: "T"
   32157     is_ref: true
   32158   }
   32159   input_arg {
   32160     name: "lr"
   32161     type_attr: "T"
   32162   }
   32163   input_arg {
   32164     name: "rho"
   32165     type_attr: "T"
   32166   }
   32167   input_arg {
   32168     name: "epsilon"
   32169     type_attr: "T"
   32170   }
   32171   input_arg {
   32172     name: "grad"
   32173     type_attr: "T"
   32174   }
   32175   input_arg {
   32176     name: "indices"
   32177     type_attr: "Tindices"
   32178   }
   32179   output_arg {
   32180     name: "out"
   32181     type_attr: "T"
   32182     is_ref: true
   32183   }
   32184   attr {
   32185     name: "T"
   32186     type: "type"
   32187     allowed_values {
   32188       list {
   32189         type: DT_FLOAT
   32190         type: DT_DOUBLE
   32191         type: DT_INT64
   32192         type: DT_INT32
   32193         type: DT_UINT8
   32194         type: DT_UINT16
   32195         type: DT_INT16
   32196         type: DT_INT8
   32197         type: DT_COMPLEX64
   32198         type: DT_COMPLEX128
   32199         type: DT_QINT8
   32200         type: DT_QUINT8
   32201         type: DT_QINT32
   32202         type: DT_HALF
   32203       }
   32204     }
   32205   }
   32206   attr {
   32207     name: "Tindices"
   32208     type: "type"
   32209     allowed_values {
   32210       list {
   32211         type: DT_INT32
   32212         type: DT_INT64
   32213       }
   32214     }
   32215   }
   32216   attr {
   32217     name: "use_locking"
   32218     type: "bool"
   32219     default_value {
   32220       b: false
   32221     }
   32222   }
   32223 }
   32224 op {
   32225   name: "SparseApplyAdagrad"
   32226   input_arg {
   32227     name: "var"
   32228     type_attr: "T"
   32229     is_ref: true
   32230   }
   32231   input_arg {
   32232     name: "accum"
   32233     type_attr: "T"
   32234     is_ref: true
   32235   }
   32236   input_arg {
   32237     name: "lr"
   32238     type_attr: "T"
   32239   }
   32240   input_arg {
   32241     name: "grad"
   32242     type_attr: "T"
   32243   }
   32244   input_arg {
   32245     name: "indices"
   32246     type_attr: "Tindices"
   32247   }
   32248   output_arg {
   32249     name: "out"
   32250     type_attr: "T"
   32251     is_ref: true
   32252   }
   32253   attr {
   32254     name: "T"
   32255     type: "type"
   32256     allowed_values {
   32257       list {
   32258         type: DT_FLOAT
   32259         type: DT_DOUBLE
   32260         type: DT_INT64
   32261         type: DT_INT32
   32262         type: DT_UINT8
   32263         type: DT_INT16
   32264         type: DT_INT8
   32265         type: DT_COMPLEX64
   32266         type: DT_QINT8
   32267         type: DT_QUINT8
   32268         type: DT_QINT32
   32269       }
   32270     }
   32271   }
   32272   attr {
   32273     name: "Tindices"
   32274     type: "type"
   32275     allowed_values {
   32276       list {
   32277         type: DT_INT32
   32278         type: DT_INT64
   32279       }
   32280     }
   32281   }
   32282   attr {
   32283     name: "use_locking"
   32284     type: "bool"
   32285     default_value {
   32286       b: false
   32287     }
   32288   }
   32289 }
   32290 op {
   32291   name: "SparseApplyAdagrad"
   32292   input_arg {
   32293     name: "var"
   32294     type_attr: "T"
   32295     is_ref: true
   32296   }
   32297   input_arg {
   32298     name: "accum"
   32299     type_attr: "T"
   32300     is_ref: true
   32301   }
   32302   input_arg {
   32303     name: "lr"
   32304     type_attr: "T"
   32305   }
   32306   input_arg {
   32307     name: "grad"
   32308     type_attr: "T"
   32309   }
   32310   input_arg {
   32311     name: "indices"
   32312     type_attr: "Tindices"
   32313   }
   32314   output_arg {
   32315     name: "out"
   32316     type_attr: "T"
   32317     is_ref: true
   32318   }
   32319   attr {
   32320     name: "T"
   32321     type: "type"
   32322     allowed_values {
   32323       list {
   32324         type: DT_FLOAT
   32325         type: DT_DOUBLE
   32326         type: DT_INT64
   32327         type: DT_INT32
   32328         type: DT_UINT8
   32329         type: DT_UINT16
   32330         type: DT_INT16
   32331         type: DT_INT8
   32332         type: DT_COMPLEX64
   32333         type: DT_QINT8
   32334         type: DT_QUINT8
   32335         type: DT_QINT32
   32336       }
   32337     }
   32338   }
   32339   attr {
   32340     name: "Tindices"
   32341     type: "type"
   32342     allowed_values {
   32343       list {
   32344         type: DT_INT32
   32345         type: DT_INT64
   32346       }
   32347     }
   32348   }
   32349   attr {
   32350     name: "use_locking"
   32351     type: "bool"
   32352     default_value {
   32353       b: false
   32354     }
   32355   }
   32356 }
   32357 op {
   32358   name: "SparseApplyAdagrad"
   32359   input_arg {
   32360     name: "var"
   32361     type_attr: "T"
   32362     is_ref: true
   32363   }
   32364   input_arg {
   32365     name: "accum"
   32366     type_attr: "T"
   32367     is_ref: true
   32368   }
   32369   input_arg {
   32370     name: "lr"
   32371     type_attr: "T"
   32372   }
   32373   input_arg {
   32374     name: "grad"
   32375     type_attr: "T"
   32376   }
   32377   input_arg {
   32378     name: "indices"
   32379     type_attr: "Tindices"
   32380   }
   32381   output_arg {
   32382     name: "out"
   32383     type_attr: "T"
   32384     is_ref: true
   32385   }
   32386   attr {
   32387     name: "T"
   32388     type: "type"
   32389     allowed_values {
   32390       list {
   32391         type: DT_FLOAT
   32392         type: DT_DOUBLE
   32393         type: DT_INT64
   32394         type: DT_INT32
   32395         type: DT_UINT8
   32396         type: DT_UINT16
   32397         type: DT_INT16
   32398         type: DT_INT8
   32399         type: DT_COMPLEX64
   32400         type: DT_COMPLEX128
   32401         type: DT_QINT8
   32402         type: DT_QUINT8
   32403         type: DT_QINT32
   32404       }
   32405     }
   32406   }
   32407   attr {
   32408     name: "Tindices"
   32409     type: "type"
   32410     allowed_values {
   32411       list {
   32412         type: DT_INT32
   32413         type: DT_INT64
   32414       }
   32415     }
   32416   }
   32417   attr {
   32418     name: "use_locking"
   32419     type: "bool"
   32420     default_value {
   32421       b: false
   32422     }
   32423   }
   32424 }
   32425 op {
   32426   name: "SparseApplyAdagrad"
   32427   input_arg {
   32428     name: "var"
   32429     type_attr: "T"
   32430     is_ref: true
   32431   }
   32432   input_arg {
   32433     name: "accum"
   32434     type_attr: "T"
   32435     is_ref: true
   32436   }
   32437   input_arg {
   32438     name: "lr"
   32439     type_attr: "T"
   32440   }
   32441   input_arg {
   32442     name: "grad"
   32443     type_attr: "T"
   32444   }
   32445   input_arg {
   32446     name: "indices"
   32447     type_attr: "Tindices"
   32448   }
   32449   output_arg {
   32450     name: "out"
   32451     type_attr: "T"
   32452     is_ref: true
   32453   }
   32454   attr {
   32455     name: "T"
   32456     type: "type"
   32457     allowed_values {
   32458       list {
   32459         type: DT_FLOAT
   32460         type: DT_DOUBLE
   32461         type: DT_INT64
   32462         type: DT_INT32
   32463         type: DT_UINT8
   32464         type: DT_UINT16
   32465         type: DT_INT16
   32466         type: DT_INT8
   32467         type: DT_COMPLEX64
   32468         type: DT_COMPLEX128
   32469         type: DT_QINT8
   32470         type: DT_QUINT8
   32471         type: DT_QINT32
   32472         type: DT_HALF
   32473       }
   32474     }
   32475   }
   32476   attr {
   32477     name: "Tindices"
   32478     type: "type"
   32479     allowed_values {
   32480       list {
   32481         type: DT_INT32
   32482         type: DT_INT64
   32483       }
   32484     }
   32485   }
   32486   attr {
   32487     name: "use_locking"
   32488     type: "bool"
   32489     default_value {
   32490       b: false
   32491     }
   32492   }
   32493 }
   32494 op {
   32495   name: "SparseApplyAdagradDA"
   32496   input_arg {
   32497     name: "var"
   32498     type_attr: "T"
   32499     is_ref: true
   32500   }
   32501   input_arg {
   32502     name: "gradient_accumulator"
   32503     type_attr: "T"
   32504     is_ref: true
   32505   }
   32506   input_arg {
   32507     name: "gradient_squared_accumulator"
   32508     type_attr: "T"
   32509     is_ref: true
   32510   }
   32511   input_arg {
   32512     name: "grad"
   32513     type_attr: "T"
   32514   }
   32515   input_arg {
   32516     name: "indices"
   32517     type_attr: "Tindices"
   32518   }
   32519   input_arg {
   32520     name: "lr"
   32521     type_attr: "T"
   32522   }
   32523   input_arg {
   32524     name: "l1"
   32525     type_attr: "T"
   32526   }
   32527   input_arg {
   32528     name: "l2"
   32529     type_attr: "T"
   32530   }
   32531   input_arg {
   32532     name: "global_step"
   32533     type: DT_INT64
   32534   }
   32535   output_arg {
   32536     name: "out"
   32537     type_attr: "T"
   32538     is_ref: true
   32539   }
   32540   attr {
   32541     name: "T"
   32542     type: "type"
   32543     allowed_values {
   32544       list {
   32545         type: DT_FLOAT
   32546         type: DT_DOUBLE
   32547         type: DT_INT64
   32548         type: DT_INT32
   32549         type: DT_UINT8
   32550         type: DT_UINT16
   32551         type: DT_INT16
   32552         type: DT_INT8
   32553         type: DT_COMPLEX64
   32554         type: DT_COMPLEX128
   32555         type: DT_QINT8
   32556         type: DT_QUINT8
   32557         type: DT_QINT32
   32558         type: DT_HALF
   32559       }
   32560     }
   32561   }
   32562   attr {
   32563     name: "Tindices"
   32564     type: "type"
   32565     allowed_values {
   32566       list {
   32567         type: DT_INT32
   32568         type: DT_INT64
   32569       }
   32570     }
   32571   }
   32572   attr {
   32573     name: "use_locking"
   32574     type: "bool"
   32575     default_value {
   32576       b: false
   32577     }
   32578   }
   32579 }
   32580 op {
   32581   name: "SparseApplyCenteredRMSProp"
   32582   input_arg {
   32583     name: "var"
   32584     type_attr: "T"
   32585     is_ref: true
   32586   }
   32587   input_arg {
   32588     name: "mg"
   32589     type_attr: "T"
   32590     is_ref: true
   32591   }
   32592   input_arg {
   32593     name: "ms"
   32594     type_attr: "T"
   32595     is_ref: true
   32596   }
   32597   input_arg {
   32598     name: "mom"
   32599     type_attr: "T"
   32600     is_ref: true
   32601   }
   32602   input_arg {
   32603     name: "lr"
   32604     type_attr: "T"
   32605   }
   32606   input_arg {
   32607     name: "rho"
   32608     type_attr: "T"
   32609   }
   32610   input_arg {
   32611     name: "momentum"
   32612     type_attr: "T"
   32613   }
   32614   input_arg {
   32615     name: "epsilon"
   32616     type_attr: "T"
   32617   }
   32618   input_arg {
   32619     name: "grad"
   32620     type_attr: "T"
   32621   }
   32622   input_arg {
   32623     name: "indices"
   32624     type_attr: "Tindices"
   32625   }
   32626   output_arg {
   32627     name: "out"
   32628     type_attr: "T"
   32629     is_ref: true
   32630   }
   32631   attr {
   32632     name: "T"
   32633     type: "type"
   32634     allowed_values {
   32635       list {
   32636         type: DT_FLOAT
   32637         type: DT_DOUBLE
   32638         type: DT_INT64
   32639         type: DT_INT32
   32640         type: DT_UINT8
   32641         type: DT_UINT16
   32642         type: DT_INT16
   32643         type: DT_INT8
   32644         type: DT_COMPLEX64
   32645         type: DT_COMPLEX128
   32646         type: DT_QINT8
   32647         type: DT_QUINT8
   32648         type: DT_QINT32
   32649         type: DT_HALF
   32650       }
   32651     }
   32652   }
   32653   attr {
   32654     name: "Tindices"
   32655     type: "type"
   32656     allowed_values {
   32657       list {
   32658         type: DT_INT32
   32659         type: DT_INT64
   32660       }
   32661     }
   32662   }
   32663   attr {
   32664     name: "use_locking"
   32665     type: "bool"
   32666     default_value {
   32667       b: false
   32668     }
   32669   }
   32670 }
   32671 op {
   32672   name: "SparseApplyFtrl"
   32673   input_arg {
   32674     name: "var"
   32675     type_attr: "T"
   32676     is_ref: true
   32677   }
   32678   input_arg {
   32679     name: "accum"
   32680     type_attr: "T"
   32681     is_ref: true
   32682   }
   32683   input_arg {
   32684     name: "linear"
   32685     type_attr: "T"
   32686     is_ref: true
   32687   }
   32688   input_arg {
   32689     name: "grad"
   32690     type_attr: "T"
   32691   }
   32692   input_arg {
   32693     name: "indices"
   32694     type_attr: "Tindices"
   32695   }
   32696   input_arg {
   32697     name: "lr"
   32698     type_attr: "T"
   32699   }
   32700   input_arg {
   32701     name: "l1"
   32702     type_attr: "T"
   32703   }
   32704   input_arg {
   32705     name: "l2"
   32706     type_attr: "T"
   32707   }
   32708   input_arg {
   32709     name: "lr_power"
   32710     type_attr: "T"
   32711   }
   32712   output_arg {
   32713     name: "out"
   32714     type_attr: "T"
   32715     is_ref: true
   32716   }
   32717   attr {
   32718     name: "T"
   32719     type: "type"
   32720     allowed_values {
   32721       list {
   32722         type: DT_FLOAT
   32723         type: DT_DOUBLE
   32724         type: DT_INT64
   32725         type: DT_INT32
   32726         type: DT_UINT8
   32727         type: DT_UINT16
   32728         type: DT_INT16
   32729         type: DT_INT8
   32730         type: DT_COMPLEX64
   32731         type: DT_QINT8
   32732         type: DT_QUINT8
   32733         type: DT_QINT32
   32734       }
   32735     }
   32736   }
   32737   attr {
   32738     name: "Tindices"
   32739     type: "type"
   32740     allowed_values {
   32741       list {
   32742         type: DT_INT32
   32743         type: DT_INT64
   32744       }
   32745     }
   32746   }
   32747   attr {
   32748     name: "use_locking"
   32749     type: "bool"
   32750     default_value {
   32751       b: false
   32752     }
   32753   }
   32754 }
   32755 op {
   32756   name: "SparseApplyFtrl"
   32757   input_arg {
   32758     name: "var"
   32759     type_attr: "T"
   32760     is_ref: true
   32761   }
   32762   input_arg {
   32763     name: "accum"
   32764     type_attr: "T"
   32765     is_ref: true
   32766   }
   32767   input_arg {
   32768     name: "linear"
   32769     type_attr: "T"
   32770     is_ref: true
   32771   }
   32772   input_arg {
   32773     name: "grad"
   32774     type_attr: "T"
   32775   }
   32776   input_arg {
   32777     name: "indices"
   32778     type_attr: "Tindices"
   32779   }
   32780   input_arg {
   32781     name: "lr"
   32782     type_attr: "T"
   32783   }
   32784   input_arg {
   32785     name: "l1"
   32786     type_attr: "T"
   32787   }
   32788   input_arg {
   32789     name: "l2"
   32790     type_attr: "T"
   32791   }
   32792   input_arg {
   32793     name: "lr_power"
   32794     type_attr: "T"
   32795   }
   32796   output_arg {
   32797     name: "out"
   32798     type_attr: "T"
   32799     is_ref: true
   32800   }
   32801   attr {
   32802     name: "T"
   32803     type: "type"
   32804     allowed_values {
   32805       list {
   32806         type: DT_FLOAT
   32807         type: DT_DOUBLE
   32808         type: DT_INT64
   32809         type: DT_INT32
   32810         type: DT_UINT8
   32811         type: DT_UINT16
   32812         type: DT_INT16
   32813         type: DT_INT8
   32814         type: DT_COMPLEX64
   32815         type: DT_COMPLEX128
   32816         type: DT_QINT8
   32817         type: DT_QUINT8
   32818         type: DT_QINT32
   32819       }
   32820     }
   32821   }
   32822   attr {
   32823     name: "Tindices"
   32824     type: "type"
   32825     allowed_values {
   32826       list {
   32827         type: DT_INT32
   32828         type: DT_INT64
   32829       }
   32830     }
   32831   }
   32832   attr {
   32833     name: "use_locking"
   32834     type: "bool"
   32835     default_value {
   32836       b: false
   32837     }
   32838   }
   32839 }
   32840 op {
   32841   name: "SparseApplyFtrl"
   32842   input_arg {
   32843     name: "var"
   32844     type_attr: "T"
   32845     is_ref: true
   32846   }
   32847   input_arg {
   32848     name: "accum"
   32849     type_attr: "T"
   32850     is_ref: true
   32851   }
   32852   input_arg {
   32853     name: "linear"
   32854     type_attr: "T"
   32855     is_ref: true
   32856   }
   32857   input_arg {
   32858     name: "grad"
   32859     type_attr: "T"
   32860   }
   32861   input_arg {
   32862     name: "indices"
   32863     type_attr: "Tindices"
   32864   }
   32865   input_arg {
   32866     name: "lr"
   32867     type_attr: "T"
   32868   }
   32869   input_arg {
   32870     name: "l1"
   32871     type_attr: "T"
   32872   }
   32873   input_arg {
   32874     name: "l2"
   32875     type_attr: "T"
   32876   }
   32877   input_arg {
   32878     name: "lr_power"
   32879     type_attr: "T"
   32880   }
   32881   output_arg {
   32882     name: "out"
   32883     type_attr: "T"
   32884     is_ref: true
   32885   }
   32886   attr {
   32887     name: "T"
   32888     type: "type"
   32889     allowed_values {
   32890       list {
   32891         type: DT_FLOAT
   32892         type: DT_DOUBLE
   32893         type: DT_INT64
   32894         type: DT_INT32
   32895         type: DT_UINT8
   32896         type: DT_UINT16
   32897         type: DT_INT16
   32898         type: DT_INT8
   32899         type: DT_COMPLEX64
   32900         type: DT_COMPLEX128
   32901         type: DT_QINT8
   32902         type: DT_QUINT8
   32903         type: DT_QINT32
   32904         type: DT_HALF
   32905       }
   32906     }
   32907   }
   32908   attr {
   32909     name: "Tindices"
   32910     type: "type"
   32911     allowed_values {
   32912       list {
   32913         type: DT_INT32
   32914         type: DT_INT64
   32915       }
   32916     }
   32917   }
   32918   attr {
   32919     name: "use_locking"
   32920     type: "bool"
   32921     default_value {
   32922       b: false
   32923     }
   32924   }
   32925 }
   32926 op {
   32927   name: "SparseApplyMomentum"
   32928   input_arg {
   32929     name: "var"
   32930     type_attr: "T"
   32931     is_ref: true
   32932   }
   32933   input_arg {
   32934     name: "accum"
   32935     type_attr: "T"
   32936     is_ref: true
   32937   }
   32938   input_arg {
   32939     name: "lr"
   32940     type_attr: "T"
   32941   }
   32942   input_arg {
   32943     name: "grad"
   32944     type_attr: "T"
   32945   }
   32946   input_arg {
   32947     name: "indices"
   32948     type_attr: "Tindices"
   32949   }
   32950   input_arg {
   32951     name: "momentum"
   32952     type_attr: "T"
   32953   }
   32954   output_arg {
   32955     name: "out"
   32956     type_attr: "T"
   32957     is_ref: true
   32958   }
   32959   attr {
   32960     name: "T"
   32961     type: "type"
   32962     allowed_values {
   32963       list {
   32964         type: DT_FLOAT
   32965         type: DT_DOUBLE
   32966         type: DT_INT64
   32967         type: DT_INT32
   32968         type: DT_UINT8
   32969         type: DT_INT16
   32970         type: DT_INT8
   32971         type: DT_COMPLEX64
   32972         type: DT_QINT8
   32973         type: DT_QUINT8
   32974         type: DT_QINT32
   32975       }
   32976     }
   32977   }
   32978   attr {
   32979     name: "Tindices"
   32980     type: "type"
   32981     allowed_values {
   32982       list {
   32983         type: DT_INT32
   32984         type: DT_INT64
   32985       }
   32986     }
   32987   }
   32988   attr {
   32989     name: "use_locking"
   32990     type: "bool"
   32991     default_value {
   32992       b: false
   32993     }
   32994   }
   32995 }
   32996 op {
   32997   name: "SparseApplyMomentum"
   32998   input_arg {
   32999     name: "var"
   33000     type_attr: "T"
   33001     is_ref: true
   33002   }
   33003   input_arg {
   33004     name: "accum"
   33005     type_attr: "T"
   33006     is_ref: true
   33007   }
   33008   input_arg {
   33009     name: "lr"
   33010     type_attr: "T"
   33011   }
   33012   input_arg {
   33013     name: "grad"
   33014     type_attr: "T"
   33015   }
   33016   input_arg {
   33017     name: "indices"
   33018     type_attr: "Tindices"
   33019   }
   33020   input_arg {
   33021     name: "momentum"
   33022     type_attr: "T"
   33023   }
   33024   output_arg {
   33025     name: "out"
   33026     type_attr: "T"
   33027     is_ref: true
   33028   }
   33029   attr {
   33030     name: "T"
   33031     type: "type"
   33032     allowed_values {
   33033       list {
   33034         type: DT_FLOAT
   33035         type: DT_DOUBLE
   33036         type: DT_INT64
   33037         type: DT_INT32
   33038         type: DT_UINT8
   33039         type: DT_UINT16
   33040         type: DT_INT16
   33041         type: DT_INT8
   33042         type: DT_COMPLEX64
   33043         type: DT_QINT8
   33044         type: DT_QUINT8
   33045         type: DT_QINT32
   33046       }
   33047     }
   33048   }
   33049   attr {
   33050     name: "Tindices"
   33051     type: "type"
   33052     allowed_values {
   33053       list {
   33054         type: DT_INT32
   33055         type: DT_INT64
   33056       }
   33057     }
   33058   }
   33059   attr {
   33060     name: "use_locking"
   33061     type: "bool"
   33062     default_value {
   33063       b: false
   33064     }
   33065   }
   33066 }
   33067 op {
   33068   name: "SparseApplyMomentum"
   33069   input_arg {
   33070     name: "var"
   33071     type_attr: "T"
   33072     is_ref: true
   33073   }
   33074   input_arg {
   33075     name: "accum"
   33076     type_attr: "T"
   33077     is_ref: true
   33078   }
   33079   input_arg {
   33080     name: "lr"
   33081     type_attr: "T"
   33082   }
   33083   input_arg {
   33084     name: "grad"
   33085     type_attr: "T"
   33086   }
   33087   input_arg {
   33088     name: "indices"
   33089     type_attr: "Tindices"
   33090   }
   33091   input_arg {
   33092     name: "momentum"
   33093     type_attr: "T"
   33094   }
   33095   output_arg {
   33096     name: "out"
   33097     type_attr: "T"
   33098     is_ref: true
   33099   }
   33100   attr {
   33101     name: "T"
   33102     type: "type"
   33103     allowed_values {
   33104       list {
   33105         type: DT_FLOAT
   33106         type: DT_DOUBLE
   33107         type: DT_INT64
   33108         type: DT_INT32
   33109         type: DT_UINT8
   33110         type: DT_UINT16
   33111         type: DT_INT16
   33112         type: DT_INT8
   33113         type: DT_COMPLEX64
   33114         type: DT_COMPLEX128
   33115         type: DT_QINT8
   33116         type: DT_QUINT8
   33117         type: DT_QINT32
   33118       }
   33119     }
   33120   }
   33121   attr {
   33122     name: "Tindices"
   33123     type: "type"
   33124     allowed_values {
   33125       list {
   33126         type: DT_INT32
   33127         type: DT_INT64
   33128       }
   33129     }
   33130   }
   33131   attr {
   33132     name: "use_locking"
   33133     type: "bool"
   33134     default_value {
   33135       b: false
   33136     }
   33137   }
   33138 }
   33139 op {
   33140   name: "SparseApplyMomentum"
   33141   input_arg {
   33142     name: "var"
   33143     type_attr: "T"
   33144     is_ref: true
   33145   }
   33146   input_arg {
   33147     name: "accum"
   33148     type_attr: "T"
   33149     is_ref: true
   33150   }
   33151   input_arg {
   33152     name: "lr"
   33153     type_attr: "T"
   33154   }
   33155   input_arg {
   33156     name: "grad"
   33157     type_attr: "T"
   33158   }
   33159   input_arg {
   33160     name: "indices"
   33161     type_attr: "Tindices"
   33162   }
   33163   input_arg {
   33164     name: "momentum"
   33165     type_attr: "T"
   33166   }
   33167   output_arg {
   33168     name: "out"
   33169     type_attr: "T"
   33170     is_ref: true
   33171   }
   33172   attr {
   33173     name: "T"
   33174     type: "type"
   33175     allowed_values {
   33176       list {
   33177         type: DT_FLOAT
   33178         type: DT_DOUBLE
   33179         type: DT_INT64
   33180         type: DT_INT32
   33181         type: DT_UINT8
   33182         type: DT_UINT16
   33183         type: DT_INT16
   33184         type: DT_INT8
   33185         type: DT_COMPLEX64
   33186         type: DT_COMPLEX128
   33187         type: DT_QINT8
   33188         type: DT_QUINT8
   33189         type: DT_QINT32
   33190         type: DT_HALF
   33191       }
   33192     }
   33193   }
   33194   attr {
   33195     name: "Tindices"
   33196     type: "type"
   33197     allowed_values {
   33198       list {
   33199         type: DT_INT32
   33200         type: DT_INT64
   33201       }
   33202     }
   33203   }
   33204   attr {
   33205     name: "use_locking"
   33206     type: "bool"
   33207     default_value {
   33208       b: false
   33209     }
   33210   }
   33211 }
   33212 op {
   33213   name: "SparseApplyMomentum"
   33214   input_arg {
   33215     name: "var"
   33216     type_attr: "T"
   33217     is_ref: true
   33218   }
   33219   input_arg {
   33220     name: "accum"
   33221     type_attr: "T"
   33222     is_ref: true
   33223   }
   33224   input_arg {
   33225     name: "lr"
   33226     type_attr: "T"
   33227   }
   33228   input_arg {
   33229     name: "grad"
   33230     type_attr: "T"
   33231   }
   33232   input_arg {
   33233     name: "indices"
   33234     type_attr: "Tindices"
   33235   }
   33236   input_arg {
   33237     name: "momentum"
   33238     type_attr: "T"
   33239   }
   33240   output_arg {
   33241     name: "out"
   33242     type_attr: "T"
   33243     is_ref: true
   33244   }
   33245   attr {
   33246     name: "T"
   33247     type: "type"
   33248     allowed_values {
   33249       list {
   33250         type: DT_FLOAT
   33251         type: DT_DOUBLE
   33252         type: DT_INT64
   33253         type: DT_INT32
   33254         type: DT_UINT8
   33255         type: DT_UINT16
   33256         type: DT_INT16
   33257         type: DT_INT8
   33258         type: DT_COMPLEX64
   33259         type: DT_COMPLEX128
   33260         type: DT_QINT8
   33261         type: DT_QUINT8
   33262         type: DT_QINT32
   33263         type: DT_HALF
   33264       }
   33265     }
   33266   }
   33267   attr {
   33268     name: "Tindices"
   33269     type: "type"
   33270     allowed_values {
   33271       list {
   33272         type: DT_INT32
   33273         type: DT_INT64
   33274       }
   33275     }
   33276   }
   33277   attr {
   33278     name: "use_locking"
   33279     type: "bool"
   33280     default_value {
   33281       b: false
   33282     }
   33283   }
   33284   attr {
   33285     name: "use_nesterov"
   33286     type: "bool"
   33287     default_value {
   33288       b: false
   33289     }
   33290   }
   33291 }
   33292 op {
   33293   name: "SparseApplyProximalAdagrad"
   33294   input_arg {
   33295     name: "var"
   33296     type_attr: "T"
   33297     is_ref: true
   33298   }
   33299   input_arg {
   33300     name: "accum"
   33301     type_attr: "T"
   33302     is_ref: true
   33303   }
   33304   input_arg {
   33305     name: "lr"
   33306     type_attr: "T"
   33307   }
   33308   input_arg {
   33309     name: "l1"
   33310     type_attr: "T"
   33311   }
   33312   input_arg {
   33313     name: "l2"
   33314     type_attr: "T"
   33315   }
   33316   input_arg {
   33317     name: "grad"
   33318     type_attr: "T"
   33319   }
   33320   input_arg {
   33321     name: "indices"
   33322     type_attr: "Tindices"
   33323   }
   33324   output_arg {
   33325     name: "out"
   33326     type_attr: "T"
   33327     is_ref: true
   33328   }
   33329   attr {
   33330     name: "T"
   33331     type: "type"
   33332     allowed_values {
   33333       list {
   33334         type: DT_FLOAT
   33335         type: DT_DOUBLE
   33336         type: DT_INT64
   33337         type: DT_INT32
   33338         type: DT_UINT8
   33339         type: DT_UINT16
   33340         type: DT_INT16
   33341         type: DT_INT8
   33342         type: DT_COMPLEX64
   33343         type: DT_COMPLEX128
   33344         type: DT_QINT8
   33345         type: DT_QUINT8
   33346         type: DT_QINT32
   33347         type: DT_HALF
   33348       }
   33349     }
   33350   }
   33351   attr {
   33352     name: "Tindices"
   33353     type: "type"
   33354     allowed_values {
   33355       list {
   33356         type: DT_INT32
   33357         type: DT_INT64
   33358       }
   33359     }
   33360   }
   33361   attr {
   33362     name: "use_locking"
   33363     type: "bool"
   33364     default_value {
   33365       b: false
   33366     }
   33367   }
   33368 }
   33369 op {
   33370   name: "SparseApplyProximalGradientDescent"
   33371   input_arg {
   33372     name: "var"
   33373     type_attr: "T"
   33374     is_ref: true
   33375   }
   33376   input_arg {
   33377     name: "alpha"
   33378     type_attr: "T"
   33379   }
   33380   input_arg {
   33381     name: "l1"
   33382     type_attr: "T"
   33383   }
   33384   input_arg {
   33385     name: "l2"
   33386     type_attr: "T"
   33387   }
   33388   input_arg {
   33389     name: "grad"
   33390     type_attr: "T"
   33391   }
   33392   input_arg {
   33393     name: "indices"
   33394     type_attr: "Tindices"
   33395   }
   33396   output_arg {
   33397     name: "out"
   33398     type_attr: "T"
   33399     is_ref: true
   33400   }
   33401   attr {
   33402     name: "T"
   33403     type: "type"
   33404     allowed_values {
   33405       list {
   33406         type: DT_FLOAT
   33407         type: DT_DOUBLE
   33408         type: DT_INT64
   33409         type: DT_INT32
   33410         type: DT_UINT8
   33411         type: DT_UINT16
   33412         type: DT_INT16
   33413         type: DT_INT8
   33414         type: DT_COMPLEX64
   33415         type: DT_COMPLEX128
   33416         type: DT_QINT8
   33417         type: DT_QUINT8
   33418         type: DT_QINT32
   33419         type: DT_HALF
   33420       }
   33421     }
   33422   }
   33423   attr {
   33424     name: "Tindices"
   33425     type: "type"
   33426     allowed_values {
   33427       list {
   33428         type: DT_INT32
   33429         type: DT_INT64
   33430       }
   33431     }
   33432   }
   33433   attr {
   33434     name: "use_locking"
   33435     type: "bool"
   33436     default_value {
   33437       b: false
   33438     }
   33439   }
   33440 }
   33441 op {
   33442   name: "SparseApplyRMSProp"
   33443   input_arg {
   33444     name: "var"
   33445     type_attr: "T"
   33446     is_ref: true
   33447   }
   33448   input_arg {
   33449     name: "ms"
   33450     type_attr: "T"
   33451     is_ref: true
   33452   }
   33453   input_arg {
   33454     name: "mom"
   33455     type_attr: "T"
   33456     is_ref: true
   33457   }
   33458   input_arg {
   33459     name: "lr"
   33460     type_attr: "T"
   33461   }
   33462   input_arg {
   33463     name: "rho"
   33464     type_attr: "T"
   33465   }
   33466   input_arg {
   33467     name: "momentum"
   33468     type_attr: "T"
   33469   }
   33470   input_arg {
   33471     name: "epsilon"
   33472     type_attr: "T"
   33473   }
   33474   input_arg {
   33475     name: "grad"
   33476     type_attr: "T"
   33477   }
   33478   input_arg {
   33479     name: "indices"
   33480     type_attr: "Tindices"
   33481   }
   33482   output_arg {
   33483     name: "out"
   33484     type_attr: "T"
   33485     is_ref: true
   33486   }
   33487   attr {
   33488     name: "T"
   33489     type: "type"
   33490     allowed_values {
   33491       list {
   33492         type: DT_FLOAT
   33493         type: DT_DOUBLE
   33494         type: DT_INT64
   33495         type: DT_INT32
   33496         type: DT_UINT8
   33497         type: DT_UINT16
   33498         type: DT_INT16
   33499         type: DT_INT8
   33500         type: DT_COMPLEX64
   33501         type: DT_COMPLEX128
   33502         type: DT_QINT8
   33503         type: DT_QUINT8
   33504         type: DT_QINT32
   33505         type: DT_HALF
   33506       }
   33507     }
   33508   }
   33509   attr {
   33510     name: "Tindices"
   33511     type: "type"
   33512     allowed_values {
   33513       list {
   33514         type: DT_INT32
   33515         type: DT_INT64
   33516       }
   33517     }
   33518   }
   33519   attr {
   33520     name: "use_locking"
   33521     type: "bool"
   33522     default_value {
   33523       b: false
   33524     }
   33525   }
   33526 }
   33527 op {
   33528   name: "SparseConcat"
   33529   input_arg {
   33530     name: "indices"
   33531     type: DT_INT64
   33532     number_attr: "N"
   33533   }
   33534   input_arg {
   33535     name: "values"
   33536     type_attr: "T"
   33537     number_attr: "N"
   33538   }
   33539   input_arg {
   33540     name: "shapes"
   33541     type: DT_INT64
   33542     number_attr: "N"
   33543   }
   33544   output_arg {
   33545     name: "output_indices"
   33546     type: DT_INT64
   33547   }
   33548   output_arg {
   33549     name: "output_values"
   33550     type_attr: "T"
   33551   }
   33552   output_arg {
   33553     name: "output_shape"
   33554     type: DT_INT64
   33555   }
   33556   attr {
   33557     name: "concat_dim"
   33558     type: "int"
   33559     has_minimum: true
   33560   }
   33561   attr {
   33562     name: "N"
   33563     type: "int"
   33564     has_minimum: true
   33565     minimum: 2
   33566   }
   33567   attr {
   33568     name: "T"
   33569     type: "type"
   33570   }
   33571 }
   33572 op {
   33573   name: "SparseConcat"
   33574   input_arg {
   33575     name: "indices"
   33576     type: DT_INT64
   33577     number_attr: "N"
   33578   }
   33579   input_arg {
   33580     name: "values"
   33581     type_attr: "T"
   33582     number_attr: "N"
   33583   }
   33584   input_arg {
   33585     name: "shapes"
   33586     type: DT_INT64
   33587     number_attr: "N"
   33588   }
   33589   output_arg {
   33590     name: "output_indices"
   33591     type: DT_INT64
   33592   }
   33593   output_arg {
   33594     name: "output_values"
   33595     type_attr: "T"
   33596   }
   33597   output_arg {
   33598     name: "output_shape"
   33599     type: DT_INT64
   33600   }
   33601   attr {
   33602     name: "concat_dim"
   33603     type: "int"
   33604   }
   33605   attr {
   33606     name: "N"
   33607     type: "int"
   33608     has_minimum: true
   33609     minimum: 2
   33610   }
   33611   attr {
   33612     name: "T"
   33613     type: "type"
   33614   }
   33615 }
   33616 op {
   33617   name: "SparseConditionalAccumulator"
   33618   output_arg {
   33619     name: "handle"
   33620     type: DT_STRING
   33621     is_ref: true
   33622   }
   33623   attr {
   33624     name: "dtype"
   33625     type: "type"
   33626     allowed_values {
   33627       list {
   33628         type: DT_FLOAT
   33629         type: DT_DOUBLE
   33630         type: DT_INT64
   33631         type: DT_INT32
   33632         type: DT_UINT8
   33633         type: DT_UINT16
   33634         type: DT_INT16
   33635         type: DT_INT8
   33636         type: DT_COMPLEX64
   33637         type: DT_COMPLEX128
   33638         type: DT_QINT8
   33639         type: DT_QUINT8
   33640         type: DT_QINT32
   33641         type: DT_HALF
   33642       }
   33643     }
   33644   }
   33645   attr {
   33646     name: "shape"
   33647     type: "shape"
   33648   }
   33649   attr {
   33650     name: "container"
   33651     type: "string"
   33652     default_value {
   33653       s: ""
   33654     }
   33655   }
   33656   attr {
   33657     name: "shared_name"
   33658     type: "string"
   33659     default_value {
   33660       s: ""
   33661     }
   33662   }
   33663   is_stateful: true
   33664 }
   33665 op {
   33666   name: "SparseDenseCwiseAdd"
   33667   input_arg {
   33668     name: "sp_indices"
   33669     type: DT_INT64
   33670   }
   33671   input_arg {
   33672     name: "sp_values"
   33673     type_attr: "T"
   33674   }
   33675   input_arg {
   33676     name: "sp_shape"
   33677     type: DT_INT64
   33678   }
   33679   input_arg {
   33680     name: "dense"
   33681     type_attr: "T"
   33682   }
   33683   output_arg {
   33684     name: "output"
   33685     type_attr: "T"
   33686   }
   33687   attr {
   33688     name: "T"
   33689     type: "type"
   33690     allowed_values {
   33691       list {
   33692         type: DT_FLOAT
   33693         type: DT_DOUBLE
   33694         type: DT_INT64
   33695         type: DT_INT32
   33696         type: DT_UINT8
   33697         type: DT_UINT16
   33698         type: DT_INT16
   33699         type: DT_INT8
   33700         type: DT_COMPLEX64
   33701         type: DT_COMPLEX128
   33702         type: DT_QINT8
   33703         type: DT_QUINT8
   33704         type: DT_QINT32
   33705         type: DT_HALF
   33706       }
   33707     }
   33708   }
   33709 }
   33710 op {
   33711   name: "SparseDenseCwiseDiv"
   33712   input_arg {
   33713     name: "sp_indices"
   33714     type: DT_INT64
   33715   }
   33716   input_arg {
   33717     name: "sp_values"
   33718     type_attr: "T"
   33719   }
   33720   input_arg {
   33721     name: "sp_shape"
   33722     type: DT_INT64
   33723   }
   33724   input_arg {
   33725     name: "dense"
   33726     type_attr: "T"
   33727   }
   33728   output_arg {
   33729     name: "output"
   33730     type_attr: "T"
   33731   }
   33732   attr {
   33733     name: "T"
   33734     type: "type"
   33735     allowed_values {
   33736       list {
   33737         type: DT_FLOAT
   33738         type: DT_DOUBLE
   33739         type: DT_INT64
   33740         type: DT_INT32
   33741         type: DT_UINT8
   33742         type: DT_UINT16
   33743         type: DT_INT16
   33744         type: DT_INT8
   33745         type: DT_COMPLEX64
   33746         type: DT_COMPLEX128
   33747         type: DT_QINT8
   33748         type: DT_QUINT8
   33749         type: DT_QINT32
   33750         type: DT_HALF
   33751       }
   33752     }
   33753   }
   33754 }
   33755 op {
   33756   name: "SparseDenseCwiseMul"
   33757   input_arg {
   33758     name: "sp_indices"
   33759     type: DT_INT64
   33760   }
   33761   input_arg {
   33762     name: "sp_values"
   33763     type_attr: "T"
   33764   }
   33765   input_arg {
   33766     name: "sp_shape"
   33767     type: DT_INT64
   33768   }
   33769   input_arg {
   33770     name: "dense"
   33771     type_attr: "T"
   33772   }
   33773   output_arg {
   33774     name: "output"
   33775     type_attr: "T"
   33776   }
   33777   attr {
   33778     name: "T"
   33779     type: "type"
   33780     allowed_values {
   33781       list {
   33782         type: DT_FLOAT
   33783         type: DT_DOUBLE
   33784         type: DT_INT64
   33785         type: DT_INT32
   33786         type: DT_UINT8
   33787         type: DT_UINT16
   33788         type: DT_INT16
   33789         type: DT_INT8
   33790         type: DT_COMPLEX64
   33791         type: DT_COMPLEX128
   33792         type: DT_QINT8
   33793         type: DT_QUINT8
   33794         type: DT_QINT32
   33795         type: DT_HALF
   33796       }
   33797     }
   33798   }
   33799 }
   33800 op {
   33801   name: "SparseMatMul"
   33802   input_arg {
   33803     name: "a"
   33804     type: DT_FLOAT
   33805   }
   33806   input_arg {
   33807     name: "b"
   33808     type: DT_FLOAT
   33809   }
   33810   output_arg {
   33811     name: "product"
   33812     type: DT_FLOAT
   33813   }
   33814   attr {
   33815     name: "transpose_a"
   33816     type: "bool"
   33817     default_value {
   33818       b: false
   33819     }
   33820   }
   33821   attr {
   33822     name: "transpose_b"
   33823     type: "bool"
   33824     default_value {
   33825       b: false
   33826     }
   33827   }
   33828   attr {
   33829     name: "a_is_sparse"
   33830     type: "bool"
   33831     default_value {
   33832       b: false
   33833     }
   33834   }
   33835   attr {
   33836     name: "b_is_sparse"
   33837     type: "bool"
   33838     default_value {
   33839       b: false
   33840     }
   33841   }
   33842 }
   33843 op {
   33844   name: "SparseMatMul"
   33845   input_arg {
   33846     name: "a"
   33847     type_attr: "Ta"
   33848   }
   33849   input_arg {
   33850     name: "b"
   33851     type_attr: "Tb"
   33852   }
   33853   output_arg {
   33854     name: "product"
   33855     type: DT_FLOAT
   33856   }
   33857   attr {
   33858     name: "transpose_a"
   33859     type: "bool"
   33860     default_value {
   33861       b: false
   33862     }
   33863   }
   33864   attr {
   33865     name: "transpose_b"
   33866     type: "bool"
   33867     default_value {
   33868       b: false
   33869     }
   33870   }
   33871   attr {
   33872     name: "a_is_sparse"
   33873     type: "bool"
   33874     default_value {
   33875       b: false
   33876     }
   33877   }
   33878   attr {
   33879     name: "b_is_sparse"
   33880     type: "bool"
   33881     default_value {
   33882       b: false
   33883     }
   33884   }
   33885   attr {
   33886     name: "Ta"
   33887     type: "type"
   33888     default_value {
   33889       type: DT_FLOAT
   33890     }
   33891     allowed_values {
   33892       list {
   33893         type: DT_FLOAT
   33894         type: DT_BFLOAT16
   33895       }
   33896     }
   33897   }
   33898   attr {
   33899     name: "Tb"
   33900     type: "type"
   33901     default_value {
   33902       type: DT_FLOAT
   33903     }
   33904     allowed_values {
   33905       list {
   33906         type: DT_FLOAT
   33907         type: DT_BFLOAT16
   33908       }
   33909     }
   33910   }
   33911 }
   33912 op {
   33913   name: "SparseReduceSum"
   33914   input_arg {
   33915     name: "input_indices"
   33916     type: DT_INT64
   33917   }
   33918   input_arg {
   33919     name: "input_values"
   33920     type_attr: "T"
   33921   }
   33922   input_arg {
   33923     name: "input_shape"
   33924     type: DT_INT64
   33925   }
   33926   input_arg {
   33927     name: "reduction_axes"
   33928     type: DT_INT32
   33929   }
   33930   output_arg {
   33931     name: "output"
   33932     type_attr: "T"
   33933   }
   33934   attr {
   33935     name: "keep_dims"
   33936     type: "bool"
   33937     default_value {
   33938       b: false
   33939     }
   33940   }
   33941   attr {
   33942     name: "T"
   33943     type: "type"
   33944     allowed_values {
   33945       list {
   33946         type: DT_FLOAT
   33947         type: DT_DOUBLE
   33948         type: DT_INT64
   33949         type: DT_INT32
   33950         type: DT_UINT8
   33951         type: DT_UINT16
   33952         type: DT_INT16
   33953         type: DT_INT8
   33954         type: DT_COMPLEX64
   33955         type: DT_COMPLEX128
   33956         type: DT_QINT8
   33957         type: DT_QUINT8
   33958         type: DT_QINT32
   33959         type: DT_HALF
   33960       }
   33961     }
   33962   }
   33963 }
   33964 op {
   33965   name: "SparseReduceSumSparse"
   33966   input_arg {
   33967     name: "input_indices"
   33968     type: DT_INT64
   33969   }
   33970   input_arg {
   33971     name: "input_values"
   33972     type_attr: "T"
   33973   }
   33974   input_arg {
   33975     name: "input_shape"
   33976     type: DT_INT64
   33977   }
   33978   input_arg {
   33979     name: "reduction_axes"
   33980     type: DT_INT32
   33981   }
   33982   output_arg {
   33983     name: "output_indices"
   33984     type: DT_INT64
   33985   }
   33986   output_arg {
   33987     name: "output_values"
   33988     type_attr: "T"
   33989   }
   33990   output_arg {
   33991     name: "output_shape"
   33992     type: DT_INT64
   33993   }
   33994   attr {
   33995     name: "keep_dims"
   33996     type: "bool"
   33997     default_value {
   33998       b: false
   33999     }
   34000   }
   34001   attr {
   34002     name: "T"
   34003     type: "type"
   34004     allowed_values {
   34005       list {
   34006         type: DT_FLOAT
   34007         type: DT_DOUBLE
   34008         type: DT_INT64
   34009         type: DT_INT32
   34010         type: DT_UINT8
   34011         type: DT_UINT16
   34012         type: DT_INT16
   34013         type: DT_INT8
   34014         type: DT_COMPLEX64
   34015         type: DT_COMPLEX128
   34016         type: DT_QINT8
   34017         type: DT_QUINT8
   34018         type: DT_QINT32
   34019         type: DT_HALF
   34020       }
   34021     }
   34022   }
   34023 }
   34024 op {
   34025   name: "SparseReorder"
   34026   input_arg {
   34027     name: "input_indices"
   34028     type: DT_INT64
   34029   }
   34030   input_arg {
   34031     name: "input_values"
   34032     type_attr: "T"
   34033   }
   34034   input_arg {
   34035     name: "input_shape"
   34036     type: DT_INT64
   34037   }
   34038   output_arg {
   34039     name: "output_indices"
   34040     type: DT_INT64
   34041   }
   34042   output_arg {
   34043     name: "output_values"
   34044     type_attr: "T"
   34045   }
   34046   attr {
   34047     name: "T"
   34048     type: "type"
   34049   }
   34050 }
   34051 op {
   34052   name: "SparseReshape"
   34053   input_arg {
   34054     name: "input_indices"
   34055     type: DT_INT64
   34056   }
   34057   input_arg {
   34058     name: "input_shape"
   34059     type: DT_INT64
   34060   }
   34061   input_arg {
   34062     name: "new_shape"
   34063     type: DT_INT64
   34064   }
   34065   output_arg {
   34066     name: "output_indices"
   34067     type: DT_INT64
   34068   }
   34069   output_arg {
   34070     name: "output_shape"
   34071     type: DT_INT64
   34072   }
   34073 }
   34074 op {
   34075   name: "SparseSegmentMean"
   34076   input_arg {
   34077     name: "data"
   34078     type_attr: "T"
   34079   }
   34080   input_arg {
   34081     name: "indices"
   34082     type: DT_INT32
   34083   }
   34084   input_arg {
   34085     name: "segment_ids"
   34086     type: DT_INT32
   34087   }
   34088   output_arg {
   34089     name: "output"
   34090     type_attr: "T"
   34091   }
   34092   attr {
   34093     name: "T"
   34094     type: "type"
   34095     allowed_values {
   34096       list {
   34097         type: DT_FLOAT
   34098         type: DT_DOUBLE
   34099       }
   34100     }
   34101   }
   34102 }
   34103 op {
   34104   name: "SparseSegmentMean"
   34105   input_arg {
   34106     name: "data"
   34107     type_attr: "T"
   34108   }
   34109   input_arg {
   34110     name: "indices"
   34111     type_attr: "Tidx"
   34112   }
   34113   input_arg {
   34114     name: "segment_ids"
   34115     type: DT_INT32
   34116   }
   34117   output_arg {
   34118     name: "output"
   34119     type_attr: "T"
   34120   }
   34121   attr {
   34122     name: "T"
   34123     type: "type"
   34124     allowed_values {
   34125       list {
   34126         type: DT_FLOAT
   34127         type: DT_DOUBLE
   34128       }
   34129     }
   34130   }
   34131   attr {
   34132     name: "Tidx"
   34133     type: "type"
   34134     default_value {
   34135       type: DT_INT32
   34136     }
   34137     allowed_values {
   34138       list {
   34139         type: DT_INT32
   34140         type: DT_INT64
   34141       }
   34142     }
   34143   }
   34144 }
   34145 op {
   34146   name: "SparseSegmentMeanGrad"
   34147   input_arg {
   34148     name: "grad"
   34149     type_attr: "T"
   34150   }
   34151   input_arg {
   34152     name: "indices"
   34153     type: DT_INT32
   34154   }
   34155   input_arg {
   34156     name: "segment_ids"
   34157     type: DT_INT32
   34158   }
   34159   input_arg {
   34160     name: "output_dim0"
   34161     type: DT_INT32
   34162   }
   34163   output_arg {
   34164     name: "output"
   34165     type_attr: "T"
   34166   }
   34167   attr {
   34168     name: "T"
   34169     type: "type"
   34170     allowed_values {
   34171       list {
   34172         type: DT_FLOAT
   34173         type: DT_DOUBLE
   34174       }
   34175     }
   34176   }
   34177 }
   34178 op {
   34179   name: "SparseSegmentMeanGrad"
   34180   input_arg {
   34181     name: "grad"
   34182     type_attr: "T"
   34183   }
   34184   input_arg {
   34185     name: "indices"
   34186     type_attr: "Tidx"
   34187   }
   34188   input_arg {
   34189     name: "segment_ids"
   34190     type: DT_INT32
   34191   }
   34192   input_arg {
   34193     name: "output_dim0"
   34194     type: DT_INT32
   34195   }
   34196   output_arg {
   34197     name: "output"
   34198     type_attr: "T"
   34199   }
   34200   attr {
   34201     name: "T"
   34202     type: "type"
   34203     allowed_values {
   34204       list {
   34205         type: DT_FLOAT
   34206         type: DT_DOUBLE
   34207       }
   34208     }
   34209   }
   34210   attr {
   34211     name: "Tidx"
   34212     type: "type"
   34213     default_value {
   34214       type: DT_INT32
   34215     }
   34216     allowed_values {
   34217       list {
   34218         type: DT_INT32
   34219         type: DT_INT64
   34220       }
   34221     }
   34222   }
   34223 }
   34224 op {
   34225   name: "SparseSegmentSqrtN"
   34226   input_arg {
   34227     name: "data"
   34228     type_attr: "T"
   34229   }
   34230   input_arg {
   34231     name: "indices"
   34232     type: DT_INT32
   34233   }
   34234   input_arg {
   34235     name: "segment_ids"
   34236     type: DT_INT32
   34237   }
   34238   output_arg {
   34239     name: "output"
   34240     type_attr: "T"
   34241   }
   34242   attr {
   34243     name: "T"
   34244     type: "type"
   34245     allowed_values {
   34246       list {
   34247         type: DT_FLOAT
   34248         type: DT_DOUBLE
   34249       }
   34250     }
   34251   }
   34252 }
   34253 op {
   34254   name: "SparseSegmentSqrtN"
   34255   input_arg {
   34256     name: "data"
   34257     type_attr: "T"
   34258   }
   34259   input_arg {
   34260     name: "indices"
   34261     type_attr: "Tidx"
   34262   }
   34263   input_arg {
   34264     name: "segment_ids"
   34265     type: DT_INT32
   34266   }
   34267   output_arg {
   34268     name: "output"
   34269     type_attr: "T"
   34270   }
   34271   attr {
   34272     name: "T"
   34273     type: "type"
   34274     allowed_values {
   34275       list {
   34276         type: DT_FLOAT
   34277         type: DT_DOUBLE
   34278       }
   34279     }
   34280   }
   34281   attr {
   34282     name: "Tidx"
   34283     type: "type"
   34284     default_value {
   34285       type: DT_INT32
   34286     }
   34287     allowed_values {
   34288       list {
   34289         type: DT_INT32
   34290         type: DT_INT64
   34291       }
   34292     }
   34293   }
   34294 }
   34295 op {
   34296   name: "SparseSegmentSqrtNGrad"
   34297   input_arg {
   34298     name: "grad"
   34299     type_attr: "T"
   34300   }
   34301   input_arg {
   34302     name: "indices"
   34303     type: DT_INT32
   34304   }
   34305   input_arg {
   34306     name: "segment_ids"
   34307     type: DT_INT32
   34308   }
   34309   input_arg {
   34310     name: "output_dim0"
   34311     type: DT_INT32
   34312   }
   34313   output_arg {
   34314     name: "output"
   34315     type_attr: "T"
   34316   }
   34317   attr {
   34318     name: "T"
   34319     type: "type"
   34320     allowed_values {
   34321       list {
   34322         type: DT_FLOAT
   34323         type: DT_DOUBLE
   34324       }
   34325     }
   34326   }
   34327 }
   34328 op {
   34329   name: "SparseSegmentSqrtNGrad"
   34330   input_arg {
   34331     name: "grad"
   34332     type_attr: "T"
   34333   }
   34334   input_arg {
   34335     name: "indices"
   34336     type_attr: "Tidx"
   34337   }
   34338   input_arg {
   34339     name: "segment_ids"
   34340     type: DT_INT32
   34341   }
   34342   input_arg {
   34343     name: "output_dim0"
   34344     type: DT_INT32
   34345   }
   34346   output_arg {
   34347     name: "output"
   34348     type_attr: "T"
   34349   }
   34350   attr {
   34351     name: "T"
   34352     type: "type"
   34353     allowed_values {
   34354       list {
   34355         type: DT_FLOAT
   34356         type: DT_DOUBLE
   34357       }
   34358     }
   34359   }
   34360   attr {
   34361     name: "Tidx"
   34362     type: "type"
   34363     default_value {
   34364       type: DT_INT32
   34365     }
   34366     allowed_values {
   34367       list {
   34368         type: DT_INT32
   34369         type: DT_INT64
   34370       }
   34371     }
   34372   }
   34373 }
   34374 op {
   34375   name: "SparseSegmentSum"
   34376   input_arg {
   34377     name: "data"
   34378     type_attr: "T"
   34379   }
   34380   input_arg {
   34381     name: "indices"
   34382     type: DT_INT32
   34383   }
   34384   input_arg {
   34385     name: "segment_ids"
   34386     type: DT_INT32
   34387   }
   34388   output_arg {
   34389     name: "output"
   34390     type_attr: "T"
   34391   }
   34392   attr {
   34393     name: "T"
   34394     type: "type"
   34395     allowed_values {
   34396       list {
   34397         type: DT_FLOAT
   34398         type: DT_DOUBLE
   34399         type: DT_INT32
   34400         type: DT_INT64
   34401         type: DT_UINT8
   34402         type: DT_INT16
   34403         type: DT_INT8
   34404       }
   34405     }
   34406   }
   34407 }
   34408 op {
   34409   name: "SparseSegmentSum"
   34410   input_arg {
   34411     name: "data"
   34412     type_attr: "T"
   34413   }
   34414   input_arg {
   34415     name: "indices"
   34416     type: DT_INT32
   34417   }
   34418   input_arg {
   34419     name: "segment_ids"
   34420     type: DT_INT32
   34421   }
   34422   output_arg {
   34423     name: "output"
   34424     type_attr: "T"
   34425   }
   34426   attr {
   34427     name: "T"
   34428     type: "type"
   34429     allowed_values {
   34430       list {
   34431         type: DT_FLOAT
   34432         type: DT_DOUBLE
   34433         type: DT_INT32
   34434         type: DT_INT64
   34435         type: DT_UINT8
   34436         type: DT_INT16
   34437         type: DT_INT8
   34438         type: DT_UINT16
   34439       }
   34440     }
   34441   }
   34442 }
   34443 op {
   34444   name: "SparseSegmentSum"
   34445   input_arg {
   34446     name: "data"
   34447     type_attr: "T"
   34448   }
   34449   input_arg {
   34450     name: "indices"
   34451     type: DT_INT32
   34452   }
   34453   input_arg {
   34454     name: "segment_ids"
   34455     type: DT_INT32
   34456   }
   34457   output_arg {
   34458     name: "output"
   34459     type_attr: "T"
   34460   }
   34461   attr {
   34462     name: "T"
   34463     type: "type"
   34464     allowed_values {
   34465       list {
   34466         type: DT_FLOAT
   34467         type: DT_DOUBLE
   34468         type: DT_INT32
   34469         type: DT_INT64
   34470         type: DT_UINT8
   34471         type: DT_INT16
   34472         type: DT_INT8
   34473         type: DT_UINT16
   34474         type: DT_HALF
   34475       }
   34476     }
   34477   }
   34478 }
   34479 op {
   34480   name: "SparseSegmentSum"
   34481   input_arg {
   34482     name: "data"
   34483     type_attr: "T"
   34484   }
   34485   input_arg {
   34486     name: "indices"
   34487     type_attr: "Tidx"
   34488   }
   34489   input_arg {
   34490     name: "segment_ids"
   34491     type: DT_INT32
   34492   }
   34493   output_arg {
   34494     name: "output"
   34495     type_attr: "T"
   34496   }
   34497   attr {
   34498     name: "T"
   34499     type: "type"
   34500     allowed_values {
   34501       list {
   34502         type: DT_FLOAT
   34503         type: DT_DOUBLE
   34504         type: DT_INT32
   34505         type: DT_INT64
   34506         type: DT_UINT8
   34507         type: DT_INT16
   34508         type: DT_INT8
   34509         type: DT_UINT16
   34510         type: DT_HALF
   34511       }
   34512     }
   34513   }
   34514   attr {
   34515     name: "Tidx"
   34516     type: "type"
   34517     default_value {
   34518       type: DT_INT32
   34519     }
   34520     allowed_values {
   34521       list {
   34522         type: DT_INT32
   34523         type: DT_INT64
   34524       }
   34525     }
   34526   }
   34527 }
   34528 op {
   34529   name: "SparseSoftmax"
   34530   input_arg {
   34531     name: "sp_indices"
   34532     type: DT_INT64
   34533   }
   34534   input_arg {
   34535     name: "sp_values"
   34536     type_attr: "T"
   34537   }
   34538   input_arg {
   34539     name: "sp_shape"
   34540     type: DT_INT64
   34541   }
   34542   output_arg {
   34543     name: "output"
   34544     type_attr: "T"
   34545   }
   34546   attr {
   34547     name: "T"
   34548     type: "type"
   34549     allowed_values {
   34550       list {
   34551         type: DT_FLOAT
   34552         type: DT_DOUBLE
   34553       }
   34554     }
   34555   }
   34556 }
   34557 op {
   34558   name: "SparseSoftmaxCrossEntropyWithLogits"
   34559   input_arg {
   34560     name: "features"
   34561     type_attr: "T"
   34562   }
   34563   input_arg {
   34564     name: "labels"
   34565     type: DT_INT64
   34566   }
   34567   output_arg {
   34568     name: "loss"
   34569     type_attr: "T"
   34570   }
   34571   output_arg {
   34572     name: "backprop"
   34573     type_attr: "T"
   34574   }
   34575   attr {
   34576     name: "T"
   34577     type: "type"
   34578     allowed_values {
   34579       list {
   34580         type: DT_FLOAT
   34581         type: DT_DOUBLE
   34582       }
   34583     }
   34584   }
   34585 }
   34586 op {
   34587   name: "SparseSoftmaxCrossEntropyWithLogits"
   34588   input_arg {
   34589     name: "features"
   34590     type_attr: "T"
   34591   }
   34592   input_arg {
   34593     name: "labels"
   34594     type_attr: "Tlabels"
   34595   }
   34596   output_arg {
   34597     name: "loss"
   34598     type_attr: "T"
   34599   }
   34600   output_arg {
   34601     name: "backprop"
   34602     type_attr: "T"
   34603   }
   34604   attr {
   34605     name: "T"
   34606     type: "type"
   34607     allowed_values {
   34608       list {
   34609         type: DT_FLOAT
   34610         type: DT_DOUBLE
   34611       }
   34612     }
   34613   }
   34614   attr {
   34615     name: "Tlabels"
   34616     type: "type"
   34617     default_value {
   34618       type: DT_INT64
   34619     }
   34620     allowed_values {
   34621       list {
   34622         type: DT_INT32
   34623         type: DT_INT64
   34624       }
   34625     }
   34626   }
   34627 }
   34628 op {
   34629   name: "SparseSoftmaxCrossEntropyWithLogits"
   34630   input_arg {
   34631     name: "features"
   34632     type_attr: "T"
   34633   }
   34634   input_arg {
   34635     name: "labels"
   34636     type_attr: "Tlabels"
   34637   }
   34638   output_arg {
   34639     name: "loss"
   34640     type_attr: "T"
   34641   }
   34642   output_arg {
   34643     name: "backprop"
   34644     type_attr: "T"
   34645   }
   34646   attr {
   34647     name: "T"
   34648     type: "type"
   34649     allowed_values {
   34650       list {
   34651         type: DT_HALF
   34652         type: DT_FLOAT
   34653         type: DT_DOUBLE
   34654       }
   34655     }
   34656   }
   34657   attr {
   34658     name: "Tlabels"
   34659     type: "type"
   34660     default_value {
   34661       type: DT_INT64
   34662     }
   34663     allowed_values {
   34664       list {
   34665         type: DT_INT32
   34666         type: DT_INT64
   34667       }
   34668     }
   34669   }
   34670 }
   34671 op {
   34672   name: "SparseSparseMaximum"
   34673   input_arg {
   34674     name: "a_indices"
   34675     type: DT_INT64
   34676   }
   34677   input_arg {
   34678     name: "a_values"
   34679     type_attr: "T"
   34680   }
   34681   input_arg {
   34682     name: "a_shape"
   34683     type: DT_INT64
   34684   }
   34685   input_arg {
   34686     name: "b_indices"
   34687     type: DT_INT64
   34688   }
   34689   input_arg {
   34690     name: "b_values"
   34691     type_attr: "T"
   34692   }
   34693   input_arg {
   34694     name: "b_shape"
   34695     type: DT_INT64
   34696   }
   34697   output_arg {
   34698     name: "output_indices"
   34699     type: DT_INT64
   34700   }
   34701   output_arg {
   34702     name: "output_values"
   34703     type_attr: "T"
   34704   }
   34705   attr {
   34706     name: "T"
   34707     type: "type"
   34708     allowed_values {
   34709       list {
   34710         type: DT_FLOAT
   34711         type: DT_DOUBLE
   34712         type: DT_INT32
   34713         type: DT_INT64
   34714         type: DT_UINT8
   34715         type: DT_INT16
   34716         type: DT_INT8
   34717         type: DT_UINT16
   34718         type: DT_HALF
   34719       }
   34720     }
   34721   }
   34722 }
   34723 op {
   34724   name: "SparseSparseMinimum"
   34725   input_arg {
   34726     name: "a_indices"
   34727     type: DT_INT64
   34728   }
   34729   input_arg {
   34730     name: "a_values"
   34731     type_attr: "T"
   34732   }
   34733   input_arg {
   34734     name: "a_shape"
   34735     type: DT_INT64
   34736   }
   34737   input_arg {
   34738     name: "b_indices"
   34739     type: DT_INT64
   34740   }
   34741   input_arg {
   34742     name: "b_values"
   34743     type_attr: "T"
   34744   }
   34745   input_arg {
   34746     name: "b_shape"
   34747     type: DT_INT64
   34748   }
   34749   output_arg {
   34750     name: "output_indices"
   34751     type: DT_INT64
   34752   }
   34753   output_arg {
   34754     name: "output_values"
   34755     type_attr: "T"
   34756   }
   34757   attr {
   34758     name: "T"
   34759     type: "type"
   34760     allowed_values {
   34761       list {
   34762         type: DT_FLOAT
   34763         type: DT_DOUBLE
   34764         type: DT_INT64
   34765         type: DT_INT32
   34766         type: DT_UINT8
   34767         type: DT_UINT16
   34768         type: DT_INT16
   34769         type: DT_INT8
   34770         type: DT_COMPLEX64
   34771         type: DT_COMPLEX128
   34772         type: DT_QINT8
   34773         type: DT_QUINT8
   34774         type: DT_QINT32
   34775         type: DT_HALF
   34776       }
   34777     }
   34778   }
   34779 }
   34780 op {
   34781   name: "SparseSplit"
   34782   input_arg {
   34783     name: "split_dim"
   34784     type: DT_INT64
   34785   }
   34786   input_arg {
   34787     name: "indices"
   34788     type: DT_INT64
   34789   }
   34790   input_arg {
   34791     name: "values"
   34792     type_attr: "T"
   34793   }
   34794   input_arg {
   34795     name: "shape"
   34796     type: DT_INT64
   34797   }
   34798   output_arg {
   34799     name: "output_indices"
   34800     type: DT_INT64
   34801     number_attr: "num_split"
   34802   }
   34803   output_arg {
   34804     name: "output_values"
   34805     type_attr: "T"
   34806     number_attr: "num_split"
   34807   }
   34808   output_arg {
   34809     name: "output_shape"
   34810     type: DT_INT64
   34811     number_attr: "num_split"
   34812   }
   34813   attr {
   34814     name: "num_split"
   34815     type: "int"
   34816     has_minimum: true
   34817     minimum: 1
   34818   }
   34819   attr {
   34820     name: "T"
   34821     type: "type"
   34822   }
   34823 }
   34824 op {
   34825   name: "SparseTensorDenseAdd"
   34826   input_arg {
   34827     name: "a_indices"
   34828     type_attr: "Tindices"
   34829   }
   34830   input_arg {
   34831     name: "a_values"
   34832     type_attr: "T"
   34833   }
   34834   input_arg {
   34835     name: "a_shape"
   34836     type_attr: "Tindices"
   34837   }
   34838   input_arg {
   34839     name: "b"
   34840     type_attr: "T"
   34841   }
   34842   output_arg {
   34843     name: "output"
   34844     type_attr: "T"
   34845   }
   34846   attr {
   34847     name: "T"
   34848     type: "type"
   34849     allowed_values {
   34850       list {
   34851         type: DT_FLOAT
   34852         type: DT_DOUBLE
   34853         type: DT_INT64
   34854         type: DT_INT32
   34855         type: DT_UINT8
   34856         type: DT_UINT16
   34857         type: DT_INT16
   34858         type: DT_INT8
   34859         type: DT_COMPLEX64
   34860         type: DT_COMPLEX128
   34861         type: DT_QINT8
   34862         type: DT_QUINT8
   34863         type: DT_QINT32
   34864         type: DT_HALF
   34865       }
   34866     }
   34867   }
   34868   attr {
   34869     name: "Tindices"
   34870     type: "type"
   34871     allowed_values {
   34872       list {
   34873         type: DT_INT32
   34874         type: DT_INT64
   34875       }
   34876     }
   34877   }
   34878 }
   34879 op {
   34880   name: "SparseTensorDenseMatMul"
   34881   input_arg {
   34882     name: "a_indices"
   34883     type: DT_INT64
   34884   }
   34885   input_arg {
   34886     name: "a_values"
   34887     type_attr: "T"
   34888   }
   34889   input_arg {
   34890     name: "a_shape"
   34891     type: DT_INT64
   34892   }
   34893   input_arg {
   34894     name: "b"
   34895     type_attr: "T"
   34896   }
   34897   output_arg {
   34898     name: "product"
   34899     type_attr: "T"
   34900   }
   34901   attr {
   34902     name: "T"
   34903     type: "type"
   34904   }
   34905   attr {
   34906     name: "adjoint_a"
   34907     type: "bool"
   34908     default_value {
   34909       b: false
   34910     }
   34911   }
   34912   attr {
   34913     name: "adjoint_b"
   34914     type: "bool"
   34915     default_value {
   34916       b: false
   34917     }
   34918   }
   34919 }
   34920 op {
   34921   name: "SparseToDense"
   34922   input_arg {
   34923     name: "sparse_indices"
   34924     type_attr: "Tindices"
   34925   }
   34926   input_arg {
   34927     name: "output_shape"
   34928     type_attr: "Tindices"
   34929   }
   34930   input_arg {
   34931     name: "sparse_values"
   34932     type_attr: "T"
   34933   }
   34934   input_arg {
   34935     name: "default_value"
   34936     type_attr: "T"
   34937   }
   34938   output_arg {
   34939     name: "dense"
   34940     type_attr: "T"
   34941   }
   34942   attr {
   34943     name: "T"
   34944     type: "type"
   34945   }
   34946   attr {
   34947     name: "Tindices"
   34948     type: "type"
   34949     allowed_values {
   34950       list {
   34951         type: DT_INT32
   34952         type: DT_INT64
   34953       }
   34954     }
   34955   }
   34956 }
   34957 op {
   34958   name: "SparseToDense"
   34959   input_arg {
   34960     name: "sparse_indices"
   34961     type_attr: "Tindices"
   34962   }
   34963   input_arg {
   34964     name: "output_shape"
   34965     type_attr: "Tindices"
   34966   }
   34967   input_arg {
   34968     name: "sparse_values"
   34969     type_attr: "T"
   34970   }
   34971   input_arg {
   34972     name: "default_value"
   34973     type_attr: "T"
   34974   }
   34975   output_arg {
   34976     name: "dense"
   34977     type_attr: "T"
   34978   }
   34979   attr {
   34980     name: "validate_indices"
   34981     type: "bool"
   34982     default_value {
   34983       b: true
   34984     }
   34985   }
   34986   attr {
   34987     name: "T"
   34988     type: "type"
   34989   }
   34990   attr {
   34991     name: "Tindices"
   34992     type: "type"
   34993     allowed_values {
   34994       list {
   34995         type: DT_INT32
   34996         type: DT_INT64
   34997       }
   34998     }
   34999   }
   35000 }
   35001 op {
   35002   name: "SparseToSparseSetOperation"
   35003   input_arg {
   35004     name: "set1_indices"
   35005     type: DT_INT64
   35006   }
   35007   input_arg {
   35008     name: "set1_values"
   35009     type_attr: "T"
   35010   }
   35011   input_arg {
   35012     name: "set1_shape"
   35013     type: DT_INT64
   35014   }
   35015   input_arg {
   35016     name: "set2_indices"
   35017     type: DT_INT64
   35018   }
   35019   input_arg {
   35020     name: "set2_values"
   35021     type_attr: "T"
   35022   }
   35023   input_arg {
   35024     name: "set2_shape"
   35025     type: DT_INT64
   35026   }
   35027   output_arg {
   35028     name: "result_indices"
   35029     type: DT_INT64
   35030   }
   35031   output_arg {
   35032     name: "result_values"
   35033     type_attr: "T"
   35034   }
   35035   output_arg {
   35036     name: "result_shape"
   35037     type: DT_INT64
   35038   }
   35039   attr {
   35040     name: "set_operation"
   35041     type: "string"
   35042   }
   35043   attr {
   35044     name: "validate_indices"
   35045     type: "bool"
   35046     default_value {
   35047       b: true
   35048     }
   35049   }
   35050   attr {
   35051     name: "T"
   35052     type: "type"
   35053     allowed_values {
   35054       list {
   35055         type: DT_INT8
   35056         type: DT_INT16
   35057         type: DT_INT32
   35058         type: DT_INT64
   35059         type: DT_UINT8
   35060         type: DT_UINT16
   35061         type: DT_STRING
   35062       }
   35063     }
   35064   }
   35065 }
   35066 op {
   35067   name: "Split"
   35068   input_arg {
   35069     name: "split_dim"
   35070     type: DT_INT32
   35071   }
   35072   input_arg {
   35073     name: "value"
   35074     type_attr: "T"
   35075   }
   35076   output_arg {
   35077     name: "output"
   35078     type_attr: "T"
   35079     number_attr: "num_split"
   35080   }
   35081   attr {
   35082     name: "num_split"
   35083     type: "int"
   35084     has_minimum: true
   35085     minimum: 1
   35086   }
   35087   attr {
   35088     name: "T"
   35089     type: "type"
   35090   }
   35091 }
   35092 op {
   35093   name: "SplitV"
   35094   input_arg {
   35095     name: "value"
   35096     type_attr: "T"
   35097   }
   35098   input_arg {
   35099     name: "size_splits"
   35100     type_attr: "Tlen"
   35101   }
   35102   input_arg {
   35103     name: "split_dim"
   35104     type: DT_INT32
   35105   }
   35106   output_arg {
   35107     name: "output"
   35108     type_attr: "T"
   35109     number_attr: "num_split"
   35110   }
   35111   attr {
   35112     name: "num_split"
   35113     type: "int"
   35114     has_minimum: true
   35115     minimum: 1
   35116   }
   35117   attr {
   35118     name: "T"
   35119     type: "type"
   35120   }
   35121   attr {
   35122     name: "Tlen"
   35123     type: "type"
   35124     default_value {
   35125       type: DT_INT64
   35126     }
   35127     allowed_values {
   35128       list {
   35129         type: DT_INT32
   35130         type: DT_INT64
   35131       }
   35132     }
   35133   }
   35134 }
   35135 op {
   35136   name: "Sqrt"
   35137   input_arg {
   35138     name: "x"
   35139     type_attr: "T"
   35140   }
   35141   output_arg {
   35142     name: "y"
   35143     type_attr: "T"
   35144   }
   35145   attr {
   35146     name: "T"
   35147     type: "type"
   35148     allowed_values {
   35149       list {
   35150         type: DT_FLOAT
   35151         type: DT_DOUBLE
   35152         type: DT_COMPLEX64
   35153       }
   35154     }
   35155   }
   35156 }
   35157 op {
   35158   name: "Sqrt"
   35159   input_arg {
   35160     name: "x"
   35161     type_attr: "T"
   35162   }
   35163   output_arg {
   35164     name: "y"
   35165     type_attr: "T"
   35166   }
   35167   attr {
   35168     name: "T"
   35169     type: "type"
   35170     allowed_values {
   35171       list {
   35172         type: DT_HALF
   35173         type: DT_FLOAT
   35174         type: DT_DOUBLE
   35175         type: DT_COMPLEX64
   35176       }
   35177     }
   35178   }
   35179 }
   35180 op {
   35181   name: "Sqrt"
   35182   input_arg {
   35183     name: "x"
   35184     type_attr: "T"
   35185   }
   35186   output_arg {
   35187     name: "y"
   35188     type_attr: "T"
   35189   }
   35190   attr {
   35191     name: "T"
   35192     type: "type"
   35193     allowed_values {
   35194       list {
   35195         type: DT_HALF
   35196         type: DT_FLOAT
   35197         type: DT_DOUBLE
   35198         type: DT_COMPLEX64
   35199         type: DT_COMPLEX128
   35200       }
   35201     }
   35202   }
   35203 }
   35204 op {
   35205   name: "SqrtGrad"
   35206   input_arg {
   35207     name: "x"
   35208     type_attr: "T"
   35209   }
   35210   input_arg {
   35211     name: "y"
   35212     type_attr: "T"
   35213   }
   35214   output_arg {
   35215     name: "z"
   35216     type_attr: "T"
   35217   }
   35218   attr {
   35219     name: "T"
   35220     type: "type"
   35221     allowed_values {
   35222       list {
   35223         type: DT_HALF
   35224         type: DT_FLOAT
   35225         type: DT_DOUBLE
   35226         type: DT_COMPLEX64
   35227         type: DT_COMPLEX128
   35228       }
   35229     }
   35230   }
   35231 }
   35232 op {
   35233   name: "Square"
   35234   input_arg {
   35235     name: "x"
   35236     type_attr: "T"
   35237   }
   35238   output_arg {
   35239     name: "y"
   35240     type_attr: "T"
   35241   }
   35242   attr {
   35243     name: "T"
   35244     type: "type"
   35245     allowed_values {
   35246       list {
   35247         type: DT_FLOAT
   35248         type: DT_DOUBLE
   35249         type: DT_INT32
   35250         type: DT_COMPLEX64
   35251         type: DT_INT64
   35252       }
   35253     }
   35254   }
   35255 }
   35256 op {
   35257   name: "Square"
   35258   input_arg {
   35259     name: "x"
   35260     type_attr: "T"
   35261   }
   35262   output_arg {
   35263     name: "y"
   35264     type_attr: "T"
   35265   }
   35266   attr {
   35267     name: "T"
   35268     type: "type"
   35269     allowed_values {
   35270       list {
   35271         type: DT_HALF
   35272         type: DT_FLOAT
   35273         type: DT_DOUBLE
   35274         type: DT_INT32
   35275         type: DT_COMPLEX64
   35276         type: DT_INT64
   35277       }
   35278     }
   35279   }
   35280 }
   35281 op {
   35282   name: "Square"
   35283   input_arg {
   35284     name: "x"
   35285     type_attr: "T"
   35286   }
   35287   output_arg {
   35288     name: "y"
   35289     type_attr: "T"
   35290   }
   35291   attr {
   35292     name: "T"
   35293     type: "type"
   35294     allowed_values {
   35295       list {
   35296         type: DT_HALF
   35297         type: DT_FLOAT
   35298         type: DT_DOUBLE
   35299         type: DT_INT32
   35300         type: DT_INT64
   35301         type: DT_COMPLEX64
   35302         type: DT_COMPLEX128
   35303       }
   35304     }
   35305   }
   35306 }
   35307 op {
   35308   name: "SquaredDifference"
   35309   input_arg {
   35310     name: "x"
   35311     type_attr: "T"
   35312   }
   35313   input_arg {
   35314     name: "y"
   35315     type_attr: "T"
   35316   }
   35317   output_arg {
   35318     name: "z"
   35319     type_attr: "T"
   35320   }
   35321   attr {
   35322     name: "T"
   35323     type: "type"
   35324     allowed_values {
   35325       list {
   35326         type: DT_FLOAT
   35327         type: DT_DOUBLE
   35328         type: DT_INT32
   35329         type: DT_COMPLEX64
   35330         type: DT_INT64
   35331       }
   35332     }
   35333   }
   35334   is_commutative: true
   35335 }
   35336 op {
   35337   name: "SquaredDifference"
   35338   input_arg {
   35339     name: "x"
   35340     type_attr: "T"
   35341   }
   35342   input_arg {
   35343     name: "y"
   35344     type_attr: "T"
   35345   }
   35346   output_arg {
   35347     name: "z"
   35348     type_attr: "T"
   35349   }
   35350   attr {
   35351     name: "T"
   35352     type: "type"
   35353     allowed_values {
   35354       list {
   35355         type: DT_HALF
   35356         type: DT_FLOAT
   35357         type: DT_DOUBLE
   35358         type: DT_INT32
   35359         type: DT_COMPLEX64
   35360         type: DT_INT64
   35361       }
   35362     }
   35363   }
   35364   is_commutative: true
   35365 }
   35366 op {
   35367   name: "SquaredDifference"
   35368   input_arg {
   35369     name: "x"
   35370     type_attr: "T"
   35371   }
   35372   input_arg {
   35373     name: "y"
   35374     type_attr: "T"
   35375   }
   35376   output_arg {
   35377     name: "z"
   35378     type_attr: "T"
   35379   }
   35380   attr {
   35381     name: "T"
   35382     type: "type"
   35383     allowed_values {
   35384       list {
   35385         type: DT_HALF
   35386         type: DT_FLOAT
   35387         type: DT_DOUBLE
   35388         type: DT_INT32
   35389         type: DT_INT64
   35390         type: DT_COMPLEX64
   35391         type: DT_COMPLEX128
   35392       }
   35393     }
   35394   }
   35395   is_commutative: true
   35396 }
   35397 op {
   35398   name: "Squeeze"
   35399   input_arg {
   35400     name: "input"
   35401     type_attr: "T"
   35402   }
   35403   output_arg {
   35404     name: "output"
   35405     type_attr: "T"
   35406   }
   35407   attr {
   35408     name: "T"
   35409     type: "type"
   35410   }
   35411   attr {
   35412     name: "squeeze_dims"
   35413     type: "list(int)"
   35414     default_value {
   35415       list {
   35416       }
   35417     }
   35418     has_minimum: true
   35419   }
   35420 }
   35421 op {
   35422   name: "Stack"
   35423   output_arg {
   35424     name: "handle"
   35425     type: DT_STRING
   35426     is_ref: true
   35427   }
   35428   attr {
   35429     name: "elem_type"
   35430     type: "type"
   35431   }
   35432   attr {
   35433     name: "stack_name"
   35434     type: "string"
   35435     default_value {
   35436       s: ""
   35437     }
   35438   }
   35439   is_stateful: true
   35440 }
   35441 op {
   35442   name: "StackClose"
   35443   input_arg {
   35444     name: "handle"
   35445     type: DT_STRING
   35446     is_ref: true
   35447   }
   35448 }
   35449 op {
   35450   name: "StackPop"
   35451   input_arg {
   35452     name: "handle"
   35453     type: DT_STRING
   35454     is_ref: true
   35455   }
   35456   output_arg {
   35457     name: "elem"
   35458     type_attr: "elem_type"
   35459   }
   35460   attr {
   35461     name: "elem_type"
   35462     type: "type"
   35463   }
   35464 }
   35465 op {
   35466   name: "StackPush"
   35467   input_arg {
   35468     name: "handle"
   35469     type: DT_STRING
   35470     is_ref: true
   35471   }
   35472   input_arg {
   35473     name: "elem"
   35474     type_attr: "T"
   35475   }
   35476   output_arg {
   35477     name: "output"
   35478     type_attr: "T"
   35479   }
   35480   attr {
   35481     name: "T"
   35482     type: "type"
   35483   }
   35484 }
   35485 op {
   35486   name: "StackPush"
   35487   input_arg {
   35488     name: "handle"
   35489     type: DT_STRING
   35490     is_ref: true
   35491   }
   35492   input_arg {
   35493     name: "elem"
   35494     type_attr: "T"
   35495   }
   35496   output_arg {
   35497     name: "output"
   35498     type_attr: "T"
   35499   }
   35500   attr {
   35501     name: "T"
   35502     type: "type"
   35503   }
   35504   attr {
   35505     name: "swap_memory"
   35506     type: "bool"
   35507     default_value {
   35508       b: false
   35509     }
   35510   }
   35511 }
   35512 op {
   35513   name: "Stage"
   35514   input_arg {
   35515     name: "values"
   35516     type_list_attr: "dtypes"
   35517   }
   35518   attr {
   35519     name: "dtypes"
   35520     type: "list(type)"
   35521     has_minimum: true
   35522     minimum: 1
   35523   }
   35524   attr {
   35525     name: "container"
   35526     type: "string"
   35527     default_value {
   35528       s: ""
   35529     }
   35530   }
   35531   attr {
   35532     name: "shared_name"
   35533     type: "string"
   35534     default_value {
   35535       s: ""
   35536     }
   35537   }
   35538   is_stateful: true
   35539 }
   35540 op {
   35541   name: "StopGradient"
   35542   input_arg {
   35543     name: "input"
   35544     type_attr: "T"
   35545   }
   35546   output_arg {
   35547     name: "output"
   35548     type_attr: "T"
   35549   }
   35550   attr {
   35551     name: "T"
   35552     type: "type"
   35553   }
   35554 }
   35555 op {
   35556   name: "StridedSlice"
   35557   input_arg {
   35558     name: "input"
   35559     type_attr: "T"
   35560   }
   35561   input_arg {
   35562     name: "begin"
   35563     type_attr: "Index"
   35564   }
   35565   input_arg {
   35566     name: "end"
   35567     type_attr: "Index"
   35568   }
   35569   input_arg {
   35570     name: "strides"
   35571     type_attr: "Index"
   35572   }
   35573   output_arg {
   35574     name: "output"
   35575     type_attr: "T"
   35576   }
   35577   attr {
   35578     name: "T"
   35579     type: "type"
   35580   }
   35581   attr {
   35582     name: "Index"
   35583     type: "type"
   35584     allowed_values {
   35585       list {
   35586         type: DT_INT32
   35587         type: DT_INT64
   35588       }
   35589     }
   35590   }
   35591   attr {
   35592     name: "begin_mask"
   35593     type: "int"
   35594   }
   35595   attr {
   35596     name: "end_mask"
   35597     type: "int"
   35598   }
   35599   attr {
   35600     name: "ellipsis_mask"
   35601     type: "int"
   35602   }
   35603   attr {
   35604     name: "new_axis_mask"
   35605     type: "int"
   35606   }
   35607   attr {
   35608     name: "shrink_axis_mask"
   35609     type: "int"
   35610   }
   35611 }
   35612 op {
   35613   name: "StridedSlice"
   35614   input_arg {
   35615     name: "input"
   35616     type_attr: "T"
   35617   }
   35618   input_arg {
   35619     name: "begin"
   35620     type_attr: "Index"
   35621   }
   35622   input_arg {
   35623     name: "end"
   35624     type_attr: "Index"
   35625   }
   35626   input_arg {
   35627     name: "strides"
   35628     type_attr: "Index"
   35629   }
   35630   output_arg {
   35631     name: "output"
   35632     type_attr: "T"
   35633   }
   35634   attr {
   35635     name: "T"
   35636     type: "type"
   35637   }
   35638   attr {
   35639     name: "Index"
   35640     type: "type"
   35641     allowed_values {
   35642       list {
   35643         type: DT_INT32
   35644         type: DT_INT64
   35645       }
   35646     }
   35647   }
   35648   attr {
   35649     name: "begin_mask"
   35650     type: "int"
   35651     default_value {
   35652       i: 0
   35653     }
   35654   }
   35655   attr {
   35656     name: "end_mask"
   35657     type: "int"
   35658     default_value {
   35659       i: 0
   35660     }
   35661   }
   35662   attr {
   35663     name: "ellipsis_mask"
   35664     type: "int"
   35665     default_value {
   35666       i: 0
   35667     }
   35668   }
   35669   attr {
   35670     name: "new_axis_mask"
   35671     type: "int"
   35672     default_value {
   35673       i: 0
   35674     }
   35675   }
   35676   attr {
   35677     name: "shrink_axis_mask"
   35678     type: "int"
   35679     default_value {
   35680       i: 0
   35681     }
   35682   }
   35683 }
   35684 op {
   35685   name: "StridedSliceAssign"
   35686   input_arg {
   35687     name: "ref"
   35688     type_attr: "T"
   35689     is_ref: true
   35690   }
   35691   input_arg {
   35692     name: "begin"
   35693     type_attr: "Index"
   35694   }
   35695   input_arg {
   35696     name: "end"
   35697     type_attr: "Index"
   35698   }
   35699   input_arg {
   35700     name: "strides"
   35701     type_attr: "Index"
   35702   }
   35703   input_arg {
   35704     name: "value"
   35705     type_attr: "T"
   35706   }
   35707   output_arg {
   35708     name: "output_ref"
   35709     type_attr: "T"
   35710     is_ref: true
   35711   }
   35712   attr {
   35713     name: "T"
   35714     type: "type"
   35715   }
   35716   attr {
   35717     name: "Index"
   35718     type: "type"
   35719     allowed_values {
   35720       list {
   35721         type: DT_INT32
   35722         type: DT_INT64
   35723       }
   35724     }
   35725   }
   35726   attr {
   35727     name: "begin_mask"
   35728     type: "int"
   35729     default_value {
   35730       i: 0
   35731     }
   35732   }
   35733   attr {
   35734     name: "end_mask"
   35735     type: "int"
   35736     default_value {
   35737       i: 0
   35738     }
   35739   }
   35740   attr {
   35741     name: "ellipsis_mask"
   35742     type: "int"
   35743     default_value {
   35744       i: 0
   35745     }
   35746   }
   35747   attr {
   35748     name: "new_axis_mask"
   35749     type: "int"
   35750     default_value {
   35751       i: 0
   35752     }
   35753   }
   35754   attr {
   35755     name: "shrink_axis_mask"
   35756     type: "int"
   35757     default_value {
   35758       i: 0
   35759     }
   35760   }
   35761 }
   35762 op {
   35763   name: "StridedSliceGrad"
   35764   input_arg {
   35765     name: "shape"
   35766     type_attr: "Index"
   35767   }
   35768   input_arg {
   35769     name: "begin"
   35770     type_attr: "Index"
   35771   }
   35772   input_arg {
   35773     name: "end"
   35774     type_attr: "Index"
   35775   }
   35776   input_arg {
   35777     name: "strides"
   35778     type_attr: "Index"
   35779   }
   35780   input_arg {
   35781     name: "dy"
   35782     type_attr: "T"
   35783   }
   35784   output_arg {
   35785     name: "output"
   35786     type_attr: "T"
   35787   }
   35788   attr {
   35789     name: "T"
   35790     type: "type"
   35791   }
   35792   attr {
   35793     name: "Index"
   35794     type: "type"
   35795     allowed_values {
   35796       list {
   35797         type: DT_INT32
   35798         type: DT_INT64
   35799       }
   35800     }
   35801   }
   35802   attr {
   35803     name: "begin_mask"
   35804     type: "int"
   35805     default_value {
   35806       i: 0
   35807     }
   35808   }
   35809   attr {
   35810     name: "end_mask"
   35811     type: "int"
   35812     default_value {
   35813       i: 0
   35814     }
   35815   }
   35816   attr {
   35817     name: "ellipsis_mask"
   35818     type: "int"
   35819     default_value {
   35820       i: 0
   35821     }
   35822   }
   35823   attr {
   35824     name: "new_axis_mask"
   35825     type: "int"
   35826     default_value {
   35827       i: 0
   35828     }
   35829   }
   35830   attr {
   35831     name: "shrink_axis_mask"
   35832     type: "int"
   35833     default_value {
   35834       i: 0
   35835     }
   35836   }
   35837 }
   35838 op {
   35839   name: "StringJoin"
   35840   input_arg {
   35841     name: "inputs"
   35842     type: DT_STRING
   35843     number_attr: "N"
   35844   }
   35845   output_arg {
   35846     name: "output"
   35847     type: DT_STRING
   35848   }
   35849   attr {
   35850     name: "N"
   35851     type: "int"
   35852     has_minimum: true
   35853     minimum: 1
   35854   }
   35855   attr {
   35856     name: "separator"
   35857     type: "string"
   35858     default_value {
   35859       s: ""
   35860     }
   35861   }
   35862 }
   35863 op {
   35864   name: "StringSplit"
   35865   input_arg {
   35866     name: "input"
   35867     type: DT_STRING
   35868   }
   35869   input_arg {
   35870     name: "delimiter"
   35871     type: DT_STRING
   35872   }
   35873   output_arg {
   35874     name: "indices"
   35875     type: DT_INT64
   35876   }
   35877   output_arg {
   35878     name: "values"
   35879     type: DT_STRING
   35880   }
   35881   output_arg {
   35882     name: "shape"
   35883     type: DT_INT64
   35884   }
   35885 }
   35886 op {
   35887   name: "StringToHashBucket"
   35888   input_arg {
   35889     name: "string_tensor"
   35890     type: DT_STRING
   35891   }
   35892   output_arg {
   35893     name: "output"
   35894     type: DT_INT64
   35895   }
   35896   attr {
   35897     name: "num_buckets"
   35898     type: "int"
   35899     has_minimum: true
   35900     minimum: 1
   35901   }
   35902 }
   35903 op {
   35904   name: "StringToHashBucket"
   35905   input_arg {
   35906     name: "string_tensor"
   35907     type: DT_STRING
   35908   }
   35909   output_arg {
   35910     name: "output"
   35911     type: DT_INT64
   35912   }
   35913   attr {
   35914     name: "num_buckets"
   35915     type: "int"
   35916     has_minimum: true
   35917     minimum: 1
   35918   }
   35919   deprecation {
   35920     version: 10
   35921   }
   35922 }
   35923 op {
   35924   name: "StringToHashBucket"
   35925   input_arg {
   35926     name: "string_tensor"
   35927     type: DT_STRING
   35928   }
   35929   output_arg {
   35930     name: "output"
   35931     type: DT_INT64
   35932   }
   35933   attr {
   35934     name: "num_buckets"
   35935     type: "int"
   35936     has_minimum: true
   35937     minimum: 1
   35938   }
   35939 }
   35940 op {
   35941   name: "StringToHashBucketFast"
   35942   input_arg {
   35943     name: "input"
   35944     type: DT_STRING
   35945   }
   35946   output_arg {
   35947     name: "output"
   35948     type: DT_INT64
   35949   }
   35950   attr {
   35951     name: "num_buckets"
   35952     type: "int"
   35953     has_minimum: true
   35954     minimum: 1
   35955   }
   35956 }
   35957 op {
   35958   name: "StringToHashBucketStrong"
   35959   input_arg {
   35960     name: "input"
   35961     type: DT_STRING
   35962   }
   35963   output_arg {
   35964     name: "output"
   35965     type: DT_INT64
   35966   }
   35967   attr {
   35968     name: "num_buckets"
   35969     type: "int"
   35970     has_minimum: true
   35971     minimum: 1
   35972   }
   35973   attr {
   35974     name: "key"
   35975     type: "list(int)"
   35976   }
   35977 }
   35978 op {
   35979   name: "StringToNumber"
   35980   input_arg {
   35981     name: "string_tensor"
   35982     type: DT_STRING
   35983   }
   35984   output_arg {
   35985     name: "output"
   35986     type_attr: "out_type"
   35987   }
   35988   attr {
   35989     name: "out_type"
   35990     type: "type"
   35991     default_value {
   35992       type: DT_FLOAT
   35993     }
   35994     allowed_values {
   35995       list {
   35996         type: DT_FLOAT
   35997         type: DT_INT32
   35998       }
   35999     }
   36000   }
   36001 }
   36002 op {
   36003   name: "Sub"
   36004   input_arg {
   36005     name: "x"
   36006     type_attr: "T"
   36007   }
   36008   input_arg {
   36009     name: "y"
   36010     type_attr: "T"
   36011   }
   36012   output_arg {
   36013     name: "z"
   36014     type_attr: "T"
   36015   }
   36016   attr {
   36017     name: "T"
   36018     type: "type"
   36019     allowed_values {
   36020       list {
   36021         type: DT_FLOAT
   36022         type: DT_DOUBLE
   36023         type: DT_INT32
   36024         type: DT_COMPLEX64
   36025         type: DT_INT64
   36026       }
   36027     }
   36028   }
   36029 }
   36030 op {
   36031   name: "Sub"
   36032   input_arg {
   36033     name: "x"
   36034     type_attr: "T"
   36035   }
   36036   input_arg {
   36037     name: "y"
   36038     type_attr: "T"
   36039   }
   36040   output_arg {
   36041     name: "z"
   36042     type_attr: "T"
   36043   }
   36044   attr {
   36045     name: "T"
   36046     type: "type"
   36047     allowed_values {
   36048       list {
   36049         type: DT_HALF
   36050         type: DT_FLOAT
   36051         type: DT_DOUBLE
   36052         type: DT_INT32
   36053         type: DT_COMPLEX64
   36054         type: DT_INT64
   36055       }
   36056     }
   36057   }
   36058 }
   36059 op {
   36060   name: "Sub"
   36061   input_arg {
   36062     name: "x"
   36063     type_attr: "T"
   36064   }
   36065   input_arg {
   36066     name: "y"
   36067     type_attr: "T"
   36068   }
   36069   output_arg {
   36070     name: "z"
   36071     type_attr: "T"
   36072   }
   36073   attr {
   36074     name: "T"
   36075     type: "type"
   36076     allowed_values {
   36077       list {
   36078         type: DT_HALF
   36079         type: DT_FLOAT
   36080         type: DT_DOUBLE
   36081         type: DT_INT32
   36082         type: DT_INT64
   36083         type: DT_COMPLEX64
   36084         type: DT_COMPLEX128
   36085       }
   36086     }
   36087   }
   36088 }
   36089 op {
   36090   name: "Substr"
   36091   input_arg {
   36092     name: "input"
   36093     type: DT_STRING
   36094   }
   36095   input_arg {
   36096     name: "pos"
   36097     type_attr: "T"
   36098   }
   36099   input_arg {
   36100     name: "len"
   36101     type_attr: "T"
   36102   }
   36103   output_arg {
   36104     name: "output"
   36105     type: DT_STRING
   36106   }
   36107   attr {
   36108     name: "T"
   36109     type: "type"
   36110     allowed_values {
   36111       list {
   36112         type: DT_INT32
   36113         type: DT_INT64
   36114       }
   36115     }
   36116   }
   36117 }
   36118 op {
   36119   name: "Sum"
   36120   input_arg {
   36121     name: "input"
   36122     type_attr: "T"
   36123   }
   36124   input_arg {
   36125     name: "reduction_indices"
   36126     type: DT_INT32
   36127   }
   36128   output_arg {
   36129     name: "output"
   36130     type_attr: "T"
   36131   }
   36132   attr {
   36133     name: "keep_dims"
   36134     type: "bool"
   36135     default_value {
   36136       b: false
   36137     }
   36138   }
   36139   attr {
   36140     name: "T"
   36141     type: "type"
   36142     allowed_values {
   36143       list {
   36144         type: DT_FLOAT
   36145         type: DT_DOUBLE
   36146         type: DT_INT64
   36147         type: DT_INT32
   36148         type: DT_UINT8
   36149         type: DT_INT16
   36150         type: DT_INT8
   36151         type: DT_COMPLEX64
   36152         type: DT_QINT8
   36153         type: DT_QUINT8
   36154         type: DT_QINT32
   36155       }
   36156     }
   36157   }
   36158 }
   36159 op {
   36160   name: "Sum"
   36161   input_arg {
   36162     name: "input"
   36163     type_attr: "T"
   36164   }
   36165   input_arg {
   36166     name: "reduction_indices"
   36167     type: DT_INT32
   36168   }
   36169   output_arg {
   36170     name: "output"
   36171     type_attr: "T"
   36172   }
   36173   attr {
   36174     name: "keep_dims"
   36175     type: "bool"
   36176     default_value {
   36177       b: false
   36178     }
   36179   }
   36180   attr {
   36181     name: "T"
   36182     type: "type"
   36183     allowed_values {
   36184       list {
   36185         type: DT_FLOAT
   36186         type: DT_DOUBLE
   36187         type: DT_INT64
   36188         type: DT_INT32
   36189         type: DT_UINT8
   36190         type: DT_UINT16
   36191         type: DT_INT16
   36192         type: DT_INT8
   36193         type: DT_COMPLEX64
   36194         type: DT_QINT8
   36195         type: DT_QUINT8
   36196         type: DT_QINT32
   36197       }
   36198     }
   36199   }
   36200 }
   36201 op {
   36202   name: "Sum"
   36203   input_arg {
   36204     name: "input"
   36205     type_attr: "T"
   36206   }
   36207   input_arg {
   36208     name: "reduction_indices"
   36209     type: DT_INT32
   36210   }
   36211   output_arg {
   36212     name: "output"
   36213     type_attr: "T"
   36214   }
   36215   attr {
   36216     name: "keep_dims"
   36217     type: "bool"
   36218     default_value {
   36219       b: false
   36220     }
   36221   }
   36222   attr {
   36223     name: "T"
   36224     type: "type"
   36225     allowed_values {
   36226       list {
   36227         type: DT_FLOAT
   36228         type: DT_DOUBLE
   36229         type: DT_INT64
   36230         type: DT_INT32
   36231         type: DT_UINT8
   36232         type: DT_UINT16
   36233         type: DT_INT16
   36234         type: DT_INT8
   36235         type: DT_COMPLEX64
   36236         type: DT_COMPLEX128
   36237         type: DT_QINT8
   36238         type: DT_QUINT8
   36239         type: DT_QINT32
   36240       }
   36241     }
   36242   }
   36243 }
   36244 op {
   36245   name: "Sum"
   36246   input_arg {
   36247     name: "input"
   36248     type_attr: "T"
   36249   }
   36250   input_arg {
   36251     name: "reduction_indices"
   36252     type: DT_INT32
   36253   }
   36254   output_arg {
   36255     name: "output"
   36256     type_attr: "T"
   36257   }
   36258   attr {
   36259     name: "keep_dims"
   36260     type: "bool"
   36261     default_value {
   36262       b: false
   36263     }
   36264   }
   36265   attr {
   36266     name: "T"
   36267     type: "type"
   36268     allowed_values {
   36269       list {
   36270         type: DT_FLOAT
   36271         type: DT_DOUBLE
   36272         type: DT_INT64
   36273         type: DT_INT32
   36274         type: DT_UINT8
   36275         type: DT_UINT16
   36276         type: DT_INT16
   36277         type: DT_INT8
   36278         type: DT_COMPLEX64
   36279         type: DT_COMPLEX128
   36280         type: DT_QINT8
   36281         type: DT_QUINT8
   36282         type: DT_QINT32
   36283         type: DT_HALF
   36284       }
   36285     }
   36286   }
   36287 }
   36288 op {
   36289   name: "Sum"
   36290   input_arg {
   36291     name: "input"
   36292     type_attr: "T"
   36293   }
   36294   input_arg {
   36295     name: "reduction_indices"
   36296     type_attr: "Tidx"
   36297   }
   36298   output_arg {
   36299     name: "output"
   36300     type_attr: "T"
   36301   }
   36302   attr {
   36303     name: "keep_dims"
   36304     type: "bool"
   36305     default_value {
   36306       b: false
   36307     }
   36308   }
   36309   attr {
   36310     name: "T"
   36311     type: "type"
   36312     allowed_values {
   36313       list {
   36314         type: DT_FLOAT
   36315         type: DT_DOUBLE
   36316         type: DT_INT64
   36317         type: DT_INT32
   36318         type: DT_UINT8
   36319         type: DT_UINT16
   36320         type: DT_INT16
   36321         type: DT_INT8
   36322         type: DT_COMPLEX64
   36323         type: DT_COMPLEX128
   36324         type: DT_QINT8
   36325         type: DT_QUINT8
   36326         type: DT_QINT32
   36327         type: DT_HALF
   36328       }
   36329     }
   36330   }
   36331   attr {
   36332     name: "Tidx"
   36333     type: "type"
   36334     default_value {
   36335       type: DT_INT32
   36336     }
   36337     allowed_values {
   36338       list {
   36339         type: DT_INT32
   36340         type: DT_INT64
   36341       }
   36342     }
   36343   }
   36344 }
   36345 op {
   36346   name: "Svd"
   36347   input_arg {
   36348     name: "input"
   36349     type_attr: "T"
   36350   }
   36351   output_arg {
   36352     name: "s"
   36353     type_attr: "T"
   36354   }
   36355   output_arg {
   36356     name: "u"
   36357     type_attr: "T"
   36358   }
   36359   output_arg {
   36360     name: "v"
   36361     type_attr: "T"
   36362   }
   36363   attr {
   36364     name: "compute_uv"
   36365     type: "bool"
   36366     default_value {
   36367       b: false
   36368     }
   36369   }
   36370   attr {
   36371     name: "full_matrices"
   36372     type: "bool"
   36373     default_value {
   36374       b: false
   36375     }
   36376   }
   36377   attr {
   36378     name: "T"
   36379     type: "type"
   36380     allowed_values {
   36381       list {
   36382         type: DT_DOUBLE
   36383         type: DT_FLOAT
   36384       }
   36385     }
   36386   }
   36387 }
   36388 op {
   36389   name: "Svd"
   36390   input_arg {
   36391     name: "input"
   36392     type_attr: "T"
   36393   }
   36394   output_arg {
   36395     name: "s"
   36396     type_attr: "T"
   36397   }
   36398   output_arg {
   36399     name: "u"
   36400     type_attr: "T"
   36401   }
   36402   output_arg {
   36403     name: "v"
   36404     type_attr: "T"
   36405   }
   36406   attr {
   36407     name: "compute_uv"
   36408     type: "bool"
   36409     default_value {
   36410       b: true
   36411     }
   36412   }
   36413   attr {
   36414     name: "full_matrices"
   36415     type: "bool"
   36416     default_value {
   36417       b: false
   36418     }
   36419   }
   36420   attr {
   36421     name: "T"
   36422     type: "type"
   36423     allowed_values {
   36424       list {
   36425         type: DT_DOUBLE
   36426         type: DT_FLOAT
   36427       }
   36428     }
   36429   }
   36430 }
   36431 op {
   36432   name: "Svd"
   36433   input_arg {
   36434     name: "input"
   36435     type_attr: "T"
   36436   }
   36437   output_arg {
   36438     name: "s"
   36439     type_attr: "T"
   36440   }
   36441   output_arg {
   36442     name: "u"
   36443     type_attr: "T"
   36444   }
   36445   output_arg {
   36446     name: "v"
   36447     type_attr: "T"
   36448   }
   36449   attr {
   36450     name: "compute_uv"
   36451     type: "bool"
   36452     default_value {
   36453       b: true
   36454     }
   36455   }
   36456   attr {
   36457     name: "full_matrices"
   36458     type: "bool"
   36459     default_value {
   36460       b: false
   36461     }
   36462   }
   36463   attr {
   36464     name: "T"
   36465     type: "type"
   36466     allowed_values {
   36467       list {
   36468         type: DT_DOUBLE
   36469         type: DT_FLOAT
   36470         type: DT_COMPLEX64
   36471         type: DT_COMPLEX128
   36472       }
   36473     }
   36474   }
   36475 }
   36476 op {
   36477   name: "Switch"
   36478   input_arg {
   36479     name: "data"
   36480     type_attr: "T"
   36481   }
   36482   input_arg {
   36483     name: "pred"
   36484     type: DT_BOOL
   36485   }
   36486   output_arg {
   36487     name: "output_false"
   36488     type_attr: "T"
   36489   }
   36490   output_arg {
   36491     name: "output_true"
   36492     type_attr: "T"
   36493   }
   36494   attr {
   36495     name: "T"
   36496     type: "type"
   36497   }
   36498 }
   36499 op {
   36500   name: "SymbolicGradient"
   36501   input_arg {
   36502     name: "input"
   36503     type_list_attr: "Tin"
   36504   }
   36505   output_arg {
   36506     name: "output"
   36507     type_list_attr: "Tout"
   36508   }
   36509   attr {
   36510     name: "Tin"
   36511     type: "list(type)"
   36512     has_minimum: true
   36513     minimum: 1
   36514   }
   36515   attr {
   36516     name: "Tout"
   36517     type: "list(type)"
   36518     has_minimum: true
   36519     minimum: 1
   36520   }
   36521   attr {
   36522     name: "f"
   36523     type: "func"
   36524   }
   36525 }
   36526 op {
   36527   name: "TFRecordReader"
   36528   output_arg {
   36529     name: "reader_handle"
   36530     type: DT_STRING
   36531     is_ref: true
   36532   }
   36533   attr {
   36534     name: "container"
   36535     type: "string"
   36536     default_value {
   36537       s: ""
   36538     }
   36539   }
   36540   attr {
   36541     name: "shared_name"
   36542     type: "string"
   36543     default_value {
   36544       s: ""
   36545     }
   36546   }
   36547   is_stateful: true
   36548 }
   36549 op {
   36550   name: "TFRecordReader"
   36551   output_arg {
   36552     name: "reader_handle"
   36553     type: DT_STRING
   36554     is_ref: true
   36555   }
   36556   attr {
   36557     name: "container"
   36558     type: "string"
   36559     default_value {
   36560       s: ""
   36561     }
   36562   }
   36563   attr {
   36564     name: "shared_name"
   36565     type: "string"
   36566     default_value {
   36567       s: ""
   36568     }
   36569   }
   36570   attr {
   36571     name: "compression_type"
   36572     type: "string"
   36573     default_value {
   36574       s: ""
   36575     }
   36576   }
   36577   is_stateful: true
   36578 }
   36579 op {
   36580   name: "TFRecordReaderV2"
   36581   output_arg {
   36582     name: "reader_handle"
   36583     type: DT_RESOURCE
   36584   }
   36585   attr {
   36586     name: "container"
   36587     type: "string"
   36588     default_value {
   36589       s: ""
   36590     }
   36591   }
   36592   attr {
   36593     name: "shared_name"
   36594     type: "string"
   36595     default_value {
   36596       s: ""
   36597     }
   36598   }
   36599   attr {
   36600     name: "compression_type"
   36601     type: "string"
   36602     default_value {
   36603       s: ""
   36604     }
   36605   }
   36606   is_stateful: true
   36607 }
   36608 op {
   36609   name: "TakeManySparseFromTensorsMap"
   36610   input_arg {
   36611     name: "sparse_handles"
   36612     type: DT_INT64
   36613   }
   36614   output_arg {
   36615     name: "sparse_indices"
   36616     type: DT_INT64
   36617   }
   36618   output_arg {
   36619     name: "sparse_values"
   36620     type_attr: "dtype"
   36621   }
   36622   output_arg {
   36623     name: "sparse_shape"
   36624     type: DT_INT64
   36625   }
   36626   attr {
   36627     name: "dtype"
   36628     type: "type"
   36629   }
   36630   attr {
   36631     name: "container"
   36632     type: "string"
   36633     default_value {
   36634       s: ""
   36635     }
   36636   }
   36637   attr {
   36638     name: "shared_name"
   36639     type: "string"
   36640     default_value {
   36641       s: ""
   36642     }
   36643   }
   36644   is_stateful: true
   36645 }
   36646 op {
   36647   name: "Tan"
   36648   input_arg {
   36649     name: "x"
   36650     type_attr: "T"
   36651   }
   36652   output_arg {
   36653     name: "y"
   36654     type_attr: "T"
   36655   }
   36656   attr {
   36657     name: "T"
   36658     type: "type"
   36659     allowed_values {
   36660       list {
   36661         type: DT_HALF
   36662         type: DT_FLOAT
   36663         type: DT_DOUBLE
   36664         type: DT_INT32
   36665         type: DT_INT64
   36666         type: DT_COMPLEX64
   36667         type: DT_COMPLEX128
   36668       }
   36669     }
   36670   }
   36671 }
   36672 op {
   36673   name: "Tanh"
   36674   input_arg {
   36675     name: "x"
   36676     type_attr: "T"
   36677   }
   36678   output_arg {
   36679     name: "y"
   36680     type_attr: "T"
   36681   }
   36682   attr {
   36683     name: "T"
   36684     type: "type"
   36685     allowed_values {
   36686       list {
   36687         type: DT_FLOAT
   36688         type: DT_DOUBLE
   36689         type: DT_COMPLEX64
   36690       }
   36691     }
   36692   }
   36693 }
   36694 op {
   36695   name: "Tanh"
   36696   input_arg {
   36697     name: "x"
   36698     type_attr: "T"
   36699   }
   36700   output_arg {
   36701     name: "y"
   36702     type_attr: "T"
   36703   }
   36704   attr {
   36705     name: "T"
   36706     type: "type"
   36707     allowed_values {
   36708       list {
   36709         type: DT_HALF
   36710         type: DT_FLOAT
   36711         type: DT_DOUBLE
   36712         type: DT_COMPLEX64
   36713       }
   36714     }
   36715   }
   36716 }
   36717 op {
   36718   name: "Tanh"
   36719   input_arg {
   36720     name: "x"
   36721     type_attr: "T"
   36722   }
   36723   output_arg {
   36724     name: "y"
   36725     type_attr: "T"
   36726   }
   36727   attr {
   36728     name: "T"
   36729     type: "type"
   36730     allowed_values {
   36731       list {
   36732         type: DT_HALF
   36733         type: DT_FLOAT
   36734         type: DT_DOUBLE
   36735         type: DT_COMPLEX64
   36736         type: DT_COMPLEX128
   36737       }
   36738     }
   36739   }
   36740 }
   36741 op {
   36742   name: "TanhGrad"
   36743   input_arg {
   36744     name: "x"
   36745     type_attr: "T"
   36746   }
   36747   input_arg {
   36748     name: "y"
   36749     type_attr: "T"
   36750   }
   36751   output_arg {
   36752     name: "z"
   36753     type_attr: "T"
   36754   }
   36755   attr {
   36756     name: "T"
   36757     type: "type"
   36758     allowed_values {
   36759       list {
   36760         type: DT_HALF
   36761         type: DT_FLOAT
   36762         type: DT_DOUBLE
   36763         type: DT_COMPLEX64
   36764         type: DT_COMPLEX128
   36765       }
   36766     }
   36767   }
   36768 }
   36769 op {
   36770   name: "TemporaryVariable"
   36771   output_arg {
   36772     name: "ref"
   36773     type_attr: "dtype"
   36774     is_ref: true
   36775   }
   36776   attr {
   36777     name: "shape"
   36778     type: "shape"
   36779   }
   36780   attr {
   36781     name: "dtype"
   36782     type: "type"
   36783   }
   36784   attr {
   36785     name: "var_name"
   36786     type: "string"
   36787     default_value {
   36788       s: ""
   36789     }
   36790   }
   36791   is_stateful: true
   36792 }
   36793 op {
   36794   name: "TensorArray"
   36795   input_arg {
   36796     name: "size"
   36797     type: DT_INT32
   36798   }
   36799   output_arg {
   36800     name: "handle"
   36801     type: DT_STRING
   36802     is_ref: true
   36803   }
   36804   attr {
   36805     name: "dtype"
   36806     type: "type"
   36807   }
   36808   attr {
   36809     name: "dynamic_size"
   36810     type: "bool"
   36811     default_value {
   36812       b: false
   36813     }
   36814   }
   36815   attr {
   36816     name: "tensor_array_name"
   36817     type: "string"
   36818     default_value {
   36819       s: ""
   36820     }
   36821   }
   36822   is_stateful: true
   36823 }
   36824 op {
   36825   name: "TensorArray"
   36826   input_arg {
   36827     name: "size"
   36828     type: DT_INT32
   36829   }
   36830   output_arg {
   36831     name: "handle"
   36832     type: DT_STRING
   36833     is_ref: true
   36834   }
   36835   attr {
   36836     name: "dtype"
   36837     type: "type"
   36838   }
   36839   attr {
   36840     name: "dynamic_size"
   36841     type: "bool"
   36842     default_value {
   36843       b: false
   36844     }
   36845   }
   36846   attr {
   36847     name: "clear_after_read"
   36848     type: "bool"
   36849     default_value {
   36850       b: true
   36851     }
   36852   }
   36853   attr {
   36854     name: "tensor_array_name"
   36855     type: "string"
   36856     default_value {
   36857       s: ""
   36858     }
   36859   }
   36860   is_stateful: true
   36861 }
   36862 op {
   36863   name: "TensorArray"
   36864   input_arg {
   36865     name: "size"
   36866     type: DT_INT32
   36867   }
   36868   output_arg {
   36869     name: "handle"
   36870     type: DT_STRING
   36871     is_ref: true
   36872   }
   36873   attr {
   36874     name: "dtype"
   36875     type: "type"
   36876   }
   36877   attr {
   36878     name: "dynamic_size"
   36879     type: "bool"
   36880     default_value {
   36881       b: false
   36882     }
   36883   }
   36884   attr {
   36885     name: "clear_after_read"
   36886     type: "bool"
   36887     default_value {
   36888       b: true
   36889     }
   36890   }
   36891   attr {
   36892     name: "tensor_array_name"
   36893     type: "string"
   36894     default_value {
   36895       s: ""
   36896     }
   36897   }
   36898   deprecation {
   36899     version: 16
   36900   }
   36901   is_stateful: true
   36902 }
   36903 op {
   36904   name: "TensorArray"
   36905   input_arg {
   36906     name: "size"
   36907     type: DT_INT32
   36908   }
   36909   output_arg {
   36910     name: "handle"
   36911     type: DT_STRING
   36912     is_ref: true
   36913   }
   36914   attr {
   36915     name: "dtype"
   36916     type: "type"
   36917   }
   36918   attr {
   36919     name: "dynamic_size"
   36920     type: "bool"
   36921     default_value {
   36922       b: false
   36923     }
   36924   }
   36925   attr {
   36926     name: "clear_after_read"
   36927     type: "bool"
   36928     default_value {
   36929       b: true
   36930     }
   36931   }
   36932   attr {
   36933     name: "tensor_array_name"
   36934     type: "string"
   36935     default_value {
   36936       s: ""
   36937     }
   36938   }
   36939   attr {
   36940     name: "element_shape"
   36941     type: "shape"
   36942     default_value {
   36943       shape {
   36944         unknown_rank: true
   36945       }
   36946     }
   36947   }
   36948   deprecation {
   36949     version: 16
   36950   }
   36951   is_stateful: true
   36952 }
   36953 op {
   36954   name: "TensorArrayClose"
   36955   input_arg {
   36956     name: "handle"
   36957     type: DT_STRING
   36958     is_ref: true
   36959   }
   36960 }
   36961 op {
   36962   name: "TensorArrayClose"
   36963   input_arg {
   36964     name: "handle"
   36965     type: DT_STRING
   36966     is_ref: true
   36967   }
   36968   deprecation {
   36969     version: 16
   36970   }
   36971 }
   36972 op {
   36973   name: "TensorArrayCloseV2"
   36974   input_arg {
   36975     name: "handle"
   36976     type: DT_STRING
   36977   }
   36978 }
   36979 op {
   36980   name: "TensorArrayCloseV2"
   36981   input_arg {
   36982     name: "handle"
   36983     type: DT_STRING
   36984   }
   36985   deprecation {
   36986     version: 20
   36987   }
   36988 }
   36989 op {
   36990   name: "TensorArrayCloseV2"
   36991   input_arg {
   36992     name: "handle"
   36993     type: DT_STRING
   36994   }
   36995 }
   36996 op {
   36997   name: "TensorArrayCloseV3"
   36998   input_arg {
   36999     name: "handle"
   37000     type: DT_RESOURCE
   37001   }
   37002 }
   37003 op {
   37004   name: "TensorArrayCloseV3"
   37005   input_arg {
   37006     name: "handle"
   37007     type: DT_RESOURCE
   37008   }
   37009   is_stateful: true
   37010 }
   37011 op {
   37012   name: "TensorArrayConcat"
   37013   input_arg {
   37014     name: "handle"
   37015     type: DT_STRING
   37016     is_ref: true
   37017   }
   37018   input_arg {
   37019     name: "flow_in"
   37020     type: DT_FLOAT
   37021   }
   37022   output_arg {
   37023     name: "value"
   37024     type_attr: "dtype"
   37025   }
   37026   output_arg {
   37027     name: "lengths"
   37028     type: DT_INT64
   37029   }
   37030   attr {
   37031     name: "dtype"
   37032     type: "type"
   37033   }
   37034 }
   37035 op {
   37036   name: "TensorArrayConcat"
   37037   input_arg {
   37038     name: "handle"
   37039     type: DT_STRING
   37040     is_ref: true
   37041   }
   37042   input_arg {
   37043     name: "flow_in"
   37044     type: DT_FLOAT
   37045   }
   37046   output_arg {
   37047     name: "value"
   37048     type_attr: "dtype"
   37049   }
   37050   output_arg {
   37051     name: "lengths"
   37052     type: DT_INT64
   37053   }
   37054   attr {
   37055     name: "dtype"
   37056     type: "type"
   37057   }
   37058   attr {
   37059     name: "element_shape_except0"
   37060     type: "shape"
   37061     default_value {
   37062       shape {
   37063         unknown_rank: true
   37064       }
   37065     }
   37066   }
   37067 }
   37068 op {
   37069   name: "TensorArrayConcat"
   37070   input_arg {
   37071     name: "handle"
   37072     type: DT_STRING
   37073     is_ref: true
   37074   }
   37075   input_arg {
   37076     name: "flow_in"
   37077     type: DT_FLOAT
   37078   }
   37079   output_arg {
   37080     name: "value"
   37081     type_attr: "dtype"
   37082   }
   37083   output_arg {
   37084     name: "lengths"
   37085     type: DT_INT64
   37086   }
   37087   attr {
   37088     name: "dtype"
   37089     type: "type"
   37090   }
   37091   attr {
   37092     name: "element_shape_except0"
   37093     type: "shape"
   37094     default_value {
   37095       shape {
   37096         unknown_rank: true
   37097       }
   37098     }
   37099   }
   37100   deprecation {
   37101     version: 16
   37102   }
   37103 }
   37104 op {
   37105   name: "TensorArrayConcatV2"
   37106   input_arg {
   37107     name: "handle"
   37108     type: DT_STRING
   37109   }
   37110   input_arg {
   37111     name: "flow_in"
   37112     type: DT_FLOAT
   37113   }
   37114   output_arg {
   37115     name: "value"
   37116     type_attr: "dtype"
   37117   }
   37118   output_arg {
   37119     name: "lengths"
   37120     type: DT_INT64
   37121   }
   37122   attr {
   37123     name: "dtype"
   37124     type: "type"
   37125   }
   37126   attr {
   37127     name: "element_shape_except0"
   37128     type: "shape"
   37129     default_value {
   37130       shape {
   37131         unknown_rank: true
   37132       }
   37133     }
   37134   }
   37135 }
   37136 op {
   37137   name: "TensorArrayConcatV2"
   37138   input_arg {
   37139     name: "handle"
   37140     type: DT_STRING
   37141   }
   37142   input_arg {
   37143     name: "flow_in"
   37144     type: DT_FLOAT
   37145   }
   37146   output_arg {
   37147     name: "value"
   37148     type_attr: "dtype"
   37149   }
   37150   output_arg {
   37151     name: "lengths"
   37152     type: DT_INT64
   37153   }
   37154   attr {
   37155     name: "dtype"
   37156     type: "type"
   37157   }
   37158   attr {
   37159     name: "element_shape_except0"
   37160     type: "shape"
   37161     default_value {
   37162       shape {
   37163         unknown_rank: true
   37164       }
   37165     }
   37166   }
   37167   deprecation {
   37168     version: 20
   37169   }
   37170 }
   37171 op {
   37172   name: "TensorArrayConcatV2"
   37173   input_arg {
   37174     name: "handle"
   37175     type: DT_STRING
   37176   }
   37177   input_arg {
   37178     name: "flow_in"
   37179     type: DT_FLOAT
   37180   }
   37181   output_arg {
   37182     name: "value"
   37183     type_attr: "dtype"
   37184   }
   37185   output_arg {
   37186     name: "lengths"
   37187     type: DT_INT64
   37188   }
   37189   attr {
   37190     name: "dtype"
   37191     type: "type"
   37192   }
   37193   attr {
   37194     name: "element_shape_except0"
   37195     type: "shape"
   37196     default_value {
   37197       shape {
   37198         unknown_rank: true
   37199       }
   37200     }
   37201   }
   37202 }
   37203 op {
   37204   name: "TensorArrayConcatV3"
   37205   input_arg {
   37206     name: "handle"
   37207     type: DT_RESOURCE
   37208   }
   37209   input_arg {
   37210     name: "flow_in"
   37211     type: DT_FLOAT
   37212   }
   37213   output_arg {
   37214     name: "value"
   37215     type_attr: "dtype"
   37216   }
   37217   output_arg {
   37218     name: "lengths"
   37219     type: DT_INT64
   37220   }
   37221   attr {
   37222     name: "dtype"
   37223     type: "type"
   37224   }
   37225   attr {
   37226     name: "element_shape_except0"
   37227     type: "shape"
   37228     default_value {
   37229       shape {
   37230         unknown_rank: true
   37231       }
   37232     }
   37233   }
   37234 }
   37235 op {
   37236   name: "TensorArrayConcatV3"
   37237   input_arg {
   37238     name: "handle"
   37239     type: DT_RESOURCE
   37240   }
   37241   input_arg {
   37242     name: "flow_in"
   37243     type: DT_FLOAT
   37244   }
   37245   output_arg {
   37246     name: "value"
   37247     type_attr: "dtype"
   37248   }
   37249   output_arg {
   37250     name: "lengths"
   37251     type: DT_INT64
   37252   }
   37253   attr {
   37254     name: "dtype"
   37255     type: "type"
   37256   }
   37257   attr {
   37258     name: "element_shape_except0"
   37259     type: "shape"
   37260     default_value {
   37261       shape {
   37262         unknown_rank: true
   37263       }
   37264     }
   37265   }
   37266   is_stateful: true
   37267 }
   37268 op {
   37269   name: "TensorArrayGather"
   37270   input_arg {
   37271     name: "handle"
   37272     type: DT_STRING
   37273     is_ref: true
   37274   }
   37275   input_arg {
   37276     name: "indices"
   37277     type: DT_INT32
   37278   }
   37279   input_arg {
   37280     name: "flow_in"
   37281     type: DT_FLOAT
   37282   }
   37283   output_arg {
   37284     name: "value"
   37285     type_attr: "dtype"
   37286   }
   37287   attr {
   37288     name: "dtype"
   37289     type: "type"
   37290   }
   37291   attr {
   37292     name: "element_shape"
   37293     type: "shape"
   37294     default_value {
   37295       shape {
   37296         unknown_rank: true
   37297       }
   37298     }
   37299   }
   37300 }
   37301 op {
   37302   name: "TensorArrayGather"
   37303   input_arg {
   37304     name: "handle"
   37305     type: DT_STRING
   37306     is_ref: true
   37307   }
   37308   input_arg {
   37309     name: "indices"
   37310     type: DT_INT32
   37311   }
   37312   input_arg {
   37313     name: "flow_in"
   37314     type: DT_FLOAT
   37315   }
   37316   output_arg {
   37317     name: "value"
   37318     type_attr: "dtype"
   37319   }
   37320   attr {
   37321     name: "dtype"
   37322     type: "type"
   37323   }
   37324   attr {
   37325     name: "element_shape"
   37326     type: "shape"
   37327     default_value {
   37328       shape {
   37329         unknown_rank: true
   37330       }
   37331     }
   37332   }
   37333   deprecation {
   37334     version: 16
   37335   }
   37336 }
   37337 op {
   37338   name: "TensorArrayGatherV2"
   37339   input_arg {
   37340     name: "handle"
   37341     type: DT_STRING
   37342   }
   37343   input_arg {
   37344     name: "indices"
   37345     type: DT_INT32
   37346   }
   37347   input_arg {
   37348     name: "flow_in"
   37349     type: DT_FLOAT
   37350   }
   37351   output_arg {
   37352     name: "value"
   37353     type_attr: "dtype"
   37354   }
   37355   attr {
   37356     name: "dtype"
   37357     type: "type"
   37358   }
   37359   attr {
   37360     name: "element_shape"
   37361     type: "shape"
   37362     default_value {
   37363       shape {
   37364         unknown_rank: true
   37365       }
   37366     }
   37367   }
   37368 }
   37369 op {
   37370   name: "TensorArrayGatherV2"
   37371   input_arg {
   37372     name: "handle"
   37373     type: DT_STRING
   37374   }
   37375   input_arg {
   37376     name: "indices"
   37377     type: DT_INT32
   37378   }
   37379   input_arg {
   37380     name: "flow_in"
   37381     type: DT_FLOAT
   37382   }
   37383   output_arg {
   37384     name: "value"
   37385     type_attr: "dtype"
   37386   }
   37387   attr {
   37388     name: "dtype"
   37389     type: "type"
   37390   }
   37391   attr {
   37392     name: "element_shape"
   37393     type: "shape"
   37394     default_value {
   37395       shape {
   37396         unknown_rank: true
   37397       }
   37398     }
   37399   }
   37400   deprecation {
   37401     version: 20
   37402   }
   37403 }
   37404 op {
   37405   name: "TensorArrayGatherV2"
   37406   input_arg {
   37407     name: "handle"
   37408     type: DT_STRING
   37409   }
   37410   input_arg {
   37411     name: "indices"
   37412     type: DT_INT32
   37413   }
   37414   input_arg {
   37415     name: "flow_in"
   37416     type: DT_FLOAT
   37417   }
   37418   output_arg {
   37419     name: "value"
   37420     type_attr: "dtype"
   37421   }
   37422   attr {
   37423     name: "dtype"
   37424     type: "type"
   37425   }
   37426   attr {
   37427     name: "element_shape"
   37428     type: "shape"
   37429     default_value {
   37430       shape {
   37431         unknown_rank: true
   37432       }
   37433     }
   37434   }
   37435 }
   37436 op {
   37437   name: "TensorArrayGatherV3"
   37438   input_arg {
   37439     name: "handle"
   37440     type: DT_RESOURCE
   37441   }
   37442   input_arg {
   37443     name: "indices"
   37444     type: DT_INT32
   37445   }
   37446   input_arg {
   37447     name: "flow_in"
   37448     type: DT_FLOAT
   37449   }
   37450   output_arg {
   37451     name: "value"
   37452     type_attr: "dtype"
   37453   }
   37454   attr {
   37455     name: "dtype"
   37456     type: "type"
   37457   }
   37458   attr {
   37459     name: "element_shape"
   37460     type: "shape"
   37461     default_value {
   37462       shape {
   37463         unknown_rank: true
   37464       }
   37465     }
   37466   }
   37467 }
   37468 op {
   37469   name: "TensorArrayGatherV3"
   37470   input_arg {
   37471     name: "handle"
   37472     type: DT_RESOURCE
   37473   }
   37474   input_arg {
   37475     name: "indices"
   37476     type: DT_INT32
   37477   }
   37478   input_arg {
   37479     name: "flow_in"
   37480     type: DT_FLOAT
   37481   }
   37482   output_arg {
   37483     name: "value"
   37484     type_attr: "dtype"
   37485   }
   37486   attr {
   37487     name: "dtype"
   37488     type: "type"
   37489   }
   37490   attr {
   37491     name: "element_shape"
   37492     type: "shape"
   37493     default_value {
   37494       shape {
   37495         unknown_rank: true
   37496       }
   37497     }
   37498   }
   37499   is_stateful: true
   37500 }
   37501 op {
   37502   name: "TensorArrayGrad"
   37503   input_arg {
   37504     name: "handle"
   37505     type: DT_STRING
   37506     is_ref: true
   37507   }
   37508   input_arg {
   37509     name: "flow_in"
   37510     type: DT_FLOAT
   37511   }
   37512   output_arg {
   37513     name: "grad_handle"
   37514     type: DT_STRING
   37515     is_ref: true
   37516   }
   37517   attr {
   37518     name: "source"
   37519     type: "string"
   37520   }
   37521   is_stateful: true
   37522 }
   37523 op {
   37524   name: "TensorArrayGrad"
   37525   input_arg {
   37526     name: "handle"
   37527     type: DT_STRING
   37528   }
   37529   input_arg {
   37530     name: "flow_in"
   37531     type: DT_FLOAT
   37532   }
   37533   output_arg {
   37534     name: "grad_handle"
   37535     type: DT_STRING
   37536     is_ref: true
   37537   }
   37538   attr {
   37539     name: "source"
   37540     type: "string"
   37541   }
   37542   is_stateful: true
   37543 }
   37544 op {
   37545   name: "TensorArrayGrad"
   37546   input_arg {
   37547     name: "handle"
   37548     type: DT_STRING
   37549   }
   37550   input_arg {
   37551     name: "flow_in"
   37552     type: DT_FLOAT
   37553   }
   37554   output_arg {
   37555     name: "grad_handle"
   37556     type: DT_STRING
   37557     is_ref: true
   37558   }
   37559   attr {
   37560     name: "source"
   37561     type: "string"
   37562   }
   37563   deprecation {
   37564     version: 16
   37565   }
   37566   is_stateful: true
   37567 }
   37568 op {
   37569   name: "TensorArrayGradV2"
   37570   input_arg {
   37571     name: "handle"
   37572     type: DT_STRING
   37573   }
   37574   input_arg {
   37575     name: "flow_in"
   37576     type: DT_FLOAT
   37577   }
   37578   output_arg {
   37579     name: "grad_handle"
   37580     type: DT_STRING
   37581   }
   37582   attr {
   37583     name: "source"
   37584     type: "string"
   37585   }
   37586   is_stateful: true
   37587 }
   37588 op {
   37589   name: "TensorArrayGradV2"
   37590   input_arg {
   37591     name: "handle"
   37592     type: DT_STRING
   37593   }
   37594   input_arg {
   37595     name: "flow_in"
   37596     type: DT_FLOAT
   37597   }
   37598   output_arg {
   37599     name: "grad_handle"
   37600     type: DT_STRING
   37601   }
   37602   attr {
   37603     name: "source"
   37604     type: "string"
   37605   }
   37606   deprecation {
   37607     version: 20
   37608   }
   37609   is_stateful: true
   37610 }
   37611 op {
   37612   name: "TensorArrayGradV2"
   37613   input_arg {
   37614     name: "handle"
   37615     type: DT_STRING
   37616   }
   37617   input_arg {
   37618     name: "flow_in"
   37619     type: DT_FLOAT
   37620   }
   37621   output_arg {
   37622     name: "grad_handle"
   37623     type: DT_STRING
   37624   }
   37625   attr {
   37626     name: "source"
   37627     type: "string"
   37628   }
   37629   is_stateful: true
   37630 }
   37631 op {
   37632   name: "TensorArrayGradV3"
   37633   input_arg {
   37634     name: "handle"
   37635     type: DT_RESOURCE
   37636   }
   37637   input_arg {
   37638     name: "flow_in"
   37639     type: DT_FLOAT
   37640   }
   37641   output_arg {
   37642     name: "grad_handle"
   37643     type: DT_RESOURCE
   37644   }
   37645   output_arg {
   37646     name: "flow_out"
   37647     type: DT_FLOAT
   37648   }
   37649   attr {
   37650     name: "source"
   37651     type: "string"
   37652   }
   37653   is_stateful: true
   37654 }
   37655 op {
   37656   name: "TensorArrayPack"
   37657   input_arg {
   37658     name: "handle"
   37659     type: DT_STRING
   37660     is_ref: true
   37661   }
   37662   input_arg {
   37663     name: "flow_in"
   37664     type: DT_FLOAT
   37665   }
   37666   output_arg {
   37667     name: "value"
   37668     type_attr: "dtype"
   37669   }
   37670   attr {
   37671     name: "dtype"
   37672     type: "type"
   37673   }
   37674 }
   37675 op {
   37676   name: "TensorArrayPack"
   37677   input_arg {
   37678     name: "handle"
   37679     type: DT_STRING
   37680     is_ref: true
   37681   }
   37682   input_arg {
   37683     name: "flow_in"
   37684     type: DT_FLOAT
   37685   }
   37686   output_arg {
   37687     name: "value"
   37688     type_attr: "dtype"
   37689   }
   37690   attr {
   37691     name: "dtype"
   37692     type: "type"
   37693   }
   37694   attr {
   37695     name: "element_shape"
   37696     type: "shape"
   37697     default_value {
   37698       shape {
   37699         unknown_rank: true
   37700       }
   37701     }
   37702   }
   37703 }
   37704 op {
   37705   name: "TensorArrayPack"
   37706   input_arg {
   37707     name: "handle"
   37708     type: DT_STRING
   37709     is_ref: true
   37710   }
   37711   input_arg {
   37712     name: "flow_in"
   37713     type: DT_FLOAT
   37714   }
   37715   output_arg {
   37716     name: "value"
   37717     type_attr: "dtype"
   37718   }
   37719   attr {
   37720     name: "dtype"
   37721     type: "type"
   37722   }
   37723   attr {
   37724     name: "element_shape"
   37725     type: "shape"
   37726     default_value {
   37727       shape {
   37728         unknown_rank: true
   37729       }
   37730     }
   37731   }
   37732   deprecation {
   37733     version: 16
   37734   }
   37735 }
   37736 op {
   37737   name: "TensorArrayRead"
   37738   input_arg {
   37739     name: "handle"
   37740     type: DT_STRING
   37741     is_ref: true
   37742   }
   37743   input_arg {
   37744     name: "index"
   37745     type: DT_INT32
   37746   }
   37747   input_arg {
   37748     name: "flow_in"
   37749     type: DT_FLOAT
   37750   }
   37751   output_arg {
   37752     name: "value"
   37753     type_attr: "dtype"
   37754   }
   37755   attr {
   37756     name: "dtype"
   37757     type: "type"
   37758   }
   37759 }
   37760 op {
   37761   name: "TensorArrayRead"
   37762   input_arg {
   37763     name: "handle"
   37764     type: DT_STRING
   37765     is_ref: true
   37766   }
   37767   input_arg {
   37768     name: "index"
   37769     type: DT_INT32
   37770   }
   37771   input_arg {
   37772     name: "flow_in"
   37773     type: DT_FLOAT
   37774   }
   37775   output_arg {
   37776     name: "value"
   37777     type_attr: "dtype"
   37778   }
   37779   attr {
   37780     name: "dtype"
   37781     type: "type"
   37782   }
   37783   deprecation {
   37784     version: 16
   37785   }
   37786 }
   37787 op {
   37788   name: "TensorArrayReadV2"
   37789   input_arg {
   37790     name: "handle"
   37791     type: DT_STRING
   37792   }
   37793   input_arg {
   37794     name: "index"
   37795     type: DT_INT32
   37796   }
   37797   input_arg {
   37798     name: "flow_in"
   37799     type: DT_FLOAT
   37800   }
   37801   output_arg {
   37802     name: "value"
   37803     type_attr: "dtype"
   37804   }
   37805   attr {
   37806     name: "dtype"
   37807     type: "type"
   37808   }
   37809 }
   37810 op {
   37811   name: "TensorArrayReadV2"
   37812   input_arg {
   37813     name: "handle"
   37814     type: DT_STRING
   37815   }
   37816   input_arg {
   37817     name: "index"
   37818     type: DT_INT32
   37819   }
   37820   input_arg {
   37821     name: "flow_in"
   37822     type: DT_FLOAT
   37823   }
   37824   output_arg {
   37825     name: "value"
   37826     type_attr: "dtype"
   37827   }
   37828   attr {
   37829     name: "dtype"
   37830     type: "type"
   37831   }
   37832   deprecation {
   37833     version: 20
   37834   }
   37835 }
   37836 op {
   37837   name: "TensorArrayReadV2"
   37838   input_arg {
   37839     name: "handle"
   37840     type: DT_STRING
   37841   }
   37842   input_arg {
   37843     name: "index"
   37844     type: DT_INT32
   37845   }
   37846   input_arg {
   37847     name: "flow_in"
   37848     type: DT_FLOAT
   37849   }
   37850   output_arg {
   37851     name: "value"
   37852     type_attr: "dtype"
   37853   }
   37854   attr {
   37855     name: "dtype"
   37856     type: "type"
   37857   }
   37858 }
   37859 op {
   37860   name: "TensorArrayReadV3"
   37861   input_arg {
   37862     name: "handle"
   37863     type: DT_RESOURCE
   37864   }
   37865   input_arg {
   37866     name: "index"
   37867     type: DT_INT32
   37868   }
   37869   input_arg {
   37870     name: "flow_in"
   37871     type: DT_FLOAT
   37872   }
   37873   output_arg {
   37874     name: "value"
   37875     type_attr: "dtype"
   37876   }
   37877   attr {
   37878     name: "dtype"
   37879     type: "type"
   37880   }
   37881 }
   37882 op {
   37883   name: "TensorArrayReadV3"
   37884   input_arg {
   37885     name: "handle"
   37886     type: DT_RESOURCE
   37887   }
   37888   input_arg {
   37889     name: "index"
   37890     type: DT_INT32
   37891   }
   37892   input_arg {
   37893     name: "flow_in"
   37894     type: DT_FLOAT
   37895   }
   37896   output_arg {
   37897     name: "value"
   37898     type_attr: "dtype"
   37899   }
   37900   attr {
   37901     name: "dtype"
   37902     type: "type"
   37903   }
   37904   is_stateful: true
   37905 }
   37906 op {
   37907   name: "TensorArrayScatter"
   37908   input_arg {
   37909     name: "handle"
   37910     type: DT_STRING
   37911     is_ref: true
   37912   }
   37913   input_arg {
   37914     name: "indices"
   37915     type: DT_INT32
   37916   }
   37917   input_arg {
   37918     name: "value"
   37919     type_attr: "T"
   37920   }
   37921   input_arg {
   37922     name: "flow_in"
   37923     type: DT_FLOAT
   37924   }
   37925   output_arg {
   37926     name: "flow_out"
   37927     type: DT_FLOAT
   37928   }
   37929   attr {
   37930     name: "T"
   37931     type: "type"
   37932   }
   37933 }
   37934 op {
   37935   name: "TensorArrayScatter"
   37936   input_arg {
   37937     name: "handle"
   37938     type: DT_STRING
   37939     is_ref: true
   37940   }
   37941   input_arg {
   37942     name: "indices"
   37943     type: DT_INT32
   37944   }
   37945   input_arg {
   37946     name: "value"
   37947     type_attr: "T"
   37948   }
   37949   input_arg {
   37950     name: "flow_in"
   37951     type: DT_FLOAT
   37952   }
   37953   output_arg {
   37954     name: "flow_out"
   37955     type: DT_FLOAT
   37956   }
   37957   attr {
   37958     name: "T"
   37959     type: "type"
   37960   }
   37961   deprecation {
   37962     version: 16
   37963   }
   37964 }
   37965 op {
   37966   name: "TensorArrayScatter"
   37967   input_arg {
   37968     name: "handle"
   37969     type: DT_STRING
   37970     is_ref: true
   37971   }
   37972   input_arg {
   37973     name: "indices"
   37974     type: DT_INT32
   37975   }
   37976   input_arg {
   37977     name: "value"
   37978     type_attr: "T"
   37979   }
   37980   input_arg {
   37981     name: "flow_in"
   37982     type: DT_FLOAT
   37983   }
   37984   output_arg {
   37985     name: "flow_out"
   37986     type: DT_FLOAT
   37987   }
   37988   attr {
   37989     name: "T"
   37990     type: "type"
   37991   }
   37992   deprecation {
   37993     version: 19
   37994   }
   37995 }
   37996 op {
   37997   name: "TensorArrayScatterV2"
   37998   input_arg {
   37999     name: "handle"
   38000     type: DT_STRING
   38001   }
   38002   input_arg {
   38003     name: "indices"
   38004     type: DT_INT32
   38005   }
   38006   input_arg {
   38007     name: "value"
   38008     type_attr: "T"
   38009   }
   38010   input_arg {
   38011     name: "flow_in"
   38012     type: DT_FLOAT
   38013   }
   38014   output_arg {
   38015     name: "flow_out"
   38016     type: DT_FLOAT
   38017   }
   38018   attr {
   38019     name: "T"
   38020     type: "type"
   38021   }
   38022 }
   38023 op {
   38024   name: "TensorArrayScatterV2"
   38025   input_arg {
   38026     name: "handle"
   38027     type: DT_STRING
   38028   }
   38029   input_arg {
   38030     name: "indices"
   38031     type: DT_INT32
   38032   }
   38033   input_arg {
   38034     name: "value"
   38035     type_attr: "T"
   38036   }
   38037   input_arg {
   38038     name: "flow_in"
   38039     type: DT_FLOAT
   38040   }
   38041   output_arg {
   38042     name: "flow_out"
   38043     type: DT_FLOAT
   38044   }
   38045   attr {
   38046     name: "T"
   38047     type: "type"
   38048   }
   38049   deprecation {
   38050     version: 20
   38051   }
   38052 }
   38053 op {
   38054   name: "TensorArrayScatterV2"
   38055   input_arg {
   38056     name: "handle"
   38057     type: DT_STRING
   38058   }
   38059   input_arg {
   38060     name: "indices"
   38061     type: DT_INT32
   38062   }
   38063   input_arg {
   38064     name: "value"
   38065     type_attr: "T"
   38066   }
   38067   input_arg {
   38068     name: "flow_in"
   38069     type: DT_FLOAT
   38070   }
   38071   output_arg {
   38072     name: "flow_out"
   38073     type: DT_FLOAT
   38074   }
   38075   attr {
   38076     name: "T"
   38077     type: "type"
   38078   }
   38079 }
   38080 op {
   38081   name: "TensorArrayScatterV3"
   38082   input_arg {
   38083     name: "handle"
   38084     type: DT_RESOURCE
   38085   }
   38086   input_arg {
   38087     name: "indices"
   38088     type: DT_INT32
   38089   }
   38090   input_arg {
   38091     name: "value"
   38092     type_attr: "T"
   38093   }
   38094   input_arg {
   38095     name: "flow_in"
   38096     type: DT_FLOAT
   38097   }
   38098   output_arg {
   38099     name: "flow_out"
   38100     type: DT_FLOAT
   38101   }
   38102   attr {
   38103     name: "T"
   38104     type: "type"
   38105   }
   38106 }
   38107 op {
   38108   name: "TensorArrayScatterV3"
   38109   input_arg {
   38110     name: "handle"
   38111     type: DT_RESOURCE
   38112   }
   38113   input_arg {
   38114     name: "indices"
   38115     type: DT_INT32
   38116   }
   38117   input_arg {
   38118     name: "value"
   38119     type_attr: "T"
   38120   }
   38121   input_arg {
   38122     name: "flow_in"
   38123     type: DT_FLOAT
   38124   }
   38125   output_arg {
   38126     name: "flow_out"
   38127     type: DT_FLOAT
   38128   }
   38129   attr {
   38130     name: "T"
   38131     type: "type"
   38132   }
   38133   is_stateful: true
   38134 }
   38135 op {
   38136   name: "TensorArraySize"
   38137   input_arg {
   38138     name: "handle"
   38139     type: DT_STRING
   38140     is_ref: true
   38141   }
   38142   input_arg {
   38143     name: "flow_in"
   38144     type: DT_FLOAT
   38145   }
   38146   output_arg {
   38147     name: "size"
   38148     type: DT_INT32
   38149   }
   38150 }
   38151 op {
   38152   name: "TensorArraySize"
   38153   input_arg {
   38154     name: "handle"
   38155     type: DT_STRING
   38156     is_ref: true
   38157   }
   38158   input_arg {
   38159     name: "flow_in"
   38160     type: DT_FLOAT
   38161   }
   38162   output_arg {
   38163     name: "size"
   38164     type: DT_INT32
   38165   }
   38166   deprecation {
   38167     version: 16
   38168   }
   38169 }
   38170 op {
   38171   name: "TensorArraySizeV2"
   38172   input_arg {
   38173     name: "handle"
   38174     type: DT_STRING
   38175   }
   38176   input_arg {
   38177     name: "flow_in"
   38178     type: DT_FLOAT
   38179   }
   38180   output_arg {
   38181     name: "size"
   38182     type: DT_INT32
   38183   }
   38184 }
   38185 op {
   38186   name: "TensorArraySizeV2"
   38187   input_arg {
   38188     name: "handle"
   38189     type: DT_STRING
   38190   }
   38191   input_arg {
   38192     name: "flow_in"
   38193     type: DT_FLOAT
   38194   }
   38195   output_arg {
   38196     name: "size"
   38197     type: DT_INT32
   38198   }
   38199   deprecation {
   38200     version: 20
   38201   }
   38202 }
   38203 op {
   38204   name: "TensorArraySizeV2"
   38205   input_arg {
   38206     name: "handle"
   38207     type: DT_STRING
   38208   }
   38209   input_arg {
   38210     name: "flow_in"
   38211     type: DT_FLOAT
   38212   }
   38213   output_arg {
   38214     name: "size"
   38215     type: DT_INT32
   38216   }
   38217 }
   38218 op {
   38219   name: "TensorArraySizeV3"
   38220   input_arg {
   38221     name: "handle"
   38222     type: DT_RESOURCE
   38223   }
   38224   input_arg {
   38225     name: "flow_in"
   38226     type: DT_FLOAT
   38227   }
   38228   output_arg {
   38229     name: "size"
   38230     type: DT_INT32
   38231   }
   38232 }
   38233 op {
   38234   name: "TensorArraySizeV3"
   38235   input_arg {
   38236     name: "handle"
   38237     type: DT_RESOURCE
   38238   }
   38239   input_arg {
   38240     name: "flow_in"
   38241     type: DT_FLOAT
   38242   }
   38243   output_arg {
   38244     name: "size"
   38245     type: DT_INT32
   38246   }
   38247   is_stateful: true
   38248 }
   38249 op {
   38250   name: "TensorArraySplit"
   38251   input_arg {
   38252     name: "handle"
   38253     type: DT_STRING
   38254     is_ref: true
   38255   }
   38256   input_arg {
   38257     name: "value"
   38258     type_attr: "T"
   38259   }
   38260   input_arg {
   38261     name: "lengths"
   38262     type: DT_INT64
   38263   }
   38264   input_arg {
   38265     name: "flow_in"
   38266     type: DT_FLOAT
   38267   }
   38268   output_arg {
   38269     name: "flow_out"
   38270     type: DT_FLOAT
   38271   }
   38272   attr {
   38273     name: "T"
   38274     type: "type"
   38275   }
   38276 }
   38277 op {
   38278   name: "TensorArraySplit"
   38279   input_arg {
   38280     name: "handle"
   38281     type: DT_STRING
   38282     is_ref: true
   38283   }
   38284   input_arg {
   38285     name: "value"
   38286     type_attr: "T"
   38287   }
   38288   input_arg {
   38289     name: "lengths"
   38290     type: DT_INT64
   38291   }
   38292   input_arg {
   38293     name: "flow_in"
   38294     type: DT_FLOAT
   38295   }
   38296   output_arg {
   38297     name: "flow_out"
   38298     type: DT_FLOAT
   38299   }
   38300   attr {
   38301     name: "T"
   38302     type: "type"
   38303   }
   38304   deprecation {
   38305     version: 16
   38306   }
   38307 }
   38308 op {
   38309   name: "TensorArraySplitV2"
   38310   input_arg {
   38311     name: "handle"
   38312     type: DT_STRING
   38313   }
   38314   input_arg {
   38315     name: "value"
   38316     type_attr: "T"
   38317   }
   38318   input_arg {
   38319     name: "lengths"
   38320     type: DT_INT64
   38321   }
   38322   input_arg {
   38323     name: "flow_in"
   38324     type: DT_FLOAT
   38325   }
   38326   output_arg {
   38327     name: "flow_out"
   38328     type: DT_FLOAT
   38329   }
   38330   attr {
   38331     name: "T"
   38332     type: "type"
   38333   }
   38334 }
   38335 op {
   38336   name: "TensorArraySplitV2"
   38337   input_arg {
   38338     name: "handle"
   38339     type: DT_STRING
   38340   }
   38341   input_arg {
   38342     name: "value"
   38343     type_attr: "T"
   38344   }
   38345   input_arg {
   38346     name: "lengths"
   38347     type: DT_INT64
   38348   }
   38349   input_arg {
   38350     name: "flow_in"
   38351     type: DT_FLOAT
   38352   }
   38353   output_arg {
   38354     name: "flow_out"
   38355     type: DT_FLOAT
   38356   }
   38357   attr {
   38358     name: "T"
   38359     type: "type"
   38360   }
   38361   deprecation {
   38362     version: 20
   38363   }
   38364 }
   38365 op {
   38366   name: "TensorArraySplitV2"
   38367   input_arg {
   38368     name: "handle"
   38369     type: DT_STRING
   38370   }
   38371   input_arg {
   38372     name: "value"
   38373     type_attr: "T"
   38374   }
   38375   input_arg {
   38376     name: "lengths"
   38377     type: DT_INT64
   38378   }
   38379   input_arg {
   38380     name: "flow_in"
   38381     type: DT_FLOAT
   38382   }
   38383   output_arg {
   38384     name: "flow_out"
   38385     type: DT_FLOAT
   38386   }
   38387   attr {
   38388     name: "T"
   38389     type: "type"
   38390   }
   38391 }
   38392 op {
   38393   name: "TensorArraySplitV3"
   38394   input_arg {
   38395     name: "handle"
   38396     type: DT_RESOURCE
   38397   }
   38398   input_arg {
   38399     name: "value"
   38400     type_attr: "T"
   38401   }
   38402   input_arg {
   38403     name: "lengths"
   38404     type: DT_INT64
   38405   }
   38406   input_arg {
   38407     name: "flow_in"
   38408     type: DT_FLOAT
   38409   }
   38410   output_arg {
   38411     name: "flow_out"
   38412     type: DT_FLOAT
   38413   }
   38414   attr {
   38415     name: "T"
   38416     type: "type"
   38417   }
   38418 }
   38419 op {
   38420   name: "TensorArraySplitV3"
   38421   input_arg {
   38422     name: "handle"
   38423     type: DT_RESOURCE
   38424   }
   38425   input_arg {
   38426     name: "value"
   38427     type_attr: "T"
   38428   }
   38429   input_arg {
   38430     name: "lengths"
   38431     type: DT_INT64
   38432   }
   38433   input_arg {
   38434     name: "flow_in"
   38435     type: DT_FLOAT
   38436   }
   38437   output_arg {
   38438     name: "flow_out"
   38439     type: DT_FLOAT
   38440   }
   38441   attr {
   38442     name: "T"
   38443     type: "type"
   38444   }
   38445   is_stateful: true
   38446 }
   38447 op {
   38448   name: "TensorArrayUnpack"
   38449   input_arg {
   38450     name: "handle"
   38451     type: DT_STRING
   38452     is_ref: true
   38453   }
   38454   input_arg {
   38455     name: "value"
   38456     type_attr: "T"
   38457   }
   38458   input_arg {
   38459     name: "flow_in"
   38460     type: DT_FLOAT
   38461   }
   38462   output_arg {
   38463     name: "flow_out"
   38464     type: DT_FLOAT
   38465   }
   38466   attr {
   38467     name: "T"
   38468     type: "type"
   38469   }
   38470 }
   38471 op {
   38472   name: "TensorArrayUnpack"
   38473   input_arg {
   38474     name: "handle"
   38475     type: DT_STRING
   38476     is_ref: true
   38477   }
   38478   input_arg {
   38479     name: "value"
   38480     type_attr: "T"
   38481   }
   38482   input_arg {
   38483     name: "flow_in"
   38484     type: DT_FLOAT
   38485   }
   38486   output_arg {
   38487     name: "flow_out"
   38488     type: DT_FLOAT
   38489   }
   38490   attr {
   38491     name: "T"
   38492     type: "type"
   38493   }
   38494   deprecation {
   38495     version: 16
   38496   }
   38497 }
   38498 op {
   38499   name: "TensorArrayUnpack"
   38500   input_arg {
   38501     name: "handle"
   38502     type: DT_STRING
   38503     is_ref: true
   38504   }
   38505   input_arg {
   38506     name: "value"
   38507     type_attr: "T"
   38508   }
   38509   input_arg {
   38510     name: "flow_in"
   38511     type: DT_FLOAT
   38512   }
   38513   output_arg {
   38514     name: "flow_out"
   38515     type: DT_FLOAT
   38516   }
   38517   attr {
   38518     name: "T"
   38519     type: "type"
   38520   }
   38521   deprecation {
   38522     version: 20
   38523   }
   38524 }
   38525 op {
   38526   name: "TensorArrayV2"
   38527   input_arg {
   38528     name: "size"
   38529     type: DT_INT32
   38530   }
   38531   output_arg {
   38532     name: "handle"
   38533     type: DT_STRING
   38534   }
   38535   attr {
   38536     name: "dtype"
   38537     type: "type"
   38538   }
   38539   attr {
   38540     name: "dynamic_size"
   38541     type: "bool"
   38542     default_value {
   38543       b: false
   38544     }
   38545   }
   38546   attr {
   38547     name: "clear_after_read"
   38548     type: "bool"
   38549     default_value {
   38550       b: true
   38551     }
   38552   }
   38553   attr {
   38554     name: "tensor_array_name"
   38555     type: "string"
   38556     default_value {
   38557       s: ""
   38558     }
   38559   }
   38560   is_stateful: true
   38561 }
   38562 op {
   38563   name: "TensorArrayV2"
   38564   input_arg {
   38565     name: "size"
   38566     type: DT_INT32
   38567   }
   38568   output_arg {
   38569     name: "handle"
   38570     type: DT_STRING
   38571   }
   38572   attr {
   38573     name: "dtype"
   38574     type: "type"
   38575   }
   38576   attr {
   38577     name: "element_shape"
   38578     type: "shape"
   38579     default_value {
   38580       shape {
   38581         unknown_rank: true
   38582       }
   38583     }
   38584   }
   38585   attr {
   38586     name: "dynamic_size"
   38587     type: "bool"
   38588     default_value {
   38589       b: false
   38590     }
   38591   }
   38592   attr {
   38593     name: "clear_after_read"
   38594     type: "bool"
   38595     default_value {
   38596       b: true
   38597     }
   38598   }
   38599   attr {
   38600     name: "tensor_array_name"
   38601     type: "string"
   38602     default_value {
   38603       s: ""
   38604     }
   38605   }
   38606   is_stateful: true
   38607 }
   38608 op {
   38609   name: "TensorArrayV2"
   38610   input_arg {
   38611     name: "size"
   38612     type: DT_INT32
   38613   }
   38614   output_arg {
   38615     name: "handle"
   38616     type: DT_STRING
   38617   }
   38618   attr {
   38619     name: "dtype"
   38620     type: "type"
   38621   }
   38622   attr {
   38623     name: "element_shape"
   38624     type: "shape"
   38625     default_value {
   38626       shape {
   38627         unknown_rank: true
   38628       }
   38629     }
   38630   }
   38631   attr {
   38632     name: "dynamic_size"
   38633     type: "bool"
   38634     default_value {
   38635       b: false
   38636     }
   38637   }
   38638   attr {
   38639     name: "clear_after_read"
   38640     type: "bool"
   38641     default_value {
   38642       b: true
   38643     }
   38644   }
   38645   attr {
   38646     name: "tensor_array_name"
   38647     type: "string"
   38648     default_value {
   38649       s: ""
   38650     }
   38651   }
   38652   deprecation {
   38653     version: 20
   38654   }
   38655   is_stateful: true
   38656 }
   38657 op {
   38658   name: "TensorArrayV2"
   38659   input_arg {
   38660     name: "size"
   38661     type: DT_INT32
   38662   }
   38663   output_arg {
   38664     name: "handle"
   38665     type: DT_STRING
   38666   }
   38667   attr {
   38668     name: "dtype"
   38669     type: "type"
   38670   }
   38671   attr {
   38672     name: "element_shape"
   38673     type: "shape"
   38674     default_value {
   38675       shape {
   38676         unknown_rank: true
   38677       }
   38678     }
   38679   }
   38680   attr {
   38681     name: "dynamic_size"
   38682     type: "bool"
   38683     default_value {
   38684       b: false
   38685     }
   38686   }
   38687   attr {
   38688     name: "clear_after_read"
   38689     type: "bool"
   38690     default_value {
   38691       b: true
   38692     }
   38693   }
   38694   attr {
   38695     name: "tensor_array_name"
   38696     type: "string"
   38697     default_value {
   38698       s: ""
   38699     }
   38700   }
   38701   is_stateful: true
   38702 }
   38703 op {
   38704   name: "TensorArrayV3"
   38705   input_arg {
   38706     name: "size"
   38707     type: DT_INT32
   38708   }
   38709   output_arg {
   38710     name: "handle"
   38711     type: DT_RESOURCE
   38712   }
   38713   output_arg {
   38714     name: "flow"
   38715     type: DT_FLOAT
   38716   }
   38717   attr {
   38718     name: "dtype"
   38719     type: "type"
   38720   }
   38721   attr {
   38722     name: "element_shape"
   38723     type: "shape"
   38724     default_value {
   38725       shape {
   38726         unknown_rank: true
   38727       }
   38728     }
   38729   }
   38730   attr {
   38731     name: "dynamic_size"
   38732     type: "bool"
   38733     default_value {
   38734       b: false
   38735     }
   38736   }
   38737   attr {
   38738     name: "clear_after_read"
   38739     type: "bool"
   38740     default_value {
   38741       b: true
   38742     }
   38743   }
   38744   attr {
   38745     name: "tensor_array_name"
   38746     type: "string"
   38747     default_value {
   38748       s: ""
   38749     }
   38750   }
   38751   is_stateful: true
   38752 }
   38753 op {
   38754   name: "TensorArrayWrite"
   38755   input_arg {
   38756     name: "handle"
   38757     type: DT_STRING
   38758     is_ref: true
   38759   }
   38760   input_arg {
   38761     name: "index"
   38762     type: DT_INT32
   38763   }
   38764   input_arg {
   38765     name: "value"
   38766     type_attr: "T"
   38767   }
   38768   input_arg {
   38769     name: "flow_in"
   38770     type: DT_FLOAT
   38771   }
   38772   output_arg {
   38773     name: "flow_out"
   38774     type: DT_FLOAT
   38775   }
   38776   attr {
   38777     name: "T"
   38778     type: "type"
   38779   }
   38780 }
   38781 op {
   38782   name: "TensorArrayWrite"
   38783   input_arg {
   38784     name: "handle"
   38785     type: DT_STRING
   38786     is_ref: true
   38787   }
   38788   input_arg {
   38789     name: "index"
   38790     type: DT_INT32
   38791   }
   38792   input_arg {
   38793     name: "value"
   38794     type_attr: "T"
   38795   }
   38796   input_arg {
   38797     name: "flow_in"
   38798     type: DT_FLOAT
   38799   }
   38800   output_arg {
   38801     name: "flow_out"
   38802     type: DT_FLOAT
   38803   }
   38804   attr {
   38805     name: "T"
   38806     type: "type"
   38807   }
   38808   deprecation {
   38809     version: 16
   38810   }
   38811 }
   38812 op {
   38813   name: "TensorArrayWriteV2"
   38814   input_arg {
   38815     name: "handle"
   38816     type: DT_STRING
   38817   }
   38818   input_arg {
   38819     name: "index"
   38820     type: DT_INT32
   38821   }
   38822   input_arg {
   38823     name: "value"
   38824     type_attr: "T"
   38825   }
   38826   input_arg {
   38827     name: "flow_in"
   38828     type: DT_FLOAT
   38829   }
   38830   output_arg {
   38831     name: "flow_out"
   38832     type: DT_FLOAT
   38833   }
   38834   attr {
   38835     name: "T"
   38836     type: "type"
   38837   }
   38838 }
   38839 op {
   38840   name: "TensorArrayWriteV2"
   38841   input_arg {
   38842     name: "handle"
   38843     type: DT_STRING
   38844   }
   38845   input_arg {
   38846     name: "index"
   38847     type: DT_INT32
   38848   }
   38849   input_arg {
   38850     name: "value"
   38851     type_attr: "T"
   38852   }
   38853   input_arg {
   38854     name: "flow_in"
   38855     type: DT_FLOAT
   38856   }
   38857   output_arg {
   38858     name: "flow_out"
   38859     type: DT_FLOAT
   38860   }
   38861   attr {
   38862     name: "T"
   38863     type: "type"
   38864   }
   38865   deprecation {
   38866     version: 20
   38867   }
   38868 }
   38869 op {
   38870   name: "TensorArrayWriteV2"
   38871   input_arg {
   38872     name: "handle"
   38873     type: DT_STRING
   38874   }
   38875   input_arg {
   38876     name: "index"
   38877     type: DT_INT32
   38878   }
   38879   input_arg {
   38880     name: "value"
   38881     type_attr: "T"
   38882   }
   38883   input_arg {
   38884     name: "flow_in"
   38885     type: DT_FLOAT
   38886   }
   38887   output_arg {
   38888     name: "flow_out"
   38889     type: DT_FLOAT
   38890   }
   38891   attr {
   38892     name: "T"
   38893     type: "type"
   38894   }
   38895 }
   38896 op {
   38897   name: "TensorArrayWriteV3"
   38898   input_arg {
   38899     name: "handle"
   38900     type: DT_RESOURCE
   38901   }
   38902   input_arg {
   38903     name: "index"
   38904     type: DT_INT32
   38905   }
   38906   input_arg {
   38907     name: "value"
   38908     type_attr: "T"
   38909   }
   38910   input_arg {
   38911     name: "flow_in"
   38912     type: DT_FLOAT
   38913   }
   38914   output_arg {
   38915     name: "flow_out"
   38916     type: DT_FLOAT
   38917   }
   38918   attr {
   38919     name: "T"
   38920     type: "type"
   38921   }
   38922 }
   38923 op {
   38924   name: "TensorArrayWriteV3"
   38925   input_arg {
   38926     name: "handle"
   38927     type: DT_RESOURCE
   38928   }
   38929   input_arg {
   38930     name: "index"
   38931     type: DT_INT32
   38932   }
   38933   input_arg {
   38934     name: "value"
   38935     type_attr: "T"
   38936   }
   38937   input_arg {
   38938     name: "flow_in"
   38939     type: DT_FLOAT
   38940   }
   38941   output_arg {
   38942     name: "flow_out"
   38943     type: DT_FLOAT
   38944   }
   38945   attr {
   38946     name: "T"
   38947     type: "type"
   38948   }
   38949   is_stateful: true
   38950 }
   38951 op {
   38952   name: "TensorSummary"
   38953   input_arg {
   38954     name: "tensor"
   38955     type_attr: "T"
   38956   }
   38957   output_arg {
   38958     name: "summary"
   38959     type: DT_STRING
   38960   }
   38961   attr {
   38962     name: "T"
   38963     type: "type"
   38964   }
   38965   attr {
   38966     name: "display_name"
   38967     type: "string"
   38968   }
   38969   attr {
   38970     name: "description"
   38971     type: "string"
   38972     default_value {
   38973       s: ""
   38974     }
   38975   }
   38976   attr {
   38977     name: "labels"
   38978     type: "list(string)"
   38979     default_value {
   38980       list {
   38981       }
   38982     }
   38983   }
   38984 }
   38985 op {
   38986   name: "TensorSummary"
   38987   input_arg {
   38988     name: "tensor"
   38989     type_attr: "T"
   38990   }
   38991   output_arg {
   38992     name: "summary"
   38993     type: DT_STRING
   38994   }
   38995   attr {
   38996     name: "T"
   38997     type: "type"
   38998   }
   38999   attr {
   39000     name: "description"
   39001     type: "string"
   39002     default_value {
   39003       s: ""
   39004     }
   39005   }
   39006   attr {
   39007     name: "labels"
   39008     type: "list(string)"
   39009     default_value {
   39010       list {
   39011       }
   39012     }
   39013   }
   39014   attr {
   39015     name: "display_name"
   39016     type: "string"
   39017     default_value {
   39018       s: ""
   39019     }
   39020   }
   39021 }
   39022 op {
   39023   name: "TextLineReader"
   39024   output_arg {
   39025     name: "reader_handle"
   39026     type: DT_STRING
   39027     is_ref: true
   39028   }
   39029   attr {
   39030     name: "skip_header_lines"
   39031     type: "int"
   39032     default_value {
   39033       i: 0
   39034     }
   39035   }
   39036   attr {
   39037     name: "container"
   39038     type: "string"
   39039     default_value {
   39040       s: ""
   39041     }
   39042   }
   39043   attr {
   39044     name: "shared_name"
   39045     type: "string"
   39046     default_value {
   39047       s: ""
   39048     }
   39049   }
   39050   is_stateful: true
   39051 }
   39052 op {
   39053   name: "TextLineReaderV2"
   39054   output_arg {
   39055     name: "reader_handle"
   39056     type: DT_RESOURCE
   39057   }
   39058   attr {
   39059     name: "skip_header_lines"
   39060     type: "int"
   39061     default_value {
   39062       i: 0
   39063     }
   39064   }
   39065   attr {
   39066     name: "container"
   39067     type: "string"
   39068     default_value {
   39069       s: ""
   39070     }
   39071   }
   39072   attr {
   39073     name: "shared_name"
   39074     type: "string"
   39075     default_value {
   39076       s: ""
   39077     }
   39078   }
   39079   is_stateful: true
   39080 }
   39081 op {
   39082   name: "ThreadUnsafeUnigramCandidateSampler"
   39083   input_arg {
   39084     name: "true_classes"
   39085     type: DT_INT64
   39086   }
   39087   output_arg {
   39088     name: "sampled_candidates"
   39089     type: DT_INT64
   39090   }
   39091   output_arg {
   39092     name: "true_expected_count"
   39093     type: DT_FLOAT
   39094   }
   39095   output_arg {
   39096     name: "sampled_expected_count"
   39097     type: DT_FLOAT
   39098   }
   39099   attr {
   39100     name: "num_true"
   39101     type: "int"
   39102     has_minimum: true
   39103     minimum: 1
   39104   }
   39105   attr {
   39106     name: "num_sampled"
   39107     type: "int"
   39108     has_minimum: true
   39109     minimum: 1
   39110   }
   39111   attr {
   39112     name: "unique"
   39113     type: "bool"
   39114   }
   39115   attr {
   39116     name: "range_max"
   39117     type: "int"
   39118     has_minimum: true
   39119     minimum: 1
   39120   }
   39121   attr {
   39122     name: "seed"
   39123     type: "int"
   39124     default_value {
   39125       i: 0
   39126     }
   39127   }
   39128   attr {
   39129     name: "seed2"
   39130     type: "int"
   39131     default_value {
   39132       i: 0
   39133     }
   39134   }
   39135 }
   39136 op {
   39137   name: "Tile"
   39138   input_arg {
   39139     name: "input"
   39140     type_attr: "T"
   39141   }
   39142   input_arg {
   39143     name: "multiples"
   39144     type: DT_INT32
   39145   }
   39146   output_arg {
   39147     name: "output"
   39148     type_attr: "T"
   39149   }
   39150   attr {
   39151     name: "T"
   39152     type: "type"
   39153   }
   39154 }
   39155 op {
   39156   name: "Tile"
   39157   input_arg {
   39158     name: "input"
   39159     type_attr: "T"
   39160   }
   39161   input_arg {
   39162     name: "multiples"
   39163     type_attr: "Tmultiples"
   39164   }
   39165   output_arg {
   39166     name: "output"
   39167     type_attr: "T"
   39168   }
   39169   attr {
   39170     name: "T"
   39171     type: "type"
   39172   }
   39173   attr {
   39174     name: "Tmultiples"
   39175     type: "type"
   39176     default_value {
   39177       type: DT_INT32
   39178     }
   39179     allowed_values {
   39180       list {
   39181         type: DT_INT32
   39182         type: DT_INT64
   39183       }
   39184     }
   39185   }
   39186 }
   39187 op {
   39188   name: "TileGrad"
   39189   input_arg {
   39190     name: "input"
   39191     type_attr: "T"
   39192   }
   39193   input_arg {
   39194     name: "multiples"
   39195     type: DT_INT32
   39196   }
   39197   output_arg {
   39198     name: "output"
   39199     type_attr: "T"
   39200   }
   39201   attr {
   39202     name: "T"
   39203     type: "type"
   39204   }
   39205 }
   39206 op {
   39207   name: "TileGrad"
   39208   input_arg {
   39209     name: "input"
   39210     type_attr: "T"
   39211   }
   39212   input_arg {
   39213     name: "multiples"
   39214     type: DT_INT32
   39215   }
   39216   output_arg {
   39217     name: "output"
   39218     type_attr: "T"
   39219   }
   39220   attr {
   39221     name: "T"
   39222     type: "type"
   39223   }
   39224   deprecation {
   39225     version: 3
   39226   }
   39227 }
   39228 op {
   39229   name: "TopK"
   39230   input_arg {
   39231     name: "input"
   39232     type_attr: "T"
   39233   }
   39234   output_arg {
   39235     name: "values"
   39236     type_attr: "T"
   39237   }
   39238   output_arg {
   39239     name: "indices"
   39240     type: DT_INT32
   39241   }
   39242   attr {
   39243     name: "k"
   39244     type: "int"
   39245     has_minimum: true
   39246     minimum: 1
   39247   }
   39248   attr {
   39249     name: "T"
   39250     type: "type"
   39251     allowed_values {
   39252       list {
   39253         type: DT_FLOAT
   39254         type: DT_DOUBLE
   39255         type: DT_INT32
   39256         type: DT_INT64
   39257         type: DT_UINT8
   39258         type: DT_INT16
   39259         type: DT_INT8
   39260       }
   39261     }
   39262   }
   39263 }
   39264 op {
   39265   name: "TopK"
   39266   input_arg {
   39267     name: "input"
   39268     type_attr: "T"
   39269   }
   39270   output_arg {
   39271     name: "values"
   39272     type_attr: "T"
   39273   }
   39274   output_arg {
   39275     name: "indices"
   39276     type: DT_INT32
   39277   }
   39278   attr {
   39279     name: "k"
   39280     type: "int"
   39281     has_minimum: true
   39282     minimum: 1
   39283   }
   39284   attr {
   39285     name: "sorted"
   39286     type: "bool"
   39287     default_value {
   39288       b: true
   39289     }
   39290   }
   39291   attr {
   39292     name: "T"
   39293     type: "type"
   39294     allowed_values {
   39295       list {
   39296         type: DT_FLOAT
   39297         type: DT_DOUBLE
   39298         type: DT_INT32
   39299         type: DT_INT64
   39300         type: DT_UINT8
   39301         type: DT_INT16
   39302         type: DT_INT8
   39303       }
   39304     }
   39305   }
   39306 }
   39307 op {
   39308   name: "TopK"
   39309   input_arg {
   39310     name: "input"
   39311     type_attr: "T"
   39312   }
   39313   output_arg {
   39314     name: "values"
   39315     type_attr: "T"
   39316   }
   39317   output_arg {
   39318     name: "indices"
   39319     type: DT_INT32
   39320   }
   39321   attr {
   39322     name: "k"
   39323     type: "int"
   39324     has_minimum: true
   39325   }
   39326   attr {
   39327     name: "sorted"
   39328     type: "bool"
   39329     default_value {
   39330       b: true
   39331     }
   39332   }
   39333   attr {
   39334     name: "T"
   39335     type: "type"
   39336     allowed_values {
   39337       list {
   39338         type: DT_FLOAT
   39339         type: DT_DOUBLE
   39340         type: DT_INT32
   39341         type: DT_INT64
   39342         type: DT_UINT8
   39343         type: DT_INT16
   39344         type: DT_INT8
   39345       }
   39346     }
   39347   }
   39348 }
   39349 op {
   39350   name: "TopK"
   39351   input_arg {
   39352     name: "input"
   39353     type_attr: "T"
   39354   }
   39355   output_arg {
   39356     name: "values"
   39357     type_attr: "T"
   39358   }
   39359   output_arg {
   39360     name: "indices"
   39361     type: DT_INT32
   39362   }
   39363   attr {
   39364     name: "k"
   39365     type: "int"
   39366     has_minimum: true
   39367   }
   39368   attr {
   39369     name: "sorted"
   39370     type: "bool"
   39371     default_value {
   39372       b: true
   39373     }
   39374   }
   39375   attr {
   39376     name: "T"
   39377     type: "type"
   39378     allowed_values {
   39379       list {
   39380         type: DT_FLOAT
   39381         type: DT_DOUBLE
   39382         type: DT_INT32
   39383         type: DT_INT64
   39384         type: DT_UINT8
   39385         type: DT_INT16
   39386         type: DT_INT8
   39387         type: DT_UINT16
   39388       }
   39389     }
   39390   }
   39391 }
   39392 op {
   39393   name: "TopK"
   39394   input_arg {
   39395     name: "input"
   39396     type_attr: "T"
   39397   }
   39398   output_arg {
   39399     name: "values"
   39400     type_attr: "T"
   39401   }
   39402   output_arg {
   39403     name: "indices"
   39404     type: DT_INT32
   39405   }
   39406   attr {
   39407     name: "k"
   39408     type: "int"
   39409     has_minimum: true
   39410   }
   39411   attr {
   39412     name: "sorted"
   39413     type: "bool"
   39414     default_value {
   39415       b: true
   39416     }
   39417   }
   39418   attr {
   39419     name: "T"
   39420     type: "type"
   39421     allowed_values {
   39422       list {
   39423         type: DT_FLOAT
   39424         type: DT_DOUBLE
   39425         type: DT_INT32
   39426         type: DT_INT64
   39427         type: DT_UINT8
   39428         type: DT_INT16
   39429         type: DT_INT8
   39430         type: DT_UINT16
   39431         type: DT_HALF
   39432       }
   39433     }
   39434   }
   39435 }
   39436 op {
   39437   name: "TopK"
   39438   input_arg {
   39439     name: "input"
   39440     type_attr: "T"
   39441   }
   39442   output_arg {
   39443     name: "values"
   39444     type_attr: "T"
   39445   }
   39446   output_arg {
   39447     name: "indices"
   39448     type: DT_INT32
   39449   }
   39450   attr {
   39451     name: "k"
   39452     type: "int"
   39453     has_minimum: true
   39454   }
   39455   attr {
   39456     name: "sorted"
   39457     type: "bool"
   39458     default_value {
   39459       b: true
   39460     }
   39461   }
   39462   attr {
   39463     name: "T"
   39464     type: "type"
   39465     allowed_values {
   39466       list {
   39467         type: DT_FLOAT
   39468         type: DT_DOUBLE
   39469         type: DT_INT32
   39470         type: DT_INT64
   39471         type: DT_UINT8
   39472         type: DT_INT16
   39473         type: DT_INT8
   39474         type: DT_UINT16
   39475         type: DT_HALF
   39476       }
   39477     }
   39478   }
   39479   deprecation {
   39480     version: 7
   39481   }
   39482 }
   39483 op {
   39484   name: "TopKV2"
   39485   input_arg {
   39486     name: "input"
   39487     type_attr: "T"
   39488   }
   39489   input_arg {
   39490     name: "k"
   39491     type: DT_INT32
   39492   }
   39493   output_arg {
   39494     name: "values"
   39495     type_attr: "T"
   39496   }
   39497   output_arg {
   39498     name: "indices"
   39499     type: DT_INT32
   39500   }
   39501   attr {
   39502     name: "sorted"
   39503     type: "bool"
   39504     default_value {
   39505       b: true
   39506     }
   39507   }
   39508   attr {
   39509     name: "T"
   39510     type: "type"
   39511     allowed_values {
   39512       list {
   39513         type: DT_FLOAT
   39514         type: DT_DOUBLE
   39515         type: DT_INT32
   39516         type: DT_INT64
   39517         type: DT_UINT8
   39518         type: DT_INT16
   39519         type: DT_INT8
   39520       }
   39521     }
   39522   }
   39523 }
   39524 op {
   39525   name: "TopKV2"
   39526   input_arg {
   39527     name: "input"
   39528     type_attr: "T"
   39529   }
   39530   input_arg {
   39531     name: "k"
   39532     type: DT_INT32
   39533   }
   39534   output_arg {
   39535     name: "values"
   39536     type_attr: "T"
   39537   }
   39538   output_arg {
   39539     name: "indices"
   39540     type: DT_INT32
   39541   }
   39542   attr {
   39543     name: "sorted"
   39544     type: "bool"
   39545     default_value {
   39546       b: true
   39547     }
   39548   }
   39549   attr {
   39550     name: "T"
   39551     type: "type"
   39552     allowed_values {
   39553       list {
   39554         type: DT_FLOAT
   39555         type: DT_DOUBLE
   39556         type: DT_INT32
   39557         type: DT_INT64
   39558         type: DT_UINT8
   39559         type: DT_INT16
   39560         type: DT_INT8
   39561         type: DT_UINT16
   39562       }
   39563     }
   39564   }
   39565 }
   39566 op {
   39567   name: "TopKV2"
   39568   input_arg {
   39569     name: "input"
   39570     type_attr: "T"
   39571   }
   39572   input_arg {
   39573     name: "k"
   39574     type: DT_INT32
   39575   }
   39576   output_arg {
   39577     name: "values"
   39578     type_attr: "T"
   39579   }
   39580   output_arg {
   39581     name: "indices"
   39582     type: DT_INT32
   39583   }
   39584   attr {
   39585     name: "sorted"
   39586     type: "bool"
   39587     default_value {
   39588       b: true
   39589     }
   39590   }
   39591   attr {
   39592     name: "T"
   39593     type: "type"
   39594     allowed_values {
   39595       list {
   39596         type: DT_FLOAT
   39597         type: DT_DOUBLE
   39598         type: DT_INT32
   39599         type: DT_INT64
   39600         type: DT_UINT8
   39601         type: DT_INT16
   39602         type: DT_INT8
   39603         type: DT_UINT16
   39604         type: DT_HALF
   39605       }
   39606     }
   39607   }
   39608 }
   39609 op {
   39610   name: "Transpose"
   39611   input_arg {
   39612     name: "x"
   39613     type_attr: "T"
   39614   }
   39615   input_arg {
   39616     name: "perm"
   39617     type: DT_INT32
   39618   }
   39619   output_arg {
   39620     name: "y"
   39621     type_attr: "T"
   39622   }
   39623   attr {
   39624     name: "T"
   39625     type: "type"
   39626   }
   39627 }
   39628 op {
   39629   name: "Transpose"
   39630   input_arg {
   39631     name: "x"
   39632     type_attr: "T"
   39633   }
   39634   input_arg {
   39635     name: "perm"
   39636     type_attr: "Tperm"
   39637   }
   39638   output_arg {
   39639     name: "y"
   39640     type_attr: "T"
   39641   }
   39642   attr {
   39643     name: "T"
   39644     type: "type"
   39645   }
   39646   attr {
   39647     name: "Tperm"
   39648     type: "type"
   39649     default_value {
   39650       type: DT_INT32
   39651     }
   39652     allowed_values {
   39653       list {
   39654         type: DT_INT32
   39655         type: DT_INT64
   39656       }
   39657     }
   39658   }
   39659 }
   39660 op {
   39661   name: "TruncateDiv"
   39662   input_arg {
   39663     name: "x"
   39664     type_attr: "T"
   39665   }
   39666   input_arg {
   39667     name: "y"
   39668     type_attr: "T"
   39669   }
   39670   output_arg {
   39671     name: "z"
   39672     type_attr: "T"
   39673   }
   39674   attr {
   39675     name: "T"
   39676     type: "type"
   39677     allowed_values {
   39678       list {
   39679         type: DT_HALF
   39680         type: DT_FLOAT
   39681         type: DT_DOUBLE
   39682         type: DT_UINT8
   39683         type: DT_INT8
   39684         type: DT_UINT16
   39685         type: DT_INT16
   39686         type: DT_INT32
   39687         type: DT_INT64
   39688         type: DT_COMPLEX64
   39689         type: DT_COMPLEX128
   39690       }
   39691     }
   39692   }
   39693 }
   39694 op {
   39695   name: "TruncateMod"
   39696   input_arg {
   39697     name: "x"
   39698     type_attr: "T"
   39699   }
   39700   input_arg {
   39701     name: "y"
   39702     type_attr: "T"
   39703   }
   39704   output_arg {
   39705     name: "z"
   39706     type_attr: "T"
   39707   }
   39708   attr {
   39709     name: "T"
   39710     type: "type"
   39711     allowed_values {
   39712       list {
   39713         type: DT_INT32
   39714         type: DT_INT64
   39715         type: DT_FLOAT
   39716         type: DT_DOUBLE
   39717       }
   39718     }
   39719   }
   39720 }
   39721 op {
   39722   name: "TruncatedNormal"
   39723   input_arg {
   39724     name: "shape"
   39725     type_attr: "T"
   39726   }
   39727   output_arg {
   39728     name: "output"
   39729     type_attr: "dtype"
   39730   }
   39731   attr {
   39732     name: "seed"
   39733     type: "int"
   39734     default_value {
   39735       i: 0
   39736     }
   39737   }
   39738   attr {
   39739     name: "seed2"
   39740     type: "int"
   39741     default_value {
   39742       i: 0
   39743     }
   39744   }
   39745   attr {
   39746     name: "dtype"
   39747     type: "type"
   39748     allowed_values {
   39749       list {
   39750         type: DT_FLOAT
   39751         type: DT_DOUBLE
   39752       }
   39753     }
   39754   }
   39755   attr {
   39756     name: "T"
   39757     type: "type"
   39758     allowed_values {
   39759       list {
   39760         type: DT_INT32
   39761         type: DT_INT64
   39762       }
   39763     }
   39764   }
   39765   is_stateful: true
   39766 }
   39767 op {
   39768   name: "TruncatedNormal"
   39769   input_arg {
   39770     name: "shape"
   39771     type_attr: "T"
   39772   }
   39773   output_arg {
   39774     name: "output"
   39775     type_attr: "dtype"
   39776   }
   39777   attr {
   39778     name: "seed"
   39779     type: "int"
   39780     default_value {
   39781       i: 0
   39782     }
   39783   }
   39784   attr {
   39785     name: "seed2"
   39786     type: "int"
   39787     default_value {
   39788       i: 0
   39789     }
   39790   }
   39791   attr {
   39792     name: "dtype"
   39793     type: "type"
   39794     allowed_values {
   39795       list {
   39796         type: DT_HALF
   39797         type: DT_FLOAT
   39798         type: DT_DOUBLE
   39799       }
   39800     }
   39801   }
   39802   attr {
   39803     name: "T"
   39804     type: "type"
   39805     allowed_values {
   39806       list {
   39807         type: DT_INT32
   39808         type: DT_INT64
   39809       }
   39810     }
   39811   }
   39812   is_stateful: true
   39813 }
   39814 op {
   39815   name: "UniformCandidateSampler"
   39816   input_arg {
   39817     name: "true_classes"
   39818     type: DT_INT64
   39819   }
   39820   output_arg {
   39821     name: "sampled_candidates"
   39822     type: DT_INT64
   39823   }
   39824   output_arg {
   39825     name: "true_expected_count"
   39826     type: DT_FLOAT
   39827   }
   39828   output_arg {
   39829     name: "sampled_expected_count"
   39830     type: DT_FLOAT
   39831   }
   39832   attr {
   39833     name: "num_true"
   39834     type: "int"
   39835     has_minimum: true
   39836     minimum: 1
   39837   }
   39838   attr {
   39839     name: "num_sampled"
   39840     type: "int"
   39841     has_minimum: true
   39842     minimum: 1
   39843   }
   39844   attr {
   39845     name: "unique"
   39846     type: "bool"
   39847   }
   39848   attr {
   39849     name: "range_max"
   39850     type: "int"
   39851     has_minimum: true
   39852     minimum: 1
   39853   }
   39854   attr {
   39855     name: "seed"
   39856     type: "int"
   39857     default_value {
   39858       i: 0
   39859     }
   39860   }
   39861   attr {
   39862     name: "seed2"
   39863     type: "int"
   39864     default_value {
   39865       i: 0
   39866     }
   39867   }
   39868 }
   39869 op {
   39870   name: "Unique"
   39871   input_arg {
   39872     name: "x"
   39873     type_attr: "T"
   39874   }
   39875   output_arg {
   39876     name: "y"
   39877     type_attr: "T"
   39878   }
   39879   output_arg {
   39880     name: "idx"
   39881     type: DT_INT32
   39882   }
   39883   attr {
   39884     name: "T"
   39885     type: "type"
   39886   }
   39887 }
   39888 op {
   39889   name: "Unique"
   39890   input_arg {
   39891     name: "x"
   39892     type_attr: "T"
   39893   }
   39894   output_arg {
   39895     name: "y"
   39896     type_attr: "T"
   39897   }
   39898   output_arg {
   39899     name: "idx"
   39900     type_attr: "out_idx"
   39901   }
   39902   attr {
   39903     name: "T"
   39904     type: "type"
   39905   }
   39906   attr {
   39907     name: "out_idx"
   39908     type: "type"
   39909     default_value {
   39910       type: DT_INT32
   39911     }
   39912     allowed_values {
   39913       list {
   39914         type: DT_INT32
   39915         type: DT_INT64
   39916       }
   39917     }
   39918   }
   39919 }
   39920 op {
   39921   name: "UniqueWithCounts"
   39922   input_arg {
   39923     name: "x"
   39924     type_attr: "T"
   39925   }
   39926   output_arg {
   39927     name: "y"
   39928     type_attr: "T"
   39929   }
   39930   output_arg {
   39931     name: "idx"
   39932     type: DT_INT32
   39933   }
   39934   output_arg {
   39935     name: "count"
   39936     type: DT_INT32
   39937   }
   39938   attr {
   39939     name: "T"
   39940     type: "type"
   39941   }
   39942 }
   39943 op {
   39944   name: "UniqueWithCounts"
   39945   input_arg {
   39946     name: "x"
   39947     type_attr: "T"
   39948   }
   39949   output_arg {
   39950     name: "y"
   39951     type_attr: "T"
   39952   }
   39953   output_arg {
   39954     name: "idx"
   39955     type_attr: "out_idx"
   39956   }
   39957   output_arg {
   39958     name: "count"
   39959     type_attr: "out_idx"
   39960   }
   39961   attr {
   39962     name: "T"
   39963     type: "type"
   39964   }
   39965   attr {
   39966     name: "out_idx"
   39967     type: "type"
   39968     default_value {
   39969       type: DT_INT32
   39970     }
   39971     allowed_values {
   39972       list {
   39973         type: DT_INT32
   39974         type: DT_INT64
   39975       }
   39976     }
   39977   }
   39978 }
   39979 op {
   39980   name: "Unpack"
   39981   input_arg {
   39982     name: "value"
   39983     type_attr: "T"
   39984   }
   39985   output_arg {
   39986     name: "output"
   39987     type_attr: "T"
   39988     number_attr: "num"
   39989   }
   39990   attr {
   39991     name: "num"
   39992     type: "int"
   39993     has_minimum: true
   39994   }
   39995   attr {
   39996     name: "T"
   39997     type: "type"
   39998   }
   39999 }
   40000 op {
   40001   name: "Unpack"
   40002   input_arg {
   40003     name: "value"
   40004     type_attr: "T"
   40005   }
   40006   output_arg {
   40007     name: "output"
   40008     type_attr: "T"
   40009     number_attr: "num"
   40010   }
   40011   attr {
   40012     name: "num"
   40013     type: "int"
   40014     has_minimum: true
   40015   }
   40016   attr {
   40017     name: "T"
   40018     type: "type"
   40019   }
   40020   attr {
   40021     name: "axis"
   40022     type: "int"
   40023     default_value {
   40024       i: 0
   40025     }
   40026   }
   40027 }
   40028 op {
   40029   name: "UnsortedSegmentSum"
   40030   input_arg {
   40031     name: "data"
   40032     type_attr: "T"
   40033   }
   40034   input_arg {
   40035     name: "segment_ids"
   40036     type_attr: "Tindices"
   40037   }
   40038   input_arg {
   40039     name: "num_segments"
   40040     type: DT_INT32
   40041   }
   40042   output_arg {
   40043     name: "output"
   40044     type_attr: "T"
   40045   }
   40046   attr {
   40047     name: "T"
   40048     type: "type"
   40049     allowed_values {
   40050       list {
   40051         type: DT_FLOAT
   40052         type: DT_DOUBLE
   40053         type: DT_INT32
   40054         type: DT_INT64
   40055         type: DT_UINT8
   40056         type: DT_INT16
   40057         type: DT_INT8
   40058       }
   40059     }
   40060   }
   40061   attr {
   40062     name: "Tindices"
   40063     type: "type"
   40064     allowed_values {
   40065       list {
   40066         type: DT_INT32
   40067         type: DT_INT64
   40068       }
   40069     }
   40070   }
   40071 }
   40072 op {
   40073   name: "UnsortedSegmentSum"
   40074   input_arg {
   40075     name: "data"
   40076     type_attr: "T"
   40077   }
   40078   input_arg {
   40079     name: "segment_ids"
   40080     type_attr: "Tindices"
   40081   }
   40082   input_arg {
   40083     name: "num_segments"
   40084     type: DT_INT32
   40085   }
   40086   output_arg {
   40087     name: "output"
   40088     type_attr: "T"
   40089   }
   40090   attr {
   40091     name: "T"
   40092     type: "type"
   40093     allowed_values {
   40094       list {
   40095         type: DT_FLOAT
   40096         type: DT_DOUBLE
   40097         type: DT_INT32
   40098         type: DT_INT64
   40099         type: DT_UINT8
   40100         type: DT_INT16
   40101         type: DT_INT8
   40102         type: DT_UINT16
   40103       }
   40104     }
   40105   }
   40106   attr {
   40107     name: "Tindices"
   40108     type: "type"
   40109     allowed_values {
   40110       list {
   40111         type: DT_INT32
   40112         type: DT_INT64
   40113       }
   40114     }
   40115   }
   40116 }
   40117 op {
   40118   name: "UnsortedSegmentSum"
   40119   input_arg {
   40120     name: "data"
   40121     type_attr: "T"
   40122   }
   40123   input_arg {
   40124     name: "segment_ids"
   40125     type_attr: "Tindices"
   40126   }
   40127   input_arg {
   40128     name: "num_segments"
   40129     type: DT_INT32
   40130   }
   40131   output_arg {
   40132     name: "output"
   40133     type_attr: "T"
   40134   }
   40135   attr {
   40136     name: "T"
   40137     type: "type"
   40138     allowed_values {
   40139       list {
   40140         type: DT_FLOAT
   40141         type: DT_DOUBLE
   40142         type: DT_INT32
   40143         type: DT_INT64
   40144         type: DT_UINT8
   40145         type: DT_INT16
   40146         type: DT_INT8
   40147         type: DT_UINT16
   40148         type: DT_HALF
   40149       }
   40150     }
   40151   }
   40152   attr {
   40153     name: "Tindices"
   40154     type: "type"
   40155     allowed_values {
   40156       list {
   40157         type: DT_INT32
   40158         type: DT_INT64
   40159       }
   40160     }
   40161   }
   40162 }
   40163 op {
   40164   name: "UnsortedSegmentSum"
   40165   input_arg {
   40166     name: "data"
   40167     type_attr: "T"
   40168   }
   40169   input_arg {
   40170     name: "segment_ids"
   40171     type_attr: "Tindices"
   40172   }
   40173   input_arg {
   40174     name: "num_segments"
   40175     type: DT_INT32
   40176   }
   40177   output_arg {
   40178     name: "output"
   40179     type_attr: "T"
   40180   }
   40181   attr {
   40182     name: "T"
   40183     type: "type"
   40184     allowed_values {
   40185       list {
   40186         type: DT_FLOAT
   40187         type: DT_DOUBLE
   40188         type: DT_INT64
   40189         type: DT_INT32
   40190         type: DT_UINT8
   40191         type: DT_UINT16
   40192         type: DT_INT16
   40193         type: DT_INT8
   40194         type: DT_COMPLEX64
   40195         type: DT_COMPLEX128
   40196         type: DT_QINT8
   40197         type: DT_QUINT8
   40198         type: DT_QINT32
   40199         type: DT_HALF
   40200       }
   40201     }
   40202   }
   40203   attr {
   40204     name: "Tindices"
   40205     type: "type"
   40206     allowed_values {
   40207       list {
   40208         type: DT_INT32
   40209         type: DT_INT64
   40210       }
   40211     }
   40212   }
   40213 }
   40214 op {
   40215   name: "Unstage"
   40216   output_arg {
   40217     name: "values"
   40218     type_list_attr: "dtypes"
   40219   }
   40220   attr {
   40221     name: "dtypes"
   40222     type: "list(type)"
   40223     has_minimum: true
   40224     minimum: 1
   40225   }
   40226   attr {
   40227     name: "container"
   40228     type: "string"
   40229     default_value {
   40230       s: ""
   40231     }
   40232   }
   40233   attr {
   40234     name: "shared_name"
   40235     type: "string"
   40236     default_value {
   40237       s: ""
   40238     }
   40239   }
   40240   is_stateful: true
   40241 }
   40242 op {
   40243   name: "Variable"
   40244   output_arg {
   40245     name: "ref"
   40246     type_attr: "dtype"
   40247     is_ref: true
   40248   }
   40249   attr {
   40250     name: "shape"
   40251     type: "shape"
   40252   }
   40253   attr {
   40254     name: "dtype"
   40255     type: "type"
   40256   }
   40257   attr {
   40258     name: "container"
   40259     type: "string"
   40260     default_value {
   40261       s: ""
   40262     }
   40263   }
   40264   attr {
   40265     name: "shared_name"
   40266     type: "string"
   40267     default_value {
   40268       s: ""
   40269     }
   40270   }
   40271   is_stateful: true
   40272 }
   40273 op {
   40274   name: "VariableV2"
   40275   output_arg {
   40276     name: "ref"
   40277     type_attr: "dtype"
   40278     is_ref: true
   40279   }
   40280   attr {
   40281     name: "shape"
   40282     type: "shape"
   40283   }
   40284   attr {
   40285     name: "dtype"
   40286     type: "type"
   40287   }
   40288   attr {
   40289     name: "container"
   40290     type: "string"
   40291     default_value {
   40292       s: ""
   40293     }
   40294   }
   40295   attr {
   40296     name: "shared_name"
   40297     type: "string"
   40298     default_value {
   40299       s: ""
   40300     }
   40301   }
   40302   is_stateful: true
   40303 }
   40304 op {
   40305   name: "Where"
   40306   input_arg {
   40307     name: "input"
   40308     type: DT_BOOL
   40309   }
   40310   output_arg {
   40311     name: "index"
   40312     type: DT_INT64
   40313   }
   40314 }
   40315 op {
   40316   name: "WholeFileReader"
   40317   output_arg {
   40318     name: "reader_handle"
   40319     type: DT_STRING
   40320     is_ref: true
   40321   }
   40322   attr {
   40323     name: "container"
   40324     type: "string"
   40325     default_value {
   40326       s: ""
   40327     }
   40328   }
   40329   attr {
   40330     name: "shared_name"
   40331     type: "string"
   40332     default_value {
   40333       s: ""
   40334     }
   40335   }
   40336   is_stateful: true
   40337 }
   40338 op {
   40339   name: "WholeFileReaderV2"
   40340   output_arg {
   40341     name: "reader_handle"
   40342     type: DT_RESOURCE
   40343   }
   40344   attr {
   40345     name: "container"
   40346     type: "string"
   40347     default_value {
   40348       s: ""
   40349     }
   40350   }
   40351   attr {
   40352     name: "shared_name"
   40353     type: "string"
   40354     default_value {
   40355       s: ""
   40356     }
   40357   }
   40358   is_stateful: true
   40359 }
   40360 op {
   40361   name: "WriteFile"
   40362   input_arg {
   40363     name: "filename"
   40364     type: DT_STRING
   40365   }
   40366   input_arg {
   40367     name: "contents"
   40368     type: DT_STRING
   40369   }
   40370 }
   40371 op {
   40372   name: "ZerosLike"
   40373   input_arg {
   40374     name: "x"
   40375     type_attr: "T"
   40376   }
   40377   output_arg {
   40378     name: "y"
   40379     type_attr: "T"
   40380   }
   40381   attr {
   40382     name: "T"
   40383     type: "type"
   40384   }
   40385 }
   40386 op {
   40387   name: "Zeta"
   40388   input_arg {
   40389     name: "x"
   40390     type_attr: "T"
   40391   }
   40392   input_arg {
   40393     name: "q"
   40394     type_attr: "T"
   40395   }
   40396   output_arg {
   40397     name: "z"
   40398     type_attr: "T"
   40399   }
   40400   attr {
   40401     name: "T"
   40402     type: "type"
   40403     allowed_values {
   40404       list {
   40405         type: DT_FLOAT
   40406         type: DT_DOUBLE
   40407       }
   40408     }
   40409   }
   40410 }
   40411