Граф коммитов

149 Коммитов

Автор SHA1 Сообщение Дата
Frank Seide 539f6e63fd added node tracing to 'eval' and 'write', and added a sparse option 2016-03-29 15:32:54 -07:00
Frank Seide 265998566e bug fix: vsnprintf() used in ThrowFormatted() does not 2016-03-25 17:40:07 -07:00
Frank Seide 29f93ea768 sample-wise Times seems to work now 2016-03-25 15:32:42 -07:00
Frank Seide b7aa729863 Times now allows left input with MBLayout (so far only tested the loop unrolling) 2016-03-25 11:53:25 -07:00
Frank Seide b72fbc61ba refactoring towards allowing MB data for first argument of Times 2016-03-25 11:03:47 -07:00
Frank Seide e16f241929 beam decoder coded up 2016-03-24 17:21:32 -07:00
thhoens e0aa22181b Added the fixes from the Code Review. 2016-03-24 16:15:53 -07:00
Frank Seide cbb37e1ef8 SliceNode now supports axis and numpy-style negative bounds 2016-03-23 23:22:57 -07:00
Frank Seide 6d616b7d19 ComputationNode now have queriable property 'dim' 2016-03-23 12:54:24 -07:00
U-FAREAST\fseide f188493589 Merge branch 'master' of https://github.com/Microsoft/CNTK into fseide/pack 2016-03-22 09:00:59 -07:00
William Darling fe447bff01 addressing reviewer comments (mainly formatting issues) 2016-03-22 13:19:59 +01:00
William Darling 25025884b3 first attempt at logplusnode 2016-03-22 13:18:49 +01:00
Frank Seide 76543e8708 bug fix: InferMBLayoutFromInputsForStandardCase() must test isFinalValidationPass 2016-03-21 21:34:41 -07:00
thhoens b4a84115e4 Initial commit for Jenkins 2016-03-21 13:55:24 -07:00
Frank Seide 68770528bb implemented ComputationNode::IConfigRecord;
new dummy node Pass;
moved some code around in LinearAlgebraNodes.h
2016-03-21 12:54:05 -07:00
Frank Seide 9c658a85f8 AttachInputs() now only accepts a vector of inputs, to avoid an overload ambiguity. The 6 overloads are gone;
enabled IConfigRecord stubs in ComputationNode
2016-03-20 23:17:21 -07:00
Frank Seide 34531d8920 merged from master 2016-03-17 13:06:32 -07:00
Frank Seide 95878a6163 (minor comment edits) 2016-03-17 12:55:49 -07:00
William Darling c4f33b4e50 refactored NegateNode by removing custom code in LinearAlgebraNodes.h and simply adding an elementwisewithopcodenode definition to NonlinearityNodes.h 2016-03-17 08:48:31 +01:00
Frank Seide 63c50f6364 added new node Where (only BS) 2016-03-11 16:57:14 -08:00
U-FAREAST\fseide 90308015cf Merge branch 'master' of https://github.com/Microsoft/CNTK into fseide/pack 2016-03-09 08:41:21 -08:00
Frank Seide 02f3f99c58 moved LSTM BS from LSTM end-to-end test to CNTK.core.bs 2016-03-06 15:35:37 -08:00
Amit Agarwal 1fb9d9eb9d Merge branch 'master' of https://github.com/Microsoft/CNTK into amitaga/removeCopyCtorFromMatrix
Conflicts:
	Source/Math/Matrix.cpp
2016-03-05 09:47:15 -08:00
Wayne Xiong 51b3983fac Backward compatibility for legacy CNTK models with TimesNode 2016-03-04 23:48:15 -08:00
Amit Agarwal ff32a89d72 Merge branch 'master' of https://github.com/Microsoft/CNTK into amitaga/removeCopyCtorFromMatrix 2016-03-04 08:07:50 -08:00
Frank Seide 359d90ab09 full tensor support for Mean and InvStdDev operations 2016-03-03 23:46:17 -08:00
Amit Agarwal 91e2673ba6 Removed copy constructor and assignment operator from top-level Matrix type to prevent unwanted silent deep copies of Matrix objects which can be very expensive. This revealed several instances of unwanted copying of entire matrices that have also been fixed as part of this change 2016-03-03 13:15:17 -08:00
Frank Seide 713b8bf952 gcc stack traces are now formatted by inserting double spaces around the actual function name, to make for easier visual parsing 2016-03-02 10:52:46 -08:00
Frank Seide 12d79a420e added "write" command to rnn.cnkt;
bug fix in ClassBasedCrossEntropyWithSoftmaxNode, a wrong index if #parseq > 1;
bug fix in TransposeTime dimension inference;
bug fix in simple writer, must call DataEnd()
2016-02-27 23:52:27 -08:00
Frank Seide 81884e31db fixed 02_Convolutional as well for new tensor TimesNode 2016-02-26 14:14:43 -08:00
Frank Seide 10c4b7d3de fixed Image/QuickE2E for new TimesNode 2016-02-26 13:45:18 -08:00
Frank Seide 3011bcf76c made gcc happy 2016-02-25 16:19:19 -08:00
Frank Seide 94932b2668 TimesNode now supports tensors 2016-02-25 15:44:49 -08:00
Dong Yu 32004edfa2 Merge branch 'dongyu/needsGradientChange' of https://github.com/Microsoft/CNTK into fseide/s2s
Conflicts:
	Source/CNTK/tests.cpp
	Source/ComputationNetworkLib/ComputationNetwork.h
	Source/ComputationNetworkLib/ComputationNetworkEditing.cpp
	Source/ComputationNetworkLib/InputAndParamNodes.h
	Source/ComputationNetworkLib/PreComputeNodes.h
2016-02-24 13:55:41 -08:00
Dong Yu aa74337d38 rename needGradient to needsGradient (part 1) 2016-02-24 11:58:24 -08:00
Frank Seide e100169a61 BrainScript support for learningRateMultiplier option in LearnableParameter 2016-02-24 09:51:40 -08:00
Frank Seide 165a7231ed merged with donyu/needsGradientChange 2016-02-24 09:18:44 -08:00
Frank Seide acf21e07df (towards tensor Times) 2016-02-24 08:39:31 -08:00
Frank Seide 26c850322b bug fix in Transpose();
prepared file format for RowStack and RowSlice to store their dimension along which they operate (currently limited to 1);
bug fix in "write" command "format" parsing;
ComputationNetwork::Read() now checks for too new file version
2016-02-23 11:14:36 -08:00
Frank Seide 0e685eb973 Transpose and Times now serialize the new parameters 2016-02-22 18:05:20 -08:00
Frank Seide 407c5a5546 implemented TransposeNode for arbitrary dimensions (not serializing yet);
added plumbing for tensor Times
2016-02-22 17:45:46 -08:00
Frank Seide 367ca31f57 SumElementNode changed to ComputationNodeNonLooping;
improved log messages
2016-02-15 15:10:28 -08:00
Frank Seide 57a0db0141 cleanup and fixes to LMSequenceReader and class File 2016-02-14 20:28:08 -08:00
Frank Seide 87ab8f728d (comments) 2016-02-08 17:36:56 -08:00
Frank Seide 55b3ae946f marked the following nodes as COMING_SOON: TransposeNode, GMMLogLikelihoodNode, SequenceDecoderNode. These will be brought back once we have defined tests for them and made necessary updates;
moved DiagonalNode to ReshapingNodes.h;
renamed DeprecatedReshapeNode to LegacyReshapeNode
2016-01-22 14:46:30 -08:00
Frank Seide a4cf44544a normalized inconsistent commenting style from "//text" to "// text" 2016-01-22 13:58:47 -08:00
Frank Seide 03a4fcb295 renamed TrainingCriterionNodes.h to TrainingNodes.h, and moved DropoutNode and BatchNormalizationNode there;
renamed EvaluationCriterionNodes.h to EvaluationNodes.h, and moved SequenceDecoderNode there
2016-01-22 13:45:14 -08:00
Frank Seide 7b6708cb9c removed condtional compilations for tensor view 2016-01-22 09:57:10 -08:00
Mark Hillebrand 6f59eb1d22 Formatting 2016-01-22 09:23:03 +01:00
Frank Seide 14fee02e39 modified ComputationNode's matrix storage back to match Matrix dimensions if no minibatch, to ensure compatibility with sparse matrices 2016-01-21 15:00:12 -08:00
Frank Seide 342b1ba460 changed the mapping of tensors onto the Matrix storage objects: In case of no MBLayout, the Matrix objects now always have column dimension 1. Actual matrices (as used by TimesNode) are now 2D tensors. As part of this, GetNumCols()/-Rows() no longer exist, but were split into GetSampleMatrixCols()/-Rows() (minibatch interpretation) and GetAsMatrixCols()/-Rows() (2D matrix interpretation) 2016-01-20 21:33:38 -08:00
Mark Hillebrand dcfc0e9679 License change 2016-01-18 09:36:17 +01:00
Mark Hillebrand 2f39fe3f01 Re-format code using clang-format (plus some post-processing) 2016-01-18 09:36:14 +01:00
Frank Seide 69b547728a (made sure non-tensor version still compiles) 2016-01-09 17:03:20 -08:00
Frank Seide 0826c1ccbb moved non-tensor versions of PlusNode, MinusNode, and ElementTimesNode to EsoreticNodes.h (no code change) 2016-01-09 16:58:26 -08:00
Frank Seide c886f32d6d factored out new function TensorSliceWithMBLayoutFor() from DataTensorFor(), for use by ShiftNode 2016-01-09 16:30:25 -08:00
Frank Seide 22e8ce3a6f reenabled TensorView for PlusNode--nearly identical result Image/QuickE2E test 2016-01-01 17:46:05 -08:00
Frank Seide 6d5df5641e temporarily disabled TensorView in PlusNode 2016-01-01 17:31:45 -08:00
Frank Seide b007ad0a30 move ScaleNode, RowElementTimesNode, and ColumnElementTimesNode to EsotericNodes.h, to indicate that they are deprecated (which they will be once tensor lib is enabled generally);
changed Image/QuickE2E test to use cudnn
2016-01-01 13:04:59 -08:00
Frank Seide 43f22ee42f bug fix: SetMaxTempMemSizeForCNN() was missing the 'double' case;
added an optimization to unary TensorOp() to use cublasS/Dgemm() when we are reducing a matrix
2015-12-30 19:51:28 -08:00
Frank Seide 81affdd1fb switched ReduceElemType to ElemType instead of double while reenabling PlusNode TensorView--desparate to get Image/QuickE2E to pass 2015-12-30 16:55:27 -08:00
Frank Seide c87e2f7550 disabled TensorView for PlusNode::BackpropTo(), as that causes a difference for Image/QuickE2E;
GetTensorShape() now adds the column dimension as one more dimension
2015-12-30 16:40:49 -08:00
Frank Seide 4ce3b1a8eb switched inaccurate Sigmoid() and PlusNode::BackpropTo() back on;
changed Image/QuickE2E to use BrainScript, in order to allow specifiyng tensor dimensions for the bias
2015-12-30 16:00:02 -08:00
Frank Seide 96cde8ea48 switched to new Sigmoid(), PlusNode::BackpropTo() still not TensorView 2015-12-30 14:51:52 -08:00
Frank Seide c7b5c5f2d3 re-disabled PlusNode::BackpropTo() once again 2015-12-30 14:40:53 -08:00
Frank Seide 5a850c3ae3 switched TensorOp.h's Sigmoid() to the less accurate version from the .cuh file, to remove failure in SequenceTraining test. This is not good! Reenabled all TensorView 2015-12-30 14:30:30 -08:00
Frank Seide 3076962c62 disabled TensorView for PlusNode::BackpropTo() and SigmoidNode, now gives the same for Image/QuickE2E 2015-12-30 14:15:00 -08:00
Frank Seide 526615abbf merged GPUMatrixCUDAKernels.cuh DEF_ELEMENT_PRIMITIVE macro with TensorOps.h OverloadUnaryMathFns, as both did the same thing;
new #define ENABLE_BROADCASTING_ELEMENTTIMES to specifically select whether we want to replace ScaleNode etc with ElementTimesNode
2015-12-30 09:11:02 -08:00
Frank Seide 37eb17598a added new tensor operations: And, Or, Xor, ElementwiseProductWithSigmoidDerivative (SigmoidDerivative is only ever used in this context), and Clip 2015-12-29 21:29:17 -08:00
Frank Seide 338cd77a30 reenabled all existing uses of TensorView;
ScaleNode and Row/ColumnElementTimesNode now implemented as ElementTimesNode
2015-12-29 20:50:54 -08:00
Frank Seide c3ab7a207c GridDim now distributes over multiprocs more evenly;
fixed two Jenkins failures (a linux link error and a log error)
2015-12-29 10:38:15 -08:00
Frank Seide f1cb457135 new condition for tensor lib: output cannot be in-place and inverse-broadcasting (reducing) at the same time. This makes reduction easier 2015-12-28 23:48:40 -08:00
Frank Seide 20836a860b new nullary tensor op ConstOne;
GridDim class now queries actual GPU information
2015-12-28 14:51:35 -08:00
Frank Seide d5fd84f59e removed m_inputSampleLayout. It is only used in ConvolutionNodes.h, and is identical to the input's sample layout, so we can get it where we need it from the input directly 2015-12-23 22:12:24 -08:00
Frank Seide 6a69048204 changed former InferImageDimsFromInput(index) to a getter that just reads out the layout from the child, and all calls to this now assign it manually to the (input)SampleLayout variables, in quest of removing m_inputSampleLayout altogether 2015-12-23 21:33:16 -08:00
Frank Seide 0864a8c7c8 split up InferImageDimsFromInput() into false and true versions 2015-12-23 21:12:51 -08:00
Frank Seide dfd780af45 cleaning up order of Validate(): MBLayout is now set first, and SetDim() and InferImageDimsFromInput() are grouped (they will get merged) 2015-12-23 20:21:27 -08:00
Frank Seide 5829d3d491 (added a perf comment) 2015-12-23 19:11:28 -08:00
Frank Seide 6418994f08 enabled ScaleNode::BackpropTo to use tensor lib;
merged with master
2015-12-23 18:27:27 -08:00
Frank Seide 28ffb10895 changed TensorShape editing functions to in-place, to avoid more mem copying;
disabled the mapping of ScaleNode, RowElementTimesNode, and ColumnElementTimesNode for now because we see a perf hit with Scale. Reenable once that is solved
2015-12-23 15:20:40 -08:00
Frank Seide af84f9239a bug fix: ElementTimes::BackpropTo() in the TensorView prototype did not mask gaps correctly 2015-12-23 00:30:59 -08:00
Frank Seide fb3dae2967 prototypical implementation of Sigmoid ForwardProp() using the tensor lib;
special optimization for linear-scan unary tensor operations (most frequent case);
adjusted the threshold for the Sigmoid() tensor op to reduce probability of thread divergence (thresholding at 0 will give a 50:50 split, doubling runtime). Still a overall 10% slower than old kernel, not clear why
2015-12-22 20:28:21 -08:00
Frank Seide d717aa09b5 undid previous heuristic, and instead changed the condition in RowSliceNode to not fail if the input is really a vector in image disguise (as one would load from old model files);
made gcc happy, suddenly it no longer liked to match the template of TensorOpN()
2015-12-22 17:34:10 -08:00
Frank Seide 644c47017e new class GridDim to centralize computation of grid dimensions 2015-12-22 14:35:19 -08:00
Frank Seide e8c4e8f1de minor optimization of tensor CUDA kernel 2015-12-22 12:47:01 -08:00
Frank Seide 33e58f37fd further unified BackpropToV(), close to being ready to remove the dups 2015-12-22 01:32:21 -08:00
Frank Seide 3ecbc8abcc removed ScaleNode, RowElementTimesNode, and ColumnElementTimesNode if ENABLE_TENSORVIEW is #defined 2015-12-22 01:13:20 -08:00
Frank Seide 5301b18a3e prototypically implemented ScaleNode, RowElementTimesNode, and ColumnElementTimesNode just as ElementTimesNode with tensor lib (broadcasting), by hacking the name mapping 2015-12-21 23:43:59 -08:00
Frank Seide d17a011d85 imlemented MinusNode and ElementTimesNode with tensor lib;
changed aggregation in tensor lib to use double instead of ElemType;
replaced ValueForToDense() by dong the same thing in BinaryElementwiseNode::BeginForwardProp()
2015-12-21 23:10:52 -08:00
Frank Seide 90387f0978 moved MinusNode and ElementTimesNode to derive from BinaryElementwiseNode;
added missing 'override's
2015-12-21 22:36:15 -08:00
Frank Seide 757509c7cb created a new standard base class BinaryElementwiseNode, to implement PlusNode and friends. PlusNode first got the treatment, others will follow 2015-12-21 22:14:13 -08:00
Frank Seide 3369234015 new #define ENABLE_TENSORVIEW;
new methods ComputationNode::ValueTensorFor() and GradientTensorFor(). Makes PlusNode much easier
2015-12-21 22:00:05 -08:00
Frank Seide dfd7b39b9d first prototype of gradient using tensor lib 2015-12-21 19:02:27 -08:00
Frank Seide 24df1c1f4b partial cleanup of sample layouts:
ComputationNodeBase::GetSampleShape() now uses m_sampleLayout;
added an overload for ComputationNode::SetDims() that takes a TensorShape and sets both m_sampleLayout and m_numRows from it;
changed all sample layouts that were set/inferred to something resembling a vector to a 1-dim tensor. This may break code, as the old code would put the vector dimension into the third index. I presume that the old behavior is the bug;
bug fix in RowSlice: it inferred the tensor dimension as if we were slicing the first tensor dimension, which we are not. RowSlice() now only allows actual vectors as inputs
2015-12-21 17:26:25 -08:00
Frank Seide 775458f63b bug fix: wrong index bounds in TensorOpReduce 2015-12-18 21:36:56 -08:00
Frank Seide 4da5273738 disabled the prototypical use of the new tensor addition in the PlusNode again 2015-12-18 20:02:29 -08:00
Frank Seide b98855a9a1 tensor library works in PlusNode prototype implementation() which reduces ForwardProp() to two lines of code;
bug fix: GetTensorsForwardBinary() ignored #samples in FrameRange;
bug fix: TensorView cannot hold a reference to a Matrix object since these are often temporaries. Instead, we copy a Matrix object that itself is a reference;
deleted orphaned ClassDiagram.cd from Math Project
2015-12-18 19:59:26 -08:00
Frank Seide 397eac213f first experimental prototype of elementwise tensor op in PlusNode::ForwardProp() done except for actual kernel;
new methods TensorShape::Pad() and Concat();
new method ComputationNode::GetTensorsForwardBinary();
moved ElementWiseOperator to CommonMatrix.h, using it in TensorView::DoSumOf();
TensorView::m_sob changed from ref to pointer to make the object copyable
2015-12-16 16:02:18 -08:00
pkranen c3895bb0b3 Move Source files for directory restructuring and fix project dependencies 2015-12-16 08:35:11 +01:00