Speed-up evaluateion of class entropy node

This commit is contained in:
kaisheny 2015-02-24 17:29:04 -08:00
Родитель 5121e2568b
Коммит f6559fb1bb
1 изменённых файлов: 5 добавлений и 6 удалений

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

@ -1041,6 +1041,10 @@ namespace Microsoft { namespace MSR { namespace CNTK {
clsLogSoftmax.Resize(input_cls_log_post_prob.GetNumRows(), nT);
clsSoftmax.Resize(input_cls_log_post_prob.GetNumRows(), nT);
clsLogSoftmax = input_cls_log_post_prob;
clsLogSoftmax.InplaceLogSoftmax(true); /// 50 x nT
clsSoftmax.AssignExpOf(clsLogSoftmax);
/// loop over time
functionValues.SetValue(0);
sz = 0;
@ -1075,12 +1079,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
Matrix<ElemType>::AddElementToElement(logSoftMax_t, 0, idx_in_class, functionValues, 0, 0);
/// add the class log posterior probability
Matrix<ElemType> clsLogSoftmax_t = clsLogSoftmax.ColumnSlice(t, 1);
clsLogSoftmax_t.SetValue(input_cls_log_post_prob.ColumnSlice(t, 1));
clsLogSoftmax_t.InplaceLogSoftmax(true); /// 50 x 1
Matrix<ElemType> clsSoftmax_t = clsSoftmax.ColumnSlice(t, 1);
clsSoftmax_t.AssignExpOf(clsLogSoftmax_t);
Matrix<ElemType>::AddElementToElement(clsLogSoftmax_t, c_t, 0, functionValues, 0, 0);
Matrix<ElemType>::AddElementToElement(clsLogSoftmax, c_t, t, functionValues, 0, 0);
sz += nbr_wrd;
}