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

1469 Коммитов

Автор SHA1 Сообщение Дата
Frank Seide 025e1323cd added BrainScript to Linux Makefile INCLUDEPATH 2015-08-31 21:06:28 -07:00
Frank Seide de71e8a101 made ParseConfig compile again (not really needed, but it broke the lab build) 2015-08-31 21:02:50 -07:00
Frank Seide 6599e9e8bb cleaned up include path for CNTKEval and CNTK, CNTKEval now builds with BS
sadly, had to move IndentString() and NestString() into the header, to allow CNTKEval to compile (we need a better place for this kind of stuff--Basics.cpp?);
removed unnecessary MPI dependency from CNTKEval, its dllmain.cpp, and BestGPU.cpp
2015-08-31 20:50:06 -07:00
Frank Seide 31e02848b1 LoadNetworkFromFile() implemented--we can now restart from checkpoint 2015-08-31 20:18:14 -07:00
Frank Seide c6cb33caee FixupInputMinibatchSize() moved to ComputationNetwork;
ComputationNode constructor now initializes m_evalTimeStamp (another member that was forgotten);
ExperimentalNetworkBuilder now calls FixupInputMinibatchSize() and ResetEvalTimeStamp() like the other builders (although I don't know why it is necessary)
2015-08-31 19:53:43 -07:00
Frank Seide 946b99b45e fixed a few ComputationNode-defining default BS macros (missed the tag parameter);
changed LateAttachingNode's function to taking a naked pointer since we cannot reconstruct the shared_ptr (that functionality is protected);
PastValue node is now constructed correctly (but does not run properly yet, some dimensions are not set up right yet, don't yet know how to do that)
2015-08-31 19:19:00 -07:00
Frank Seide 6c16d6f063 merged with master 2015-08-31 18:37:31 -07:00
Frank Seide 044573fc52 added all standard nodes that were documented in the CNTKBook as default macros 2015-08-31 18:23:53 -07:00
Frank Seide 2da60eac3c implemented all mising special nodes (still need to add macros for all standard nodes...) 2015-08-31 16:34:22 -07:00
Frank Seide d963039f5d several more nodes are now BS-enabled;
new helper class LateAttachingNode for delay nodes;
RowSliceNode: one constructor down, using default args;
new constructor arg timeStep for DelayedValueNode
2015-08-31 16:12:39 -07:00
Dong Yu 885de65553 remove testcases.yml from LSTM test folder before baseline results are provided. 2015-08-31 11:40:19 -07:00
Frank Seide 49ddc685a5 moved code around to bring node macros and code closer 2015-08-31 11:11:02 -07:00
Frank Seide 031ca4b848 addes SpareInput, and made the internal operation name consistent for Input (should be InputValue--or we test against the class directly, maybe better) 2015-08-31 11:09:21 -07:00
Frank Seide 5aea0d4071 bug fix, m_boundaryInfo should not be moved to deviceId like most others, but to CPUDEVICE 2015-08-30 22:28:04 -07:00
Frank Seide 6ed14c3e6b (adapted the debug command line in README.txt to be the same as in master branch) 2015-08-30 22:15:13 -07:00
Frank Seide 658c57d252 bug fix in TransferToDeviceIfNotThere(): forgot to pass first arg (GetDeviceId()), and it accepted it because, due to optional parameters, the signature still matched (a bool was silently cast as an int) 2015-08-30 21:15:02 -07:00
Frank Seide 1c65a18da6 added the LSTM test files to the VS Solution (no code change) 2015-08-30 20:43:38 -07:00
Dong Yu ca6bdc6948 Add the speech LSTM test config. test results are not provided yet. 2015-08-30 00:15:32 -07:00
Frank Seide f3aa78b6bb refined expression paths and understood the problem, soluton is safe but ugly;
refined tracing
2015-08-29 23:45:50 -07:00
Frank Seide 5d43271b93 new NDL for QuickE2E model now compiles (now fails due to mismatching node names for Input) 2015-08-29 21:37:56 -07:00
Frank Seide 3548de6a19 Input nodes are now possible with BS;
moved BS from namespace Microsoft::MSR::CNTK::BS to Microsoft::MSR::BS to emphasize its relative independence
2015-08-29 21:08:47 -07:00
Frank Seide 6cc60eec13 renamed variables named FeatureNodes to featureNodes, for consistency with similar variables around them; 2015-08-29 20:56:38 -07:00
Frank Seide 357704c39f refined a few BS error messages;
Input() needed to pass a tag;
now modifying cntk.conig of QuickE2E directly
2015-08-29 20:39:00 -07:00
Frank Seide 833dd3ef36 ComputationNode::ToString() now prints dimensions 2015-08-29 20:09:45 -07:00
Frank Seide 075c16027c implemented ToString for ComputationNode and ComputationNetwork;
IndentString() and NestString() are now part of HasToString, as that's where they are needed;
ComputationNode is now WithTag, and tags are used to build the node-group lists;
moved TypeId() to Basics.h (not sure if it belongs here);
made SynchronousExecutionEngine::SetOutputNode() static, because we can
2015-08-29 19:58:12 -07:00
Frank Seide 97d0c7fd8e MakeRuntimeObject<ComputationNetwork<>> implemented (it completes, but leaves some stuff not yet properly initialized);
MakeRuntimeObject<ComputationNode<>> implemented for LearnableParameter and StandardNodes (need to test all those init options of LearnableParameter);
ComputationNode<ElemType> now derives from new class BS::ComputationNodeObject (without template parameter) that we can test for in the Evaluator for infix operations on them;
all 'new ComputationNode' were changed from 'class = "XXXNode"' to 'operation = "XXX"' to be consistent with the (inconsistent) TypeName (which really is the operation name, not the type name);
unary minus with ComputationNode now uses Negate();
Scale() between ComputationNode and scalar now creates a Constant out of that scalar;
InfixOp now takes an additional parameter, the scope, needed for looking up 'precision' from higher-up scopes;
&& and || are now short-circuited like C++;
InfixOps now has only one entry for operations involving ComputationNodes, catching invalid ones now as type errors;
ConfigValuePtr now knows how to cast to 'float' as well;
BoxOf<> constructor now takes any number of arguments, whatever C::C() takes (using forwarding);
ComputationNetwork no longer derives from BS::Object, we use a BoxOf<> instead, makes life easier;
moved BS stuff to Experimental in the VS solution (until it works);
changed three array initialization functions to static (with non-static wrappers where needed);
ComputationNode base constructor forgot to initialize m_needGradient
2015-08-29 18:11:30 -07:00
Frank Seide 97579b0081 ExperimentalNetworkBuilder compiles now and might work, but cannot test since CNTK does not compile without CUDA presently;
code implemented for all standard nodes (that only take inputs but no extra args) and for ComputationNetwork, most likely buggy and incomplete;
ConfigArray::GetRange() renamed to GetIndexRange();
ComputationNetwork::NewStandardNode() and NewNode() made static to make them accessible to BrainScript;
added some comments on how to clean up SetNbrSlicesInEachRecurrentIteration();
tried to make it compile without CUDA, but hopeless
2015-08-29 01:41:11 -07:00
Frank Seide 262de81085 changed MakeRuntimeObject() to return a shared_ptr<Object> instead of shared_ptr<C> 2015-08-28 23:32:59 -07:00
Frank Seide 5e9296bc9d somehoe two files got lost during renaming, readding 2015-08-28 23:17:54 -07:00
Frank Seide 5eb853687c somehow two sources got lost in the process, readding 2015-08-28 23:17:12 -07:00
Frank Seide fcbb48ef5a FindExternalRuntimeTypeInfo() for external (CNTK) code 2015-08-28 20:23:33 -07:00
Frank Seide 3f0edb836f towards disentangling internal and externa runtime objects 2015-08-28 19:59:01 -07:00
Frank Seide c524b0e8ff changed ConfigRecordPtr to IConfigRecordPtr outside the evaluator routines for better abstraction;
changed ConfigRecord::GetMembers() to IConfigRecord::GetMemberIds();
IConfigRecordPtr defined in BrainScriptObjects.h so that it can be passed around without having to pull in the more heavy BrainScriptEvaluator.h
2015-08-28 19:10:04 -07:00
Frank Seide 8ba705c7e6 fixed the project structure of the CNTK project (.filters file got corrupt) 2015-08-28 18:34:33 -07:00
Frank Seide b7b8c9554a Made it compile and
Merge remote-tracking branch 'origin' into fseide/bs

Conflicts:
	MachineLearning/CNTK/CNTK.cpp
	MachineLearning/CNTK/CNTK.vcxproj.filters
	MachineLearning/CNTK/ComputationNetwork.h
	MachineLearning/CNTK/ComputationNode.h
2015-08-28 18:24:04 -07:00
Frank Seide 24472dfea9 renamed source files to BrainScript and name space to BS for maximum descriptiveess 2015-08-28 17:05:02 -07:00
Chris Basoglu d4776c3484 ensure that run-test has executable permissions 2015-08-28 16:59:03 -07:00
U-FAREAST\fseide bffc8441c7 Merge branch 'fseide/bs' of https://git.codeplex.com/cntk into fseide/bs 2015-08-28 16:46:36 -07:00
U-FAREAST\fseide 66a4862fac This merges a larger set of changes to the ComputationNode structure, aimed at allowing to reduce code duplication.
The load and copy constructors (and virtual Duplicate()) are gone; instead use LoadFromFile() and CopyTo() directly.
Shared code from Past/FutureValueNode and the non-linearities (Sigmoid etc.) were extracted into shared base classes.
The updated constructors and related functions now have consistent formatting w.r.t. spacing and indentation, to make future meachnical refactorings easier.
Every ComputationNode derivate now has a typedef Base to make it less error-prone to refer to the respective base class.

Merge branch 'fseide/refactor_nodes'
2015-08-28 16:20:20 -07:00
Frank Seide 2da4e80edc fixed a few gcc warnings in the 1-bit SGD code 2015-08-28 15:23:01 -07:00
Frank Seide 4e2a28cfe1 fixed a few gcc-side warnings and a spelling error in the name of FormRecurrentLoop() that got fixed but partially undone during the last merge;
added clear installation instructions for MS MPI SDK in the source file at the place where it fails if you don't have it
2015-08-28 15:09:51 -07:00
Amit Agarwal ac235bc21a Reduced number of Epochs in NoQuantization tests to 4 from older value of 10 to reduce test running time 2015-08-28 14:53:56 -07:00
Frank Seide e904bc868b Merge branch 'master' of https://git.codeplex.com/cntk into fseide/refactor_nodes
Conflicts:
	MachineLearning/CNTK/CNTK.vcxproj.filters
	MachineLearning/CNTK/ComputationNetwork.h
2015-08-28 14:15:32 -07:00
Amit Agarwal 3f3974942d Fixes for handling zero sized MBs in parallel training 2015-08-28 13:49:23 -07:00
Frank Seide 8b7ff843dd fixed a missing 'template' keyword gcc really couldn't do without 2015-08-28 11:47:53 -07:00
Frank Seide 8694640708 DelayNode finally implemented with recurrent hookup, by taking a lambda to the evaluation of the inputs rather than evaluating them right away;
runtime object construction now passes around shared_ptr<ConfigRecord> instead of const ConfigRecord &, in order to allow for late evaluation--especially MakeRuntimeObject();
new helper base class RecurrentComputationNode
2015-08-28 11:42:24 -07:00
Frank Seide 3fbc3bc7d5 added headline comments to class ComputationNetwork--one day we will sort them in a logical order;
replaced a few more throw runtime_error by RuntimeError()
2015-08-28 09:28:54 -07:00
Frank Seide dbbdb70ddb general gcc happiness (not fully happy yet);
fix of a bug that gcc found (wrong typecast)
2015-08-28 01:02:00 -07:00
Frank Seide ded2ae13b6 reverted back all constructor initializers into actual initializer syntax;
fixed a few more incorrect Base calls (DumpNodeInfo(), and also a few CopyTo())
2015-08-28 00:38:54 -07:00
Frank Seide a6f2425ecd fixed base class call for NonlinearityNode;
moved CopyTo() and MoveMatricesToDevice() to NonlinearityNode
2015-08-27 23:13:51 -07:00