6cfd66c | Amit Agarwal | 28 September 2015, 18:39:54 UTC | Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining | 28 September 2015, 18:39:54 UTC |
caf1dd8 | Amit Agarwal | 28 September 2015, 18:36:51 UTC | 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 | Frank Seide | 27 September 2015, 06:45:56 UTC | 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 | Frank Seide | 27 September 2015, 06:21:32 UTC | 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 | Frank Seide | 27 September 2015, 05:53:09 UTC | 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 | Frank Seide | 27 September 2015, 05:16:41 UTC | 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 | Frank Seide | 26 September 2015, 22:54:23 UTC | 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 | Frank Seide | 26 September 2015, 22:26:51 UTC | removed special case of EvaluateThisNode() in SoftmaxNode, which seemed unnecessary | 26 September 2015, 22:26:51 UTC |
327a70f | Frank Seide | 26 September 2015, 22:15:37 UTC | 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 | Amit Agarwal | 26 September 2015, 20:22:45 UTC | Merge branch 'master' of https://git01.codeplex.com/cntk into amitaga/sequenceTraining | 26 September 2015, 20:22:45 UTC |
c92998f | Amit Agarwal | 26 September 2015, 18:42:28 UTC | Fixed CPUONLY build for sequence trainign code | 26 September 2015, 20:15:10 UTC |
e2f58ac | Frank Seide | 26 September 2015, 19:38:09 UTC | (fixed a warning in Release mode) | 26 September 2015, 19:38:09 UTC |
9190a6b | Frank Seide | 26 September 2015, 15:46:24 UTC | (fixed a compiler warning) | 26 September 2015, 15:46:24 UTC |
35a5b23 | Frank Seide | 26 September 2015, 15:38:32 UTC | (bit of cleanup in Matrix, not completed) | 26 September 2015, 15:38:32 UTC |
7cfeeb0 | Frank Seide | 26 September 2015, 08:55:17 UTC | 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 | Frank Seide | 26 September 2015, 08:33:19 UTC | base Validate() now tests for NULL pointers amongst the children | 26 September 2015, 08:33:19 UTC |
9beaf3a | Frank Seide | 26 September 2015, 08:14:33 UTC | typo in RowSliceNode, should be NumInputs<1> | 26 September 2015, 08:14:33 UTC |
38b0960 | Frank Seide | 26 September 2015, 08:09:25 UTC | moved NewThis() and OperationName() into a new macro UsingComputationNodeMembersBoilerplate (and deleted the 51 copies of them) | 26 September 2015, 08:09:25 UTC |
b6015cf | Frank Seide | 26 September 2015, 07:02:51 UTC | 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 | Amit Agarwal | 26 September 2015, 05:36:05 UTC | Fixed a ProcessExit crash due to an unused global STL container instance | 26 September 2015, 05:36:05 UTC |
7099f3d | Frank Seide | 26 September 2015, 03:24:22 UTC | (comments) | 26 September 2015, 03:24:22 UTC |
7277e1f | Amit Agarwal | 26 September 2015, 01:19:48 UTC | 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 | Amit Agarwal | 26 September 2015, 00:38:07 UTC | Replace snprintf calls with sprintf for SequenceTraining code | 26 September 2015, 00:38:07 UTC |
e736be8 | Amit | 26 September 2015, 00:22:58 UTC | Port the Sequence trainign code to Linux | 26 September 2015, 00:22:58 UTC |
55c57af | Frank Seide | 25 September 2015, 23:24:02 UTC | 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 | Frank Seide | 25 September 2015, 21:55:23 UTC | fixed a few small refactorings in EvalReader.h that I had missed | 25 September 2015, 21:55:23 UTC |
a03dd57 | Frank Seide | 25 September 2015, 21:35:00 UTC | 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 | Frank Seide | 25 September 2015, 20:56:43 UTC | 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 | Frank Seide | 25 September 2015, 20:36:25 UTC | fixed some broken file paths (left-overs of moving stuff to different directories) | 25 September 2015, 20:36:25 UTC |
87dba66 | Frank Seide | 25 September 2015, 20:29:52 UTC | 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 | Amit Agarwal | 25 September 2015, 20:29:33 UTC | 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 | Frank Seide | 25 September 2015, 20:14:10 UTC | (comments) | 25 September 2015, 20:14:10 UTC |
cc56043 | Frank Seide | 25 September 2015, 18:57:07 UTC | PreCompute() changed to use GetMinibatchIntoNetwork() | 25 September 2015, 18:57:07 UTC |
a4bbea3 | Frank Seide | 25 September 2015, 16:37:31 UTC | 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 | Amit Agarwal | 25 September 2015, 07:11:46 UTC | 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 | Frank Seide | 25 September 2015, 06:37:28 UTC | 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 | Frank Seide | 25 September 2015, 05:19:55 UTC | comments | 25 September 2015, 05:19:55 UTC |
b9699fa | RuiZhao | 24 September 2015, 21:28:33 UTC | SE_merge_09232015 | 24 September 2015, 21:28:33 UTC |
ddf91d3 | Frank Seide | 24 September 2015, 20:40:01 UTC | Merge branch 'master' into fseide/loops | 24 September 2015, 20:40:01 UTC |
754e112 | Frank Seide | 24 September 2015, 20:22:46 UTC | (made gcc happy) | 24 September 2015, 20:22:46 UTC |
9388651 | Frank Seide | 24 September 2015, 20:18:49 UTC | MBLayout is now inferred by the nodes themselves, inside Validate() with new helper function InferMBLayoutFromInputsForStandardCase() | 24 September 2015, 20:18:49 UTC |
3212a55 | Amit Agarwal | 24 September 2015, 17:50:00 UTC | Merge branch 'master' of https://git01.codeplex.com/forks/srehpycs/mitsls into srehpycs/mitsls | 24 September 2015, 17:50:00 UTC |
11eda23 | Frank Seide | 24 September 2015, 16:32:22 UTC | 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 | RuiZhao | 24 September 2015, 03:14:20 UTC | SE_v1 | 24 September 2015, 03:14:20 UTC |
4b93961 | Frank Seide | 24 September 2015, 01:54:03 UTC | SetFunctionAndGradientMBSize() now takes a size_ instead of an int | 24 September 2015, 01:54:03 UTC |
91a7f58 | Frank Seide | 24 September 2015, 01:47:28 UTC | 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 | Frank Seide | 24 September 2015, 01:29:36 UTC | 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 | Frank Seide | 24 September 2015, 00:58:46 UTC | added a new BrainScript macro Debug() that prints its contents and then returns it unmodified | 24 September 2015, 00:58:46 UTC |
24e08e4 | Frank Seide | 24 September 2015, 00:28:44 UTC | (a comment) | 24 September 2015, 00:28:44 UTC |
1ad4444 | Frank Seide | 23 September 2015, 21:56:33 UTC | enabled ReshapeNode in BS | 23 September 2015, 21:56:33 UTC |
a658edc | Frank Seide | 23 September 2015, 21:49:43 UTC | 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 | Frank Seide | 23 September 2015, 21:18:27 UTC | 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 | Frank Seide | 23 September 2015, 20:45:07 UTC | 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 | Frank Seide | 23 September 2015, 18:16:49 UTC | 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 | Frank Seide | 23 September 2015, 16:54:25 UTC | removed allowNulls flag from PrintSelfBeforeValidation(), to finalize unification of some code | 23 September 2015, 16:54:25 UTC |
ef3829f | Frank Seide | 23 September 2015, 16:28:18 UTC | 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 | Frank Seide | 23 September 2015, 15:19:31 UTC | 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 | Frank Seide | 22 September 2015, 23:35:53 UTC | Merge branch 'master' into fseide/loops | 22 September 2015, 23:35:53 UTC |
7777c63 | Frank Seide | 22 September 2015, 23:34:53 UTC | added predefined macro RowStack() (was missing); fixed spelling RowStack::m_startRowIndeces -> m_startRowIndices | 22 September 2015, 23:34:53 UTC |
dce8e65 | Amit Agarwal | 22 September 2015, 20:44:12 UTC | Added CPU support for FSAdagrad | 22 September 2015, 21:01:08 UTC |
51fb96b | Amit Agarwal | 22 September 2015, 19:40:10 UTC | Use double precision rsqrt in FSAdagrad kernel when ElemType is double | 22 September 2015, 19:40:10 UTC |
1d16bd5 | Amit Agarwal | 22 September 2015, 19:11:46 UTC | 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 | Frank Seide | 22 September 2015, 18:30:13 UTC | 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 | Frank Seide | 22 September 2015, 18:00:50 UTC | 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 | Frank Seide | 22 September 2015, 17:29:39 UTC | 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 | Frank Seide | 22 September 2015, 01:11:39 UTC | (comment) | 22 September 2015, 01:11:39 UTC |
9f4fcf0 | Frank Seide | 22 September 2015, 00:41:14 UTC | 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 | Frank Seide | 22 September 2015, 00:31:21 UTC | Merge branch 'master' into fseide/loops | 22 September 2015, 00:31:21 UTC |
a0c4aa9 | Frank Seide | 22 September 2015, 00:27:33 UTC | 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 | Frank Seide | 22 September 2015, 00:18:09 UTC | more renaming for clarity regarding masking: SetReqMultiSeqHandlingTo(true) -> SetMaskMissingColumnsToZero(), ReqMultiSeqHandling() -> NeedToMaskMissingColumnsToZero(), likewise m_maskMissingColumnsToZero | 22 September 2015, 00:18:09 UTC |
b72a1eb | Frank Seide | 21 September 2015, 23:47:41 UTC | 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 | Frank Seide | 21 September 2015, 23:08:47 UTC | 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 | Alexey Kamenev | 21 September 2015, 21:48:31 UTC | Fix merge issues. | 21 September 2015, 21:48:31 UTC |
5d1c0ce | Alexey Kamenev | 16 September 2015, 22:46:09 UTC | Merged FSAdaGrad with lastest master changes | 21 September 2015, 21:31:31 UTC |
01a06b6 | Alexey Kamenev | 04 September 2015, 17:57:12 UTC | Add FSAdaGrad | 21 September 2015, 21:28:06 UTC |
207bfec | Frank Seide | 21 September 2015, 21:05:02 UTC | 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 | Amit Agarwal | 21 September 2015, 20:59:05 UTC | 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 | Amit Agarwal | 21 September 2015, 20:44:15 UTC | Fixed some linker errors in the CNTKMathTest unit test project | 21 September 2015, 20:46:13 UTC |
acfd010 | Frank Seide | 21 September 2015, 20:32:07 UTC | switched DataSlice(VALUE/GRADIENT...) to Value/GradientSlice() | 21 September 2015, 20:32:07 UTC |
3967ba9 | Frank Seide | 21 September 2015, 19:07:34 UTC | removed the input index from DataSlice(), seems more clear to say Inputs(n)->DataSlice(...) | 21 September 2015, 19:07:34 UTC |
23e6f58 | Frank Seide | 21 September 2015, 18:58:35 UTC | changed all Inputs(n)...FrameSlice to DataSlice(n, ...) | 21 September 2015, 18:58:35 UTC |
94e354e | Frank Seide | 21 September 2015, 18:46:00 UTC | (made gcc happy) | 21 September 2015, 18:46:00 UTC |
218ab2a | Frank Seide | 21 September 2015, 18:42:02 UTC | 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 | Frank Seide | 21 September 2015, 17:58:44 UTC | 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 | Frank Seide | 21 September 2015, 17:38:55 UTC | first use of DataSlice() | 21 September 2015, 17:38:55 UTC |
a0b78b5 | Frank Seide | 21 September 2015, 17:20:02 UTC | Merge branch 'master' into fseide/loops | 21 September 2015, 17:20:02 UTC |
e827496 | Frank Seide | 21 September 2015, 17:18:31 UTC | changed a few "for (auto x :" to "for ([const] auto & x :" | 21 September 2015, 17:18:31 UTC |
04e0623 | Amit Agarwal | 21 September 2015, 04:59:16 UTC | Fixed a bug in the code to enable device memory peer access | 21 September 2015, 05:07:59 UTC |
91d7d17 | Frank Seide | 20 September 2015, 00:14:14 UTC | 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 | Frank Seide | 19 September 2015, 05:50:09 UTC | (#if-0'd out an unused function) | 19 September 2015, 05:50:09 UTC |
ae94278 | Frank Seide | 19 September 2015, 05:36:19 UTC | 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 |
a47889e | Frank Seide | 19 September 2015, 05:14:24 UTC | unified the two versions of FindInRecurrentLoops(); renamed m_actMiniBSize to m_actualMBSize; moved EvaluateLoop() back to Evaluate(), no point in having a separate function | 19 September 2015, 05:14:24 UTC |
4b7b685 | Frank Seide | 19 September 2015, 04:27:12 UTC | HTKMLFReader::CopyMBLayoutTo() now resets pMBLayout to default in frame mode (instead of leaving it untouched--readers should not make assumptions on downstream consumers' defaults) | 19 September 2015, 04:27:12 UTC |
5b27cda | Frank Seide | 19 September 2015, 04:19:27 UTC | (made nvcc/Linux happy) | 19 September 2015, 04:19:27 UTC |
a1173a4 | Frank Seide | 19 September 2015, 04:12:13 UTC | fixed the spelling/casing of a few recurrence-related ComputationNode member accessors | 19 September 2015, 04:12:13 UTC |
d37126f | Frank Seide | 19 September 2015, 03:56:00 UTC | Merge branch 'master' into fseide/loops | 19 September 2015, 03:56:00 UTC |
93d93e0 | Frank Seide | 19 September 2015, 03:53:24 UTC | ComputationNetwork now has a second layout, pMBNoLayout, which matches pMBLayout in #sequences but is otherwise empty, and used for nodes that do not require sequential processing; m_samplesInRecurrentStep now gone from ComputationNode, if needed, the value is determined from pMBLayout--yay! One more down; Matrix::SetValue() now happily accepts empty matrices (no reason why it should not); (made gc happy again) | 19 September 2015, 03:53:24 UTC |
42924c4 | erw | 19 September 2015, 01:06:13 UTC | Add ReviseParameter function to MEL so users can revise the parameters of a given model. An example: > cat example.config command=edit precision=float deviceId=-1 edit=[ action=edit editPath=example.mel ] > cat example.mel model1 = LoadModel("lstm.model.100", format=cntk); ReviseParameter("GlobalPrior", //path/to/prior/vector); SaveModel(model1, "lstm.model.100.priorfloored"); > cat //path/to/prior/vector 5.2499845e-006 4.88998558e-006 4.89998547e-006 0.000525058422 0.000597978244 ... > $CNTK configFile=example.config | 19 September 2015, 01:06:13 UTC |
7e10b57 | Frank Seide | 19 September 2015, 00:47:44 UTC | changed all read accesses to ComputationNode::m_samplesInRecurrentStep to GetNumParallelSequences()--480+ changes! This is in prep to remove that member variable completely, replacing it solely by pMBLayout (we will first add a check that both are the same) | 19 September 2015, 00:47:44 UTC |
0abac0d | Frank Seide | 19 September 2015, 00:40:37 UTC | Merge branch 'master' into fseide/loops Conflicts: CNTK.sln | 19 September 2015, 00:40:37 UTC |