Medial Code Documentation
Loading...
Searching...
No Matches
EmbeddingGenerator.h
1#pragma once
3#include <MedEmbed/MedEmbed/MedEmbed.h>
4#include <MedEmbed/MedEmbed/ApplyKeras.h>
5#include <MedSparseMat/MedSparseMat/MedSparseMat.h>
6
7//
8// Allow the usage of a trained embedding to generate features
9// needed are the .scheme and .layers file created using the Embedding app and Keras script.
10// This version only APPLIES and does not LEARN the embedding.
11//
12
14public:
15
16 // Feature Descrption
17 string signalName;
18 int signalId;
19
20 // parameters
21 string f_scheme = "";
22 string f_layers = "";
23
24 // serialized parameters
25 string name_prefix = "Embedding"; // used when naming the features, names will be FTR_<i>.<name_prefix>.col_<j>
26 int to_layer = 9; // default embedding layer in our keras generated models
27
28 // basic embedding structures, serialized (init from scheme, layers files upon creation from init() )
30 ApplyKeras embedder;
31
32 // helper variables
33 int e_dim = 0; // we get it from embedder, but serialize it for simpler code
34
35
36 // Signal to determine allowed time-range (e.g. current stay/admission for inpatients)
37
38 // Constructor/Destructor
41
44 int init(map<string, string>& mapper);
45 //void init_defaults();
46
47 // Naming
48 void set_names();
49
50 // preparing a batch result of model results if an internal MedModel generator is used
51 void prepare(MedFeatures & features, MedPidRepository& rep, MedSamples& samples);
52
53 // Learn a generator
54 int _learn(MedPidRepository& rep, const MedSamples& samples, vector<RepProcessor *> processors);
55
56 // generate a new feature
57 int _generate(PidDynamicRec& rec, MedFeatures& features, int index, int num, vector<float *> &_p_data);
58
59 int generate_by_rec(PidDynamicRec& rec, MedFeatures& features, int index, int num, vector<float *> &_p_data);
60
61 // Signal Ids
62 void set_signal_ids(MedSignals& sigs);
63
64 // Init required tables
65 void init_tables(MedDictionarySections& dict);
66
67 void get_required_signal_categories(unordered_map<string, vector<string>> &signal_categories_in_use) const;
68
69 // in case of selection
70 int filter_features(unordered_set<string>& validFeatures) { return 1; }; // TODO: improve to push only selected columns
71
72 // Serialization
73 ADD_CLASS_NAME(EmbeddingGenerator)
74 ADD_SERIALIZATION_FUNCS(generator_type, tags, names, req_signals, signalName, iGenerateWeights, name_prefix, to_layer, e_dim, emc, embedder)
75};
76
FeatureGenerator : creating features from raw signals.
#define ADD_SERIALIZATION_FUNCS(...)
Definition SerializableObject.h:122
#define MEDSERIALIZE_SUPPORT(Type)
Definition SerializableObject.h:108
Definition ApplyKeras.h:82
Definition MedEmbed.h:155
Definition EmbeddingGenerator.h:13
int init(map< string, string > &mapper)
The parsed fields from init command.
Definition EmbeddingGenerator.cpp:14
int filter_features(unordered_set< string > &validFeatures)
summary> prints summary of generator job.
Definition EmbeddingGenerator.h:70
void get_required_signal_categories(unordered_map< string, vector< string > > &signal_categories_in_use) const
returns for each used signal it's used categories
Definition EmbeddingGenerator.cpp:87
Definition FeatureGenerator.h:53
int iGenerateWeights
Feature/Weights generator.
Definition FeatureGenerator.h:72
vector< string > tags
Tags - for defining labels or groups. may be used later for filtering for example.
Definition FeatureGenerator.h:69
FeatureGeneratorTypes generator_type
Type.
Definition FeatureGenerator.h:57
vector< string > names
Feature name.
Definition FeatureGenerator.h:60
Definition MedDictionary.h:87
A class for holding features data as a virtual matrix
Definition MedFeatures.h:47
Definition MedPidRepository.h:87
MedSamples represent a collection of samples per different id The data is conatined in a vector of ...
Definition MedSamples.h:129
Definition MedSignals.h:719
Definition MedPidRepository.h:127