- handle full path names

git-svn-id: http://moon:8086/svn/software/trunk/projects/Rbm@661 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2019-11-12 22:17:26 +00:00
parent f610d2930e
commit f6ae6d5e16
4 changed files with 19 additions and 13 deletions
+4 -3
View File
@@ -46,6 +46,7 @@ MainComponent::MainComponent (const String prjname)
, m_trainingIndex(0) , m_trainingIndex(0)
, m_weightIndex(0) , m_weightIndex(0)
, m_toolTipWindow(this) , m_toolTipWindow(this)
, m_file(prjname)
{ {
addAndMakeVisible (trainButton = new TextButton ("Train button")); addAndMakeVisible (trainButton = new TextButton ("Train button"));
trainButton->setButtonText (TRANS("Train")); trainButton->setButtonText (TRANS("Train"));
@@ -116,7 +117,7 @@ MainComponent::MainComponent (const String prjname)
createButton->addListener (this); createButton->addListener (this);
addAndMakeVisible (projectNameLabel = new Label ("Project Name label", addAndMakeVisible (projectNameLabel = new Label ("Project Name label",
prjname)); m_file.getFileNameWithoutExtension()));
projectNameLabel->setFont (Font (15.00f, Font::plain)); projectNameLabel->setFont (Font (15.00f, Font::plain));
projectNameLabel->setJustificationType (Justification::centred); projectNameLabel->setJustificationType (Justification::centred);
projectNameLabel->setEditable (true, true, false); projectNameLabel->setEditable (true, true, false);
@@ -517,7 +518,7 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked)
int numHid = numHiddenLabel->getText().getIntValue(); int numHid = numHiddenLabel->getText().getIntValue();
if (!m_stack) if (!m_stack)
{ {
m_stack = new Stack(std::string(projectNameLabel->getText().getCharPointer())); m_stack = new Stack(m_file.getParentDirectory().getFullPathName().toStdString(), std::string(projectNameLabel->getText().getCharPointer()));
} }
m_stack->addLayer(onConstruct("Layer", next_index, numVisX, numVisY, numHid)); m_stack->addLayer(onConstruct("Layer", next_index, numVisX, numVisY, numHid));
m_rbmSelect->addItem(String(next_index), next_index+1); m_rbmSelect->addItem(String(next_index), next_index+1);
@@ -527,7 +528,7 @@ void MainComponent::buttonClicked (Button* buttonThatWasClicked)
else if (buttonThatWasClicked == loadButton) else if (buttonThatWasClicked == loadButton)
{ {
//[UserButtonCode_loadButton] -- add your button handler code here.. //[UserButtonCode_loadButton] -- add your button handler code here..
m_stack = new Stack(std::string(projectNameLabel->getText().getCharPointer())); m_stack = new Stack(m_file.getParentDirectory().getFullPathName().toStdString(), std::string(projectNameLabel->getText().getCharPointer()));
m_stack->load(this); m_stack->load(this);
m_stack->loadWeights(); m_stack->loadWeights();
m_rbmSelect->clear(dontSendNotification); m_rbmSelect->clear(dontSendNotification);
+2
View File
@@ -93,6 +93,8 @@ private:
String m_baseDir; String m_baseDir;
TooltipWindow m_toolTipWindow; TooltipWindow m_toolTipWindow;
bool m_doStop; bool m_doStop;
juce::File m_file;
void clearTraining() void clearTraining()
{ {
patterSlider->setRange(0, m_stack->numTraining()-1, 1); patterSlider->setRange(0, m_stack->numTraining()-1, 1);
+11 -9
View File
@@ -15,14 +15,16 @@
using namespace std; using namespace std;
Stack::Stack(const std::string &name) Stack::Stack(const std::string &dir, const std::string &name)
: m_name(name) : m_dir(dir)
, m_name(name)
, m_pLayers(nullptr) , m_pLayers(nullptr)
{ {
} }
Stack::Stack(const Stack& orig) Stack::Stack(const Stack& orig)
: m_name(orig.m_name) : m_dir(orig.m_dir)
, m_name(orig.m_name)
, m_pLayers(orig.m_pLayers) , m_pLayers(orig.m_pLayers)
{ {
} }
@@ -92,7 +94,7 @@ Layer* Stack::getLayer(size_t layerId) const
bool Stack::load(LayerConstructor *pLayerConstructor) bool Stack::load(LayerConstructor *pLayerConstructor)
{ {
std::cout << "Importing Project " << m_name << std::endl; std::cout << "Importing Project " << m_name << std::endl;
ifstream ifs(m_name + string(".prj")); ifstream ifs(m_dir + "/" + m_name + string(".prj"));
Json::Reader reader; Json::Reader reader;
Json::Value project; Json::Value project;
@@ -132,7 +134,7 @@ bool Stack::load(LayerConstructor *pLayerConstructor)
bool Stack::save() bool Stack::save()
{ {
std::cout << "Exporting Project " << m_name << std::endl; std::cout << "Exporting Project " << m_name << std::endl;
ofstream ofs(m_name + string(".prj")); ofstream ofs(m_dir + "/" + m_name + string(".prj"));
Json::StyledWriter writer; Json::StyledWriter writer;
Json::Value project; Json::Value project;
@@ -167,7 +169,7 @@ bool Stack::loadWeights()
Layer *pLayer = m_pLayers; Layer *pLayer = m_pLayers;
while(pLayer) while(pLayer)
{ {
if (!pLayer->loadWeights(m_name)) if (!pLayer->loadWeights(m_dir + "/" + m_name))
{ {
return false; return false;
} }
@@ -181,7 +183,7 @@ bool Stack::saveWeights()
Layer *pLayer = m_pLayers; Layer *pLayer = m_pLayers;
while(pLayer) while(pLayer)
{ {
if (!pLayer->saveWeights(m_name)) if (!pLayer->saveWeights(m_dir + "/" + m_name))
{ {
return false; return false;
} }
@@ -227,7 +229,7 @@ size_t Stack::loadTraining(bool doNormalize)
uint32_t numTraining = 0; uint32_t numTraining = 0;
uint32_t numVisible = 0; uint32_t numVisible = 0;
std::string filename = m_name + ".training.dat"; std::string filename = m_dir + "/" + m_name + ".training.dat";
FILE *pFile = fopen(filename.c_str(), "r"); FILE *pFile = fopen(filename.c_str(), "r");
if (!pFile) if (!pFile)
@@ -273,7 +275,7 @@ size_t Stack::loadTraining(bool doNormalize)
size_t Stack::saveTraining() size_t Stack::saveTraining()
{ {
std::string filename = m_name + ".training.dat"; std::string filename = m_dir + "/" + m_name + ".training.dat";
FILE *pFile = fopen(filename.c_str(), "w"); FILE *pFile = fopen(filename.c_str(), "w");
if (!pFile) if (!pFile)
+2 -1
View File
@@ -35,7 +35,7 @@ public:
class Stack class Stack
{ {
public: public:
Stack(const std::string &name); Stack(const std::string &dir, const std::string &name);
Stack(const Stack& orig); Stack(const Stack& orig);
virtual ~Stack(); virtual ~Stack();
@@ -60,6 +60,7 @@ public:
arma::mat trainingData(Layer *pLayer); arma::mat trainingData(Layer *pLayer);
private: private:
std::string m_dir;
std::string m_name; std::string m_name;
Layer *m_pLayers; Layer *m_pLayers;
arma::mat m_trainingData; arma::mat m_trainingData;