Named PCA, MLPs, UMAP

nix
Owen Green 4 years ago
parent ec7409ebf9
commit b227f42875

@ -1,4 +1,4 @@
FluidMLPRegressor : FluidRealTimeModel {
FluidMLPRegressor : FluidModelObject {
const <identity = 0;
const <sigmoid = 1;
@ -23,7 +23,7 @@ FluidMLPRegressor : FluidRealTimeModel {
}
prGetParams{
^[this.hidden.size] ++ this.hidden ++ [this.activation, this.outputActivation, this.tapIn, this.tapOut, this.maxIter, this.learnRate, this.momentum, this.batchSize, this.validation, -1, -1]
^[this.id, this.hidden.size] ++ this.hidden ++ [this.activation, this.outputActivation, this.tapIn, this.tapOut, this.maxIter, this.learnRate, this.momentum, this.batchSize, this.validation]
}
clearMsg{ ^this.prMakeMsg(\clear, id) }
@ -72,17 +72,28 @@ FluidMLPRegressor : FluidRealTimeModel {
this.tapIn_(tapIn).tapOut_(tapOut);
params = this.prGetParams.drop(-2) ++ [this.prEncodeBuffer(inputBuffer),
this.prEncodeBuffer(outputBuffer)];
params = [this.prEncodeBuffer(inputBuffer),
this.prEncodeBuffer(outputBuffer),this.tapIn,this.tapOut];
^FluidMLPRegressorQuery.kr(K2A.ar(trig),this, *params);
^FluidMLPRegressorQuery.kr(trig,this, *params);
}
}
FluidMLPRegressorQuery : FluidRTQuery {}
FluidMLPRegressorQuery : FluidRTMultiOutUGen {
*kr{ |trig, model, inputBuffer,outputBuffer, tapIn = 0, tapOut = -1|
^this.multiNew('control',trig, model.asUGenInput,
tapIn, tapOut,
inputBuffer.asUGenInput, outputBuffer.asUGenInput)
}
init { arg ... theInputs;
inputs = theInputs;
^this.initOutputs(1, rate);
}
}
FluidMLPClassifier : FluidRealTimeModel {
FluidMLPClassifier : FluidModelObject {
const <identity = 0;
const <sigmoid = 1;
@ -103,7 +114,7 @@ FluidMLPClassifier : FluidRealTimeModel {
}
prGetParams{
^[ this.hidden.size] ++ this.hidden ++ [this.activation, this.maxIter, this.learnRate, this.momentum, this.batchSize, this.validation, -1, -1];
^[this.id, this.hidden.size] ++ this.hidden ++ [this.activation, this.maxIter, this.learnRate, this.momentum, this.batchSize, this.validation];
}
clearMsg{ ^this.prMakeMsg(\clear,id) }
@ -142,11 +153,21 @@ FluidMLPClassifier : FluidRealTimeModel {
kr{|trig, inputBuffer,outputBuffer|
var params = this.prGetParams.drop(-2) ++ [this.prEncodeBuffer(inputBuffer),
var params = [this.prEncodeBuffer(inputBuffer),
this.prEncodeBuffer(outputBuffer)];
^FluidMLPClassifierQuery.kr(K2A.ar(trig),this, *params);
^FluidMLPClassifierQuery.kr(trig,this, *params);
}
}
FluidMLPClassifierQuery : FluidRTQuery {}
FluidMLPClassifierQuery : FluidRTMultiOutUGen {
*kr{ |trig, model, inputBuffer,outputBuffer|
^this.multiNew('control',trig, model.asUGenInput,
inputBuffer.asUGenInput, outputBuffer.asUGenInput)
}
init { arg ... theInputs;
inputs = theInputs;
^this.initOutputs(1, rate);
}
}

@ -1,4 +1,4 @@
FluidPCA : FluidRealTimeModel{
FluidPCA : FluidModelObject{
var <>numDimensions;
@ -7,7 +7,7 @@ FluidPCA : FluidRealTimeModel{
}
prGetParams{
^[numDimensions,-1,-1];
^[this.id, numDimensions];
}
fitMsg{|dataSet|
@ -55,9 +55,20 @@ FluidPCA : FluidRealTimeModel{
numDimensions = numDimensions ? this.numDimensions;
this.numDimensions_(numDimensions);
^FluidPCAQuery.kr(K2A.ar(trig),this, this.numDimensions, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer));
^FluidPCAQuery.kr(trig ,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.numDimensions);
}
}
FluidPCAQuery : FluidRTQuery {}
FluidPCAQuery : FluidRTMultiOutUGen {
*kr{ |trig, model, inputBuffer,outputBuffer,numDimensions|
^this.multiNew('control',trig, model.asUGenInput,
numDimensions,
inputBuffer.asUGenInput, outputBuffer.asUGenInput)
}
init { arg ... theInputs;
inputs = theInputs;
^this.initOutputs(1, rate);
}
}

@ -1,4 +1,4 @@
FluidUMAP : FluidRealTimeModel {
FluidUMAP : FluidModelObject {
var <>numDimensions, <>numNeighbours, <>minDist, <>iterations, <>learnRate;
@ -13,12 +13,12 @@ FluidUMAP : FluidRealTimeModel {
prGetParams{
^[
this.id,
this.numDimensions,
this.numNeighbours,
this.minDist,
this.iterations,
this.learnRate,
-1,-1
]
}
@ -68,13 +68,8 @@ FluidUMAP : FluidRealTimeModel {
numDimensions = numDimensions ? this.numDimensions;
this.numDimensions_(numDimensions);
^FluidUMAPQuery.kr(K2A.ar(trig),
^FluidUMAPQuery.kr(trig,
this,
this.numDimensions,
this.numNeighbours,
this.minDist,
this.iterations,
this.learnRate,
this.prEncodeBuffer(inputBuffer),
this.prEncodeBuffer(outputBuffer));
}
@ -84,4 +79,14 @@ FluidUMAP : FluidRealTimeModel {
size { |action|}
}
FluidUMAPQuery : FluidRTQuery {}
FluidUMAPQuery : FluidRTMultiOutUGen {
*kr{ |trig, model, inputBuffer,outputBuffer|
^this.multiNew('control',trig, model.asUGenInput,
inputBuffer.asUGenInput, outputBuffer.asUGenInput)
}
init { arg ... theInputs;
inputs = theInputs;
^this.initOutputs(1, rate);
}
}

@ -47,14 +47,25 @@ PluginLoad(FluidSTFTUGen)
makeSCWrapper<NRTThreadedRobustScaleClient>("FluidRobustScale",ft);
makeSCWrapper<RTRobustScaleQueryClient>("FluidRobustScaleQuery",ft);
makeSCWrapper<NRTThreadedStandardizeClient>("FluidStandardize",ft);
makeSCWrapper<RTStandardizeQueryClient>("FluidStandardizeQuery",ft);
makeSCWrapper<RTPCAClient>("FluidPCA",ft);
makeSCWrapper<NRTThreadedPCAClient>("FluidPCA",ft);
makeSCWrapper<RTPCAQueryClient>("FluidPCAQuery",ft);
makeSCWrapper<NRTThreadedMDSClient>("FluidMDS",ft);
makeSCWrapper<RTUMAPClient>("FluidUMAP",ft);
makeSCWrapper<NRTThreadedUMAPClient>("FluidUMAP",ft);
makeSCWrapper<RTUMAPQueryClient>("FluidUMAPQuery",ft);
makeSCWrapper<NRTThreadedDataSetWriter>("FluidDataSetWr", ft);
makeSCWrapper<RTMLPRegressorClient>("FluidMLPRegressor",ft);
makeSCWrapper<RTMLPClassifierClient>("FluidMLPClassifier",ft);
makeSCWrapper<NRTThreadedMLPRegressorClient>("FluidMLPRegressor",ft);
makeSCWrapper<RTMLPRegressorQueryClient>("FluidMLPRegressorQuery",ft);
makeSCWrapper<NRTThreadedMLPClassifierClient>("FluidMLPClassifier",ft);
makeSCWrapper<RTMLPClassifierQueryClient>("FluidMLPClassifierQuery",ft);
makeSCWrapper<NRTThreadedGridClient>("FluidGrid",ft);
}

Loading…
Cancel
Save