Beispiel #1
0
void StandardPcaVlatBuilder::process(FeatureListRef features){
    for (int i = 0; i < features->size(); i++) {
        const float* data = (*features)[i];
        
        size_t cMin = matrix_argmin_l2_float(data,center->data(),center->dim(),center->size());
        
        clusters[cMin]->add(data, features->dim());
    }
}
Beispiel #2
0
JNIEXPORT jobject JNICALL Java_retin_feature_vlat_StandardPcaVlatBuilder_runNativeGenerator
  (JNIEnv *env, jobject thisObject, jobject nativePointerObj, jstring keyObj, jint degre, jstring formatObj){
    RETIN_JAVA_METHOD_BEGIN

    JavaEnv je(env);
    string key = je.createString(keyObj);
    
    FeatureListRef centers = je.getDocumentField<FeatureList> (thisObject,"centers");

    vector<FeatureListRef> tensors; 
    je.getDocumentField<FeatureList> (tensors,thisObject,"tensors");

    vector<MatrixRef> vectors;
    je.getDocumentField<Matrix> (vectors,thisObject,"vectors");

    vector<MatrixRef> values;
    je.getDocumentField<Matrix> (values,thisObject,"values");

    vector<IntegerRef> dims;
    je.getDocumentField<retin::Integer> (dims,thisObject,"dims");

    jboolean whitening = je.getField<jboolean>(thisObject,"whitening");
            
    string format = je.createString(formatObj);
    
    
    NativePointerRef instance = je.createDocument<NativePointer>(nativePointerObj);
    NativeDocumentGenerator *ngd = instance->getPointerAs<NativeDocumentGenerator>();

    FeatureListRef features = boost::static_pointer_cast<FeatureList>(ngd->computeDocument(key));

    StandardPcaVlatBuilder vlat(centers, tensors, vectors, values, dims, 
            whitening, centers->size(), degre);

    vlat.process(features);
    
    return je.createObject (vlat.getVlat(format));
    
    RETIN_JAVA_METHOD_END
    return NULL;
}
Beispiel #3
0
JNIEXPORT jobject JNICALL Java_retin_feature_vlat_StandardPcaVlatBuilder_run
  (JNIEnv * env, jobject thisObj, jobject input, jint degre, jstring formatObj)
{
    RETIN_JAVA_METHOD_BEGIN

    JavaEnv je(env);

    FeatureListRef centers = je.getDocumentField<FeatureList> (thisObj,"centers");

    vector<FeatureListRef> tensors; 
    je.getDocumentField<FeatureList> (tensors,thisObj,"tensors");

    vector<MatrixRef> vectors;
    je.getDocumentField<Matrix> (vectors,thisObj,"vectors");

    vector<MatrixRef> values;
    je.getDocumentField<Matrix> (values,thisObj,"values");

    vector<IntegerRef> dims;
    je.getDocumentField<retin::Integer> (dims,thisObj,"dims");

    jboolean whitening = je.getField<jboolean>(thisObj,"whitening");
            
    string format = je.createString(formatObj);
    
    StandardPcaVlatBuilder vlat(centers, tensors, vectors, values, dims, 
            whitening, centers->size(), degre);

    FeatureListRef features = je.createDocument<FeatureList> (input);;
    
    vlat.process(features);
    
    return je.createObject (vlat.getVlat(format));

    RETIN_JAVA_METHOD_END
    return NULL;
}
Beispiel #4
0
JNIEXPORT jobject JNICALL Java_retin_feature_vlat_SparseVlatBuilder_runNativeGenerator
  (JNIEnv *env, jobject thisObject, jobject nativePointerObj, jstring keyObj, jint degre, jstring formatObj){
    RETIN_JAVA_METHOD_BEGIN

    JavaEnv je(env);
    string key = je.createString(keyObj);
    
    FeatureListRef centers = je.getDocumentField<FeatureList> (thisObject,"centers");

    vector<FeatureListRef> tensors; 
    je.getDocumentField<FeatureList> (tensors,thisObject,"tensors");
    
    vector<FloatMatrixRef> Ls; je.getDocumentField<FloatMatrix> (Ls,thisObject,"Ls");
    vector<FloatMatrixRef> Ps; je.getDocumentField<FloatMatrix> (Ps,thisObject,"Ps");
           
    string format = je.createString(formatObj);
    
    
    NativePointerRef instance = je.createDocument<NativePointer>(nativePointerObj);
    NativeDocumentGenerator *ngd = instance->getPointerAs<NativeDocumentGenerator>();
    
    FeatureListRef features = boost::static_pointer_cast<FeatureList>(ngd->computeDocument(key));
    
    SparseVlatBuilder vlat(degre,centers->size(),centers->dim());
    vlat.setCenters(centers->data(),centers->size(),centers->dim());
    for (int d=0;d<degre;d++) {
        FeatureListRef tensor = tensors[d];
        vlat.setMeanTensors(d+1,tensor->data(),tensor->size(),tensor->dim());
    }
    for (int i=0;i<Ls.size();i++) {
        vlat.setEigenDecomposition(i, Ps[i]->data(), Ls[i]->data(), Ps[i]->vectorSize(), Ps[i]->vectorCount());
    }
    
    vlat.setSparsityOn(je.getField<jint>(thisObject,"sparsityOn"));
    vlat.setSparsityStrategy(je.getField<jint>(thisObject,"sparsityStrategy"));
    vlat.setDimSparsity(je.getField<jint>(thisObject,"sparsityDim"));
    vlat.setEnergySparsity(je.getField<jfloat>(thisObject,"sparsityEnergy"));

    vlat.process(features->data(),features->size(),features->dim());

    FeatureRef outputRef = boost::make_shared<Feature>(vlat.getVlatDim(format));
    vlat.getVlat(outputRef->data(),format);

    return je.createObject (outputRef);
    
    RETIN_JAVA_METHOD_END
    return NULL;
}
Beispiel #5
0
JNIEXPORT jobject JNICALL Java_retin_feature_vlat_PackedVlatBuilder_run
  (JNIEnv * env, jobject thisObj, jobject inputObj, jint degre, jdouble mse)
{
    RETIN_JAVA_METHOD_BEGIN

    JavaEnv je(env);
    FeatureListRef centers = je.getDocumentField<FeatureList> (thisObj,"centers");
    vector<FeatureListRef> tensors; je.getDocumentField<FeatureList> (tensors,thisObj,"tensors");

    PackedVlatBuilder builder(degre,centers->size(),centers->dim());
    builder.setCenters(centers->data(),centers->size(),centers->dim());
    for (int d=0;d<degre;d++) {
        FeatureListRef tensor = tensors[d];
        builder.setMeanTensors(d+1,tensor->data(),tensor->size(),tensor->dim());
    }

    FeatureListRef input = je.createDocument<FeatureList > (inputObj);
    builder.process(input->data(),input->size(),input->dim());

    auto_ptr<PackedVlat> pvlat (builder.createPackedVlat(mse));
    PackedVlatDocumentRef outputRef = boost::make_shared<PackedVlatDocument>(pvlat.get());
    return je.createObject (outputRef);

    RETIN_JAVA_METHOD_END
    return NULL;
}