package Ġio . kin ference . core . operators . seq Ċ Ċ import Ġio . kin ference . core . attributes . Attribute Ċ import Ġio . kin ference . data . ON NX DataType Ċ import Ġio . kin ference . core . data . seq . K ION NX Sequence Ċ import Ġio . kin ference . core . data . tensor . KIT ensor Ċ import Ġio . kin ference . core . data . tensor . split With Axis Ċ import Ġio . kin ference . core . graph . Context Ċ import Ġio . kin ference . profiler . Profiling Context Ċ import Ġio . kin ference . core . operators .* Ċ import Ġio . kin ference . protobuf . message . Attribute Proto Ċ import Ġio . kin ference . protobuf . message . Tensor Proto Ċ import Ġio . kin ference . core . types . Value Info Ċ import Ġio . kin ference . core . types . ValueType Info . Sequence TypeInfo Ċ import Ġkotlin . time . Experimental Time Ċ Ċ @ Experimental Time Ċ class ĠSplit To Sequence ( attributes : ĠMap < String , ĠAttribute < Any >>, Ġinputs : ĠList < String >, Ġoutputs : ĠList < String >) ĊĠĠĠ Ġ: ĠOperator < KIT ensor , ĠK ION NX Sequence >( INFO , Ġattributes , Ġinputs , Ġoutputs ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ SPLIT _ LENGTH Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTYPE _ CONSTRAINT S Ġ= ĠALL _ DATA _ TYPES ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠATTRIBUT ES _ INFO Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAttribute Info (" axis ", Ġset Of ( Attribute Proto . AttributeType . INT ), Ġfalse , Ġdefault Ġ= Ġ 0 L ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAttribute Info (" keep dims ", Ġset Of ( Attribute Proto . AttributeType . INT ), Ġfalse , Ġdefault Ġ= Ġ 1 L ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINPUT S _ INFO Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIO Info ( 0 , ĠTYPE _ CONSTRAINT S , Ġ" input ", Ġoptional Ġ= Ġfalse ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIO Info ( 1 , Ġset Of ( Tensor Proto . DataType . INT 6 4 , ĠTensor Proto . DataType . INT 3 2 ), Ġ" split ", Ġoptional Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠOUTPUT S _ INFO Ġ= ĠlistOf ( IO Info ( 0 , ĠTYPE _ CONSTRAINT S , Ġ" output _ sequence ", Ġoptional Ġ= Ġfalse , Ġon nx DataType Ġ= ĠON NX DataType . ON NX _ SEQUENCE )) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINFO Ġ= ĠOperator Info (" Split To Sequence ", ĠATTRIBUT ES _ INFO , ĠINPUT S _ INFO , ĠOUTPUT S _ INFO ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġaxis : ĠInt Ġby Ġattribute Ġ{ Ġit : ĠNumber Ġ-> Ġit . toInt () Ġ} ĊĠĠĠ Ġprivate Ġval Ġkeep Dims : ĠBoolean Ġby Ġattribute (" keep dims ") Ġ{ Ġit : ĠNumber Ġ-> Ġit . toInt () Ġ== Ġ 1 Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġapply ( context : ĠContext , Ġinputs : ĠList < KIT ensor ? >, Ġprofiling Context : ĠPro filing Context ?): ĠList < K ION NX Sequence ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġinputs . elementAt OrNull ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= Ġinputs [ 0 ] !! ĊĠĠĠĠĠĠĠ Ġval Ġtensors Ġ= Ġif Ġ( parts Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput . split With Axis ( input . data . shape [ axis ], Ġaxis , Ġkeep Dims ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput . split With Axis ( parts , Ġaxis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( K ION NX Sequence (" output _ sequence ", Ġtensors , ĠSequence TypeInfo ( tensors [ 0 ]. info ))) ĊĠĠĠ Ġ} Ċ } Ċ