https://github.com/Microsoft/CNTK

sort by:
Revision Author Date Message Commit Date
37ddc86 License change 18 January 2016, 08:36:41 UTC
5eb94a7 added CNTKMathCUDA to delay load versions, added post-build step to copy cublas64_*.dll to output folder 15 October 2015, 17:35:09 UTC
5d1a049 bug fix on exportdbn, added MKL support for Debug builds 30 September 2015, 00:20:42 UTC
8f7b835 change Math project to use MKL and port exportdbn functionality to public version 29 September 2015, 23:31:38 UTC
719726d Fixed a reader bug introduced as part of the sequence training code causing few residual frames at the end of the epoch to be dropped for truncated BPTT scenario 29 September 2015, 07:57:45 UTC
f2f70d0 Properly conditionalize some SequenceTraining specific code 29 September 2015, 07:03:08 UTC
0fed695 Address some CR feedback for Sequence Trainign code 29 September 2015, 02:51:34 UTC
4e7b920 Add some logging to be used by Philly 29 September 2015, 01:04:10 UTC
c16d65d Applied a base class function name change to the sequence trainign node 28 September 2015, 18:47:28 UTC
6cfd66c Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining 28 September 2015, 18:39:54 UTC
caf1dd8 1) Fixed a bug introduced by recent refactoring due to a missing required function call for MBLayout inference in SequenceTrainign criterion node 2) Change initialization of gammacalc object in sequence trainign node to be done lazily in the Evaluate function 28 September 2015, 18:36:51 UTC
5f048e7 bug fix in PlusNode prototypical reduced implementation: that original Resize() was wrong, and we do need to resize the MB beforehand (currently added the code directly into PlusNode::EvaluateThisNode()) 27 September 2015, 06:45:56 UTC
be8f310 ComputationNode::DataSlice() now ignores frameRange if the node has no MB layout (i.e. in that case it always returns the full matrix); PlusNode::EvaluateThisNode() re-implemented based on this--3 lines, and now we could also merge EvaluateThisNodeS() into it 27 September 2015, 06:21:32 UTC
9c7927c removed 'static' and 'WINAPI" from all ComputeInputPartialS() and EvaluateThisNodeS() (with exception of TimesNode, since StrideTimesNode calls TimesNode's static functions--better do this with inheritance); as a prototype, removed EvaluateThisNodeMap() from PlusNode 27 September 2015, 05:53:09 UTC
57a4ab0 renamed various function re the 'NodesReqMultiSeqHandling' config flag: NeedToMaskMissingColumnsToZero() -> IsNodeReqMultiSeqHandling(), EvaluateThisNodeGivenInputs2() -> MaskMissingValuesColumnsToZero(); and likewise also split the masking part off ComputeGradientValuesForChildren() -> MaskMissingGradientColumnsToZero(); ComputationNode::m_maskMissingColumnsToZero, SetMaskMissingColumnsToZero(), and NeedToMaskMissingColumnsToZero() gone 27 September 2015, 05:16:41 UTC
3fcbe72 the function of ComputationNode::m_maskMissingColumnsToZero, which only caches whether a node is included in ComputationNetwork::m_requestNodesMultiSeqHandling, was replaced by having the Network check m_requestNodesMultiSeqHandling explicitly, then call the mask function explicitly. This check-in has not yet renamed the functions, which will happen next 26 September 2015, 22:54:23 UTC
117e8fd removed special case of EvaluateThisNode() in SoftmaxNode, which seemed unnecessary 26 September 2015, 22:26:51 UTC
327a70f ComputationNode cleanup: corrected a few Base declarations, and using Base() in constructor forwarding; added 'override' to most virtual functions; for regular classes, renamed virtual EvaluateThisNode() to non-virtual EvaluateThisNodeMap() (since it applies the network map-style to all input frames) and added code to call it from EvaluateThisNode(Framerange&) if the frame range specifies the whole batch (in expectation that most of those can be deleted since their function is already implemented by the FrameRange version through DataSlice()); for classes that derive from ComputationNodeNonLooping, renamed EvaluateThisNode(void) to EvaluateThisNodeNonLooping() (that's what those nodes must override), which is called only after verifying that the FrameRange specifies the whole minibatch; deleted EvaluateThisNode() as well from the interface; changed remaining legit calls to EvaluateThisNode() to EvaluateThisNode(FrameRange()); deleted BatchModeNode's EvaluateThisNode() (which was both weird and unused since it was overriden by the only user of this abstract base class); removed virtual RequiresBatchMode() since it is never used 26 September 2015, 22:15:37 UTC
768e77e Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining 26 September 2015, 20:22:45 UTC
c92998f Fixed CPUONLY build for sequence trainign code 26 September 2015, 20:15:10 UTC
e2f58ac (fixed a warning in Release mode) 26 September 2015, 19:38:09 UTC
9190a6b (fixed a compiler warning) 26 September 2015, 15:46:24 UTC
35a5b23 (bit of cleanup in Matrix, not completed) 26 September 2015, 15:38:32 UTC
7cfeeb0 removed checks of m_children.size() in Validate(), as this is now guaranteed by AttachInputs() through NumInputs<N> 26 September 2015, 08:55:17 UTC
b93e4d9 base Validate() now tests for NULL pointers amongst the children 26 September 2015, 08:33:19 UTC
9beaf3a typo in RowSliceNode, should be NumInputs<1> 26 September 2015, 08:14:33 UTC
38b0960 moved NewThis() and OperationName() into a new macro UsingComputationNodeMembersBoilerplate (and deleted the 51 copies of them) 26 September 2015, 08:09:25 UTC
b6015cf cleaned up AttachInputs(): the six virtuals no longer exist in ComputationNode<ElemType>. They do still exist in ComputationNodeBase for compat, where they just package their inputs into a vector, and call the vector version; ComputationNode<ElemType>::Attachinputs() only exists in a vector version. This version checks the number of inputs against a mix-in class NumInputs<N> that each node implementation should also derive from (except nodes without fixed number of inputs); all AttachInputs() overrides in node implementations are gone (and we should also remove all further range checks in node implementations now, after this check-in though); all NewThis() implementations now return ComputationNodeBase* instead of ComputationNode<ElemType>*, that might have been wrong actually; added class-header comments before every node implementation now for easier navigation. That header now also lists the inputs of the node; all ComputationNode implementations' base constructor calls chnged to Base(,...) 26 September 2015, 07:02:51 UTC
7fb0b8e Fixed a ProcessExit crash due to an unused global STL container instance 26 September 2015, 05:36:05 UTC
7099f3d (comments) 26 September 2015, 03:24:22 UTC
7277e1f Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining Conflicts: Common/Include/DataReader.h DataReader/HTKMLFReader/HTKMLFReader.cpp MachineLearning/CNTKSGDLib/SGD.cpp 26 September 2015, 01:19:48 UTC
60cf4b7 Replace snprintf calls with sprintf for SequenceTraining code 26 September 2015, 00:38:07 UTC
e736be8 Port the Sequence trainign code to Linux 26 September 2015, 00:22:58 UTC
55c57af cleaned up MBLayout: now separates the question of the MB being sequential or not from the matrix memory allocation. There are now explicit variables for time steps, parallel sequences, and whether it is sequential. Meanwhile, memory allocation of the matrix/vector happen lazily once the first non-zero bit is set; when an MBLayout is created or reset with Init(), the caller must say whether the minibatch is sequential (requires sentence handling) or not (specifically HTKMLFReader, as it supports both kinds); MBLayout::GetSize() is gone (it was redundant) 25 September 2015, 23:24:02 UTC
6878fa4 fixed a few small refactorings in EvalReader.h that I had missed 25 September 2015, 21:55:23 UTC
a03dd57 bug fix: DataReader<ElemType>::RequireSentenceSeg() was missing, and thus falling back to default which always returns false 25 September 2015, 21:35:00 UTC
1c558f6 replaced all standard uses of GetMinibatch() by GetMinibatchIntoNetwork(); GetMinibatchIntoNetwork() first arg changed from * to &, plus some cleanup 25 September 2015, 20:56:43 UTC
f99866d fixed some broken file paths (left-overs of moving stuff to different directories) 25 September 2015, 20:36:25 UTC
87dba66 created a new helper class DataReaderHelpers that knows about both DataReader, ComputationNetwork, and MPI. Moved DecimateMinibatchWithSentences() and GetMinibatchIntoNetwork() from SGD.cpp here to make them accessible to SimpleEvaluator.h and SimpleOutputWriter.h 25 September 2015, 20:29:52 UTC
02eb628 Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining Conflicts: MachineLearning/CNTKSGDLib/SGD.cpp 25 September 2015, 20:29:33 UTC
739af8c (comments) 25 September 2015, 20:14:10 UTC
cc56043 PreCompute() changed to use GetMinibatchIntoNetwork() 25 September 2015, 18:57:07 UTC
a4bbea3 renamed MBLayout::Reset() to SetWithoutOr() and Resize() to Init() for clarity; fixed DecimateMinibatch() to use the new MBLayout structure correctly, and also simplified the code quite a bit; fixed wrong DecimateMiniBatch() MPI argument order 25 September 2015, 16:37:31 UTC
b028b80 a) Replaced use of DBN cuda matrix with CNTK matrix type b) Merged dbncuda and gammacalculation libs into a single SequenceTrainign lib c) Other code cleanup and refactoring 25 September 2015, 07:11:46 UTC
6d4dd12 factored out getting the minibatch completely from the reader into new function GetMinibatchIntoNetwork(); DecimateMinibatchWithSentences() now no longer takes trainDataReader and nSlice, instead the layout gets preloaded and modified in-place--BUGBUG: must update #parallel sequences, currently not done 25 September 2015, 06:37:28 UTC
941c37f comments 25 September 2015, 05:19:55 UTC
b9699fa SE_merge_09232015 24 September 2015, 21:28:33 UTC
ddf91d3 Merge branch 'master' into fseide/loops 24 September 2015, 20:40:01 UTC
754e112 (made gcc happy) 24 September 2015, 20:22:46 UTC
9388651 MBLayout is now inferred by the nodes themselves, inside Validate() with new helper function InferMBLayoutFromInputsForStandardCase() 24 September 2015, 20:18:49 UTC
3212a55 Merge branch 'master' of https://git01.codeplex.com/forks/srehpycs/mitsls into srehpycs/mitsls 24 September 2015, 17:50:00 UTC
11eda23 moved ValidateSubNetwork() and BuildAndValidateSubNetwork() to .cpp file; now calling CollectInputAndLearnableParameters() before ValidateSubNetwork() so that we can use m_inputs and m_learnableParameters in there already 24 September 2015, 16:32:22 UTC
1424fa4 SE_v1 24 September 2015, 03:14:20 UTC
4b93961 SetFunctionAndGradientMBSize() now takes a size_ instead of an int 24 September 2015, 01:54:03 UTC
91a7f58 renamed SetFunctionAndGradientSize() to SetFunctionAndGradientMBSize(), and discovered that it also resizes non-MB nodes... BUGBUG; PropagateActualMiniBatchSize() absorbed into SetActualMiniBatchSizeFromFeatures(), now that it is only called there 24 September 2015, 01:47:28 UTC
8180aad separated left-over calls of SetActualMiniBatchSize(.) as { ResizeAllFeatureNodes(.); SetActualMiniBatchSizeFromFeatures(); } to get fully regular structure, ready for refactoring--note: these are not tested, and it is not clear whether the affected functions are even still needed; made gcc happy again with BrainScriptEvaluator.cpp 24 September 2015, 01:29:36 UTC
34afa27 added a new BrainScript macro Debug() that prints its contents and then returns it unmodified 24 September 2015, 00:58:46 UTC
24e08e4 (a comment) 24 September 2015, 00:28:44 UTC
1ad4444 enabled ReshapeNode in BS 23 September 2015, 21:56:33 UTC
a658edc moved parts of ComputationNode::CopyTo() to ComputationNodeBase for better encapsulation; m_maskMissingColumnsToZero is now private and can no longer be set for nodes that return true for NodeDoesItsOwnCustomizedMissingColumnsMasking(), to remove a few redundant checks (this is now checked directly by SetMaskMissingColumnsToZero()); moved a call to MaskMissingColumnsToZero() out from a loop in ComputeGradientForChildren() to avoid duplicate computation 23 September 2015, 21:49:43 UTC
275e400 ComputationNode::SetMBLayout() renamed to LinkToMBLayout(); LinkToMBLayout() is now called once only together with Validate() (in prep for nodes doing this by themselves in the future); MBLayouts must now be assigned with CopyFrom(), to make obvious that these are content copies, not pointer copies 23 September 2015, 21:18:27 UTC
2a64b8a brought back the ability of DelayedValueNode to run its own loop, as this is needed for the case where it is used without recurrence (this really should be implemented as a bulk copy, but for now it is done with a recursive call)l SetMBLayout() is now no longer virtual, instead recurrent nodes know themselves to execute elsewhere what was done before in their override of this function. SetMBLayout() really should only take a pointer, and with this change, we can now set it up once at the start only to establish the layout-sharing structure (which eventually will be determined by the nodes themselves); DelayedValueNodeBase::SetMBLayout() override changed to a private function CacheMBLayout() called internally from EvaluateThisNode(); new method ComputationNode::GetNumTimeSteps() that handles all cases correctly, including cases without layout; further merged Past/FutureValueNode::EvaluateThisNode() into the base class; fixed an error message in CNTK.cpp 23 September 2015, 20:45:07 UTC
ff6dccb increased the stack size for Release build as well. BrainScript caused stack overflows, which the Release build (which should collate stack memory better) does not seem to be able to address 23 September 2015, 18:16:49 UTC
7c20fb0 removed allowNulls flag from PrintSelfBeforeValidation(), to finalize unification of some code 23 September 2015, 16:54:25 UTC
ef3829f tidied up ComputeInputPartial() and new member EvaluateThisNode(): * can no longer be called in batch mode (Network already handles this anyway); * removed/expanded unnecessary parameter assignments left over from changing the inner functions of these from static to class member; * now they use the layout member functions properly instead of directly accessing its members * renamed (i, timeIdxInSeq) to (id, t) for consistency with other code; * moved more shared code into EvaluateThisNode() (Past/FutureValueNode-specific implementation is now a one-liner); * masking now done inside the inner functions; ComputationNode::GetMBLayout() 23 September 2015, 16:28:18 UTC
4101d99 the three nodes that set m_maskMissingColumnsToZero now no longer set it: PairNetworkNode and LSTMNode also had NodeDoesItsOwnCustomizedMissingColumnsMasking(), i.e. the flag was ineffective, and RecurrentNode has been changed to apply the operation inside the Evaluate and ComputePartial functions directly 23 September 2015, 15:19:31 UTC
0db1525 Merge branch 'master' into fseide/loops 22 September 2015, 23:35:53 UTC
7777c63 added predefined macro RowStack() (was missing); fixed spelling RowStack::m_startRowIndeces -> m_startRowIndices 22 September 2015, 23:34:53 UTC
dce8e65 Added CPU support for FSAdagrad 22 September 2015, 21:01:08 UTC
51fb96b Use double precision rsqrt in FSAdagrad kernel when ElemType is double 22 September 2015, 19:40:10 UTC
1d16bd5 Merge branch 'master' of https://git01.codeplex.com/cntk into alexeyk/fsadagrad Conflicts: Math/Math/Matrix.h 22 September 2015, 19:11:46 UTC
8b67a80 SetRequestNodesMultiSeqHandling() changed so that, instead of fixing things for the user under the hood, it instead forces users to fix it on their side through runtime checks 22 September 2015, 18:30:13 UTC
c86a0f1 removed pMBNoLayout, Network now passes the same layout to all nodes now (I checked, I think it should not cause inefficiencies) 22 September 2015, 18:00:50 UTC
a2f111a made ComputeInputPartialSRP() and EvaluateThisNodeSRP() class members and reduced the parameter list; added a comment that analyzes whether we need that secondary pMBNoLayout--answer is no 22 September 2015, 17:29:39 UTC
cde6220 (comment) 22 September 2015, 01:11:39 UTC
9f4fcf0 included test for NeedToMaskMissingColumnsToZero() into the calls to MaskMissingColumnsToZero() that would not do anything if this flag is set; renamed ResetBound() to SetMBLayout() 22 September 2015, 00:41:14 UTC
3d0616a Merge branch 'master' into fseide/loops 22 September 2015, 00:31:21 UTC
a0c4aa9 renamed UseCustomizedMultiSeqHandling() to NodeDoesItsOwnCustomizedMissingColumnsMasking() for clarity--this stuff will eventually go away once we allow inconsistent layouts 22 September 2015, 00:27:33 UTC
c17079e more renaming for clarity regarding masking: SetReqMultiSeqHandlingTo(true) -> SetMaskMissingColumnsToZero(), ReqMultiSeqHandling() -> NeedToMaskMissingColumnsToZero(), likewise m_maskMissingColumnsToZero 22 September 2015, 00:18:09 UTC
b72a1eb renamed MaskToZeroWhenLabelAndFeatureMissing() to MaskMissingColumnsToZero() and commented what it does; and merged it with ClassBasedCrossEntropyWithSoftmaxNode::MaskToZeroWhenLabelAndFeatureMissing() which was nearly identical 21 September 2015, 23:47:41 UTC
188f392 renamed m_nodesReqMultiSeqHandling to m_requestNodesMultiSeqHandling, likewise SetRequestNodesMultiSeqHandling(), to indicate that this is a user request (as opposed to req-uired) 21 September 2015, 23:08:47 UTC
87e6ada Fix merge issues. 21 September 2015, 21:48:31 UTC
5d1c0ce Merged FSAdaGrad with lastest master changes 21 September 2015, 21:31:31 UTC
01a06b6 Add FSAdaGrad 21 September 2015, 21:28:06 UTC
207bfec changed X.FrameSlice(...) to DataSlice(X, ...); discovered that many LinearAlgebraNodes and NonlinearityNodes accessed m_functionValues instead of going through the virtual FunctionValues(), I hope that that was a bug, and that changing that (to DataSlice(), which calls FunctionValues()) did not break anythingl moved pMBLayout in DataSlice calls to be an argument to the FrameRange::Check() instead 21 September 2015, 21:05:02 UTC
dc92c38 Include CNTKMathTest in the VS build to avoid build issues in the project from getting in undetected 21 September 2015, 20:59:05 UTC
025174b Fixed some linker errors in the CNTKMathTest unit test project 21 September 2015, 20:46:13 UTC
acfd010 switched DataSlice(VALUE/GRADIENT...) to Value/GradientSlice() 21 September 2015, 20:32:07 UTC
3967ba9 removed the input index from DataSlice(), seems more clear to say Inputs(n)->DataSlice(...) 21 September 2015, 19:07:34 UTC
23e6f58 changed all Inputs(n)...FrameSlice to DataSlice(n, ...) 21 September 2015, 18:58:35 UTC
94e354e (made gcc happy) 21 September 2015, 18:46:00 UTC
218ab2a changed all FrameSlice() calls to pass pMBLayout, in prep of changing all of these to DataSlice(); removed the original version of FrameSlice() 21 September 2015, 18:42:02 UTC
8307e74 new method FrameSlice() that takes a pMBLayout, in prep of getting samplesInRecurrentStep out from FrameRange, in prep of allowing inconsistent layouts across the graph; moved FrameSlice() from .h to .cpp 21 September 2015, 17:58:44 UTC
4a07903 first use of DataSlice() 21 September 2015, 17:38:55 UTC
a0b78b5 Merge branch 'master' into fseide/loops 21 September 2015, 17:20:02 UTC
e827496 changed a few "for (auto x :" to "for ([const] auto & x :" 21 September 2015, 17:18:31 UTC
04e0623 Fixed a bug in the code to enable device memory peer access 21 September 2015, 05:07:59 UTC
91d7d17 new method DataSlice() that takes care of slicing in a unified manner. Not yet used, meant to be used for all derived classes' data access 20 September 2015, 00:14:14 UTC
35350f7 (#if-0'd out an unused function) 19 September 2015, 05:50:09 UTC
ae94278 FindInRecurrentLoops() now returns a pointer directly to the structure it found, instead of an index--way simpler; merged ComputeGradientLoop() into ComputeGradient(), no point in having a separate function 19 September 2015, 05:36:19 UTC
back to top