Fix the error for deleting node in MEL: 1) clean the mapping function, 2) if there is a null children, print a warning instead of a segmentation fault. Need more test when deleting a node in a recurrent loop.

This commit is contained in:
yzhang87 2015-03-25 12:34:34 -04:00
Родитель 9eb86446ff
Коммит a735f718cb
32 изменённых файлов: 36 добавлений и 1 удалений

0
Demos/Simple/MakeData.m Normal file → Executable file
Просмотреть файл

0
Demos/Simple/Simple.config Normal file → Executable file
Просмотреть файл

0
Demos/Simple/SimpleDataTest.txt Normal file → Executable file
Просмотреть файл

0
Demos/Simple/SimpleDataTrain.txt Normal file → Executable file
Просмотреть файл

0
Demos/Simple/SimpleDemoDataReference.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 177 KiB

После

Ширина:  |  Высота:  |  Размер: 177 KiB

0
Demos/Simple/SimpleDemoErrorRateReference.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

0
Demos/Simple/SimpleDemoOutputReference.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 22 KiB

0
Demos/Simple/SimpleMapping.txt Normal file → Executable file
Просмотреть файл

0
Demos/Speech/CntkTimit.scp Normal file → Executable file
Просмотреть файл

0
Demos/Speech/CntkTimitOutput.scp Normal file → Executable file
Просмотреть файл

0
Demos/Speech/ComputeConfusion.m Normal file → Executable file
Просмотреть файл

0
Demos/Speech/ConfusionData1.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

0
Demos/Speech/ConfusionData100.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 14 KiB

После

Ширина:  |  Высота:  |  Размер: 14 KiB

0
Demos/Speech/ConfusionData25.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 15 KiB

После

Ширина:  |  Высота:  |  Размер: 15 KiB

0
Demos/Speech/HCopyTimit.config Normal file → Executable file
Просмотреть файл

0
Demos/Speech/HCopyTimit.scp Normal file → Executable file
Просмотреть файл

0
Demos/Speech/ShowConfusions.m Normal file → Executable file
Просмотреть файл

0
Demos/Speech/SpeechErrorRate.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

0
Demos/Speech/TimitGetFiles.py Normal file → Executable file
Просмотреть файл

0
Demos/Speech/TimitLabels.mlf Normal file → Executable file
Просмотреть файл

0
Demos/Speech/TimitStateList.txt Normal file → Executable file
Просмотреть файл

0
Demos/Speech/TimitSubjectList.txt Normal file → Executable file
Просмотреть файл

0
Demos/Speech/TrainSimpleTimit.config Normal file → Executable file
Просмотреть файл

0
Demos/Speech/TrainSimpleTimit.sh Normal file → Executable file
Просмотреть файл

Просмотреть файл

@ -178,7 +178,14 @@ namespace Microsoft { namespace MSR { namespace CNTK {
fstream << nodePtr->NodeName() << nodePtr->ChildrenSize();
for (size_t i=0; i<nodePtr->ChildrenSize(); i++)
{
fstream << nodePtr->Inputs(i)->NodeName();
if (nodePtr->Inputs(i) == nullptr)
{
fprintf(stderr, "Warning: node %ls 's child is null, please check your ndl/mel file.\n", nodePtr->NodeName().c_str());
}
else
{
fstream << nodePtr->Inputs(i)->NodeName();
}
}
}
fstream.PutMarker(FileMarker::fileMarkerEndSection, L"ERelation");
@ -566,6 +573,34 @@ namespace Microsoft { namespace MSR { namespace CNTK {
}
nodeToDelete->DetachInputs(); //nodeToDelete is a parent
auto search = std::find(m_labels.begin(), m_labels.end(), nodeToDelete);
if (search != m_labels.end())
{
m_labels.erase(search);
}
search = std::find(m_features.begin(), m_features.end(), nodeToDelete);
if (search != m_features.end())
{
m_features.erase(search);
}
search = std::find(m_finalCriteria.begin(), m_finalCriteria.end(), nodeToDelete);
if (search != m_finalCriteria.end())
{
m_finalCriteria.erase(search);
}
search = std::find(m_evalNodes.begin(), m_evalNodes.end(), nodeToDelete);
if (search != m_evalNodes.end())
{
m_evalNodes.erase(search);
}
search = std::find(m_outputNodes.begin(), m_outputNodes.end(), nodeToDelete);
if (search != m_outputNodes.end())
{
m_outputNodes.erase(search);
}
// ? how to deal with m_recurrentInfo, when we delete a node.
//delete the node itself
m_nameToNodeMap.erase(nodeName);

0
papers/CNTK-TechReport/figures/ConfusionData1.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

0
papers/CNTK-TechReport/figures/ConfusionData100.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 14 KiB

После

Ширина:  |  Высота:  |  Размер: 14 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 177 KiB

После

Ширина:  |  Высота:  |  Размер: 177 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 22 KiB

0
papers/CNTK-TechReport/figures/SpeechErrorRate.png Normal file → Executable file
Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

0
papers/CNTK-TechReport/lyx/CNTKBook_Introduction.lyx Normal file → Executable file
Просмотреть файл