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
db4c5ea53f
SetDims(node) now also clones that node's m_sampleLayout
2015-12-23 20:48:08 -08:00
Frank Seide
166536b8dc
Merge branch 'master' of https://git.codeplex.com/cntk into fseide/tensors
2015-12-23 20:46:36 -08:00
Frank Seide
df6c25e958
sorted out various SetDims() calls, towards using SetDims() only to set both m_numRows and m_sampleLayout jointly
2015-12-23 20:45:43 -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
bmitra
42b308fc61
Stricter criteria for gpuSparse1D convolution optimization.
2015-12-23 17:44:17 -08:00
Alexey Kamenev
3f721d16e3
Updated ResNet sample.
2015-12-23 16:59:18 -08:00
Alexey Kamenev
87096d4751
Added ResNet ImageNet samples.
2015-12-23 16:44:11 -08:00
Frank Seide
44e7343f71
merged from master
2015-12-23 15:29:34 -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
a590e5e889
more optimizations of PrepareTensorOperands() aimed at reducing memory copies and mallocs
2015-12-23 14:44:24 -08:00
Alexey Kamenev
fd9e7923c3
Updated ResNet sample.
2015-12-23 13:59:31 -08:00
Alexey Kamenev
02f1f56c9a
Updated samples, remove bogus restriction from conv and pool nodes.
2015-12-23 13:46:10 -08:00
Alexey Kamenev
05af287fe8
Updated image samples.
2015-12-23 13:46:00 -08:00
Frank Seide
0e880c2c64
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
2015-12-23 13:38:13 -08:00
Jasha Droppo
42a027fe5c
Merge branch 'master' into CUDA-elementwise-rework
...
Conflicts:
Source/Math/GPUMatrix.cu
Source/Math/GPUSparseMatrix.cu
2015-12-23 12:45:59 -08:00
Jasha Droppo
ecbc64980b
CUDA making sure older sigmoid kernel is used for AssignSigmoidOf()
2015-12-23 12:36:38 -08:00
bmitra
c985aa2f48
Optimized 1D convolution backprop.
2015-12-23 11:53:17 -08:00
bmitra
ca0301c8af
Fix for merge with Master.
2015-12-23 11:52:55 -08:00
Frank Seide
788b1d3596
undid last stdafx.h uncomment, did not work
2015-12-23 11:20:16 -08:00
Frank Seide
7c9a991243
commented out all #include "stdafx.h" as it caused build errors without a meaningful error message that would point out which file is wrong
2015-12-23 09:18:07 -08:00
bmitra
9298f22b94
Merge branch 'master' of https://git01.codeplex.com/cntk into bmitra/Changes
...
Conflicts:
Source/Math/GPUSparseMatrix.cu
2015-12-23 08:31:50 -08:00
Frank Seide
81eeff1234
added a#ifndef _CRT_SECURE_NO_WARNINGS to several stdafx.h
2015-12-23 00:39:38 -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
279a6535c1
added a missing _CRT_SECURE_NO_WARNINGS
2015-12-23 00:17:01 -08:00
Frank Seide
e55199560c
updated NoGPU.cpp re TensorOp()/SmallVector
2015-12-23 00:05:09 -08:00
Frank Seide
8856f49ddd
all tensor ops are now available in three variants: DoOpOf(), AssignOpOf(), and AddOpOf();
...
SigmoidNode prototype with tensor lib for gradient as well
2015-12-22 23:58:49 -08:00
Frank Seide
5040ff7962
reimplemented SmallVector without dynamic memory allocation--10% faster for small minibatches, same speed as without tensor lib
2015-12-22 23:18:24 -08:00
Frank Seide
beda4ef795
changed TensorShape to use new class SmallVector<> instead of std::vector, which is meant to avoid dynamic memory allocations
2015-12-22 22:25:50 -08:00
Frank Seide
283f22d357
new CUDA-efficient Sigmoid() implementation as suggested by Jasha
2015-12-22 21:36:54 -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
cd87741e13
merged with master
2015-12-22 17:37:11 -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
Yongqiang Wang
0eed21c0ff
Fix a bug in RowSlice node (support legacy model format)
2015-12-22 15:49:02 -08:00
Frank Seide
bdfcf91923
added a heuristic to TensorShape::Load() that allows to read old models created when sample layouts were not fully consistent
2015-12-22 15:04:52 -08:00
Frank Seide
644c47017e
new class GridDim to centralize computation of grid dimensions
2015-12-22 14:35:19 -08:00
bmitra
54e4f95295
More sparse matrix fixes.
2015-12-22 14:32:56 -08:00
Alexey Kamenev
58b8afbb0d
Updated AlexNet and VGG sample configs.
2015-12-22 13:59:40 -08:00
Alexey Kamenev
9602bddca7
Updated image samples.
2015-12-22 13:54:18 -08:00
Frank Seide
e8c4e8f1de
minor optimization of tensor CUDA kernel
2015-12-22 12:47:01 -08:00
Yongqiang Wang
067bc561d7
(Fix a bug in MarkValueSharable)
2015-12-22 12:18:21 -08:00
bmitra
43436ea9c6
Sparse matrix fixes.
2015-12-22 02:44:15 -08:00
Frank Seide
12a0c2eeba
made gcc happy (two-phase name lookup)
2015-12-22 01:49:09 -08:00
Frank Seide
85c186fdb9
(comments)
2015-12-22 01:46:50 -08:00
Frank Seide
71cb56ce17
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?
2015-12-22 01:43:59 -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