luxlabs header browser preview


@class MLCOptimizer, NSSet, MLCLayer, NSMutableArray;
@protocol MLCLayerCompiling;

@interface MLCTrainingGraph : MLCGraph

@property (retain, nonatomic) MLCOptimizer *optimizer;
@property (retain, nonatomic) NSMutableArray *optimizerUpdateLayerList;
@property (retain, nonatomic) NSMutableArray *optimizerParameterList;
@property (retain, nonatomic) NSMutableArray *rootSourceGradientTensor;
@property (retain, nonatomic) NSMutableArray *lossLayersInTrainingGraph;
@property (retain, nonatomic) NSMutableArray *stopGradientTensorList;
@property (retain, nonatomic) MLCLayer<MLCLayerCompiling> *lossLayer;
@property (readonly, nonatomic) MLCLayer *dummyLayer;
@property (nonatomic) unsigned long long firstTrainableLayerIndex;
@property (nonatomic) BOOL allocateResultGradientTensors;
@property (nonatomic) BOOL allocateOptimizerData;
@property (nonatomic) BOOL updateOptimizerTimeStep;
@property (retain, nonatomic) NSSet *optimizerUpdateDeviceList;
@property (readonly, nonatomic) unsigned long long deviceMemorySize;

+ (id)graphWithGraphObjects:(id)a0 lossLayer:(id)a1 optimizer:(id)a2;

- (id)init;
- (void)dealloc;
- (id)description;
- (void).cxx_destruct;
- (BOOL)addInputs:(id)a0 lossLabels:(id)a1 lossLabelWeights:(id)a2;
- (BOOL)compileWithOptions:(unsigned long long)a0 device:(id)a1;
- (BOOL)executeWithInputsData:(id)a0 lossLabelsData:(id)a1 lossLabelWeightsData:(id)a2 batchSize:(unsigned long long)a3 options:(unsigned long long)a4 completionHandler:(id /* block */)a5;
- (BOOL)setTrainingTensorParameters:(id)a0;
- (void)synchronizeUpdates;
- (BOOL)addOutputs:(id)a0;
- (BOOL)addInputs:(id)a0 lossLabels:(id)a1;
- (id)resultTensorsForLayer:(id)a0;
- (id)gradientDataForParameter:(id)a0 layer:(id)a1;
- (BOOL)linkWithGraphs:(id)a0;
- (void)allocateGradientTensorsForLayersInGraph:(BOOL)a0;
- (BOOL)allocateGradientTensorsForMultipleChildrenOfLayer:(id)a0 gradientTensorsAreTemporary:(BOOL)a1 device:(id)a2;
- (BOOL)allocateGradientTensorsForMultipleChildrenOfSplitLayer:(id)a0 tensor:(id)a1 gradientTensorsAreTemporary:(BOOL)a2 device:(id)a3;
- (BOOL)allocateOptimizerDataForGraph;
- (BOOL)allocateRootSourceGradientTensors:(id)a0;
- (id)allocateUserGradientForTensor:(id)a0;
- (BOOL)bindOptimizerData:(id)a0 deviceData:(id)a1 withTensor:(id)a2;
- (BOOL)checkAndSumIfSharedParameterUpdateForNormalizationLayerTensor:(id)a0 layer:(id)a1 device:(id)a2 isBetaTensor:(BOOL)a3;
- (BOOL)compileAndAllocateGradientTensorsForGraph:(BOOL)a0;
- (BOOL)compileOptimizer:(id)a0;
- (BOOL)compileWithOptions:(unsigned long long)a0 device:(id)a1 inputTensors:(id)a2 inputTensorsData:(id)a3;
- (unsigned long long)deviceMemorySizeWithDevice:(id)a0;
- (void)executeForwardToLayerIndex:(unsigned long long)a0 resultTensor:(id)a1 resultStateIsTemporary:(BOOL)a2 batchSize:(unsigned long long)a3 forTraining:(BOOL)a4 executionOptions:(unsigned long long)a5;
- (BOOL)executeForwardWithBatchSize:(unsigned long long)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2;
- (BOOL)executeForwardWithBatchSize:(unsigned long long)a0 options:(unsigned long long)a1 outputsData:(id)a2 completionHandler:(id /* block */)a3;
- (void)executeGradientFromLayerIndex:(unsigned long long)a0 resultStateIsTemporary:(BOOL)a1 batchSize:(unsigned long long)a2 executionOptions:(unsigned long long)a3;
- (BOOL)executeGradientWithBatchSize:(unsigned long long)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2;
- (BOOL)executeGradientWithBatchSize:(unsigned long long)a0 options:(unsigned long long)a1 outputsData:(id)a2 completionHandler:(id /* block */)a3;
- (void)executeOptimizerUpdateWithExecutionOptions:(unsigned long long)a0;
- (BOOL)executeOptimizerUpdateWithOptions:(unsigned long long)a0 completionHandler:(id /* block */)a1;
- (BOOL)executeWithInputsData:(id)a0 lossLabelsData:(id)a1 lossLabelWeightsData:(id)a2 outputsData:(id)a3 batchSize:(unsigned long long)a4 options:(unsigned long long)a5 completionHandler:(id /* block */)a6;
- (id)gradientTensorForInput:(id)a0;
- (id)initWithGraphObjects:(id)a0 lossLayer:(id)a1 optimizer:(id)a2;
- (BOOL)isSourceTensorSharableWithResultGradientTensor:(id)a0 layer:(id)a1;
- (unsigned long long)layerIndexToStoreSummedGradientsForTensor:(id)a0;
- (void)linkRelatedGradientTensorsForConcatLayer:(id)a0 device:(id)a1;
- (void)markLayersAsTrainable;
- (BOOL)recompileWithOptions:(unsigned long long)a0;
- (id)resultGradientTensorToUseByExecuteGradientForLayer:(id)a0 sourceIndex:(unsigned long long)a1 incrementIntermediateIndex:(BOOL)a2;
- (id)resultGradientTensorsForLayer:(id)a0;
- (id)resultGradientTensorsForLayer:(id)a0 summedGradientForInputTensors:(BOOL)a1;
- (id)sourceGradientTensorsForLayer:(id)a0;
- (id)sourceTensorsForLayer:(id)a0;
- (BOOL)stopGradientForTensors:(id)a0;
- (void)sumAllRootSourceGradientTensors:(id)a0;
- (void)sumIntermediateGradientTensorsForLayer:(id)a0;
- (void)sumRootSourceGradientTensor:(id)a0 device:(id)a1;
- (void)updateIsTrainableForLayerWithStopGradientTensor:(id)a0 checkChildLayers:(BOOL)a1;
- (void)updateTrainableLayerList:(BOOL)a0;

@end