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