https://github.com/Microsoft/CNTK

sort by:
Revision Author Date Message Commit Date
a3e2a08 License change 18 January 2016, 08:33:51 UTC
03d2335 enabled TensorView for ScaleNode (and PlusNode) 30 December 2015, 07:15:58 UTC
dc383af disabled TensorView except for PlusNode 30 December 2015, 07:11:53 UTC
fe5daf7 disabled TensorView for PlusNode 30 December 2015, 06:23:59 UTC
8187a54 disabled all LA tensor backprops 30 December 2015, 06:18:43 UTC
42e39e2 (comments) 30 December 2015, 06:11:57 UTC
ef07ac2 new base node UnaryElementWiseNode; SigmoidNode implemented with that 30 December 2015, 06:01:37 UTC
37eb175 added new tensor operations: And, Or, Xor, ElementwiseProductWithSigmoidDerivative (SigmoidDerivative is only ever used in this context), and Clip 30 December 2015, 05:29:17 UTC
338cd77 reenabled all existing uses of TensorView; ScaleNode and Row/ColumnElementTimesNode now implemented as ElementTimesNode 30 December 2015, 04:50:54 UTC
e5013de cleaned up tensor reduction code 30 December 2015, 04:13:10 UTC
01f6e71 intermediate check-in of heavily instrumented reduction code 30 December 2015, 04:02:11 UTC
10b502b towards parallel reduction--works again with 1 block 29 December 2015, 23:45:34 UTC
3f10347 towards pallel reduction with multiple chunks 29 December 2015, 20:00:00 UTC
c3ab7a2 GridDim now distributes over multiprocs more evenly; fixed two Jenkins failures (a linux link error and a log error) 29 December 2015, 18:38:15 UTC
f1cb457 new condition for tensor lib: output cannot be in-place and inverse-broadcasting (reducing) at the same time. This makes reduction easier 29 December 2015, 07:48:40 UTC
76a6777 towards reductions that don't fit into __shared__ memory 29 December 2015, 07:07:36 UTC
16c1f8a (minor change) 29 December 2015, 05:35:57 UTC
1da8385 TensorOpElement::Compute() now uses tree-based reduction 29 December 2015, 04:53:04 UTC
da8f560 made gcc happy 29 December 2015, 04:03:50 UTC
22bab75 GPUMatrix.cu split: moved TensorView support to separate compilation unit (GPUMatrix had gotten too large for MSVC to compile the fatbin file). No code change otherwise 29 December 2015, 03:45:36 UTC
d27753d parallel reduction within one block now working 29 December 2015, 02:19:07 UTC
7881220 new kernel template instance for tensor lib parallel reduction 29 December 2015, 01:16:00 UTC
61e37a5 tensor GPU op: inRange flag and using y instead of x for reduction launch 29 December 2015, 00:11:39 UTC
20836a8 new nullary tensor op ConstOne; GridDim class now queries actual GPU information 28 December 2015, 22:51:35 UTC
d7f0c07 deleted virtual function ComputationNode::InferImageDimsFromInputs() since no longer needed after update of tensor-dim inference. Unary zip ops just copy the layout from their input, and binary zip ops take dimension-wise max (to consider broadcasting) 24 December 2015, 11:04:44 UTC
c7a0b62 bug fix: SimpleNetworkBuilder::AddTrainAndEvalCriterionNodes() should not compute 'tinput' for certain training-criterion nodes because 'input' has a different meaning for those; revived BatchSequenceReader, now supports MBLayout::AddSequence() 24 December 2015, 09:48:25 UTC
9b8a508 bug fix: ConvolutionNode must not ever change m_sampleLayout numChannels dimension 24 December 2015, 07:58:23 UTC
ff0a801 fixed numRows test for 0 dimensions 24 December 2015, 07:11:40 UTC
086e62f removed SetDims(size_t,cols) which only set m_numRows. Now, row dimension can only be set together with the sample layout, and in debug builds they are verified against each other 24 December 2015, 07:02:37 UTC
9f08610 (minor fix of last commit) 24 December 2015, 06:29:50 UTC
bf35c75 inlined all InferImageDimsFromInputs() calls in ConvolutionNodes.h. This allowed to use SetDims(TensorShape,cols) instead of setting numRows and sampleLayout separately 24 December 2015, 06:23:20 UTC
d5fd84f 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 24 December 2015, 06:12:24 UTC
6a69048 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 24 December 2015, 05:33:16 UTC
0864a8c split up InferImageDimsFromInput() into false and true versions 24 December 2015, 05:12:51 UTC
db4c5ea SetDims(node) now also clones that node's m_sampleLayout 24 December 2015, 04:48:08 UTC
166536b Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors 24 December 2015, 04:46:36 UTC
df6c25e sorted out various SetDims() calls, towards using SetDims() only to set both m_numRows and m_sampleLayout jointly 24 December 2015, 04:45:43 UTC
dfd780a cleaning up order of Validate(): MBLayout is now set first, and SetDim() and InferImageDimsFromInput() are grouped (they will get merged) 24 December 2015, 04:21:27 UTC
5829d3d (added a perf comment) 24 December 2015, 03:11:28 UTC
6418994 enabled ScaleNode::BackpropTo to use tensor lib; merged with master 24 December 2015, 02:27:27 UTC
3f721d1 Updated ResNet sample. 24 December 2015, 00:59:18 UTC
87096d4 Added ResNet ImageNet samples. 24 December 2015, 00:44:11 UTC
44e7343 merged from master 23 December 2015, 23:29:34 UTC
28ffb10 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 23 December 2015, 23:20:40 UTC
a590e5e more optimizations of PrepareTensorOperands() aimed at reducing memory copies and mallocs 23 December 2015, 22:44:24 UTC
fd9e792 Updated ResNet sample. 23 December 2015, 21:59:31 UTC
02f1f56 Updated samples, remove bogus restriction from conv and pool nodes. 23 December 2015, 21:46:10 UTC
05af287 Updated image samples. 23 December 2015, 21:46:00 UTC
0e880c2 some simplification of tensor-shape building, but no measurable speed impact; GetSampleShape() changed to GetAndValidateSampleLayout() which no longer makes up TensorShapes but rather enforces that m_sampleLayout is consistent and plausibly set up. Avoids a copy 23 December 2015, 21:38:13 UTC
42a027f Merge branch 'master' into CUDA-elementwise-rework Conflicts: Source/Math/GPUMatrix.cu Source/Math/GPUSparseMatrix.cu 23 December 2015, 20:45:59 UTC
ecbc649 CUDA making sure older sigmoid kernel is used for AssignSigmoidOf() 23 December 2015, 20:36:38 UTC
788b1d3 undid last stdafx.h uncomment, did not work 23 December 2015, 19:20:16 UTC
7c9a991 commented out all #include "stdafx.h" as it caused build errors without a meaningful error message that would point out which file is wrong 23 December 2015, 17:18:07 UTC
81eeff1 added a#ifndef _CRT_SECURE_NO_WARNINGS to several stdafx.h 23 December 2015, 08:39:38 UTC
af84f92 bug fix: ElementTimes::BackpropTo() in the TensorView prototype did not mask gaps correctly 23 December 2015, 08:30:59 UTC
279a653 added a missing _CRT_SECURE_NO_WARNINGS 23 December 2015, 08:17:01 UTC
e551995 updated NoGPU.cpp re TensorOp()/SmallVector 23 December 2015, 08:05:09 UTC
8856f49 all tensor ops are now available in three variants: DoOpOf(), AssignOpOf(), and AddOpOf(); SigmoidNode prototype with tensor lib for gradient as well 23 December 2015, 07:58:49 UTC
5040ff7 reimplemented SmallVector without dynamic memory allocation--10% faster for small minibatches, same speed as without tensor lib 23 December 2015, 07:18:24 UTC
beda4ef changed TensorShape to use new class SmallVector<> instead of std::vector, which is meant to avoid dynamic memory allocations 23 December 2015, 06:25:50 UTC
283f22d new CUDA-efficient Sigmoid() implementation as suggested by Jasha 23 December 2015, 05:36:54 UTC
fb3dae2 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 23 December 2015, 04:28:21 UTC
cd87741 merged with master 23 December 2015, 01:37:11 UTC
d717aa0 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() 23 December 2015, 01:34:10 UTC
0eed21c Fix a bug in RowSlice node (support legacy model format) 22 December 2015, 23:49:02 UTC
bdfcf91 added a heuristic to TensorShape::Load() that allows to read old models created when sample layouts were not fully consistent 22 December 2015, 23:04:52 UTC
644c470 new class GridDim to centralize computation of grid dimensions 22 December 2015, 22:35:19 UTC
58b8afb Updated AlexNet and VGG sample configs. 22 December 2015, 21:59:40 UTC
9602bdd Updated image samples. 22 December 2015, 21:54:18 UTC
e8c4e8f minor optimization of tensor CUDA kernel 22 December 2015, 20:47:01 UTC
12a0c2e made gcc happy (two-phase name lookup) 22 December 2015, 09:49:09 UTC
85c186f (comments) 22 December 2015, 09:46:50 UTC
71cb56c all BackpropTo() overloads from derived classes of NonlinearityNodeBase are now removed, code is cleaner and regular; brought back Validate() of DropoutNode, why did it go missing? 22 December 2015, 09:43:59 UTC
33e58f3 further unified BackpropToV(), close to being ready to remove the dups 22 December 2015, 09:32:21 UTC
3ecbc8a removed ScaleNode, RowElementTimesNode, and ColumnElementTimesNode if ENABLE_TENSORVIEW is #defined 22 December 2015, 09:13:20 UTC
b297b6d made NonlinearityNodes.h a little more regular and removed some left-overs 22 December 2015, 09:01:00 UTC
5301b18 prototypically implemented ScaleNode, RowElementTimesNode, and ColumnElementTimesNode just as ElementTimesNode with tensor lib (broadcasting), by hacking the name mapping 22 December 2015, 07:43:59 UTC
d17a011 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() 22 December 2015, 07:10:52 UTC
90387f0 moved MinusNode and ElementTimesNode to derive from BinaryElementwiseNode; added missing 'override's 22 December 2015, 06:36:15 UTC
757509c created a new standard base class BinaryElementwiseNode, to implement PlusNode and friends. PlusNode first got the treatment, others will follow 22 December 2015, 06:14:13 UTC
3369234 new #define ENABLE_TENSORVIEW; new methods ComputationNode::ValueTensorFor() and GradientTensorFor(). Makes PlusNode much easier 22 December 2015, 06:00:05 UTC
782a100 merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors 22 December 2015, 03:03:47 UTC
dfd7b39 first prototype of gradient using tensor lib 22 December 2015, 03:02:27 UTC
152054c bug fix in InputValueBase: now initializes and deserializes tensor dimensions correctly; bug fix: RowSliceNode now tests Input(0) layout directly since we no longer infer the input layout 22 December 2015, 02:10:23 UTC
24df1c1 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 22 December 2015, 01:26:25 UTC
49ab831 refactored the GetTensorsForwardBinary() prototype implementation to be more general; prototypical implementation of gap masking with the new tensor lib (not enabled yet) 21 December 2015, 23:54:08 UTC
8add7ee cleaned up DropoutNode 21 December 2015, 21:58:50 UTC
1527b89 Adapted Readme files wrt new directory structure 21 December 2015, 10:30:43 UTC
9cf0f3d Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors 19 December 2015, 08:15:55 UTC
2fc5fa9 bug fix: ComputationNode::GetTensorsForwardBinary() made a copy instead of taking a reference to the matrix 19 December 2015, 08:15:32 UTC
835b319 Use only 2 threads for CPUMatrix::SetValue as this is a memory bound operation and use of large number of threads does not help but instead hurts in case of parallel training where this causes oversubscription. 19 December 2015, 07:03:20 UTC
d1752e1 log messages to see where it fails in Jenkins 19 December 2015, 07:01:22 UTC
775458f bug fix: wrong index bounds in TensorOpReduce 19 December 2015, 05:36:56 UTC
61df8fe fixed a warning in Windows Release build; fixed CPUONLY build (TensorOp() missing in NoGPU.cpp) 19 December 2015, 04:35:16 UTC
4da5273 disabled the prototypical use of the new tensor addition in the PlusNode again 19 December 2015, 04:02:29 UTC
b98855a 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 19 December 2015, 03:59:26 UTC
9fe02f9 Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors 19 December 2015, 03:59:26 UTC
befdf9d GPU version of tensor ops passes the simple tests now 19 December 2015, 02:17:41 UTC
57ddd12 CUDA implementation for tensor ops complete, but not computing the right thing 19 December 2015, 01:59:44 UTC
ef80d86 Updated Linux baselines. 18 December 2015, 23:42:35 UTC
back to top