renamed commandArgUtil.h to Config.h and ConfigFile.cpp to Config.cpp;

bug fix in previous refactoring of sub-minibatching
This commit is contained in:
Frank Seide 2015-12-04 22:31:47 -08:00
Родитель 450be1a664
Коммит ec4df193d2
70 изменённых файлов: 279 добавлений и 231 удалений

Просмотреть файл

@ -16,7 +16,7 @@
#define _CRT_SECURE_NO_WARNINGS // "secure" CRT not available on all platforms --add this at the top of all CPP files that give "function or variable may be unsafe" warnings
#include "Platform.h"
#include "BestGpu.h"
#include "commandArgUtil.h" // for ConfigParameters
#include "Config.h" // for ConfigParameters
#include "ScriptableObjects.h"
#include "DebugUtil.h"
#ifndef CPUONLY

Просмотреть файл

@ -5,12 +5,13 @@
//
// ConfigFile.cpp : Defines the configuration file loader.
//
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS // "secure" CRT not available on all platforms --add this at the top of all CPP files that give "function or variable may be unsafe" warnings
#endif
#include "File.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "ScriptableObjects.h"
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -10,7 +10,7 @@
#define DATAREADER_LOCAL
#include "Basics.h"
#include "DataReader.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "ScriptableObjects.h"
using namespace std;

Просмотреть файл

@ -9,7 +9,7 @@
// #define CPUONLY // #define this to build without GPU support nor needing the SDK installed
#include "CommonMatrix.h"
// define IConfigRecord and ConfigParameters as incomplete types, in order to avoid having to include "ScriptableObjects.h" and "commandArgUtil.h", as that confuses some .CU code
// define IConfigRecord and ConfigParameters as incomplete types, in order to avoid having to include "ScriptableObjects.h" and "Config.h", as that confuses some .CU code
namespace Microsoft { namespace MSR { namespace ScriptableObjects {
struct IConfigRecord;
}}}

Просмотреть файл

@ -1,5 +1,5 @@
//
// <copyright file="commandArgUtil.h" company="Microsoft">
// <copyright file="Config.h" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//

Просмотреть файл

@ -26,7 +26,7 @@
#include "Basics.h"
#include "Matrix.h"
#include "Sequences.h"
#include "commandArgUtil.h" // for ConfigParameters
#include "Config.h" // for ConfigParameters
#include "ScriptableObjects.h"
#include <map>
#include <string>

Просмотреть файл

@ -25,7 +25,7 @@
#include "Basics.h"
#include "Matrix.h"
#include "commandArgUtil.h" // for ConfigParameters
#include "Config.h" // for ConfigParameters
#include "ScriptableObjects.h"
#include <map>
#include <string>

Просмотреть файл

@ -6,7 +6,7 @@
#pragma once
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include <string>
#include <map>
#include <vector>

Просмотреть файл

@ -108,14 +108,11 @@
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="BinaryReader.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
@ -133,6 +130,10 @@
<ClCompile Include="BinaryFile.cpp" />
<ClCompile Include="BinaryReader.cpp" />
<ClCompile Include="BinaryWriter.cpp" />
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Exports.cpp" />
<ClCompile Include="dllmain.cpp">
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>

Просмотреть файл

@ -13,9 +13,6 @@
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\fileutil.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -25,6 +22,9 @@
<ClCompile Include="..\..\Common\File.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="BinaryReader.h" />
@ -48,6 +48,9 @@
<ClInclude Include="..\..\Common\Include\DebugUtil.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -7,7 +7,7 @@
#pragma once
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "RandomOrdering.h"
#include <string>
#include <map>

Просмотреть файл

@ -118,15 +118,12 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\..\Common\Include\RandomOrdering.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="DSSMReader.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
@ -143,6 +140,7 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp" />
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="DSSMReader.cpp" />
<ClCompile Include="Exports.cpp" />

Просмотреть файл

@ -17,9 +17,6 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -47,6 +44,9 @@
<ClCompile Include="..\..\Common\DebugUtil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Common\Include\basetypes.h">
@ -79,5 +79,8 @@
<ClInclude Include="..\..\Common\Include\RandomOrdering.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
</Project>

Просмотреть файл

@ -21,7 +21,7 @@
#define DATAREADER_EXPORTS
#include "DataReader.h"
#include "HTKMLFReader.h"
#include "commandArgUtil.h"
#include "Config.h"
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -23,7 +23,7 @@
#include "minibatchiterator.h"
#define DATAREADER_EXPORTS // creating the exports here
#include "DataReader.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "ScriptableObjects.h"
#include "HTKMLFReader.h"
#include "TimerUtility.h"

Просмотреть файл

@ -6,7 +6,7 @@
// HTKMLFReader.h - Include file for the MTK and MLF format of features and samples
#pragma once
#include "DataReader.h"
#include "commandArgUtil.h" // for intargvector
#include "Config.h" // for intargvector
#include "CUDAPageLockedMemAllocator.h"
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -105,6 +105,7 @@
<ClInclude Include="..\..\Common\Include\ssematrix.h" />
<ClInclude Include="basetypes.h" />
<ClInclude Include="biggrowablevectors.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="chunkevalsource.h" />
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />

Просмотреть файл

@ -50,6 +50,9 @@
<ClInclude Include="..\..\Common\Include\ssematrix.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />

Просмотреть файл

@ -17,7 +17,7 @@
#define DATAWRITER_EXPORTS // creating the exports here
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "HTKMLFWriter.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection

Просмотреть файл

@ -8,7 +8,7 @@
#define DATAREADER_EXPORTS // creating the exports here
#include "DataReader.h"
#include "ImageReader.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "ScriptableObjects.h"
#include "ConcStack.h"
#include <algorithm>

Просмотреть файл

@ -108,14 +108,12 @@
<ClInclude Include="..\..\Common\Include\DataReader.h" />
<ClInclude Include="..\..\Common\Include\File.h" />
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="ImageReader.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
@ -126,6 +124,10 @@
<ClCompile Include="..\..\Common\fileutil.cpp">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="Exports.cpp">
<ExcludedFromBuild Condition="!$(HasOpenCV)">true</ExcludedFromBuild>
@ -141,7 +143,6 @@
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<Target Name="CheckDependencies">
<Warning Condition="!$(HasOpenCV)"
Text="ImageReader requires OpenCV library v3.0 or higher to build. Please install the library from http://opencv.org/downloads.html and set OPENCV_PATH environment variable to OpenCV build folder (e.g. C:\src\opencv\build)." />
<Warning Condition="!$(HasOpenCV)" Text="ImageReader requires OpenCV library v3.0 or higher to build. Please install the library from http://opencv.org/downloads.html and set OPENCV_PATH environment variable to OpenCV build folder (e.g. C:\src\opencv\build)." />
</Target>
</Project>

Просмотреть файл

@ -6,9 +6,6 @@
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\fileutil.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -17,6 +14,12 @@
</ClCompile>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="ImageReader.cpp" />
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DebugUtil.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
@ -34,6 +37,9 @@
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="ImageReader.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -20,7 +20,7 @@
#define DATAREADER_EXPORTS
#include "DataReader.h"
#include "HTKMLFReader.h"
#include "commandArgUtil.h"
#include "Config.h"
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -21,7 +21,7 @@
#define DATAREADER_EXPORTS // creating the exports here
#include "DataReader.h"
#include "HTKMLFReader.h"
#include "commandArgUtil.h"
#include "Config.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection
#endif

Просмотреть файл

@ -8,7 +8,7 @@
#include "DataReader.h"
#include "KaldiSequenceTrainingDerivative.h"
#include "UtteranceDerivativeBuffer.h"
#include "commandArgUtil.h" // for intargvector
#include "Config.h" // for intargvector
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -15,9 +15,9 @@
#define DATAWRITER_EXPORTS // creating the exports here
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "HTKMLFWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection
#endif

Просмотреть файл

@ -24,7 +24,7 @@
#define DATAREADER_EXPORTS
#include "DataReader.h"
#include "HTKMLFReader.h"
#include "commandArgUtil.h"
#include "Config.h"
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -6,7 +6,7 @@
// HTKMLFReader.h - Include file for the MTK and MLF format of features and samples
#pragma once
#include "DataReader.h"
#include "commandArgUtil.h" // for intargvector
#include "Config.h" // for intargvector
namespace Microsoft { namespace MSR { namespace CNTK {

Просмотреть файл

@ -26,10 +26,10 @@
#define DATAWRITER_EXPORTS // creating the exports here
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "HTKMLFWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection
#endif

Просмотреть файл

@ -109,6 +109,7 @@
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="..\..\Common\Include\RandomOrdering.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="SequenceWriter.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
@ -116,10 +117,6 @@
<ClInclude Include="SequenceParser.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
@ -134,6 +131,10 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Exports.cpp" />
<ClCompile Include="dllmain.cpp">
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>

Просмотреть файл

@ -9,7 +9,7 @@
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "SequenceParser.h"
#include "RandomOrdering.h"
#include <string>

Просмотреть файл

@ -16,7 +16,7 @@
#include "DataWriter.h"
#include "SequenceReader.h"
#include "SequenceWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection
#endif

Просмотреть файл

@ -11,7 +11,7 @@
#include "DataReader.h"
#include "DataWriter.h"
#include "LUSequenceParser.h"
#include "commandArgUtil.h" // for intargvector
#include "Config.h" // for intargvector
#include "ScriptableObjects.h"
#include <string>
#include <map>

Просмотреть файл

@ -108,6 +108,7 @@
<ClInclude Include="..\..\Common\Include\File.h" />
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="LUSequenceWriter.h" />
<ClInclude Include="minibatchsourcehelpers.h" />
<ClInclude Include="stdafx.h" />
@ -116,10 +117,6 @@
<ClInclude Include="LUSequenceParser.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
@ -133,6 +130,10 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="DataWriter.cpp" />
<ClCompile Include="Exports.cpp" />
<ClCompile Include="dllmain.cpp">

Просмотреть файл

@ -7,9 +7,6 @@
<ClCompile Include="stdafx.cpp" />
<ClCompile Include="LUSequenceReader.cpp" />
<ClCompile Include="LUSequenceParser.cpp" />
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -22,6 +19,10 @@
<ClCompile Include="..\..\Common\File.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DebugUtil.cpp" />
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="LUSequenceWriter.h" />
@ -47,6 +48,10 @@
<ClInclude Include="minibatchsourcehelpers.h">
<Filter>Duplicates to remove</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Text Include="SequenceTest.txt" />

Просмотреть файл

@ -15,7 +15,7 @@
#define DATAWRITER_EXPORTS // creating the exports here
#include "DataWriter.h"
#include "LUSequenceWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#ifdef LEAKDETECT
#include <vld.h> // for memory leak detection
#endif

Просмотреть файл

@ -7,7 +7,7 @@
#pragma once
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "RandomOrdering.h"
#include <map>
#include <vector>

Просмотреть файл

@ -110,15 +110,12 @@
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="..\..\Common\Include\RandomOrdering.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="LibSVMBinaryReader.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
@ -137,6 +134,10 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="dllmain.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
</ClCompile>

Просмотреть файл

@ -13,9 +13,6 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -35,6 +32,9 @@
<ClCompile Include="Exports.cpp" />
<ClCompile Include="LibSVMBinaryReader.cpp" />
<ClCompile Include="stdafx.cpp" />
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Common\Include\basetypes.h">
@ -61,5 +61,8 @@
<ClInclude Include="..\..\Common\Include\RandomOrdering.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
</Project>

Просмотреть файл

@ -7,7 +7,7 @@
#pragma once
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "RandomOrdering.h"
#include <string>
#include <map>

Просмотреть файл

@ -118,15 +118,12 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\..\Common\Include\RandomOrdering.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="SparsePCReader.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
@ -143,6 +140,9 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="SparsePCReader.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Use</PrecompiledHeader>

Просмотреть файл

@ -21,9 +21,6 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -51,6 +48,9 @@
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Common\Include\basetypes.h">
@ -83,5 +83,8 @@
<ClInclude Include="..\..\Common\Include\RandomOrdering.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
</Project>

Просмотреть файл

@ -8,7 +8,7 @@
#include "stdafx.h"
#include "DataReader.h"
#include "DataWriter.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "RandomOrdering.h"
#include "UCIParser.h"
#include <string>

Просмотреть файл

@ -107,16 +107,13 @@
<ClInclude Include="..\..\Common\Include\fileutil.h" />
<ClInclude Include="..\..\Common\Include\DebugUtil.h" />
<ClInclude Include="..\..\Common\Include\RandomOrdering.h" />
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="UCIFastReader.h" />
<ClInclude Include="UCIParser.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
@ -131,6 +128,10 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="Exports.cpp" />
<ClCompile Include="dllmain.cpp">
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</CompileAsManaged>

Просмотреть файл

@ -6,9 +6,6 @@
<ClCompile Include="stdafx.cpp" />
<ClCompile Include="UCIFastReader.cpp" />
<ClCompile Include="UCIParser.cpp" />
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -24,6 +21,9 @@
<ClCompile Include="..\..\Common\DebugUtil.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="C:\work\cntk-public\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
@ -48,6 +48,9 @@
<ClInclude Include="..\..\Common\Include\RandomOrdering.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="C:\work\cntk-public\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -2291,7 +2291,7 @@ status open
\begin_layout Plain Layout
#include "commandArgUtil.h"
#include "Config.h"
\end_layout
\begin_layout Plain Layout

Просмотреть файл

@ -41,7 +41,7 @@
#include "CPUMatrix.h" // used for SetNumThreads()
#include "SGD.h"
#include "MPIWrapper.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "MultiNetworksSGD.h"
#include "SimpleEvaluator.h"
#include "SimpleOutputWriter.h"

Просмотреть файл

@ -214,7 +214,10 @@
<ClCompile Include="..\..\BrainScript\BrainScriptEvaluator.cpp" />
<ClCompile Include="..\..\BrainScript\BrainScriptParser.cpp" />
<ClCompile Include="..\..\BrainScript\BrainScriptTest.cpp" />
<ClCompile Include="..\..\Common\ConfigFile.cpp" />
<ClCompile Include="..\..\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp" />
<ClCompile Include="..\..\Common\File.cpp">

Просмотреть файл

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -59,6 +56,9 @@
<ClCompile Include="..\..\Common\Include\ConcStack.h">
<Filter>Common\Include</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Common\Include\commandArgUtil.h">

Просмотреть файл

@ -6,7 +6,7 @@
#pragma once
#include "Basics.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "ComputationNetwork.h"
#include "ComputationNetworkBuilder.h"
#include "NetworkDescriptionLanguage.h"

Просмотреть файл

@ -9,7 +9,6 @@
#include "IExecutionEngine.h"
#include "Basics.h"
#include <string>
//#include "commandArgUtil.h"
#include "DataReader.h"
#include "Matrix.h"
#include "NDLUtil.h"

Просмотреть файл

@ -11,7 +11,7 @@
#include "ComputationNetwork.h"
#include "SynchronousExecutionEngine.h"
#include <string>
#include "commandArgUtil.h"
#include "Config.h"
#include <stdexcept>
using namespace std;

Просмотреть файл

@ -10,7 +10,7 @@
#include "BestGpu.h"
#include "ComputationNetwork.h"
#include "commandArgUtil.h"
#include "Config.h"
// TODO: giving up moving stuff for now, running out of time. The following #includes should not be necessary once the hard-working code in here gets moved to .cpp
#include "InputAndParamNodes.h"

Просмотреть файл

@ -155,6 +155,7 @@
<ClInclude Include="..\..\Common\Include\basetypes.h" />
<ClInclude Include="..\..\Common\Include\Basics.h" />
<ClInclude Include="..\..\Common\Include\BestGpu.h" />
<ClInclude Include="..\..\Common\Include\Config.h" />
<ClInclude Include="..\..\Common\Include\DataTensor.h" />
<ClInclude Include="..\..\Common\Include\File.h" />
<ClInclude Include="..\..\Common\Include\fileutil.h" />

Просмотреть файл

@ -126,6 +126,9 @@
<ClInclude Include="..\..\Common\Include\DataTensor.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -6,27 +6,10 @@
//
#pragma once
// TODOs:
// - automatic inference of time window w.r.t. delay nodes (and related nodes such as a temporal pooling)
// - have overrides of RuntimeError etc. in ComputationNode, which prepend the error string with the node name and operation
// - code prettification:
// - sort all node implementations' methods into the same order; esp, ForwardProp() comes before partial
// - sort important nodes first; move unused/experimental nodes into source files named accordingly
// - renaming:
// Evaluate(), ComputeGradient()
// frameRange -> t // make it more lightweight
// - finish the job:
// - everywhere complete folding ForwardPropS() into ForwardProp(FrameRange()), same for partial
// - revise node constructors, merge by means of default parameters
// - known issues that need actual test cases to be fixed:
// - CRFNode::BackpropTo() fails for >1 parallel sequence due to DataFor() not being able to return whole sequences
// - implement reading of MB Layout in Binary, DSSM, and LivbSVM readers --is DSSM already done?
// The basic idea of this implementation is learned from Brian Guenter <bguenter@microsoft.com>
#include "Basics.h"
#include "File.h"
#include "Matrix.h"
#include "commandArgUtil.h" // for nocase_compare
#include "Config.h"
#include "ComputationNode.h"
#include "ScriptableObjects.h"
@ -51,93 +34,6 @@ class ComputationNetwork : public ScriptableObjects::Object, public ScriptableOb
{
public:
typedef shared_ptr<ComputationNetwork> ComputationNetworkPtr;
protected:
// FlowControlNodes for internal use by this class:
// -----------------------------------------------------------------------
// SEQTraversalFlowControlNode -- FlowControlNode to traverse a (sub-)network time step by time step
//
// This is to implement recurrent loops. All nodes inside a loop are listed
// inside this node. This node's ForwardProp() function will execute
// them inside a loop over all time steps of the recurrence.
// For every time step, the entire chain of nodes is called, with the time index
// passed as a FrameRange object.
// -----------------------------------------------------------------------
class SEQTraversalFlowControlNode : public FlowControlNode
{
public: // m_nestedNodes needed public by ComputationNetwork::FindInRecurrentLoops(), which really should be part of SEQTraversalFlowControlNode
typedef FlowControlNode Base; using Base::m_nestedNodes;
public:
// next steps:
// - change m_recurrentInfo to use shared_ptrs to ComputationNodeBase
virtual const std::wstring OperationName() const override { return L"SEQTraversalFlowControlNode"; }
virtual void BeginForwardProp() override;
virtual void ForwardProp(const FrameRange &) override;
virtual void EndForwardProp() override;
virtual void BeginBackprop() override;
virtual void BackpropTo(const size_t inputIndex, const FrameRange &) override { NOT_IMPLEMENTED; } // ugh, call Backprop() instead
virtual void EndBackprop() override;
virtual void Backprop(const FrameRange & frameRange, bool childrenInThisLoop, bool childrenInOuterLoop) override;
virtual void RequestMatricesBeforeForwardProp(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterForwardProp(MatrixPool& matrixPool);
virtual void AllocateGradientMatricesForInputs(MatrixPool& matrixPool);
virtual void RequestMatricesBeforeBackprop(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterBackprop(MatrixPool& matrixPool);
virtual bool IsOutputOlderThanInputs() const override;
public:
//std::vector<ComputationNodeBasePtr> m_nestedNodes; // all nodes involved in this loop, in evaluation order
ComputationNodeBasePtr m_sourceNode; // one of the nodes of the loop --TODO: What is the special meaning of this node? It seems to always be a delay node.
int m_loopId; // the loop id (index in m_recurrentInfo array)
int m_steppingDirection; // +1 if left to right (t=0..T-1), -1 if rightt to left (t=T-1..0)
SEQTraversalFlowControlNode(int loopId, ComputationNodeBasePtr cur) :
m_loopId(loopId),
m_sourceNode(cur)
{
SetNodeName(L"Loop_" + m_sourceNode->NodeName());
}
};
// -----------------------------------------------------------------------
// PARTraversalFlowControlNode -- FlowControlNode that traverses a (sub-)network
//
// This node contains a list of nodes in a (sub-)network. This node's
// ForwardProp() method will execute all those nodes once in PAR mode,
// that is, by passing a FrameRange object that represents to operate
// on all frames in the node simultaneously.
//
// The outermost network level is also represented by this node for execution.
// -----------------------------------------------------------------------
class PARTraversalFlowControlNode : public FlowControlNode
{
typedef FlowControlNode Base; using Base::m_nestedNodes;
public:
virtual const std::wstring OperationName() const override { return L"PARTraversalFlowControlNode"; }
virtual void BeginForwardProp() override { }
virtual void ForwardProp(const FrameRange &) override;
virtual void EndForwardProp() override { }
virtual void BeginBackprop() override { }
virtual void BackpropTo(const size_t inputIndex, const FrameRange &) override { NOT_IMPLEMENTED; } // ugh, call Backprop() instead
virtual void EndBackprop() override { }
virtual void Backprop(const FrameRange & frameRange, bool childrenInThisLoop, bool childrenInOuterLoop) override;
virtual void RequestMatricesBeforeForwardProp(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterForwardProp(MatrixPool& matrixPool);
virtual void AllocateGradientMatricesForInputs(MatrixPool& matrixPool);
virtual void RequestMatricesBeforeBackprop(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterBackprop(MatrixPool& matrixPool);
public:
// this special constructor constructs the top-level network node
// There is currently no other constructor for inner nested PAR-traversed sub-networks, but there will be.
PARTraversalFlowControlNode(/*const*/ std::vector<shared_ptr<SEQTraversalFlowControlNode>> & recurrentInfo, const std::list<ComputationNodeBasePtr> & allNodes);
// Base::m_nestedNodes contains all top-level nodes, in evaluation order
};
public:
// TODO: sort methods into functional groups; some methods are at random places
// -----------------------------------------------------------------------
// construction
@ -516,6 +412,8 @@ public:
static void UpdateEvalTimeStamps(const std::vector<ComputationNodeBasePtr> & nodes);
void ResetEvalTimeStamp();
protected:
class SEQTraversalFlowControlNode;
private:
static std::shared_ptr<SEQTraversalFlowControlNode> FindInRecurrentLoops(/*const*/ std::vector<std::shared_ptr<SEQTraversalFlowControlNode>> & recurrentInfo, const ComputationNodeBasePtr& node);
bool IsTypicalCriterionNode(ComputationNodeBasePtr nodePtr);
@ -874,12 +772,7 @@ public:
return GetCalcOrder(rootNode, m_cacheGradientCalcOrders, false/*means for backprop*/, false/*skipPairNetwork*/);
}
ComputationNodeBasePtr GetOuterLoopNode(const ComputationNodeBasePtr& rootNode)
{
if (m_cachedOuterLoopNodes.find(rootNode) == m_cachedOuterLoopNodes.end())
m_cachedOuterLoopNodes[rootNode] = make_shared<PARTraversalFlowControlNode>(m_recurrentInfo, GetEvalOrder(rootNode, false));
return m_cachedOuterLoopNodes[rootNode];
}
ComputationNodeBasePtr GetOuterLoopNode(const ComputationNodeBasePtr& rootNode);
private:
@ -929,6 +822,92 @@ public:
return vector<wstring>();
}
protected:
// FlowControlNodes for internal use by this class:
// -----------------------------------------------------------------------
// SEQTraversalFlowControlNode -- FlowControlNode to traverse a (sub-)network time step by time step
//
// This is to implement recurrent loops. All nodes inside a loop are listed
// inside this node. This node's ForwardProp() function will execute
// them inside a loop over all time steps of the recurrence.
// For every time step, the entire chain of nodes is called, with the time index
// passed as a FrameRange object.
// -----------------------------------------------------------------------
class SEQTraversalFlowControlNode : public FlowControlNode
{
public: // m_nestedNodes needed public by ComputationNetwork::FindInRecurrentLoops(), which really should be part of SEQTraversalFlowControlNode
typedef FlowControlNode Base; using Base::m_nestedNodes;
public:
// next steps:
// - change m_recurrentInfo to use shared_ptrs to ComputationNodeBase
virtual const std::wstring OperationName() const override { return L"SEQTraversalFlowControlNode"; }
virtual void BeginForwardProp() override;
virtual void ForwardProp(const FrameRange &) override;
virtual void EndForwardProp() override;
virtual void BeginBackprop() override;
virtual void BackpropTo(const size_t inputIndex, const FrameRange &) override { NOT_IMPLEMENTED; } // ugh, call Backprop() instead
virtual void EndBackprop() override;
virtual void Backprop(const FrameRange & frameRange, bool childrenInThisLoop, bool childrenInOuterLoop) override;
virtual void RequestMatricesBeforeForwardProp(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterForwardProp(MatrixPool& matrixPool);
virtual void AllocateGradientMatricesForInputs(MatrixPool& matrixPool);
virtual void RequestMatricesBeforeBackprop(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterBackprop(MatrixPool& matrixPool);
virtual bool IsOutputOlderThanInputs() const override;
public:
//std::vector<ComputationNodeBasePtr> m_nestedNodes; // all nodes involved in this loop, in evaluation order
ComputationNodeBasePtr m_sourceNode; // one of the nodes of the loop --TODO: What is the special meaning of this node? It seems to always be a delay node.
int m_loopId; // the loop id (index in m_recurrentInfo array)
int m_steppingDirection; // +1 if left to right (t=0..T-1), -1 if rightt to left (t=T-1..0)
SEQTraversalFlowControlNode(int loopId, ComputationNodeBasePtr cur) :
m_loopId(loopId),
m_sourceNode(cur)
{
SetNodeName(L"Loop_" + m_sourceNode->NodeName());
}
};
// -----------------------------------------------------------------------
// PARTraversalFlowControlNode -- FlowControlNode that traverses a (sub-)network
//
// This node contains a list of nodes in a (sub-)network. This node's
// ForwardProp() method will execute all those nodes once in PAR mode,
// that is, by passing a FrameRange object that represents to operate
// on all frames in the node simultaneously.
//
// The outermost network level is also represented by this node for execution.
// -----------------------------------------------------------------------
class PARTraversalFlowControlNode : public FlowControlNode
{
typedef FlowControlNode Base; using Base::m_nestedNodes;
public:
virtual const std::wstring OperationName() const override { return L"PARTraversalFlowControlNode"; }
virtual void BeginForwardProp() override { }
virtual void ForwardProp(const FrameRange &) override;
virtual void EndForwardProp() override { }
virtual void BeginBackprop() override { }
virtual void BackpropTo(const size_t inputIndex, const FrameRange &) override { NOT_IMPLEMENTED; } // ugh, call Backprop() instead
virtual void EndBackprop() override { }
virtual void Backprop(const FrameRange & frameRange, bool childrenInThisLoop, bool childrenInOuterLoop) override;
virtual void RequestMatricesBeforeForwardProp(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterForwardProp(MatrixPool& matrixPool);
virtual void AllocateGradientMatricesForInputs(MatrixPool& matrixPool);
virtual void RequestMatricesBeforeBackprop(MatrixPool& matrixPool);
virtual void ReleaseMatricesAfterBackprop(MatrixPool& matrixPool);
public:
// this special constructor constructs the top-level network node
// There is currently no other constructor for inner nested PAR-traversed sub-networks, but there will be.
PARTraversalFlowControlNode(/*const*/ std::vector<shared_ptr<SEQTraversalFlowControlNode>> & recurrentInfo, const std::list<ComputationNodeBasePtr> & allNodes);
// Base::m_nestedNodes contains all top-level nodes, in evaluation order
};
public:
protected:
// -----------------------------------------------------------------------
@ -979,4 +958,20 @@ private: // TODO: make all private that can be made private
};
typedef ComputationNetwork::ComputationNetworkPtr ComputationNetworkPtr;
// TODOs:
// - automatic inference of time window w.r.t. delay nodes (and related nodes such as a temporal pooling)
// - have overrides of RuntimeError etc. in ComputationNode, which prepend the error string with the node name and operation
// - code prettification:
// - sort all node implementations' methods into the same order; esp, ForwardProp() comes before partial
// - sort important nodes first; move unused/experimental nodes into source files named accordingly
// - renaming:
// Evaluate(), ComputeGradient()
// frameRange -> t // make it more lightweight
// - finish the job:
// - everywhere complete folding ForwardPropS() into ForwardProp(FrameRange()), same for partial
// - revise node constructors, merge by means of default parameters
// - known issues that need actual test cases to be fixed:
// - CRFNode::BackpropTo() fails for >1 parallel sequence due to DataFor() not being able to return whole sequences
// - implement reading of MB Layout in Binary, DSSM, and LivbSVM readers --is DSSM already done?
}}}

Просмотреть файл

@ -75,6 +75,13 @@ namespace Microsoft { namespace MSR { namespace CNTK {
GetOuterLoopNode(rootNode)->Backprop(FrameRange(nullptr), true, true);
}
ComputationNodeBasePtr ComputationNetwork::GetOuterLoopNode(const ComputationNodeBasePtr& rootNode)
{
if (m_cachedOuterLoopNodes.find(rootNode) == m_cachedOuterLoopNodes.end())
m_cachedOuterLoopNodes[rootNode] = make_shared<PARTraversalFlowControlNode>(m_recurrentInfo, GetEvalOrder(rootNode, false));
return m_cachedOuterLoopNodes[rootNode];
}
// -----------------------------------------------------------------------
// PARTraversalFlowControlNode methods -- implements PAR traversal
//

Просмотреть файл

@ -119,6 +119,7 @@
<ItemGroup>
<ClInclude Include="..\..\Common\Include\basetypes.h" />
<ClInclude Include="..\..\Common\Include\Basics.h" />
<ClInclude Include="..\..\Common\Include\Config.h" />
<ClInclude Include="..\..\Common\Include\Eval.h" />
<ClInclude Include="..\..\Common\Include\File.h" />
<ClInclude Include="..\..\Common\Include\fileutil.h" />
@ -131,9 +132,7 @@
<ClInclude Include="CNTKEval.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\Config.cpp" />
<ClCompile Include="..\..\Common\Eval.cpp" />
<ClCompile Include="..\..\Common\File.cpp">
<PrecompiledHeader>NotUsing</PrecompiledHeader>

Просмотреть файл

@ -2,9 +2,6 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="CNTKEval.cpp" />
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\Eval.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -26,6 +23,9 @@
<ClCompile Include="stdafx.cpp">
<Filter>Misc</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="EvalReader.h" />
@ -58,6 +58,9 @@
<ClInclude Include="targetver.h">
<Filter>Misc</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -4,7 +4,7 @@
#include "stdafx.h"
#include "Eval.h"
#include "DataReader.h"
#include "commandArgUtil.h"
#include "Config.h"
using namespace Microsoft::MSR::CNTK;
// process the command

Просмотреть файл

@ -93,7 +93,7 @@
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Common\ConfigFile.cpp">
<ClCompile Include="..\..\..\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>

Просмотреть файл

@ -155,7 +155,7 @@
<ClInclude Include="..\..\Common\Include\basetypes.h" />
<ClInclude Include="..\..\Common\Include\Basics.h" />
<ClInclude Include="..\..\Common\Include\BestGpu.h" />
<ClInclude Include="..\..\Common\Include\commandArgUtil.h" />
<ClInclude Include="..\..\Common\Include\Config.h" />
<ClInclude Include="..\..\Common\Include\DataReader.h" />
<ClInclude Include="..\..\Common\Include\DataTensor.h" />
<ClInclude Include="..\..\Common\Include\DataWriter.h" />
@ -198,7 +198,10 @@
<ClInclude Include="..\CNTKComputationNetworkLib\TrainingCriterionNodes.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp" />
<ClCompile Include="..\..\Common\Config.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\Common\DataWriter.cpp" />
<ClCompile Include="..\..\Common\File.cpp">

Просмотреть файл

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -28,14 +25,14 @@
<ClCompile Include="SGD.cpp">
<Filter>SGD</Filter>
</ClCompile>
<ClCompile Include="..\..\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Common\Include\basetypes.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\commandArgUtil.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\fileutil.h">
<Filter>Common\Include</Filter>
</ClInclude>
@ -165,6 +162,9 @@
<ClInclude Include="..\..\Common\Include\DataTensor.h">
<Filter>Common\Include</Filter>
</ClInclude>
<ClInclude Include="..\..\Common\Include\Config.h">
<Filter>Common\Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Common">

Просмотреть файл

@ -18,7 +18,7 @@
#include <string>
#include <stdexcept>
#include "fileutil.h"
#include "commandArgUtil.h"
#include "Config.h"
#include <chrono>
#include <random>
#include "TimerUtility.h"

Просмотреть файл

@ -1840,7 +1840,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
// We optionally break the minibatch into sub-minibatches.
// This, when enabled, is used when a full minibatch does not fit into GPU RAM.
size_t actualNumSubminibatches = numSubminibatchesNeeded == 1 ? 1 : smbDispatcher.GetMinibatchIntoCache(*trainSetDataReader, *net, *inputMatrices, numSubminibatchesNeeded);
size_t actualNumSubminibatches = numSubminibatchesNeeded <= 1 ? 1 : smbDispatcher.GetMinibatchIntoCache(*trainSetDataReader, *net, *inputMatrices, numSubminibatchesNeeded);
for (size_t ismb = 0; ismb < actualNumSubminibatches; ismb++)
{
if (actualNumSubminibatches > 1)

Просмотреть файл

@ -17,7 +17,7 @@
#include <string>
#include <stdexcept>
#include "fileutil.h"
#include "commandArgUtil.h"
#include "Config.h"
#include <chrono>
#include <random>
#include "Profiler.h"

Просмотреть файл

@ -201,7 +201,7 @@ $(BUILDINFO): Scripts/genrate_build_info
# Define all sources that need to be built
COMMON_SRC =\
Common/ConfigFile.cpp \
Common/Config.cpp \
Common/DataReader.cpp \
Common/DataWriter.cpp \
Common/DebugUtil.cpp \

Просмотреть файл

@ -5,7 +5,7 @@
//
#include "stdafx.h"
#include "Matrix.h"
#include "commandArgUtil.h"
#include "Config.h"
#include "DataReader.h"
#include "boost/filesystem.hpp"

Просмотреть файл

@ -117,7 +117,7 @@
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\Common\ConfigFile.cpp" />
<ClCompile Include="..\..\..\Common\Config.cpp" />
<ClCompile Include="..\..\..\Common\DataReader.cpp" />
<ClCompile Include="..\..\..\Common\Eval.cpp" />
<ClCompile Include="..\..\..\Common\File.cpp" />

Просмотреть файл

@ -2,9 +2,6 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="stdafx.cpp" />
<ClCompile Include="..\..\..\Common\ConfigFile.cpp">
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\Common\DataReader.cpp">
<Filter>Common</Filter>
</ClCompile>
@ -24,6 +21,9 @@
<Filter>Common</Filter>
</ClCompile>
<ClCompile Include="DataReaderTests.cpp" />
<ClCompile Include="..\..\..\Common\Config.cpp">
<Filter>Common</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />