Commit f8c57160 by xiaotong

replace XLink::ShowNetwork with XNet::SHowNetwork

parent 31d989e9
...@@ -89,7 +89,7 @@ void BackwardTest() ...@@ -89,7 +89,7 @@ void BackwardTest()
c = DivDim(a, b, 0); c = DivDim(a, b, 0);
c.Dump(stderr, "c:"); c.Dump(stderr, "c:");
XLink::ShowNetwork(stderr, &c); //XLink::ShowNetwork(stderr, &c);
net.Backward(c); net.Backward(c);
......
...@@ -437,4 +437,25 @@ void XNet::ClearGrad(XTensor * node) ...@@ -437,4 +437,25 @@ void XNet::ClearGrad(XTensor * node)
} }
} }
/*
show network topology
>> file - file to dump information
>> node - pointer to the node
*/
void XNet::ShowNetwork(FILE * file, XTensor * node)
{
XList roots(1);
roots.Add(node);
Traverse(roots);
XLink::ShowNode(file, node);
/* go over nodes in its topological order */
for(int i = nodes.count - 1; i >= 0; i--){
XTensor * n = (XTensor*)nodes.Get(i);
XLink::ShowNode(file, n);
}
}
} }
\ No newline at end of file
...@@ -108,6 +108,9 @@ struct XNet ...@@ -108,6 +108,9 @@ struct XNet
/* clear the graident information if the node is no use */ /* clear the graident information if the node is no use */
void ClearGrad(XTensor * node); void ClearGrad(XTensor * node);
/* show network topology */
void ShowNetwork(FILE * file, XTensor * node);
}; };
/* we make a unique id for every tensor */ /* we make a unique id for every tensor */
......
...@@ -213,6 +213,8 @@ void T2TTrainer::Train(const char * fn, const char * validFN, const char * model ...@@ -213,6 +213,8 @@ void T2TTrainer::Train(const char * fn, const char * validFN, const char * model
ShowNTErrors("Illegal model type!"); ShowNTErrors("Illegal model type!");
} }
net.ShowNetwork(stderr, &output);
/* back-propagation for obtaining gradients */ /* back-propagation for obtaining gradients */
if (labelSmoothingP > 0) if (labelSmoothingP > 0)
LabelSmooth(&gold, &goldSmoothed, labelSmoothingP); LabelSmooth(&gold, &goldSmoothed, labelSmoothingP);
......
...@@ -126,7 +126,7 @@ void SmallTest() ...@@ -126,7 +126,7 @@ void SmallTest()
d = a + b + c.Lin(0.5F); d = a + b + c.Lin(0.5F);
XLink::CheckNetwork(&d); XLink::CheckNetwork(&d);
XLink::ShowNetwork(stderr, &d); //XLink::ShowNetwork(stderr, &d);
a.Dump(stderr, "a:"); a.Dump(stderr, "a:");
b.Dump(stderr, "b:"); b.Dump(stderr, "b:");
......
...@@ -593,21 +593,6 @@ void XLink::CheckNetwork(XTensor * root) ...@@ -593,21 +593,6 @@ void XLink::CheckNetwork(XTensor * root)
} }
/* /*
show the network encoded in a root node (tensor)
>> file - file to dump information
>> root - pointer to the root node
*/
void XLink::ShowNetwork(FILE * file, XTensor * root)
{
XLink &income = root->income;
for(int i = 0; i < income.tailNum; i++){
XTensor * child = income.tails[i];
ShowNetwork(file, child);
}
}
/*
show a node show a node
>> file - file to dump information >> file - file to dump information
>> root - pointer to the node >> root - pointer to the node
......
...@@ -178,10 +178,6 @@ struct XLink ...@@ -178,10 +178,6 @@ struct XLink
static static
void CheckNetwork(XTensor * root); void CheckNetwork(XTensor * root);
/* show the network encoded in a root node (tensor) */
static
void ShowNetwork(FILE * file, XTensor * root);
/* show a node */ /* show a node */
static static
void ShowNode(FILE * file, XTensor * node); void ShowNode(FILE * file, XTensor * node);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论