@class MPSCNNConvolutionWeightsAndBiasesState, NSString, MPSVector, MPSCNNConvolutionDescriptor, MLPDeviceHandler, NSData, MPSNNOptimizerAdam; @protocol MTLBuffer; @interface MLPModelConvolutionDataSource : NSObject @property (readonly, nonatomic) MPSNNOptimizerAdam *optimizer; @property (readonly, nonatomic) MPSVector *weightMomentumVector; @property (readonly, nonatomic) MPSVector *weightVelocityVector; @property (readonly, nonatomic) MPSVector *biasMomentumVector; @property (readonly, nonatomic) MPSVector *biasVelocityVector; @property (readonly) unsigned long long outputFeatureChannels; @property (readonly) unsigned long long inputFeatureChannels; @property (readonly) unsigned long long kernelHeight; @property (readonly) unsigned long long kernelWidth; @property (readonly) MPSCNNConvolutionDescriptor *convDesc; @property (readonly) NSString *kernelParamsBinaryName; @property (readonly) unsigned long long sizeBias; @property (readonly) unsigned long long sizeWeights; @property (readonly) unsigned int seed; @property (readonly) struct MLPModelOptimizerOptions { float adamBeta1; float adamBeta2; float adamEpsilon; float learningRate; } optimizerOptions; @property (readonly) id weightBuffer; @property (readonly) id biasBuffer; @property (readonly) MLPDeviceHandler *deviceHandler; @property (readonly) NSData *weightsInWHIOOrder; @property const void *initialWeights; @property const void *initialBias; @property (readonly, nonatomic) MPSCNNConvolutionWeightsAndBiasesState *state; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (BOOL)load; - (void)purge; - (unsigned int)dataType; - (id)copyWithZone:(struct _NSZone { } *)a0 device:(id)a1; - (id)label; - (id)descriptor; - (id).cxx_construct; - (float *)biasTerms; - (void *)weights; - (void).cxx_destruct; - (id)copyWithZone:(struct _NSZone { } *)a0; - (id)updateWithCommandBuffer:(id)a0 gradientState:(id)a1 sourceState:(id)a2; - (unsigned long long)bias_size; - (void)bootstrapBias:(id *)a0 length:(unsigned long long)a1 device:(id)a2 stdDev:(float)a3 values:(const void *)a4; - (void)bootstrapBuffer:(id)a0 length:(unsigned long long)a1 device:(id)a2 stdDev:(float)a3; - (void)bootstrapWeights:(id *)a0 length:(unsigned long long)a1 device:(id)a2 stdDev:(float)a3 values:(const void *)a4; - (void)checkpointWithCommandQueue:(id)a0; - (id)initWithKernelWidth:(unsigned long long)a0 kernelHeight:(unsigned long long)a1 inputFeatureChannels:(unsigned long long)a2 outputFeatureChannels:(unsigned long long)a3 stride:(unsigned long long)a4 kernelParamsBinaryName:(id)a5 initialWeights:(const void *)a6 initialBias:(const void *)a7 deviceHandler:(id)a8 optimizerOptions:(struct MLPModelOptimizerOptions { float x0; float x1; float x2; float x3; })a9; - (id)updateWithCommandBuffer:(id)a0 gradientState:(id)a1; - (unsigned long long)weight_size; @end