@class NSArray, NSMutableDictionary, NSDictionary, MLCDevice, NSMutableArray, NSString; @interface MLCGraph : NSObject @property (nonatomic) BOOL readyForExecution; @property (readonly, retain, nonatomic) NSArray *graphObjects; @property (nonatomic) unsigned long long nextLayerID; @property (retain, nonatomic) NSMutableArray *graphLayerList; @property (retain, nonatomic) NSMutableArray *rootLevelTensorNodes; @property (retain, nonatomic) NSMutableDictionary *layerParentMap; @property (retain, nonatomic) NSMutableDictionary *layerChildMap; @property (retain, nonatomic) NSDictionary *allInputs; @property (retain, nonatomic) NSDictionary *allLossLabels; @property (retain, nonatomic) NSDictionary *allLossLabelWeights; @property (retain, nonatomic) NSDictionary *allOutputs; @property (retain, nonatomic) NSMutableArray *lstmLayerIndexList; @property (nonatomic) BOOL recompileAfterLinking; @property (nonatomic) unsigned long long compilerOptions; @property (nonatomic) BOOL staticBatchSizeInGraph; @property (retain, nonatomic) MLCDevice *device; @property (nonatomic) BOOL allocateDeviceMemoryForTensorsInGraph; @property (retain, nonatomic) NSMutableArray *freeResourceList; @property (readonly, nonatomic) NSArray *layers; @property (readonly, nonatomic) NSString *summarizedDOTDescription; + (id)graph; + (id)graphWithGraphObjects:(id)a0; - (id)init; - (void)dealloc; - (id)description; - (void).cxx_destruct; - (BOOL)addInputs:(id)a0 lossLabels:(id)a1 lossLabelWeights:(id)a2; - (id)nodeWithLayer:(id)a0 source:(id)a1; - (BOOL)addOutputs:(id)a0; - (BOOL)addInputs:(id)a0 lossLabels:(id)a1; - (id)nodeWithLayer:(id)a0 sources:(id)a1; - (id)nodeWithLayer:(id)a0 sources:(id)a1 disableUpdate:(BOOL)a2; - (id)resultTensorsForLayer:(id)a0; - (void)enumerateLayersUsingBlock:(id /* block */)a0; - (id)transposeWithDimensions:(id)a0 source:(id)a1; - (void)updateLSTMLayersForVariableSequenceLengthInGraph:(id)a0 withInputData:(id)a1; - (void)addGraphNodes:(id)a0 withControlTreeNode:(id)a1; - (void)allocateDeviceMemoryForTensor:(id)a0 device:(id)a1; - (BOOL)bindAndWriteData:(id)a0 forInputs:(id)a1 toDevice:(id)a2 batchSize:(unsigned long long)a3 synchronous:(BOOL)a4; - (BOOL)bindAndWriteData:(id)a0 forInputs:(id)a1 toDevice:(id)a2 batchSize:(unsigned long long)a3 synchronous:(BOOL)a4 skipWrite:(BOOL)a5; - (BOOL)bindAndWriteData:(id)a0 forInputs:(id)a1 toDevice:(id)a2 synchronous:(BOOL)a3; - (void)checkAndResetTensorsAssociatedWithLayer:(id)a0 sources:(id)a1; - (BOOL)checkPageAlignmentAndSizeForOutputs:(id)a0; - (BOOL)checksBeforeAddLayerInGraph:(id)a0 sources:(id)a1 forTraining:(BOOL)a2; - (id)concatenateWithSources:(id)a0 dimension:(unsigned long long)a1; - (id)conditionalWithPredicate:(id)a0 trueBranch:(id)a1 falseBranch:(id)a2; - (id)createGradientSourceTensorWith:(id)a0 source:(id)a1; - (id)createLossGradientSourceTensorWith:(id)a0 source:(id)a1 batchSize:(id)a2; - (id)createTensorWith:(id)a0 sources:(id)a1; - (void)createVariableLengthSequenceTensorsForLayer:(id)a0 withVariableSequenceLength:(id)a1; - (BOOL)dispatchReadsForMultipleTensorOutputs:(id)a0 finalTensorInGraph:(id)a1 finalResultTensor:(id)a2 batchSize:(unsigned long long)a3; - (void)enumerateInputsUsingBlock:(id /* block */)a0; - (void)enumerateOutputsUsingBlock:(id /* block */)a0; - (void)flattenConditionalLayer:(id)a0; - (void)freeDeviceMemoryForTensorIfSafe:(id)a0 device:(id)a1; - (id)gatherWithDimension:(unsigned long long)a0 source:(id)a1 indices:(id)a2; - (id)initWithGraphObjects:(id)a0; - (void)insertPhis:(id)a0; - (BOOL)isLayerInGraphLayerList:(id)a0 graphLayerList:(id)a1; - (void)linkRelatedTensorsForConcatLayer:(id)a0 device:(id)a1; - (void)linkSourceTensorsWithLayer:(id)a0 sources:(id)a1; - (id)nodeWithLayer:(id)a0 sources:(id)a1 forTraining:(BOOL)a2; - (id)nodeWithLayer:(id)a0 sources:(id)a1 lossLabels:(id)a2; - (id)nodeWithMultiOutputLayer:(id)a0 source:(id)a1 forTraining:(BOOL)a2; - (id)reshapeWithShape:(id)a0 source:(id)a1; - (id)resultTensorsForLayer:(id)a0 graphLayerList:(id)a1; - (id)scatterWithDimension:(unsigned long long)a0 source:(id)a1 indices:(id)a2 copyFrom:(id)a3 reductionType:(int)a4; - (id)selectWithSources:(id)a0 condition:(id)a1; - (id)sourceTensorsForLayer:(id)a0; - (id)sourceTensorsForLayer:(id)a0 graphLayerList:(id)a1; - (id)splitWithSource:(id)a0 splitCount:(unsigned long long)a1 dimension:(unsigned long long)a2; - (id)splitWithSource:(id)a0 splitSectionLengths:(id)a1 dimension:(unsigned long long)a2; - (void)updateDeviceMemoryReadCountForGradientWithLayer:(id)a0 tensor:(id)a1 checkIfSourceNeeded:(BOOL)a2 checkIfResultNeeded:(BOOL)a3; - (void)updateDeviceMemoryReadCountForTensor:(id)a0; - (void)updateOutputTensorsDeviceMemoryWithData:(id)a0; - (void)writeAsyncToDevice:(id)a0 dataForTensors:(id)a1; @end