Merge branch 'master' into qiwye/asgd-dev
This commit is contained in:
Коммит
f1d078f3c1
|
@ -1,12 +1,22 @@
|
|||
# CNTK example: ImageNet ResNet
|
||||
|
||||
**Disclaimer: network configurations and experiment settings in this this folder try to follow those published in the [ResNet paper](http://arxiv.org/abs/1512.03385) as close as possible. However, these samples are NOT endorsed or verified by the researchers who published the original work. It is NOT guaranteed that you get the same (or even close) results as those in the paper.**
|
||||
|
||||
## Overview
|
||||
|
||||
|Data: |The ILSVRC2012 dataset (http://www.image-net.org/challenges/LSVRC/2012/) of images.
|
||||
|:---------|:---
|
||||
|Purpose |This example demonstrates usage of the NDL (Network Description Language) to define networks similar to ResNet.
|
||||
|Network |NDLNetworkBuilder, deep convolutional networks resembling ResNet networks.
|
||||
|Network |NDLNetworkBuilder, deep convolutional residual networks (ResNet).
|
||||
|Training |Stochastic gradient descent with momentum.
|
||||
|
||||
## Details
|
||||
The network configurations and experiment settings in this this folder resemble the ones in the original [ResNet paper](http://arxiv.org/abs/1512.03385) with few minor changes inspired by [this work](https://github.com/facebook/fb.resnet.torch).
|
||||
The following table contains results as well as links to pre-trained models that can be used in various applications.
|
||||
|
||||
| Network | Top-1 error | Top-5 error | Model
|
||||
| ------------- | ----------- | ----------- | ----------
|
||||
| ResNet-18 | 29.57 | 10.41 | [Download](https://www.cntk.ai/resnet/ResNet_18.model)
|
||||
| ResNet-34 | 27.31 | 8.97 | [Download](https://www.cntk.ai/resnet/ResNet_34.model)
|
||||
| ResNet-50 | 24.74 | 7.56 | [Download](https://www.cntk.ai/resnet/ResNet_50.model)
|
||||
|
||||
## Notes
|
||||
This work is an implementation of ResNets in CNTK. If you are interested in the original implementation of ResNet, follow [this link](https://github.com/KaimingHe/deep-residual-networks).
|
|
@ -10,7 +10,6 @@ write=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
printValues=true
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ TrainDNN=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
|
@ -98,7 +97,6 @@ TrainLSTM=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
networkDescription=$ndlfile$
|
||||
|
@ -183,7 +181,6 @@ TrainPACRNN=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
# ndlMacros=$NdlDir$/default_macros.ndl
|
||||
|
@ -286,7 +283,6 @@ write=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
printValues=true
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ TrainDNN=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
|
|
|
@ -10,7 +10,6 @@ TrainModel=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
networkDescription=$NdlDir$/model.ndl
|
||||
|
|
|
@ -11,7 +11,6 @@ TrainModel=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
networkDescription=$NdlDir$/model.ndl
|
||||
|
|
|
@ -20,7 +20,6 @@ TrainModel=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
|
|
|
@ -19,7 +19,6 @@ TrainModel=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$/default_macros.ndl
|
||||
|
|
|
@ -12,7 +12,6 @@ write=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
printValues=true
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ write=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
printValues=true
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ speechTrainNDL=[
|
|||
deviceId=-1
|
||||
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigFolder$\LSTM_1layer.ndl
|
||||
|
|
|
@ -20,7 +20,6 @@ speechTrainNDL=[
|
|||
deviceId=0
|
||||
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigFolder$\LSTM_1layer.ndl
|
||||
|
|
|
@ -12,7 +12,6 @@ TIMIT_TrainLSTM=[
|
|||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
traceLevel=1
|
||||
useValidation=true
|
||||
|
||||
truncated=true
|
||||
|
||||
|
@ -87,4 +86,4 @@ TIMIT_TrainLSTM=[
|
|||
labelMappingFile=$MlfDir$/TIMIT.statelist
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -40,7 +40,6 @@ deviceId=-1
|
|||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -307,7 +306,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -410,4 +408,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -41,7 +41,6 @@ train=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -308,7 +307,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -411,4 +409,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -30,7 +30,6 @@ epochSize=4430000
|
|||
# which is 886 * 5000
|
||||
# recurrentLayer=1
|
||||
defaultHiddenActivity=0.0
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -297,7 +296,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -400,4 +398,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -31,7 +31,6 @@ epochSize=4430000
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.0
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -298,7 +297,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -401,4 +399,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -31,7 +31,6 @@ train=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.0
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -297,7 +296,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -400,4 +398,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -656,6 +656,7 @@ public:
|
|||
WhereNode(DEVICEID_TYPE deviceId, const wstring& name) :
|
||||
Base(deviceId, name)
|
||||
{
|
||||
MarkValueNonSharable();
|
||||
}
|
||||
|
||||
virtual void /*ComputationNodeNonLooping::*/ ForwardPropNonLooping() override;
|
||||
|
@ -696,6 +697,7 @@ public:
|
|||
PackedIndexNode(DEVICEID_TYPE deviceId, const wstring& name) :
|
||||
Base(deviceId, name)
|
||||
{
|
||||
MarkValueNonSharable();
|
||||
}
|
||||
|
||||
virtual void /*ComputationNodeNonLooping::*/ ForwardPropNonLooping() override;
|
||||
|
|
|
@ -1382,7 +1382,6 @@ void CPUMatrix<ElemType>::RequireSize(const size_t numRows, const size_t numCols
|
|||
// Resize() -- change matrix size
|
||||
// This function is cheap if the matrix size does not change.
|
||||
// Current content is not preserved.
|
||||
// BUGBUG: There is code that relies on zero initialization (without, we get subtle variations of output). That is wrong--we should initialize to QNaN and see where it fails.
|
||||
// If growOnly is true, resize will not reallocate memory if the current memory is large enough (i.e., will not shrink).
|
||||
// If this object does not own its memory then new memory cannot be allocated (one can still shrink and/or reshape).
|
||||
template <class ElemType>
|
||||
|
@ -1411,8 +1410,9 @@ void CPUMatrix<ElemType>::Resize(const size_t numRows, const size_t numCols, boo
|
|||
}
|
||||
|
||||
// success
|
||||
m_numRows = numRows;
|
||||
m_numCols = numCols;
|
||||
m_sliceViewOffset = 0;
|
||||
m_numRows = numRows;
|
||||
m_numCols = numCols;
|
||||
}
|
||||
|
||||
// allocated by the callee but should be deleted by the caller
|
||||
|
|
|
@ -1384,6 +1384,7 @@ template void CPUSparseMatrix<char>::SetValue(CPUSparseMatrix<char> const&);
|
|||
template char* CPUSparseMatrix<char>::Data() const;
|
||||
template char* CPUSparseMatrix<char>::Data();
|
||||
template void CPUSparseMatrix<char>::Reset(void);
|
||||
template void CPUSparseMatrix<char>::Resize(const size_t, const size_t, const size_t, const bool);
|
||||
template void CPUSparseMatrix<char>::RequireSizeAndAllocate(const size_t, const size_t, const size_t, const bool, bool);
|
||||
template void CPUSparseMatrix<char>::RequireSizeAndAllocate(const size_t, const size_t, const size_t, const MatrixFormat, const bool, bool);
|
||||
template CPUSparseMatrix<char>::~CPUSparseMatrix();
|
||||
|
|
|
@ -1467,29 +1467,27 @@ void GPUMatrix<ElemType>::Resize(const size_t numRows, const size_t numCols, boo
|
|||
if (GetNumRows() == numRows && GetNumCols() == numCols)
|
||||
return;
|
||||
|
||||
size_t numElements = numRows * numCols;
|
||||
if (numElements > GetSizeAllocated() || // grow allocation
|
||||
(!growOnly && numElements != GetSizeAllocated())) // shrink allocation if not growOnly
|
||||
{
|
||||
// reallocate buffer if numElements > 0
|
||||
ElemType* pArray = nullptr;
|
||||
if (numElements > 0)
|
||||
pArray = TracingGPUMemoryAllocator::Allocate<ElemType>(GetComputeDeviceId(), numRows, numCols);
|
||||
|
||||
// If the buffer exists, free it
|
||||
if (Buffer())
|
||||
TracingGPUMemoryAllocator::Free<ElemType>(GetComputeDeviceId(), Buffer());
|
||||
|
||||
SetBuffer(pArray, numElements * sizeof(ElemType));
|
||||
SetSizeAllocated(numElements);
|
||||
}
|
||||
|
||||
// success
|
||||
m_sliceViewOffset = 0;
|
||||
m_numRows = numRows;
|
||||
m_numCols = numCols;
|
||||
|
||||
size_t numElements = GetNumElements();
|
||||
if (numElements > GetSizeAllocated() || (!growOnly && numElements != GetSizeAllocated()))
|
||||
{
|
||||
if (IsEmpty())
|
||||
{
|
||||
SetSizeAllocated(0);
|
||||
SetBuffer(nullptr, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Buffer())
|
||||
{
|
||||
TracingGPUMemoryAllocator::Free<ElemType>(GetComputeDeviceId(), Buffer());
|
||||
}
|
||||
SetSizeAllocated(numElements);
|
||||
SetBuffer(TracingGPUMemoryAllocator::Allocate<ElemType>(GetComputeDeviceId(), m_numRows, m_numCols), numElements * sizeof(ElemType));
|
||||
CUDA_CALL(cudaMemset(Buffer(), 0, sizeof(ElemType) * GetSizeAllocated()));
|
||||
}
|
||||
}
|
||||
m_sliceViewOffset = 0;
|
||||
}
|
||||
|
||||
template <class ElemType>
|
||||
|
|
|
@ -1223,32 +1223,32 @@ void Matrix<ElemType>::AssignValuesOf(const Matrix<ElemType>& deepCopyFrom)
|
|||
DISPATCH_MATRIX_ON_FLAG(this, this,
|
||||
{
|
||||
// Set CPUMatrix from:
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, &deepCopyFrom,
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, nullptr,
|
||||
{ m_CPUMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
NOT_IMPLEMENTED,//{ m_CPUMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
NOT_IMPLEMENTED,//{ m_CPUMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
NOT_IMPLEMENTED);//{ m_CPUMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUMatrix to a CPUMatrix is not yet implemented."); },//{ m_CPUMatrix->SetValue(deepCopyFrom.m_GPUMatrix->GetNumRows(), deepCopyFrom.m_GPUMatrix->GetNumCols(), deepCopyFrom.m_GPUMatrix->CopyToArray()); },// //{ m_CPUMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
{ LogicError("AssignValuesOf: Assigning a CPUSparseMatrix to a CPUMatrix is not yet implemented."); },//{ m_CPUMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUSparseMatrix to a CPUMatrix is not yet implemented."); });//{ m_CPUMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
},
|
||||
{
|
||||
// Set GPUMatrix from:
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, &deepCopyFrom,
|
||||
NOT_IMPLEMENTED,//{ m_GPUMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, nullptr,
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUMatrix to a CPUMatrix is not yet implemented."); },//{ m_GPUMatrix->SetValue(deepCopyFrom.m_CPUMatrix->GetNumRows(), deepCopyFrom.m_CPUMatrix->GetNumCols(), m_GPUMatrix->GetComputeDeviceId(), deepCopyFrom.m_CPUMatrix->Data()); },////{ m_CPUMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
{ m_GPUMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
NOT_IMPLEMENTED,//{ m_GPUMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
NOT_IMPLEMENTED);//{ m_GPUMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
{ LogicError("AssignValuesOf: Assigning a CPUSparseMatrix to a GPUMatrix is not yet implemented."); },//{ m_GPUMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUSparseMatrix to a GPUMatrix is not yet implemented."); });//{ m_GPUMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
},
|
||||
{
|
||||
// Set CPUSparseMatrix from:
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, &deepCopyFrom,
|
||||
NOT_IMPLEMENTED,//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
NOT_IMPLEMENTED,//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, nullptr,
|
||||
{ LogicError("AssignValuesOf: Assigning a CPUMatrix to a CPUSparseMatrix is not yet implemented."); },//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUMatrix to a CPUSparseMatrix is not yet implemented."); },//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
NOT_IMPLEMENTED);//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
{ LogicError("AssignValuesOf: Assigning a GPUSparseMatrix to a CPUSparseMatrix is not yet implemented."); });//{ m_CPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
},
|
||||
{
|
||||
// Set GPUSparseMatrix from:
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, &deepCopyFrom,
|
||||
NOT_IMPLEMENTED,//{ m_GPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
DISPATCH_MATRIX_ON_FLAG(&deepCopyFrom, nullptr,
|
||||
{ LogicError("AssignValuesOf: Assigning a CPUMatrix to a GPUSparseMatrix is not yet implemented."); },//{ m_GPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUMatrix); },
|
||||
{ m_GPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUMatrix); },
|
||||
{ m_GPUSparseMatrix->SetValue(*deepCopyFrom.m_CPUSparseMatrix); },
|
||||
{ m_GPUSparseMatrix->SetValue(*deepCopyFrom.m_GPUSparseMatrix); });
|
||||
|
@ -3610,13 +3610,17 @@ void Matrix<ElemType>::_transferFromDeviceToDevice(int from_id, int to_id, bool
|
|||
if (!m_CPUSparseMatrix)
|
||||
LogicError("Can't move from CPU because I'm not there!");
|
||||
|
||||
if (!m_GPUSparseMatrix)
|
||||
m_GPUSparseMatrix = make_shared<GPUSparseMatrix<ElemType>>(to_id, m_CPUSparseMatrix->GetFormat());
|
||||
else
|
||||
m_GPUSparseMatrix->ChangeDeviceTo(to_id);
|
||||
|
||||
if (m_CPUSparseMatrix->GetNumElements() != 0 && !emptyTransfer)
|
||||
if (emptyTransfer)
|
||||
{
|
||||
if (m_GPUSparseMatrix && m_GPUSparseMatrix->GetComputeDeviceId() == to_id)
|
||||
m_GPUSparseMatrix->Resize(m_CPUSparseMatrix->GetNumRows(), m_CPUSparseMatrix->GetNumCols(), m_CPUSparseMatrix->NzCount());
|
||||
else
|
||||
m_GPUSparseMatrix = make_shared<GPUSparseMatrix<ElemType>>(m_CPUSparseMatrix->GetNumRows(), m_CPUSparseMatrix->GetNumCols(), m_CPUSparseMatrix->NzCount(), to_id, m_CPUSparseMatrix->GetFormat());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!m_GPUSparseMatrix || m_GPUSparseMatrix->GetComputeDeviceId() != to_id)
|
||||
m_GPUSparseMatrix = make_shared<GPUSparseMatrix<ElemType>>(to_id);
|
||||
m_GPUSparseMatrix->SetValue(*m_CPUSparseMatrix);
|
||||
}
|
||||
|
||||
|
@ -3640,10 +3644,10 @@ void Matrix<ElemType>::_transferFromDeviceToDevice(int from_id, int to_id, bool
|
|||
if (!m_CPUSparseMatrix)
|
||||
m_CPUSparseMatrix = make_shared<CPUSparseMatrix<ElemType>>(m_GPUSparseMatrix->GetFormat());
|
||||
|
||||
if (m_GPUSparseMatrix->GetNumElements() != 0 && !emptyTransfer)
|
||||
{
|
||||
if (emptyTransfer)
|
||||
m_CPUSparseMatrix->Resize(m_GPUSparseMatrix->GetNumRows(), m_GPUSparseMatrix->GetNumCols(), m_GPUSparseMatrix->NzCount(), true);
|
||||
else
|
||||
m_GPUSparseMatrix->CopyToCPUSparseMatrix(*m_CPUSparseMatrix);
|
||||
}
|
||||
|
||||
if (isBeingMoved)
|
||||
{
|
||||
|
@ -3668,13 +3672,19 @@ void Matrix<ElemType>::_transferFromDeviceToDevice(int from_id, int to_id, bool
|
|||
{
|
||||
if (!m_CPUMatrix)
|
||||
LogicError("Can't move from CPU because I'm not there!");
|
||||
if (m_CPUMatrix->GetNumElements() != 0 && !emptyTransfer)
|
||||
if (emptyTransfer)
|
||||
{
|
||||
m_GPUMatrix = make_shared<GPUMatrix<ElemType>>(m_CPUMatrix->GetNumRows(), m_CPUMatrix->GetNumCols(), to_id, m_CPUMatrix->Buffer(), matrixFlagNormal);
|
||||
if (m_GPUMatrix && m_GPUMatrix->GetComputeDeviceId() == to_id)
|
||||
m_GPUMatrix->Resize(m_CPUMatrix->GetNumRows(), m_CPUMatrix->GetNumCols());
|
||||
else
|
||||
m_GPUMatrix = make_shared<GPUMatrix<ElemType>>(m_CPUMatrix->GetNumRows(), m_CPUMatrix->GetNumCols(), to_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_GPUMatrix = make_shared<GPUMatrix<ElemType>>(to_id);
|
||||
if (m_GPUMatrix && m_GPUMatrix->GetComputeDeviceId() == to_id)
|
||||
m_GPUMatrix->SetValue(m_CPUMatrix->GetNumRows(), m_CPUMatrix->GetNumCols(), to_id, m_CPUMatrix->Data());
|
||||
else
|
||||
m_GPUMatrix = make_shared<GPUMatrix<ElemType>>(m_CPUMatrix->GetNumRows(), m_CPUMatrix->GetNumCols(), to_id, m_CPUMatrix->Data());
|
||||
}
|
||||
if (isBeingMoved)
|
||||
{
|
||||
|
@ -3682,9 +3692,7 @@ void Matrix<ElemType>::_transferFromDeviceToDevice(int from_id, int to_id, bool
|
|||
m_CPUMatrix = nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetDataLocation(BOTH, DENSE);
|
||||
}
|
||||
}
|
||||
else // from GPU
|
||||
{
|
||||
|
@ -3693,15 +3701,22 @@ void Matrix<ElemType>::_transferFromDeviceToDevice(int from_id, int to_id, bool
|
|||
|
||||
if (to_id < 0) // to CPU
|
||||
{
|
||||
if (m_GPUMatrix->GetNumElements() != 0 && !emptyTransfer)
|
||||
if (emptyTransfer)
|
||||
{
|
||||
ElemType* arr = m_GPUMatrix->CopyToArray(); // TODO: unnecessary allocation/copy; why not make this a vector that we move over as an rvalue ref?
|
||||
m_CPUMatrix = make_shared<CPUMatrix<ElemType>>(m_GPUMatrix->GetNumRows(), m_GPUMatrix->GetNumCols(), arr, matrixFlagNormal);
|
||||
delete[] arr;
|
||||
if (m_CPUMatrix)
|
||||
m_CPUMatrix->Resize(m_GPUMatrix->GetNumRows(), m_GPUMatrix->GetNumCols());
|
||||
else
|
||||
m_CPUMatrix = make_shared<CPUMatrix<ElemType>>(m_GPUMatrix->GetNumRows(), m_GPUMatrix->GetNumCols());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_CPUMatrix = make_shared<CPUMatrix<ElemType>>();
|
||||
ElemType* arr = m_GPUMatrix->CopyToArray(); // TODO: unnecessary allocation/copy; why not make this a vector that we move over as an rvalue ref?
|
||||
if (m_CPUMatrix)
|
||||
m_CPUMatrix->SetValue(m_GPUMatrix->GetNumRows(), m_GPUMatrix->GetNumCols(), arr);
|
||||
else
|
||||
m_CPUMatrix = make_shared<CPUMatrix<ElemType>>(m_GPUMatrix->GetNumRows(), m_GPUMatrix->GetNumCols(), arr, matrixFlagNormal);
|
||||
|
||||
delete[] arr;
|
||||
}
|
||||
|
||||
if (isBeingMoved)
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
// TODO: This class should go away eventually.
|
||||
// TODO: The composition of packer + randomizer + different deserializers in a generic manner is done in the CompositeDataReader.
|
||||
// TODO: Currently preserving this for backward compatibility with current configs.
|
||||
CNTKTextFormatReader::CNTKTextFormatReader(MemoryProviderPtr provider,
|
||||
const ConfigParameters& config) :
|
||||
m_provider(provider)
|
||||
|
@ -31,27 +34,22 @@ CNTKTextFormatReader::CNTKTextFormatReader(MemoryProviderPtr provider,
|
|||
m_deserializer = shared_ptr<IDataDeserializer>(new TextParser<double>(configHelper));
|
||||
}
|
||||
|
||||
TransformerPtr randomizer;
|
||||
size_t window = configHelper.GetRandomizationWindow();
|
||||
if (window > 0)
|
||||
{
|
||||
// Verbosity is a general config parameter, not specific to the text format reader.
|
||||
int verbosity = config(L"verbosity", 2);
|
||||
randomizer = make_shared<BlockRandomizer>(verbosity, window, m_deserializer);
|
||||
m_randomizer = make_shared<BlockRandomizer>(verbosity, window, m_deserializer);
|
||||
}
|
||||
else
|
||||
{
|
||||
randomizer = std::make_shared<NoRandomizer>(m_deserializer);
|
||||
m_randomizer = std::make_shared<NoRandomizer>(m_deserializer);
|
||||
}
|
||||
|
||||
randomizer->Initialize(nullptr, config);
|
||||
|
||||
m_transformer = randomizer;
|
||||
|
||||
// TODO: add "frameMode" config paramter
|
||||
m_packer = std::make_shared<SequencePacker>(
|
||||
m_provider,
|
||||
m_transformer,
|
||||
m_randomizer,
|
||||
GetStreamDescriptions());
|
||||
}
|
||||
catch (const std::runtime_error& e)
|
||||
|
@ -72,7 +70,7 @@ void CNTKTextFormatReader::StartEpoch(const EpochConfiguration& config)
|
|||
RuntimeError("Epoch size cannot be 0.");
|
||||
}
|
||||
|
||||
m_transformer->StartEpoch(config);
|
||||
m_randomizer->StartEpoch(config);
|
||||
m_packer->StartEpoch(config);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "TextParser.h"
|
||||
#include "Reader.h"
|
||||
#include "Packer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -32,8 +33,8 @@ public:
|
|||
private:
|
||||
IDataDeserializerPtr m_deserializer;
|
||||
|
||||
// A head transformer in a list of transformers.
|
||||
TransformerPtr m_transformer;
|
||||
// Randomizer.
|
||||
SequenceEnumeratorPtr m_randomizer;
|
||||
|
||||
// Packer.
|
||||
PackerPtr m_packer;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#include <limits>
|
||||
#include "TextConfigHelper.h"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
|
||||
//
|
||||
// CompositeDataReader.cpp : Defines a reader that allows composing different deserializers.
|
||||
// CompositeReader.cpp : Defines a reader that allows composing different deserializers.
|
||||
// With this reader in place the users should only extend deserializers.
|
||||
//
|
||||
|
||||
|
@ -11,8 +11,6 @@
|
|||
#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
|
||||
|
||||
#define DATAREADER_EXPORTS // creating the exports here
|
||||
|
||||
#include "CompositeDataReader.h"
|
||||
#include "Bundler.h"
|
||||
#include "BlockRandomizer.h"
|
||||
|
@ -20,11 +18,15 @@
|
|||
#include "FramePacker.h"
|
||||
#include "SequencePacker.h"
|
||||
#include "TruncatedBpttPacker.h"
|
||||
#include "HeapMemoryProvider.h"
|
||||
#include "CorpusDescriptor.h"
|
||||
#include "ConfigUtil.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
// The whole CompositeDataReader is meant as a stopgap to allow deserializers/transformers composition until SGD talkes
|
||||
// directly to the new Reader API.
|
||||
// For more information please see its header file.
|
||||
// This method composes together packers + randomizer + a set of transformers and deserializers.
|
||||
CompositeDataReader::CompositeDataReader(const ConfigParameters& config, MemoryProviderPtr provider) : m_layout(make_shared<MBLayout>()),
|
||||
m_corpus(std::make_shared<CorpusDescriptor>()),
|
||||
m_provider(provider)
|
||||
|
@ -55,37 +57,56 @@ CompositeDataReader::CompositeDataReader(const ConfigParameters& config, MemoryP
|
|||
m_packingMode = PackingMode::sequence;
|
||||
}
|
||||
|
||||
// Whether we need to check data between different deserializers.
|
||||
bool cleanse = config(L"checkData", false);
|
||||
m_precision = config("precision", "float");
|
||||
|
||||
// Creating deserializers.
|
||||
// TODO: Currently the primary deserializer defines the corpus. The logic will be moved to CorpusDescriptor class.
|
||||
CreateDeserializers(config);
|
||||
|
||||
// Bundling deserializers together.
|
||||
// TODO: Add transformers in between.
|
||||
auto bundler = std::make_shared<Bundler>(config, m_deserializers[0], m_deserializers, cleanse);
|
||||
if (m_deserializers.empty())
|
||||
{
|
||||
InvalidArgument("Could not find deserializers in the reader config.");
|
||||
}
|
||||
|
||||
IDataDeserializerPtr deserializer = m_deserializers.front();
|
||||
if (m_deserializers.size() > 1)
|
||||
{
|
||||
// Bundling deserializers together.
|
||||
// Option whether we need to check data between different deserializers.
|
||||
bool cleanse = config(L"checkData", false);
|
||||
deserializer = std::make_shared<Bundler>(config, deserializer, m_deserializers, cleanse);
|
||||
}
|
||||
|
||||
int verbosity = config(L"verbosity", 2);
|
||||
|
||||
// Pick up the randomizer.
|
||||
bool randomize = config(L"randomize", false);
|
||||
// By default do not use omp threads for deserialization of sequences.
|
||||
// It makes sense to put it to true for cases when deserialization is CPU intensive,
|
||||
// i.e. decompression of images.
|
||||
bool multiThreadedDeserialization = config(L"multiThreadedDeserialization", false);
|
||||
if (randomize)
|
||||
{
|
||||
// By default randomizing the whole data set.
|
||||
size_t randomizationWindow = config(L"randomizationWindow", requestDataSize);
|
||||
m_randomizer = std::make_shared<BlockRandomizer>(verbosity, randomizationWindow, bundler, BlockRandomizer::DecimationMode::chunk, true);
|
||||
// By default using STL random number generator.
|
||||
bool useLegacyRandomization = config(L"useLegacyRandomization", false);
|
||||
m_sequenceEnumerator = std::make_shared<BlockRandomizer>(verbosity, randomizationWindow, deserializer, BlockRandomizer::DecimationMode::chunk, useLegacyRandomization, multiThreadedDeserialization);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_randomizer = std::make_shared<NoRandomizer>(bundler);
|
||||
m_sequenceEnumerator = std::make_shared<NoRandomizer>(deserializer, multiThreadedDeserialization);
|
||||
}
|
||||
|
||||
m_randomizer->Initialize(nullptr, config);
|
||||
// In case when there are transforms, applying them to the data.
|
||||
m_sequenceEnumerator = m_transforms.empty()
|
||||
? m_sequenceEnumerator
|
||||
: std::make_shared<TransformController>(m_transforms, m_sequenceEnumerator);
|
||||
|
||||
// Create output stream descriptions - where to get those? from config? what if it is not the same as network expects?
|
||||
// TODO: Currently only sparse streams.
|
||||
for (const auto& streamDescription : bundler->GetStreamDescriptions())
|
||||
// TODO: Currently only dense output streams.
|
||||
// TODO: Check here. We should already support repacking sparse into dense in the shim/matrix.
|
||||
for (const auto& streamDescription : m_sequenceEnumerator->GetStreamDescriptions())
|
||||
{
|
||||
StreamDescriptionPtr stream = std::make_shared<StreamDescription>(*streamDescription);
|
||||
stream->m_storageType = StorageType::dense;
|
||||
|
@ -104,13 +125,17 @@ Minibatch CompositeDataReader::ReadMinibatch()
|
|||
return m_packer->ReadMinibatch();
|
||||
}
|
||||
|
||||
// Create deserializers based on the specified configuration.
|
||||
// deserializers = [
|
||||
// [ type = "ImageDataDeserializer" module = "ImageReader" ...]
|
||||
// [ type = "CNTKTextFormatDeserializer" module = "CNTKTextFormatReader" ...]
|
||||
void CompositeDataReader::CreateDeserializers(const ConfigParameters& readerConfig)
|
||||
{
|
||||
argvector<ConfigValue> deserializerConfigs =
|
||||
readerConfig(L"deserializers", ConfigParameters::Array(argvector<ConfigValue>(vector<ConfigValue> {})));
|
||||
|
||||
assert(m_deserializers.empty());
|
||||
bool primary = true; // CUrrently, the first deserializer becomes primary - it drives chunking.
|
||||
bool primary = true; // Currently, the first deserializer becomes primary - it drives chunking.
|
||||
for (size_t i = 0; i < deserializerConfigs.size(); ++i)
|
||||
{
|
||||
// TODO: Should go away in the future. Framing can be done on top of deserializers.
|
||||
|
@ -124,6 +149,8 @@ void CompositeDataReader::CreateDeserializers(const ConfigParameters& readerConf
|
|||
}
|
||||
}
|
||||
|
||||
// Creates a particular deserializer based on the config: its loads the external module and calls CreateDeserializer
|
||||
// factory function for a particular deserializer type.
|
||||
IDataDeserializerPtr CompositeDataReader::CreateDeserializer(const ConfigParameters& deserializerConfig, bool primary)
|
||||
{
|
||||
typedef bool(*CreateDeserializerFactory) (IDataDeserializer** d, const std::wstring& type, const ConfigParameters& cfg, CorpusDescriptorPtr corpus, bool primary);
|
||||
|
@ -138,10 +165,77 @@ IDataDeserializerPtr CompositeDataReader::CreateDeserializer(const ConfigParamet
|
|||
RuntimeError("Cannot create deserializer. Please check module and type in the configuration.");
|
||||
}
|
||||
|
||||
// Create transformers if necessary.
|
||||
CreateTransforms(deserializerConfig);
|
||||
|
||||
assert(d != nullptr);
|
||||
return IDataDeserializerPtr(d);
|
||||
}
|
||||
|
||||
// Create transformers based on the configuration, i.e.
|
||||
// deserializers = [
|
||||
// [
|
||||
// type = "ImageDataDeserializer"
|
||||
// module = "ImageReader"
|
||||
// inputs = [
|
||||
// features = [
|
||||
//----> transforms = [
|
||||
// [type = "Crop"]:[type = "Scale"]...
|
||||
|
||||
void CompositeDataReader::CreateTransforms(const ConfigParameters& deserializerConfig)
|
||||
{
|
||||
std::string defaultModule = deserializerConfig("module");
|
||||
argvector<ConfigParameters> inputs = deserializerConfig("inputs");
|
||||
for (size_t i = 0; i < inputs.size(); ++i)
|
||||
{
|
||||
// Trying to find transfomers in a stream section of the config.
|
||||
auto inputSections = TryGetSectionsWithParameter(inputs[i], "transforms");
|
||||
if (inputSections.size() > 1)
|
||||
{
|
||||
LogicError("Only a single 'transforms' config is allowed per stream.");
|
||||
}
|
||||
|
||||
// No need to create anything for this stream, skipping.
|
||||
if (inputSections.empty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ConfigParameters input = inputs[i](inputSections.front());
|
||||
std::wstring inputName = msra::strfun::utf16(input.ConfigName());
|
||||
|
||||
// Read tranformers in order and appending them to the transformer pipeline.
|
||||
argvector<ConfigParameters> transforms = input("transforms");
|
||||
for (size_t j = 0; j < transforms.size(); ++j)
|
||||
{
|
||||
TransformerPtr transformer = CreateTransformer(transforms[j], defaultModule);
|
||||
m_transforms.push_back(Transformation{transformer, inputName});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Create a transformer for a particular configuration. Loading it from the module of the deserializer if module is not specified, i.e.
|
||||
// transforms = [
|
||||
// [type = "Scale" width=...]:...
|
||||
TransformerPtr CompositeDataReader::CreateTransformer(const ConfigParameters& config, const string& defaultModule)
|
||||
{
|
||||
typedef bool(*TransformerFactory) (Transformer** t, const std::wstring& type, const ConfigParameters& cfg);
|
||||
|
||||
std::string transformerModule = config("module", defaultModule.c_str());
|
||||
TransformerFactory f = (TransformerFactory)Plugin::Load(transformerModule, "CreateTransformer");
|
||||
|
||||
std::wstring transformerType = config("type");
|
||||
Transformer* t;
|
||||
if (!f(&t, transformerType, config))
|
||||
{
|
||||
RuntimeError("Cannot create transformer. Please check the module and type in the configuration.");
|
||||
}
|
||||
|
||||
assert(t != nullptr);
|
||||
return TransformerPtr(t);
|
||||
}
|
||||
|
||||
void CompositeDataReader::StartEpoch(const EpochConfiguration& cfg)
|
||||
{
|
||||
EpochConfiguration config = cfg;
|
||||
|
@ -151,7 +245,7 @@ void CompositeDataReader::StartEpoch(const EpochConfiguration& cfg)
|
|||
RuntimeError("Unsupported minibatch size '%d'.", (int)config.m_totalEpochSizeInSamples);
|
||||
}
|
||||
|
||||
m_randomizer->StartEpoch(config);
|
||||
m_sequenceEnumerator->StartEpoch(config);
|
||||
|
||||
// TODO: As the next step the packers should be moved into the network.
|
||||
switch (m_packingMode)
|
||||
|
@ -159,13 +253,13 @@ void CompositeDataReader::StartEpoch(const EpochConfiguration& cfg)
|
|||
case PackingMode::sample:
|
||||
m_packer = std::make_shared<FramePacker>(
|
||||
m_provider,
|
||||
m_randomizer,
|
||||
m_sequenceEnumerator,
|
||||
m_streams);
|
||||
break;
|
||||
case PackingMode::sequence:
|
||||
m_packer = std::make_shared<SequencePacker>(
|
||||
m_provider,
|
||||
m_randomizer,
|
||||
m_sequenceEnumerator,
|
||||
m_streams);
|
||||
break;
|
||||
case PackingMode::truncated:
|
||||
|
@ -173,7 +267,7 @@ void CompositeDataReader::StartEpoch(const EpochConfiguration& cfg)
|
|||
config.m_truncationSize = m_truncationLength;
|
||||
m_packer = std::make_shared<TruncatedBPTTPacker>(
|
||||
m_provider,
|
||||
m_randomizer,
|
||||
m_sequenceEnumerator,
|
||||
m_streams);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,9 @@
|
|||
#include <string>
|
||||
#include <future>
|
||||
#include "DataReader.h"
|
||||
#include <Reader.h>
|
||||
#include "Reader.h"
|
||||
#include "Transformer.h"
|
||||
#include "TransformController.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -44,13 +46,11 @@ struct Minibatch;
|
|||
// - sequences can be transformed by the transformers applied on top of deserializer (TODO: not yet in place)
|
||||
// - deserializers are bound together using the bundler - it bundles sequences with the same sequence id retrieved from different deserializers
|
||||
// - packer is used to pack randomized sequences into the minibatch
|
||||
// The composite data reader is currently also responsible for asynchronous prefetching of the minibatch data.
|
||||
// The composite reader is currently also responsible for asynchronous prefetching of the minibatch data.
|
||||
|
||||
// In order not to break existing configs and allow deserializers composition it exposes the same interface as the old readers, but it is not exposed
|
||||
// to external developers. The actual "reader developer" now has to provide deserializer(s) only.
|
||||
// TODO: Implement proper corpus descriptor.
|
||||
// TODO: Add transformers as the next step.
|
||||
// TODO: Same code as in ReaderLib shim, the one in the ReaderLib will be deleted as the next step.
|
||||
// TODO: Change this interface when SGD is changed.
|
||||
class CompositeDataReader : public Reader, protected Plugin
|
||||
{
|
||||
|
@ -68,7 +68,10 @@ public:
|
|||
|
||||
private:
|
||||
void CreateDeserializers(const ConfigParameters& readerConfig);
|
||||
void CreateTransforms(const ConfigParameters& deserializerConfig);
|
||||
|
||||
IDataDeserializerPtr CreateDeserializer(const ConfigParameters& readerConfig, bool primary);
|
||||
TransformerPtr CreateTransformer(const ConfigParameters& config, const std::string& defaultModule);
|
||||
|
||||
|
||||
enum class PackingMode
|
||||
|
@ -103,9 +106,11 @@ private:
|
|||
// A list of deserializers.
|
||||
std::vector<IDataDeserializerPtr> m_deserializers;
|
||||
|
||||
// Randomizer.
|
||||
// TODO: remove Transformer interface from randomizer.
|
||||
TransformerPtr m_randomizer;
|
||||
// A list of transformers.
|
||||
std::vector<Transformation> m_transforms;
|
||||
|
||||
// Sequence provider.
|
||||
SequenceEnumeratorPtr m_sequenceEnumerator;
|
||||
|
||||
// TODO: Should be removed. We already have matrices on this level.
|
||||
// Should just get the corresponding pinned memory.
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp" />
|
||||
<ClCompile Include="stdafx.cpp" />
|
||||
<ClCompile Include="CompositeDataReader.cpp" />
|
||||
<ClCompile Include="Exports.cpp" />
|
||||
<ClCompile Include="CompositeDataReader.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h" />
|
||||
|
|
|
@ -231,7 +231,7 @@ vector<wstring> ConfigHelper::GetSequencePaths()
|
|||
// post processing file list :
|
||||
// - if users specified PrefixPath, add the prefix to each of path in filelist
|
||||
// - else do the dotdotdot expansion if necessary
|
||||
if (!rootPath.empty()) // use has specified a path prefix for this feature
|
||||
if (!rootPath.empty()) // user has specified a path prefix for this feature
|
||||
{
|
||||
// first make slash consistent (sorry for Linux users:this is not necessary for you)
|
||||
replace(rootPath.begin(), rootPath.end(), L'\\', L'/');
|
||||
|
|
|
@ -105,7 +105,8 @@ HTKMLFReader::HTKMLFReader(MemoryProviderPtr provider,
|
|||
LogicError("Please specify at least a single input stream.");
|
||||
}
|
||||
|
||||
auto bundler = std::make_shared<Bundler>(readerConfig, deserializers[0], deserializers, false);
|
||||
bool cleanse = readerConfig(L"checkData", false);
|
||||
auto bundler = std::make_shared<Bundler>(readerConfig, deserializers[0], deserializers, cleanse);
|
||||
int verbosity = readerConfig(L"verbosity", 2);
|
||||
std::wstring readMethod = config.GetRandomizer();
|
||||
|
||||
|
@ -123,8 +124,6 @@ HTKMLFReader::HTKMLFReader(MemoryProviderPtr provider,
|
|||
RuntimeError("readMethod must be 'blockRandomize' or 'none'.");
|
||||
}
|
||||
|
||||
m_randomizer->Initialize(nullptr, readerConfig);
|
||||
|
||||
// Create output stream descriptions (all dense)
|
||||
for (auto d : deserializers)
|
||||
{
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "Reader.h"
|
||||
#include "Packer.h"
|
||||
#include "Config.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -54,8 +55,7 @@ private:
|
|||
// Memory provider (TODO: this will possibly change in the near future.)
|
||||
MemoryProviderPtr m_provider;
|
||||
|
||||
// TODO: Randomizer won't implement transformer interface in the near future.
|
||||
TransformerPtr m_randomizer;
|
||||
SequenceEnumeratorPtr m_randomizer;
|
||||
|
||||
// Truncation length for BPTT mode.
|
||||
size_t m_truncationLength;
|
||||
|
|
|
@ -417,7 +417,8 @@ public:
|
|||
if (xpath.empty())
|
||||
malformed(pathParam);
|
||||
e = msra::strfun::toint(consume(xpath, L"]"));
|
||||
if (!xpath.empty())
|
||||
// TODO \r should be handled elsewhere; refine this
|
||||
if (!xpath.empty() && xpath != L"\r")
|
||||
malformed(pathParam);
|
||||
isarchive = true;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,9 @@
|
|||
#include "ReaderShim.h"
|
||||
#include "ImageReader.h"
|
||||
#include "HeapMemoryProvider.h"
|
||||
#include "CudaMemoryProvider.h"
|
||||
#include "ImageDataDeserializer.h"
|
||||
#include "ImageTransformers.h"
|
||||
#include "CorpusDescriptor.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -32,4 +34,41 @@ extern "C" DATAREADER_API void GetReaderD(IDataReader** preader)
|
|||
*preader = new ReaderShim<double>(factory);
|
||||
}
|
||||
|
||||
// TODO: Not safe from the ABI perspective. Will be uglified to make the interface ABI.
|
||||
// A factory method for creating image deserializers.
|
||||
extern "C" DATAREADER_API bool CreateDeserializer(IDataDeserializer** deserializer, const std::wstring& type, const ConfigParameters& deserializerConfig, CorpusDescriptorPtr corpus, bool)
|
||||
{
|
||||
if (type == L"ImageDataDeserializer")
|
||||
*deserializer = new ImageDataDeserializer(corpus, deserializerConfig);
|
||||
else
|
||||
// Unknown type.
|
||||
return false;
|
||||
|
||||
// Deserializer created.
|
||||
return true;
|
||||
}
|
||||
|
||||
// A factory method for creating image transformers.
|
||||
extern "C" DATAREADER_API bool CreateTransformer(Transformer** transformer, const std::wstring& type, const ConfigParameters& config)
|
||||
{
|
||||
if (type == L"Crop")
|
||||
*transformer = new CropTransformer(config);
|
||||
else if (type == L"Scale")
|
||||
*transformer = new ScaleTransformer(config);
|
||||
else if (type == L"Color")
|
||||
*transformer = new ColorTransformer(config);
|
||||
else if (type == L"Intensity")
|
||||
*transformer = new IntensityTransformer(config);
|
||||
else if (type == L"Mean")
|
||||
*transformer = new MeanTransformer(config);
|
||||
else if (type == L"Transpose")
|
||||
*transformer = new TransposeTransformer(config);
|
||||
else
|
||||
// Unknown type.
|
||||
return false;
|
||||
|
||||
// Transformer created.
|
||||
return true;
|
||||
}
|
||||
|
||||
}}}
|
||||
|
|
|
@ -6,33 +6,15 @@
|
|||
#include "stdafx.h"
|
||||
#include "ImageConfigHelper.h"
|
||||
#include "StringUtil.h"
|
||||
#include "ConfigUtil.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
std::vector<std::string> GetSectionsWithParameter(const ConfigParameters& config, const std::string& parameterName)
|
||||
{
|
||||
std::vector<std::string> sectionNames;
|
||||
for (const std::pair<std::string, ConfigParameters>& section : config)
|
||||
{
|
||||
if (section.second.ExistsCurrent(parameterName))
|
||||
{
|
||||
sectionNames.push_back(section.first);
|
||||
}
|
||||
}
|
||||
|
||||
if (sectionNames.empty())
|
||||
{
|
||||
RuntimeError("ImageReader requires %s parameter.", parameterName.c_str());
|
||||
}
|
||||
|
||||
return sectionNames;
|
||||
}
|
||||
|
||||
ImageConfigHelper::ImageConfigHelper(const ConfigParameters& config)
|
||||
: m_dataFormat(CHW)
|
||||
{
|
||||
std::vector<std::string> featureNames = GetSectionsWithParameter(config, "width");
|
||||
std::vector<std::string> labelNames = GetSectionsWithParameter(config, "labelDim");
|
||||
std::vector<std::string> featureNames = GetSectionsWithParameter("ImageReader", config, "width");
|
||||
std::vector<std::string> labelNames = GetSectionsWithParameter("ImageReader", config, "labelDim");
|
||||
|
||||
// REVIEW alexeyk: currently support only one feature and label section.
|
||||
if (featureNames.size() != 1 || labelNames.size() != 1)
|
||||
|
@ -77,7 +59,7 @@ ImageConfigHelper::ImageConfigHelper(const ConfigParameters& config)
|
|||
|
||||
m_mapPath = config(L"file");
|
||||
|
||||
m_grayscale = config(L"grayscale", false);
|
||||
m_grayscale = config(L"grayscale", c == 1);
|
||||
std::string rand = config(L"randomize", "auto");
|
||||
|
||||
if (AreEqualIgnoreCase(rand, "auto"))
|
||||
|
@ -112,7 +94,7 @@ ImageConfigHelper::ImageConfigHelper(const ConfigParameters& config)
|
|||
|
||||
m_cpuThreadCount = config(L"numCPUThreads", 0);
|
||||
|
||||
m_multiViewCrop = AreEqualIgnoreCase((string)featureSection(L"cropType", ""), "multiview10");
|
||||
m_cropType = ParseCropType(featureSection(L"cropType", ""));
|
||||
}
|
||||
|
||||
std::vector<StreamDescriptionPtr> ImageConfigHelper::GetStreams() const
|
||||
|
@ -136,4 +118,25 @@ std::string ImageConfigHelper::GetMapPath() const
|
|||
{
|
||||
return m_mapPath;
|
||||
}
|
||||
|
||||
CropType ImageConfigHelper::ParseCropType(const std::string &src)
|
||||
{
|
||||
if (src.empty() || AreEqualIgnoreCase(src, "center"))
|
||||
{
|
||||
return CropType::Center;
|
||||
}
|
||||
|
||||
if (AreEqualIgnoreCase(src, "random"))
|
||||
{
|
||||
return CropType::Random;
|
||||
}
|
||||
|
||||
if (AreEqualIgnoreCase(src, "multiview10"))
|
||||
{
|
||||
return CropType::MultiView10;
|
||||
}
|
||||
|
||||
RuntimeError("Invalid crop type: %s.", src.c_str());
|
||||
}
|
||||
|
||||
}}}
|
||||
|
|
|
@ -12,6 +12,13 @@
|
|||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
enum class CropType
|
||||
{
|
||||
Center = 0,
|
||||
Random = 1,
|
||||
MultiView10 = 2
|
||||
};
|
||||
|
||||
// A helper class for image specific parameters.
|
||||
// A simple wrapper around CNTK ConfigParameters.
|
||||
class ImageConfigHelper
|
||||
|
@ -50,12 +57,19 @@ public:
|
|||
{
|
||||
return m_grayscale;
|
||||
}
|
||||
|
||||
bool IsMultiViewCrop() const
|
||||
|
||||
CropType GetCropType() const
|
||||
{
|
||||
return m_multiViewCrop;
|
||||
return m_cropType;
|
||||
}
|
||||
|
||||
bool IsMultiViewCrop() const
|
||||
{
|
||||
return m_cropType == CropType::MultiView10;
|
||||
}
|
||||
|
||||
static CropType ParseCropType(const std::string &src);
|
||||
|
||||
private:
|
||||
ImageConfigHelper(const ImageConfigHelper&) = delete;
|
||||
ImageConfigHelper& operator=(const ImageConfigHelper&) = delete;
|
||||
|
@ -65,8 +79,8 @@ private:
|
|||
ImageLayoutKind m_dataFormat;
|
||||
int m_cpuThreadCount;
|
||||
bool m_randomize;
|
||||
bool m_multiViewCrop;
|
||||
bool m_grayscale;
|
||||
CropType m_cropType;
|
||||
};
|
||||
|
||||
typedef std::shared_ptr<ImageConfigHelper> ImageConfigHelperPtr;
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include <limits>
|
||||
#include "ImageDataDeserializer.h"
|
||||
#include "ImageConfigHelper.h"
|
||||
#include "StringUtil.h"
|
||||
#include "ConfigUtil.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -115,13 +117,68 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
// A new constructor to support new compositional configuration,
|
||||
// that allows composition of deserializers and transforms on inputs.
|
||||
// For a sample config please see AlexImage end-to-end test.
|
||||
// TODO: Provide only sequences specified in the corpus descriptor.
|
||||
ImageDataDeserializer::ImageDataDeserializer(CorpusDescriptorPtr, const ConfigParameters& config)
|
||||
{
|
||||
ConfigParameters inputs = config("inputs");
|
||||
std::vector<std::string> featureNames = GetSectionsWithParameter("ImageDataDeserializer", inputs, "transforms");
|
||||
std::vector<std::string> labelNames = GetSectionsWithParameter("ImageDataDeserializer", inputs, "labelDim");
|
||||
|
||||
// TODO: currently support only one feature and label section.
|
||||
if (featureNames.size() != 1 || labelNames.size() != 1)
|
||||
{
|
||||
RuntimeError(
|
||||
"ImageReader currently supports a single feature and label stream. '%d' features , '%d' labels found.",
|
||||
static_cast<int>(featureNames.size()),
|
||||
static_cast<int>(labelNames.size()));
|
||||
}
|
||||
|
||||
string precision = (ConfigValue)config("precision", "float");
|
||||
|
||||
// Feature stream.
|
||||
ConfigParameters featureSection = inputs(featureNames[0]);
|
||||
auto features = std::make_shared<StreamDescription>();
|
||||
features->m_id = 0;
|
||||
features->m_name = msra::strfun::utf16(featureSection.ConfigName());
|
||||
features->m_storageType = StorageType::dense;
|
||||
features->m_elementType = AreEqualIgnoreCase(precision, "float") ? ElementType::tfloat : ElementType::tdouble;
|
||||
m_streams.push_back(features);
|
||||
|
||||
// Label stream.
|
||||
ConfigParameters label = inputs(labelNames[0]);
|
||||
size_t labelDimension = label("labelDim");
|
||||
auto labels = std::make_shared<StreamDescription>();
|
||||
labels->m_id = 1;
|
||||
labels->m_name = msra::strfun::utf16(label.ConfigName());
|
||||
labels->m_sampleLayout = std::make_shared<TensorShape>(labelDimension);
|
||||
labels->m_storageType = StorageType::sparse_csc;
|
||||
labels->m_elementType = AreEqualIgnoreCase(precision, "float") ? ElementType::tfloat : ElementType::tdouble;
|
||||
m_streams.push_back(labels);
|
||||
|
||||
m_labelGenerator = labels->m_elementType == ElementType::tfloat ?
|
||||
(LabelGeneratorPtr)std::make_shared<TypedLabelGenerator<float>>(labelDimension) :
|
||||
std::make_shared<TypedLabelGenerator<double>>(labelDimension);
|
||||
|
||||
m_grayscale = config(L"grayscale", false);
|
||||
|
||||
// TODO: multiview should be done on the level of randomizer/transformers - it is responsiblity of the
|
||||
// TODO: randomizer to collect how many copies each transform needs and request same sequence several times.
|
||||
bool multiViewCrop = config(L"multiViewCrop", false);
|
||||
CreateSequenceDescriptions(config(L"file"), labelDimension, multiViewCrop);
|
||||
}
|
||||
|
||||
// TODO: Should be removed at some point.
|
||||
// Supports old type of ImageReader configuration.
|
||||
ImageDataDeserializer::ImageDataDeserializer(const ConfigParameters& config)
|
||||
{
|
||||
ImageConfigHelper configHelper(config);
|
||||
m_streams = configHelper.GetStreams();
|
||||
assert(m_streams.size() == 2);
|
||||
m_grayscale = configHelper.UseGrayscale();
|
||||
const auto& label = m_streams[configHelper.GetLabelStreamId()];
|
||||
const auto& label = m_streams[configHelper.GetLabelStreamId()];
|
||||
const auto& feature = m_streams[configHelper.GetFeatureStreamId()];
|
||||
|
||||
// Expect data in HWC.
|
||||
|
@ -147,7 +204,7 @@ ImageDataDeserializer::ImageDataDeserializer(const ConfigParameters& config)
|
|||
RuntimeError("Unsupported label element type '%d'.", (int)label->m_elementType);
|
||||
}
|
||||
|
||||
CreateSequenceDescriptions(configHelper.GetMapPath(), labelDimension, configHelper);
|
||||
CreateSequenceDescriptions(configHelper.GetMapPath(), labelDimension, configHelper.IsMultiViewCrop());
|
||||
}
|
||||
|
||||
// Descriptions of chunks exposed by the image reader.
|
||||
|
@ -173,7 +230,7 @@ void ImageDataDeserializer::GetSequencesForChunk(size_t chunkId, std::vector<Seq
|
|||
result.push_back(m_imageSequences[chunkId]);
|
||||
}
|
||||
|
||||
void ImageDataDeserializer::CreateSequenceDescriptions(std::string mapPath, size_t labelDimension, const ImageConfigHelper& config)
|
||||
void ImageDataDeserializer::CreateSequenceDescriptions(std::string mapPath, size_t labelDimension, bool isMultiCrop)
|
||||
{
|
||||
std::ifstream mapFile(mapPath);
|
||||
if (!mapFile)
|
||||
|
@ -181,7 +238,7 @@ void ImageDataDeserializer::CreateSequenceDescriptions(std::string mapPath, size
|
|||
RuntimeError("Could not open %s for reading.", mapPath.c_str());
|
||||
}
|
||||
|
||||
size_t itemsPerLine = config.IsMultiViewCrop() ? 10 : 1;
|
||||
size_t itemsPerLine = isMultiCrop ? 10 : 1;
|
||||
size_t curId = 0;
|
||||
std::string line;
|
||||
PathReaderMap knownReaders;
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
#include "DataDeserializerBase.h"
|
||||
#include "Config.h"
|
||||
#include "ByteReader.h"
|
||||
#include "ImageConfigHelper.h"
|
||||
#include <unordered_map>
|
||||
#include "CorpusDescriptor.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -21,6 +21,11 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
|||
class ImageDataDeserializer : public DataDeserializerBase
|
||||
{
|
||||
public:
|
||||
// A new constructor to support new compositional configuration,
|
||||
// that allows composition of deserializers and transforms on inputs.
|
||||
ImageDataDeserializer(CorpusDescriptorPtr corpus, const ConfigParameters& config);
|
||||
|
||||
// TODO: This constructor should be deprecated in the future. Compositional config should be used instead.
|
||||
explicit ImageDataDeserializer(const ConfigParameters& config);
|
||||
|
||||
// Gets sequences by specified ids. Order of returned sequences corresponds to the order of provided ids.
|
||||
|
@ -34,7 +39,7 @@ public:
|
|||
|
||||
private:
|
||||
// Creates a set of sequence descriptions.
|
||||
void CreateSequenceDescriptions(std::string mapPath, size_t labelDimension, const ImageConfigHelper& config);
|
||||
void CreateSequenceDescriptions(std::string mapPath, size_t labelDimension, bool isMultiCrop);
|
||||
|
||||
// Image sequence descriptions. Currently, a sequence contains a single sample only.
|
||||
struct ImageSequenceDescription : public SequenceDescription
|
||||
|
|
|
@ -13,9 +13,13 @@
|
|||
#include "ImageDataDeserializer.h"
|
||||
#include "FramePacker.h"
|
||||
#include <omp.h>
|
||||
#include "TransformController.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
// TODO: This class should go away eventually.
|
||||
// TODO: The composition of packer + randomizer + different deserializers in a generic manner is done in the CompositeDataReader.
|
||||
// TODO: Currently preserving this for backward compatibility with current configs.
|
||||
ImageReader::ImageReader(MemoryProviderPtr provider,
|
||||
const ConfigParameters& config)
|
||||
: m_seed(0), m_provider(provider)
|
||||
|
@ -37,7 +41,7 @@ ImageReader::ImageReader(MemoryProviderPtr provider,
|
|||
|
||||
auto deserializer = std::make_shared<ImageDataDeserializer>(config);
|
||||
|
||||
TransformerPtr randomizer;
|
||||
SequenceEnumeratorPtr randomizer;
|
||||
// Request multi-threaded randomizer operation to speed up CPU-intensive image-decoding and transformations.
|
||||
const bool multithreadedGetNextSequences = true;
|
||||
if (configHelper.ShouldRandomize())
|
||||
|
@ -51,35 +55,27 @@ ImageReader::ImageReader(MemoryProviderPtr provider,
|
|||
randomizer = std::make_shared<NoRandomizer>(deserializer, multithreadedGetNextSequences);
|
||||
}
|
||||
|
||||
randomizer->Initialize(nullptr, config);
|
||||
// Create transformations for a single feature stream.
|
||||
std::wstring featureName = m_streams[configHelper.GetFeatureStreamId()]->m_name;
|
||||
ConfigParameters featureStream = config(featureName);
|
||||
|
||||
auto cropper = std::make_shared<CropTransformer>();
|
||||
cropper->Initialize(randomizer, config);
|
||||
std::vector<Transformation> transformations;
|
||||
transformations.push_back(Transformation{ std::make_shared<CropTransformer>(featureStream), featureName });
|
||||
transformations.push_back(Transformation{ std::make_shared<ScaleTransformer>(featureStream), featureName });
|
||||
transformations.push_back(Transformation{ std::make_shared<ColorTransformer>(featureStream), featureName });
|
||||
transformations.push_back(Transformation{ std::make_shared<IntensityTransformer>(featureStream), featureName });
|
||||
transformations.push_back(Transformation{ std::make_shared<MeanTransformer>(featureStream), featureName });
|
||||
|
||||
auto scaler = std::make_shared<ScaleTransformer>();
|
||||
scaler->Initialize(cropper, config);
|
||||
|
||||
auto color = std::make_shared<ColorTransformer>();
|
||||
color->Initialize(scaler, config);
|
||||
|
||||
auto intensity = std::make_shared<IntensityTransformer>();
|
||||
intensity->Initialize(color, config);
|
||||
|
||||
auto mean = std::make_shared<MeanTransformer>();
|
||||
mean->Initialize(intensity, config);
|
||||
|
||||
TransformerPtr last = mean;
|
||||
if (configHelper.GetDataFormat() == CHW)
|
||||
{
|
||||
last = std::make_shared<TransposeTransformer>();
|
||||
last->Initialize(mean, config);
|
||||
transformations.push_back(Transformation{ std::make_shared<TransposeTransformer>(featureStream), featureName });
|
||||
}
|
||||
|
||||
m_transformer = last;
|
||||
m_sequenceEnumerator = std::make_shared<TransformController>(transformations, randomizer);
|
||||
|
||||
m_packer = std::make_shared<FramePacker>(
|
||||
m_provider,
|
||||
m_transformer,
|
||||
m_sequenceEnumerator,
|
||||
m_streams);
|
||||
}
|
||||
|
||||
|
@ -96,7 +92,7 @@ void ImageReader::StartEpoch(const EpochConfiguration& config)
|
|||
RuntimeError("Epoch size cannot be 0.");
|
||||
}
|
||||
|
||||
m_transformer->StartEpoch(config);
|
||||
m_sequenceEnumerator->StartEpoch(config);
|
||||
m_packer->StartEpoch(config);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
#pragma once
|
||||
|
||||
#include "Reader.h"
|
||||
#include "ImageTransformers.h"
|
||||
#include "Packer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -34,7 +34,7 @@ private:
|
|||
std::vector<StreamDescriptionPtr> m_streams;
|
||||
|
||||
// A head transformer in a list of transformers.
|
||||
TransformerPtr m_transformer;
|
||||
SequenceEnumeratorPtr m_sequenceEnumerator;
|
||||
|
||||
// Packer.
|
||||
PackerPtr m_packer;
|
||||
|
|
|
@ -3,23 +3,11 @@
|
|||
<ItemGroup>
|
||||
<ClCompile Include="Exports.cpp" />
|
||||
<ClCompile Include="stdafx.cpp" />
|
||||
<ClCompile Include="..\..\Common\fileutil.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\File.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="dllmain.cpp" />
|
||||
<ClCompile Include="ImageTransformers.cpp" />
|
||||
<ClCompile Include="ImageDataDeserializer.cpp" />
|
||||
<ClCompile Include="ImageReader.cpp" />
|
||||
<ClCompile Include="ImageConfigHelper.cpp" />
|
||||
<ClCompile Include="..\..\Common\Config.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Common\ExceptionWithCallStack.cpp">
|
||||
<Filter>Common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ZipByteReader.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -10,11 +10,10 @@
|
|||
#include "ImageTransformers.h"
|
||||
#include "Config.h"
|
||||
#include "ConcStack.h"
|
||||
#include "ImageConfigHelper.h"
|
||||
#include "StringUtil.h"
|
||||
#include "ElementTypeUtils.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK
|
||||
namespace Microsoft { namespace MSR { namespace CNTK
|
||||
{
|
||||
|
||||
struct ImageSequenceData : DenseSequenceData
|
||||
|
@ -24,53 +23,51 @@ struct ImageSequenceData : DenseSequenceData
|
|||
SequenceDataPtr m_original;
|
||||
};
|
||||
|
||||
void ImageTransformerBase::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
ImageTransformerBase::ImageTransformerBase(const ConfigParameters& readerConfig) : m_imageElementType(0)
|
||||
{
|
||||
Base::Initialize(next, readerConfig);
|
||||
m_seed = readerConfig(L"seed", (unsigned int)0);
|
||||
|
||||
ImageConfigHelper config(readerConfig);
|
||||
size_t featureStreamId = config.GetFeatureStreamId();
|
||||
m_appliedStreamIds.push_back(featureStreamId);
|
||||
if (m_appliedStreamIds.size() != 1)
|
||||
{
|
||||
RuntimeError("Only a single feature stream is supported.");
|
||||
}
|
||||
|
||||
const auto &inputStreams = GetInputStreams();
|
||||
m_outputStreams.resize(inputStreams.size());
|
||||
std::copy(inputStreams.begin(), inputStreams.end(), m_outputStreams.begin());
|
||||
m_seed = readerConfig(L"seed", 0u);
|
||||
}
|
||||
|
||||
SequenceDataPtr
|
||||
ImageTransformerBase::Apply(SequenceDataPtr sequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription & /*outputStream*/)
|
||||
// The method describes how input stream is transformed to the output stream. Called once per applied stream.
|
||||
// Currently for image transformations we only support dense streams of type double or float.
|
||||
StreamDescription ImageTransformerBase::Transform(const StreamDescription& inputStream)
|
||||
{
|
||||
assert(inputStream.m_storageType == StorageType::dense);
|
||||
auto inputSequence = static_cast<const DenseSequenceData&>(*sequence.get());
|
||||
ImageDimensions dimensions(*inputSequence.m_sampleLayout, HWC);
|
||||
int columns = static_cast<int>(dimensions.m_width);
|
||||
int rows = static_cast<int>(dimensions.m_height);
|
||||
int channels = static_cast<int>(dimensions.m_numChannels);
|
||||
m_inputStream = inputStream;
|
||||
m_outputStream = m_inputStream;
|
||||
|
||||
int typeId = 0;
|
||||
if (inputStream.m_elementType == ElementType::tdouble)
|
||||
if (m_inputStream.m_storageType != StorageType::dense)
|
||||
{
|
||||
typeId = CV_64F;
|
||||
LogicError("ImageTransformerBase supports only dense input streams.");
|
||||
}
|
||||
else if (inputStream.m_elementType == ElementType::tfloat)
|
||||
|
||||
if (m_inputStream.m_elementType == ElementType::tdouble)
|
||||
{
|
||||
typeId = CV_32F;
|
||||
m_imageElementType = CV_64F;
|
||||
}
|
||||
else if (m_inputStream.m_elementType == ElementType::tfloat)
|
||||
{
|
||||
m_imageElementType = CV_32F;
|
||||
}
|
||||
else
|
||||
{
|
||||
RuntimeError("Unsupported type");
|
||||
}
|
||||
|
||||
return m_outputStream;
|
||||
}
|
||||
|
||||
// Transforms a single sequence as open cv dense image. Called once per sequence.
|
||||
SequenceDataPtr ImageTransformerBase::Transform(SequenceDataPtr sequence)
|
||||
{
|
||||
auto inputSequence = static_cast<const DenseSequenceData&>(*sequence);
|
||||
|
||||
ImageDimensions dimensions(*inputSequence.m_sampleLayout, HWC);
|
||||
int columns = static_cast<int>(dimensions.m_width);
|
||||
int rows = static_cast<int>(dimensions.m_height);
|
||||
int channels = static_cast<int>(dimensions.m_numChannels);
|
||||
|
||||
auto result = std::make_shared<ImageSequenceData>();
|
||||
int type = CV_MAKETYPE(typeId, channels);
|
||||
int type = CV_MAKETYPE(m_imageElementType, channels);
|
||||
cv::Mat buffer = cv::Mat(rows, columns, type, inputSequence.m_data);
|
||||
Apply(sequence->m_id, buffer);
|
||||
if (!buffer.isContinuous())
|
||||
|
@ -92,19 +89,8 @@ ImageTransformerBase::Apply(SequenceDataPtr sequence,
|
|||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CropTransformer::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
CropTransformer::CropTransformer(const ConfigParameters& config) : ImageTransformerBase(config)
|
||||
{
|
||||
ImageTransformerBase::Initialize(next, readerConfig);
|
||||
auto featureStreamIds = GetAppliedStreamIds();
|
||||
InitFromConfig(readerConfig(GetInputStreams()[featureStreamIds[0]]->m_name));
|
||||
}
|
||||
|
||||
void CropTransformer::InitFromConfig(const ConfigParameters &config)
|
||||
{
|
||||
m_cropType = ParseCropType(config(L"cropType", ""));
|
||||
|
||||
floatargvector cropRatio = config(L"cropRatio", "1.0");
|
||||
m_cropRatioMin = cropRatio[0];
|
||||
m_cropRatioMax = cropRatio[1];
|
||||
|
@ -119,6 +105,8 @@ void CropTransformer::InitFromConfig(const ConfigParameters &config)
|
|||
|
||||
m_jitterType = ParseJitterType(config(L"jitterType", ""));
|
||||
|
||||
m_cropType = ImageConfigHelper::ParseCropType(config(L"cropType", ""));
|
||||
|
||||
if (!config.ExistsCurrent(L"hflip"))
|
||||
{
|
||||
m_hFlip = m_cropType == CropType::Random;
|
||||
|
@ -136,7 +124,6 @@ void CropTransformer::StartEpoch(const EpochConfiguration &config)
|
|||
m_curAspectRatioRadius = m_aspectRatioRadius[config.m_epochIndex];
|
||||
if (!(0 <= m_curAspectRatioRadius && m_curAspectRatioRadius <= 1.0))
|
||||
InvalidArgument("aspectRatioRadius must be >= 0.0 and <= 1.0");
|
||||
|
||||
ImageTransformerBase::StartEpoch(config);
|
||||
}
|
||||
|
||||
|
@ -178,27 +165,6 @@ void CropTransformer::Apply(size_t id, cv::Mat &mat)
|
|||
m_rngs.push(std::move(rng));
|
||||
}
|
||||
|
||||
CropTransformer::CropType
|
||||
CropTransformer::ParseCropType(const std::string &src)
|
||||
{
|
||||
if (src.empty() || AreEqualIgnoreCase(src, "center"))
|
||||
{
|
||||
return CropType::Center;
|
||||
}
|
||||
|
||||
if (AreEqualIgnoreCase(src, "random"))
|
||||
{
|
||||
return CropType::Random;
|
||||
}
|
||||
|
||||
if (AreEqualIgnoreCase(src, "multiview10"))
|
||||
{
|
||||
return CropType::MultiView10;
|
||||
}
|
||||
|
||||
RuntimeError("Invalid crop type: %s.", src.c_str());
|
||||
}
|
||||
|
||||
CropTransformer::RatioJitterType
|
||||
CropTransformer::ParseJitterType(const std::string &src)
|
||||
{
|
||||
|
@ -226,7 +192,7 @@ CropTransformer::ParseJitterType(const std::string &src)
|
|||
}
|
||||
|
||||
cv::Rect CropTransformer::GetCropRect(CropType type, int viewIndex, int crow, int ccol,
|
||||
double cropRatio, std::mt19937 &rng)
|
||||
double cropRatio, std::mt19937 &rng)
|
||||
{
|
||||
assert(crow > 0);
|
||||
assert(ccol > 0);
|
||||
|
@ -278,27 +244,27 @@ cv::Rect CropTransformer::GetCropRect(CropType type, int viewIndex, int crow, in
|
|||
int isubView = viewIndex % 5;
|
||||
switch (isubView)
|
||||
{
|
||||
// top-left
|
||||
// top-left
|
||||
case 0:
|
||||
xOff = 0;
|
||||
yOff = 0;
|
||||
break;
|
||||
// top-right
|
||||
// top-right
|
||||
case 1:
|
||||
xOff = ccol - cropSizeX;
|
||||
yOff = 0;
|
||||
break;
|
||||
// bottom-left
|
||||
// bottom-left
|
||||
case 2:
|
||||
xOff = 0;
|
||||
yOff = crow - cropSizeY;
|
||||
break;
|
||||
// bottom-right
|
||||
// bottom-right
|
||||
case 3:
|
||||
xOff = ccol - cropSizeX;
|
||||
yOff = crow - cropSizeY;
|
||||
break;
|
||||
// center
|
||||
// center
|
||||
case 4:
|
||||
xOff = (ccol - cropSizeX) / 2;
|
||||
yOff = (crow - cropSizeY) / 2;
|
||||
|
@ -317,24 +283,13 @@ cv::Rect CropTransformer::GetCropRect(CropType type, int viewIndex, int crow, in
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void ScaleTransformer::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
ScaleTransformer::ScaleTransformer(const ConfigParameters& config) : ImageTransformerBase(config)
|
||||
{
|
||||
ImageTransformerBase::Initialize(next, readerConfig);
|
||||
m_interpMap.emplace("nearest", cv::INTER_NEAREST);
|
||||
m_interpMap.emplace("linear", cv::INTER_LINEAR);
|
||||
m_interpMap.emplace("cubic", cv::INTER_CUBIC);
|
||||
m_interpMap.emplace("lanczos", cv::INTER_LANCZOS4);
|
||||
|
||||
auto featureStreamIds = GetAppliedStreamIds();
|
||||
const auto &feature = GetInputStreams()[featureStreamIds[0]];
|
||||
m_dataType = feature->m_elementType == ElementType::tfloat ? CV_32F : CV_64F;
|
||||
|
||||
InitFromConfig(readerConfig(feature->m_name));
|
||||
}
|
||||
|
||||
void ScaleTransformer::InitFromConfig(const ConfigParameters &config)
|
||||
{
|
||||
m_imgWidth = config(L"width");
|
||||
m_imgHeight = config(L"height");
|
||||
m_imgChannels = config(L"channels");
|
||||
|
@ -359,15 +314,24 @@ void ScaleTransformer::InitFromConfig(const ConfigParameters &config)
|
|||
m_interp.push_back(cv::INTER_LINEAR);
|
||||
}
|
||||
|
||||
// The method describes how input stream is transformed to the output stream. Called once per applied stream.
|
||||
// Scale transformer transforms the stream so that all samples are of the same size.
|
||||
StreamDescription ScaleTransformer::Transform(const StreamDescription& inputStream)
|
||||
{
|
||||
ImageTransformerBase::Transform(inputStream);
|
||||
m_outputStream.m_sampleLayout = std::make_shared<TensorShape>(ImageDimensions(m_imgWidth, m_imgHeight, m_imgChannels).AsTensorShape(HWC));
|
||||
return m_outputStream;
|
||||
}
|
||||
|
||||
void ScaleTransformer::Apply(size_t id, cv::Mat &mat)
|
||||
{
|
||||
UNUSED(id);
|
||||
|
||||
// If matrix has not been converted to the right type, do it now as rescaling
|
||||
// requires floating point type.
|
||||
//
|
||||
if (mat.type() != CV_MAKETYPE(m_dataType, m_imgChannels))
|
||||
if (mat.type() != CV_MAKETYPE(m_imageElementType, m_imgChannels))
|
||||
{
|
||||
mat.convertTo(mat, m_dataType);
|
||||
mat.convertTo(mat, m_imageElementType);
|
||||
}
|
||||
|
||||
auto seed = GetSeed();
|
||||
|
@ -375,7 +339,6 @@ void ScaleTransformer::Apply(size_t id, cv::Mat &mat)
|
|||
|
||||
auto index = UniIntT(0, static_cast<int>(m_interp.size()) - 1)(*rng);
|
||||
assert(m_interp.size() > 0);
|
||||
|
||||
cv::resize(mat, mat, cv::Size((int)m_imgWidth, (int)m_imgHeight), 0, 0, m_interp[index]);
|
||||
|
||||
m_rngs.push(std::move(rng));
|
||||
|
@ -383,16 +346,7 @@ void ScaleTransformer::Apply(size_t id, cv::Mat &mat)
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void MeanTransformer::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
{
|
||||
ImageTransformerBase::Initialize(next, readerConfig);
|
||||
|
||||
auto featureStreamIds = GetAppliedStreamIds();
|
||||
InitFromConfig(readerConfig(GetInputStreams()[featureStreamIds[0]]->m_name));
|
||||
}
|
||||
|
||||
void MeanTransformer::InitFromConfig(const ConfigParameters &config)
|
||||
MeanTransformer::MeanTransformer(const ConfigParameters& config) : ImageTransformerBase(config)
|
||||
{
|
||||
std::wstring meanFile = config(L"meanFile", L"");
|
||||
if (meanFile.empty())
|
||||
|
@ -425,7 +379,7 @@ void MeanTransformer::Apply(size_t id, cv::Mat &mat)
|
|||
UNUSED(id);
|
||||
assert(m_meanImg.size() == cv::Size(0, 0) ||
|
||||
(m_meanImg.size() == mat.size() &&
|
||||
m_meanImg.channels() == mat.channels()));
|
||||
m_meanImg.channels() == mat.channels()));
|
||||
|
||||
// REVIEW alexeyk: check type conversion (float/double).
|
||||
if (m_meanImg.size() == mat.size())
|
||||
|
@ -434,48 +388,34 @@ void MeanTransformer::Apply(size_t id, cv::Mat &mat)
|
|||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void TransposeTransformer::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
// The method describes how input stream is transformed to the output stream. Called once per applied stream.
|
||||
// Transpose transformer expects the dense input stream with samples as HWC and outputs CHW.
|
||||
StreamDescription TransposeTransformer::Transform(const StreamDescription& inputStream)
|
||||
{
|
||||
TransformerBase::Initialize(next, readerConfig);
|
||||
|
||||
// Currently we only support a single stream.
|
||||
ImageConfigHelper config(readerConfig);
|
||||
size_t featureStreamId = config.GetFeatureStreamId();
|
||||
m_appliedStreamIds.push_back(featureStreamId);
|
||||
|
||||
const auto &inputStreams = GetInputStreams();
|
||||
m_outputStreams.resize(inputStreams.size());
|
||||
std::copy(inputStreams.begin(), inputStreams.end(), m_outputStreams.begin());
|
||||
|
||||
for (auto id : m_appliedStreamIds)
|
||||
m_inputStream = inputStream;
|
||||
if (m_inputStream.m_storageType != StorageType::dense)
|
||||
{
|
||||
auto &stream = inputStreams[id];
|
||||
|
||||
ImageDimensions dimensions(*stream->m_sampleLayout, HWC);
|
||||
|
||||
// Changing from NHWC to NCHW (note: row-major notation)
|
||||
auto changedStream = std::make_shared<StreamDescription>(*stream);
|
||||
changedStream->m_sampleLayout = std::make_shared<TensorShape>(dimensions.AsTensorShape(CHW));
|
||||
m_outputStreams[id] = changedStream;
|
||||
LogicError("Transpose transformer supports only dense streams.");
|
||||
}
|
||||
|
||||
// Changing from NHWC to NCHW
|
||||
ImageDimensions dimensions(*m_inputStream.m_sampleLayout, HWC);
|
||||
m_outputStream = m_inputStream;
|
||||
m_outputStream.m_sampleLayout = std::make_shared<TensorShape>(dimensions.AsTensorShape(CHW));
|
||||
return m_outputStream;
|
||||
}
|
||||
|
||||
SequenceDataPtr
|
||||
TransposeTransformer::Apply(SequenceDataPtr inputSequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream)
|
||||
// Transformation of the sequence.
|
||||
SequenceDataPtr TransposeTransformer::Transform(SequenceDataPtr sequence)
|
||||
{
|
||||
if (inputStream.m_elementType == ElementType::tdouble)
|
||||
if (m_inputStream.m_elementType == ElementType::tdouble)
|
||||
{
|
||||
return TypedApply<double>(inputSequence, inputStream, outputStream);
|
||||
return TypedTransform<double>(sequence);
|
||||
}
|
||||
|
||||
if (inputStream.m_elementType == ElementType::tfloat)
|
||||
if (m_inputStream.m_elementType == ElementType::tfloat)
|
||||
{
|
||||
return TypedApply<float>(inputSequence, inputStream, outputStream);
|
||||
return TypedTransform<float>(sequence);
|
||||
}
|
||||
|
||||
RuntimeError("Unsupported type");
|
||||
|
@ -490,21 +430,17 @@ struct DenseSequenceWithBuffer : DenseSequenceData
|
|||
};
|
||||
|
||||
template <class TElemType>
|
||||
SequenceDataPtr TransposeTransformer::TypedApply(SequenceDataPtr sequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream)
|
||||
SequenceDataPtr TransposeTransformer::TypedTransform(SequenceDataPtr sequence)
|
||||
{
|
||||
assert(inputStream.m_storageType == StorageType::dense);
|
||||
auto inputSequence = static_cast<DenseSequenceData&>(*sequence.get());
|
||||
auto inputSequence = static_cast<DenseSequenceData&>(*sequence);
|
||||
assert(inputSequence.m_numberOfSamples == 1);
|
||||
assert(inputStream.m_sampleLayout->GetNumElements() == outputStream.m_sampleLayout->GetNumElements());
|
||||
|
||||
size_t count = inputStream.m_sampleLayout->GetNumElements() * GetSizeByType(inputStream.m_elementType);
|
||||
size_t count = m_inputStream.m_sampleLayout->GetNumElements() * GetSizeByType(m_inputStream.m_elementType);
|
||||
|
||||
auto result = std::make_shared<DenseSequenceWithBuffer>();
|
||||
result->m_buffer.resize(count);
|
||||
|
||||
ImageDimensions dimensions(*inputStream.m_sampleLayout, ImageLayoutKind::HWC);
|
||||
ImageDimensions dimensions(*m_inputStream.m_sampleLayout, ImageLayoutKind::HWC);
|
||||
size_t rowCount = dimensions.m_height * dimensions.m_width;
|
||||
size_t channelCount = dimensions.m_numChannels;
|
||||
|
||||
|
@ -519,7 +455,7 @@ SequenceDataPtr TransposeTransformer::TypedApply(SequenceDataPtr sequence,
|
|||
}
|
||||
}
|
||||
|
||||
result->m_sampleLayout = outputStream.m_sampleLayout;
|
||||
result->m_sampleLayout = m_outputStream.m_sampleLayout;
|
||||
result->m_data = result->m_buffer.data();
|
||||
result->m_numberOfSamples = inputSequence.m_numberOfSamples;
|
||||
return result;
|
||||
|
@ -527,16 +463,7 @@ SequenceDataPtr TransposeTransformer::TypedApply(SequenceDataPtr sequence,
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void IntensityTransformer::Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig)
|
||||
{
|
||||
ImageTransformerBase::Initialize(next, readerConfig);
|
||||
|
||||
auto featureStreamIds = GetAppliedStreamIds();
|
||||
InitFromConfig(readerConfig(GetInputStreams()[featureStreamIds[0]]->m_name));
|
||||
}
|
||||
|
||||
void IntensityTransformer::InitFromConfig(const ConfigParameters &config)
|
||||
IntensityTransformer::IntensityTransformer(const ConfigParameters &config) : ImageTransformerBase(config)
|
||||
{
|
||||
m_stdDev = config(L"intensityStdDev", ConfigParameters::Array(doubleargvector(vector<double>{0.0})));
|
||||
std::wstring intFile = config(L"intensityFile", L"");
|
||||
|
@ -564,7 +491,6 @@ void IntensityTransformer::InitFromConfig(const ConfigParameters &config)
|
|||
void IntensityTransformer::StartEpoch(const EpochConfiguration &config)
|
||||
{
|
||||
m_curStdDev = m_stdDev[config.m_epochIndex];
|
||||
|
||||
ImageTransformerBase::StartEpoch(config);
|
||||
}
|
||||
|
||||
|
@ -618,15 +544,7 @@ void IntensityTransformer::Apply(cv::Mat &mat)
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void ColorTransformer::Initialize(TransformerPtr next, const ConfigParameters &readerConfig)
|
||||
{
|
||||
ImageTransformerBase::Initialize(next, readerConfig);
|
||||
|
||||
auto featureStreamIds = GetAppliedStreamIds();
|
||||
InitFromConfig(readerConfig(GetInputStreams()[featureStreamIds[0]]->m_name));
|
||||
}
|
||||
|
||||
void ColorTransformer::InitFromConfig(const ConfigParameters &config)
|
||||
ColorTransformer::ColorTransformer(const ConfigParameters &config) : ImageTransformerBase(config)
|
||||
{
|
||||
m_brightnessRadius = config(L"brightnessRadius", ConfigParameters::Array(doubleargvector(vector<double>{0.0})));
|
||||
m_contrastRadius = config(L"contrastRadius", ConfigParameters::Array(doubleargvector(vector<double>{0.0})));
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
|
||||
#include "Transformer.h"
|
||||
#include "ConcStack.h"
|
||||
#include "TransformerBase.h"
|
||||
#include "Config.h"
|
||||
#include "ImageConfigHelper.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -20,45 +20,39 @@ class ConfigParameters;
|
|||
|
||||
// Base class for image transformations based on OpenCV
|
||||
// that helps to wrap the sequences into OpenCV::Mat class.
|
||||
class ImageTransformerBase : public TransformerBase
|
||||
class ImageTransformerBase : public Transformer
|
||||
{
|
||||
public:
|
||||
// Initializes the transformer.
|
||||
void Initialize(TransformerPtr next, const ConfigParameters &readerConfig) override;
|
||||
explicit ImageTransformerBase(const ConfigParameters& config);
|
||||
|
||||
void StartEpoch(const EpochConfiguration&) override {}
|
||||
|
||||
// Transformation of the stream.
|
||||
StreamDescription Transform(const StreamDescription& inputStream) override;
|
||||
|
||||
// Transformation of the sequence.
|
||||
SequenceDataPtr Transform(SequenceDataPtr sequence) override;
|
||||
|
||||
protected:
|
||||
const std::vector<StreamId> &GetAppliedStreamIds() const override
|
||||
{
|
||||
return m_appliedStreamIds;
|
||||
}
|
||||
|
||||
const std::vector<StreamDescriptionPtr>& GetOutputStreams() const override
|
||||
{
|
||||
return m_outputStreams;
|
||||
}
|
||||
|
||||
// Seed getter.
|
||||
unsigned int GetSeed() const
|
||||
{
|
||||
return m_seed;
|
||||
}
|
||||
|
||||
using Base = TransformerBase;
|
||||
using Base = Transformer;
|
||||
using UniRealT = std::uniform_real_distribution<double>;
|
||||
using UniIntT = std::uniform_int_distribution<int>;
|
||||
|
||||
// Applies transformation to the sequence.
|
||||
SequenceDataPtr Apply(SequenceDataPtr inputSequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream) override;
|
||||
|
||||
// The only function that should be redefined by the inherited classes.
|
||||
virtual void Apply(size_t id, cv::Mat &from) = 0;
|
||||
|
||||
private:
|
||||
std::vector<StreamDescriptionPtr> m_outputStreams;
|
||||
std::vector<StreamId> m_appliedStreamIds;
|
||||
protected:
|
||||
StreamDescription m_inputStream;
|
||||
StreamDescription m_outputStream;
|
||||
unsigned int m_seed;
|
||||
int m_imageElementType;
|
||||
conc_stack<std::unique_ptr<std::mt19937>> m_rngs;
|
||||
};
|
||||
|
||||
// Crop transformation of the image.
|
||||
|
@ -66,18 +60,12 @@ private:
|
|||
class CropTransformer : public ImageTransformerBase
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next, const ConfigParameters &readerConfig) override;
|
||||
explicit CropTransformer(const ConfigParameters& config);
|
||||
|
||||
private:
|
||||
void Apply(size_t id, cv::Mat &mat) override;
|
||||
|
||||
private:
|
||||
enum class CropType
|
||||
{
|
||||
Center = 0,
|
||||
Random = 1,
|
||||
MultiView10 = 2
|
||||
};
|
||||
enum class RatioJitterType
|
||||
{
|
||||
None = 0,
|
||||
|
@ -86,11 +74,8 @@ private:
|
|||
UniArea = 3
|
||||
};
|
||||
|
||||
void InitFromConfig(const ConfigParameters &config);
|
||||
|
||||
void StartEpoch(const EpochConfiguration &config) override;
|
||||
|
||||
CropType ParseCropType(const std::string &src);
|
||||
RatioJitterType ParseJitterType(const std::string &src);
|
||||
cv::Rect GetCropRect(CropType type, int viewIndex, int crow, int ccol, double cropRatio, std::mt19937 &rng);
|
||||
|
||||
|
@ -109,11 +94,11 @@ private:
|
|||
class ScaleTransformer : public ImageTransformerBase
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig) override;
|
||||
explicit ScaleTransformer(const ConfigParameters& config);
|
||||
|
||||
StreamDescription Transform(const StreamDescription& inputStream) override;
|
||||
|
||||
private:
|
||||
void InitFromConfig(const ConfigParameters &config);
|
||||
void Apply(size_t id, cv::Mat &mat) override;
|
||||
|
||||
using StrToIntMapT = std::unordered_map<std::string, int>;
|
||||
|
@ -121,7 +106,6 @@ private:
|
|||
std::vector<int> m_interp;
|
||||
|
||||
conc_stack<std::unique_ptr<std::mt19937>> m_rngs;
|
||||
int m_dataType;
|
||||
size_t m_imgWidth;
|
||||
size_t m_imgHeight;
|
||||
size_t m_imgChannels;
|
||||
|
@ -131,45 +115,34 @@ private:
|
|||
class MeanTransformer : public ImageTransformerBase
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next,
|
||||
const ConfigParameters &readerConfig) override;
|
||||
explicit MeanTransformer(const ConfigParameters& config);
|
||||
|
||||
private:
|
||||
void Apply(size_t id, cv::Mat &mat) override;
|
||||
void InitFromConfig(const ConfigParameters &config);
|
||||
|
||||
cv::Mat m_meanImg;
|
||||
};
|
||||
|
||||
// Transpose transformation from HWC to CHW (note: row-major notation).
|
||||
class TransposeTransformer : public TransformerBase
|
||||
class TransposeTransformer : public Transformer
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next, const ConfigParameters &readerConfig) override;
|
||||
explicit TransposeTransformer(const ConfigParameters&) {}
|
||||
|
||||
protected:
|
||||
const std::vector<StreamId>& GetAppliedStreamIds() const override
|
||||
{
|
||||
return m_appliedStreamIds;
|
||||
}
|
||||
void StartEpoch(const EpochConfiguration&) override {}
|
||||
|
||||
const std::vector<StreamDescriptionPtr>& GetOutputStreams() const override
|
||||
{
|
||||
return m_outputStreams;
|
||||
}
|
||||
// Transformation of the stream.
|
||||
StreamDescription Transform(const StreamDescription& inputStream) override;
|
||||
|
||||
SequenceDataPtr Apply(SequenceDataPtr inputSequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream) override;
|
||||
// Transformation of the sequence.
|
||||
SequenceDataPtr Transform(SequenceDataPtr sequence) override;
|
||||
|
||||
private:
|
||||
template <class TElement>
|
||||
SequenceDataPtr TypedApply(SequenceDataPtr inputSequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream);
|
||||
SequenceDataPtr TypedTransform(SequenceDataPtr inputSequence);
|
||||
|
||||
std::vector<StreamDescriptionPtr> m_outputStreams;
|
||||
std::vector<StreamId> m_appliedStreamIds;
|
||||
StreamDescription m_inputStream;
|
||||
StreamDescription m_outputStream;
|
||||
};
|
||||
|
||||
// Intensity jittering based on PCA transform as described in original AlexNet paper
|
||||
|
@ -180,11 +153,9 @@ private:
|
|||
class IntensityTransformer : public ImageTransformerBase
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next, const ConfigParameters &readerConfig) override;
|
||||
explicit IntensityTransformer(const ConfigParameters& config);
|
||||
|
||||
private:
|
||||
void InitFromConfig(const ConfigParameters &config);
|
||||
|
||||
void StartEpoch(const EpochConfiguration &config) override;
|
||||
|
||||
void Apply(size_t id, cv::Mat &mat) override;
|
||||
|
@ -205,11 +176,9 @@ private:
|
|||
class ColorTransformer : public ImageTransformerBase
|
||||
{
|
||||
public:
|
||||
void Initialize(TransformerPtr next, const ConfigParameters &readerConfig) override;
|
||||
explicit ColorTransformer(const ConfigParameters& config);
|
||||
|
||||
private:
|
||||
void InitFromConfig(const ConfigParameters &config);
|
||||
|
||||
void StartEpoch(const EpochConfiguration &config) override;
|
||||
|
||||
void Apply(size_t id, cv::Mat &mat) override;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include <vector>
|
||||
|
||||
#include "Transformer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
#include "DataDeserializer.h"
|
||||
#include "ChunkRandomizer.h"
|
||||
#include "SequenceRandomizer.h"
|
||||
|
@ -31,8 +31,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
|||
// This class is responsible for decimation and loading the data chunks in to memory.
|
||||
// Actual randomization happens in ChunkRandomizer and SequenceRandomizer.
|
||||
// TODO: The behavior can be simplified by only randomizing sequences forward.
|
||||
// TODO: The layering will be changed, when we move transformers under the randomizer, it won't be a transformer anymore.
|
||||
class BlockRandomizer : public Transformer
|
||||
class BlockRandomizer : public SequenceEnumerator
|
||||
{
|
||||
public:
|
||||
// Currently, decimation based on sequences or chunks is supported.
|
||||
|
@ -50,8 +49,6 @@ public:
|
|||
bool useLegacyRandomization = false,
|
||||
bool multithreadedGetNextSequences = false);
|
||||
|
||||
virtual void Initialize(TransformerPtr, const ConfigParameters&) override {};
|
||||
|
||||
// Starts a new epoch.
|
||||
virtual void StartEpoch(const EpochConfiguration& config) override;
|
||||
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "Config.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
// Helper function to get sections that contains specified parameter.
|
||||
inline std::vector<std::string> TryGetSectionsWithParameter(const ConfigParameters& config, const std::string& parameterName)
|
||||
{
|
||||
std::vector<std::string> sectionNames;
|
||||
for (const std::pair<std::string, ConfigParameters>& section : config)
|
||||
{
|
||||
if (section.second.ExistsCurrent(parameterName))
|
||||
{
|
||||
sectionNames.push_back(section.first);
|
||||
}
|
||||
}
|
||||
|
||||
return sectionNames;
|
||||
}
|
||||
|
||||
// Helper function to get sections that contains specified parameter. Throws if the parameter does not exist.
|
||||
inline std::vector<std::string> GetSectionsWithParameter(const std::string& reader, const ConfigParameters& config, const std::string& parameterName)
|
||||
{
|
||||
auto result = TryGetSectionsWithParameter(config, parameterName);
|
||||
if (result.empty())
|
||||
{
|
||||
RuntimeError("%s requires %s parameter.", reader.c_str(), parameterName.c_str());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}}}
|
|
@ -15,12 +15,10 @@ class FramePacker : public SequencePacker
|
|||
public:
|
||||
FramePacker(
|
||||
MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const std::vector<StreamDescriptionPtr>& streams) :
|
||||
SequencePacker(memoryProvider, transformer, streams)
|
||||
{
|
||||
|
||||
}
|
||||
SequencePacker(memoryProvider, sequenceEnumerator, streams)
|
||||
{}
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
@ -42,10 +42,6 @@ NoRandomizer::NoRandomizer(IDataDeserializerPtr deserializer, bool multithreaded
|
|||
m_totalNumberOfSamples = sampleCount;
|
||||
}
|
||||
|
||||
void NoRandomizer::Initialize(TransformerPtr, const ConfigParameters&)
|
||||
{
|
||||
}
|
||||
|
||||
size_t NoRandomizer::GetChunkIndexOf(size_t samplePosition)
|
||||
{
|
||||
auto result = std::upper_bound(m_chunkSampleOffset.begin(), m_chunkSampleOffset.end(), samplePosition);
|
||||
|
|
|
@ -6,10 +6,8 @@
|
|||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include "Transformer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
#include "DataDeserializer.h"
|
||||
#include "SequenceRandomizer.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -17,13 +15,11 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
|||
// Used training where the training data has already been pre - randomized.
|
||||
// TODO: currently this code moved from the old block randomizer.
|
||||
// TODO: The class will be further refactored and common based will be extracted with BlockRandomizer.
|
||||
// TODO: This layering will be changed, when we move transformers under the randomizer, it won't be a transformer anymore.
|
||||
class NoRandomizer : public Transformer
|
||||
class NoRandomizer : public SequenceEnumerator
|
||||
{
|
||||
public:
|
||||
NoRandomizer(IDataDeserializerPtr deserializer, bool multithreadedGetNextSequences = false);
|
||||
|
||||
virtual void Initialize(TransformerPtr next, const ConfigParameters& readerConfig) override;
|
||||
virtual void StartEpoch(const EpochConfiguration& config) override;
|
||||
virtual Sequences GetNextSequences(size_t sampleCount) override;
|
||||
virtual std::vector<StreamDescriptionPtr> GetStreamDescriptions() const override
|
||||
|
|
|
@ -34,13 +34,13 @@ void PackerBase::StartEpoch(const EpochConfiguration& config)
|
|||
}
|
||||
|
||||
PackerBase::PackerBase(MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const std::vector<StreamDescriptionPtr>& streams) :
|
||||
m_transformer(transformer),
|
||||
m_sequenceEnumerator(sequenceEnumerator),
|
||||
m_minibatchSize(0),
|
||||
m_outputStreamDescriptions(streams)
|
||||
{
|
||||
m_inputStreamDescriptions = m_transformer->GetStreamDescriptions();
|
||||
m_inputStreamDescriptions = sequenceEnumerator->GetStreamDescriptions();
|
||||
assert(m_inputStreamDescriptions.size() != 0);
|
||||
assert(m_inputStreamDescriptions.size() == m_outputStreamDescriptions.size());
|
||||
|
||||
|
|
|
@ -7,9 +7,8 @@
|
|||
|
||||
#include "Reader.h"
|
||||
#include "MemoryProvider.h"
|
||||
#include "Transformer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
#include "Packer.h"
|
||||
#include <deque>
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
|
@ -34,7 +33,7 @@ protected:
|
|||
};
|
||||
|
||||
PackerBase(MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const std::vector<StreamDescriptionPtr>& streams);
|
||||
|
||||
typedef std::vector<SequenceDataPtr> StreamBatch;
|
||||
|
@ -57,7 +56,7 @@ protected:
|
|||
// (sampleOffset is equal to the sum of sample sizes of all preceding samples).
|
||||
void PackDenseSample(char* destination, SequenceDataPtr sequence, size_t sampleOffset, size_t sampleSize);
|
||||
|
||||
TransformerPtr m_transformer;
|
||||
SequenceEnumeratorPtr m_sequenceEnumerator;
|
||||
|
||||
// Input stream descriptions provided by the transformer.
|
||||
std::vector<StreamDescriptionPtr> m_outputStreamDescriptions;
|
||||
|
|
|
@ -40,17 +40,19 @@
|
|||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="ConfigUtil.h" />
|
||||
<ClInclude Include="CorpusDescriptor.h" />
|
||||
<ClInclude Include="Bundler.h" />
|
||||
<ClInclude Include="ChunkRandomizer.h" />
|
||||
<ClInclude Include="TransformController.h" />
|
||||
<ClInclude Include="DataDeserializerBase.h" />
|
||||
<ClInclude Include="BlockRandomizer.h" />
|
||||
<ClInclude Include="Packer.h" />
|
||||
<ClInclude Include="PackerBase.h" />
|
||||
<ClInclude Include="SequenceEnumerator.h" />
|
||||
<ClInclude Include="SequencePacker.h" />
|
||||
<ClInclude Include="SequenceRandomizer.h" />
|
||||
<ClInclude Include="StringToIdMap.h" />
|
||||
<ClInclude Include="TransformerBase.h" />
|
||||
<ClInclude Include="NoRandomizer.h" />
|
||||
<ClInclude Include="CudaMemoryProvider.h" />
|
||||
<ClInclude Include="DataDeserializer.h" />
|
||||
|
@ -78,4 +80,4 @@
|
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
|
@ -28,9 +28,6 @@
|
|||
<ClInclude Include="ElementTypeUtils.h">
|
||||
<Filter>Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="TransformerBase.h">
|
||||
<Filter>Transformers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DataDeserializerBase.h">
|
||||
<Filter>Deserializers</Filter>
|
||||
</ClInclude>
|
||||
|
@ -64,9 +61,18 @@
|
|||
<ClInclude Include="TruncatedBpttPacker.h">
|
||||
<Filter>Packers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\ExperimentalHTKMLFReader\CorpusDescriptor.h">
|
||||
<ClInclude Include="SequenceEnumerator.h">
|
||||
<Filter>Interfaces</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ConfigUtil.h">
|
||||
<Filter>Utils</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CorpusDescriptor.h">
|
||||
<Filter>Interfaces</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="TransformController.h">
|
||||
<Filter>Transformers</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="NoRandomizer.cpp">
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include "DataDeserializer.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
class ConfigParameters;
|
||||
|
||||
// Defines a set of sequences for a set of streams.
|
||||
// Return by the sequence enumerator.
|
||||
struct Sequences
|
||||
{
|
||||
// Data for up to a requested number of sequences.
|
||||
// Indices in the outer vector have to correspond to the stream ids returned from the GetStreamDescriptions().
|
||||
std::vector<std::vector<SequenceDataPtr>> m_data;
|
||||
|
||||
// Indicates whether the epoch ends with the data returned.
|
||||
bool m_endOfEpoch = false;
|
||||
};
|
||||
|
||||
class SequenceEnumerator;
|
||||
typedef std::shared_ptr<SequenceEnumerator> SequenceEnumeratorPtr;
|
||||
|
||||
// Sequence enumerator is internal interface used by the packer to get a set of new sequences.
|
||||
// It is implemented either by different randomizers or by TransformController that can wrap the randomizer
|
||||
// and apply different transforms on top of data.
|
||||
|
||||
// This interface is not exposed to the developers of deserializers/plugins, internal to CNTK.
|
||||
class SequenceEnumerator
|
||||
{
|
||||
public:
|
||||
// Describes streams the sequence enumerator produces.
|
||||
virtual std::vector<StreamDescriptionPtr> GetStreamDescriptions() const = 0;
|
||||
|
||||
// Sets current epoch configuration.
|
||||
virtual void StartEpoch(const EpochConfiguration& config) = 0;
|
||||
|
||||
// Gets next sequences up to a maximum count of samples.
|
||||
virtual Sequences GetNextSequences(size_t sampleCount) = 0;
|
||||
|
||||
virtual ~SequenceEnumerator()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
}}}
|
|
@ -38,7 +38,7 @@ MBLayoutPtr SequencePacker::CreateMBLayout(const StreamBatch& batch)
|
|||
|
||||
Minibatch SequencePacker::ReadMinibatch()
|
||||
{
|
||||
auto sequences = m_transformer->GetNextSequences(m_minibatchSize);
|
||||
auto sequences = m_sequenceEnumerator->GetNextSequences(m_minibatchSize);
|
||||
const auto& batch = sequences.m_data;
|
||||
|
||||
Minibatch minibatch(sequences.m_endOfEpoch);
|
||||
|
|
|
@ -16,9 +16,9 @@ class SequencePacker : public PackerBase
|
|||
public:
|
||||
SequencePacker(
|
||||
MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const std::vector<StreamDescriptionPtr>& streams) :
|
||||
PackerBase(memoryProvider, transformer, streams)
|
||||
PackerBase(memoryProvider, sequenceEnumerator, streams)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <set>
|
||||
|
||||
#include "Transformer.h"
|
||||
#include "SequenceEnumerator.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
// A pair of a transformer and the stream name to which the transformer should be a applied.
|
||||
struct Transformation
|
||||
{
|
||||
TransformerPtr m_transformer;
|
||||
std::wstring m_streamName;
|
||||
};
|
||||
|
||||
// A class responsible for applying a list of transformers to sequences and stream descriptions.
|
||||
// Delegates retrieving of sequences to another sequence provider(such as randomizer) and applies transformations after retrieving.
|
||||
// Usually used by the packer to get next set of sequences.
|
||||
class TransformController : public SequenceEnumerator
|
||||
{
|
||||
public:
|
||||
TransformController(const std::vector<Transformation>& transformations, SequenceEnumeratorPtr sequenceProvider)
|
||||
: m_sequenceProvider(sequenceProvider)
|
||||
{
|
||||
// Applying transformations to stream descriptions,
|
||||
// i.e. a transformation can change a stream from dense to sparse.
|
||||
std::vector<StreamDescriptionPtr> transformedStreams = m_sequenceProvider->GetStreamDescriptions();
|
||||
for (auto& t : transformations)
|
||||
{
|
||||
size_t streamId = GetStreamId(t.m_streamName, transformedStreams);
|
||||
m_transformations.push_back(std::make_pair(t, streamId));
|
||||
transformedStreams[streamId] = std::make_shared<StreamDescription>(t.m_transformer->Transform(*transformedStreams[streamId]));
|
||||
}
|
||||
m_outputStreams = transformedStreams;
|
||||
}
|
||||
|
||||
// Sets configuration for the current epoch.
|
||||
// Some transformers can change their config based on the epoch.
|
||||
virtual void StartEpoch(const EpochConfiguration &config) override
|
||||
{
|
||||
assert(m_sequenceProvider != nullptr);
|
||||
for (auto& t : m_transformations)
|
||||
{
|
||||
t.first.m_transformer->StartEpoch(config);
|
||||
}
|
||||
|
||||
m_sequenceProvider->StartEpoch(config);
|
||||
}
|
||||
|
||||
// Description of streams that the transformer provides.
|
||||
virtual std::vector<StreamDescriptionPtr> GetStreamDescriptions() const override
|
||||
{
|
||||
return m_outputStreams;
|
||||
}
|
||||
|
||||
// Gets next sequences up to a maximum count of samples,
|
||||
// applying transformers to particular streams.
|
||||
virtual Sequences GetNextSequences(size_t sampleCount) override
|
||||
{
|
||||
assert(m_sequenceProvider != nullptr);
|
||||
Sequences sequences = m_sequenceProvider->GetNextSequences(sampleCount);
|
||||
if (sequences.m_data.empty())
|
||||
{
|
||||
return sequences;
|
||||
}
|
||||
|
||||
#pragma omp parallel for schedule(dynamic)
|
||||
for (int j = 0; j < sequences.m_data.front().size(); ++j)
|
||||
{
|
||||
for (auto& t : m_transformations)
|
||||
{
|
||||
sequences.m_data[t.second][j] = t.first.m_transformer->Transform(sequences.m_data[t.second][j]);
|
||||
}
|
||||
}
|
||||
|
||||
return sequences;
|
||||
}
|
||||
|
||||
private:
|
||||
size_t GetStreamId(const std::wstring streamName, const std::vector<StreamDescriptionPtr>& streams) const
|
||||
{
|
||||
for (const auto& s : streams)
|
||||
{
|
||||
if (s->m_name == streamName)
|
||||
{
|
||||
return s->m_id;
|
||||
}
|
||||
}
|
||||
|
||||
assert(false);
|
||||
LogicError("Unexpected stream specified for transformation.");
|
||||
}
|
||||
|
||||
SequenceEnumeratorPtr m_sequenceProvider;
|
||||
std::vector<StreamDescriptionPtr> m_outputStreams;
|
||||
std::vector<std::pair<Transformation, size_t>> m_transformations;
|
||||
};
|
||||
|
||||
}}}
|
|
@ -5,57 +5,33 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include "DataDeserializer.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
class ConfigParameters;
|
||||
|
||||
// Defines a set of sequences.
|
||||
struct Sequences
|
||||
{
|
||||
Sequences()
|
||||
: m_endOfEpoch(false)
|
||||
{
|
||||
}
|
||||
|
||||
// Data for up to a requested number of sequences.
|
||||
// Indices in the inner vector have to correspond to the stream IDs
|
||||
// given by GetStream().
|
||||
std::vector<std::vector<SequenceDataPtr>> m_data;
|
||||
|
||||
// Indicates whether the epoch ends with the data returned.
|
||||
bool m_endOfEpoch;
|
||||
};
|
||||
|
||||
class Transformer;
|
||||
typedef std::shared_ptr<Transformer> TransformerPtr;
|
||||
|
||||
// Defines a data transformation interface.
|
||||
// Transformers are responsible for doing custom transformation of sequences.
|
||||
// For example for images, there could be scale, crop, or median transformation.
|
||||
// TODO: Adopt to the C#/Java iterator pattern.
|
||||
class Transformer
|
||||
{
|
||||
public:
|
||||
// Initialization.
|
||||
virtual void Initialize(
|
||||
TransformerPtr next,
|
||||
const ConfigParameters& readerConfig) = 0;
|
||||
// Starts a new epoch. Some transformers have to change their configuration
|
||||
// based on the epoch.
|
||||
virtual void StartEpoch(const EpochConfiguration &config) = 0;
|
||||
|
||||
// Describes streams the transformer produces.
|
||||
virtual std::vector<StreamDescriptionPtr> GetStreamDescriptions() const = 0;
|
||||
// Transformers are applied on a particular input stream - this method should describe
|
||||
// how inputStream is transformed to the output stream (return value)
|
||||
virtual StreamDescription Transform(const StreamDescription& inputStream) = 0;
|
||||
|
||||
// Sets current epoch configuration.
|
||||
virtual void StartEpoch(const EpochConfiguration& config) = 0;
|
||||
|
||||
// Gets next sequences up to a maximum count of samples.
|
||||
// The return value can be used until the next call to GetNextSequences.
|
||||
virtual Sequences GetNextSequences(size_t sampleCount) = 0;
|
||||
// This method should describe how input sequences is transformed to the output sequence.
|
||||
virtual SequenceDataPtr Transform(SequenceDataPtr inputSequence) = 0;
|
||||
|
||||
virtual ~Transformer()
|
||||
{
|
||||
}
|
||||
};
|
||||
} } }
|
||||
|
||||
}}}
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <set>
|
||||
|
||||
#include "Transformer.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
class TransformerBase : public Transformer
|
||||
{
|
||||
public:
|
||||
// Initializes the transformer.
|
||||
virtual void Initialize(TransformerPtr next,
|
||||
const ConfigParameters &) override
|
||||
{
|
||||
m_next = next;
|
||||
m_inputStreams = m_next->GetStreamDescriptions();
|
||||
}
|
||||
|
||||
// Sets configuration for the current epoch.
|
||||
virtual void StartEpoch(const EpochConfiguration &config) override
|
||||
{
|
||||
assert(m_next != nullptr);
|
||||
m_next->StartEpoch(config);
|
||||
}
|
||||
|
||||
// Description of streams that the transformer provides.
|
||||
virtual std::vector<StreamDescriptionPtr> GetStreamDescriptions() const override
|
||||
{
|
||||
return this->GetOutputStreams();
|
||||
}
|
||||
|
||||
// Gets next sequences up to a maximum count of samples.
|
||||
// Sequences contains data for all streams.
|
||||
virtual Sequences GetNextSequences(size_t sampleCount) override
|
||||
{
|
||||
assert(m_next != nullptr);
|
||||
Sequences samples = m_next->GetNextSequences(sampleCount);
|
||||
|
||||
if (samples.m_data.empty())
|
||||
{
|
||||
return samples;
|
||||
}
|
||||
|
||||
const auto &appliedStreamIds = GetAppliedStreamIds();
|
||||
const auto &outputStreams = GetOutputStreams();
|
||||
|
||||
// TODO: Move parallelization on the outer loop with collapse.
|
||||
for (int j = 0; j < appliedStreamIds.size(); ++j)
|
||||
{
|
||||
size_t streamId = appliedStreamIds[j];
|
||||
auto& allSamples = samples.m_data[streamId];
|
||||
|
||||
#pragma omp parallel for schedule(dynamic)
|
||||
for (int i = 0; i < allSamples.size(); ++i)
|
||||
{
|
||||
allSamples[i] = Apply(allSamples[i], *m_inputStreams[streamId], *outputStreams[streamId]);
|
||||
}
|
||||
}
|
||||
return samples;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual const std::vector<StreamId> &GetAppliedStreamIds() const = 0;
|
||||
virtual const std::vector<StreamDescriptionPtr> &GetOutputStreams() const
|
||||
{
|
||||
return m_inputStreams;
|
||||
}
|
||||
|
||||
const std::vector<StreamDescriptionPtr> &GetInputStreams()
|
||||
{
|
||||
return m_inputStreams;
|
||||
}
|
||||
|
||||
private:
|
||||
// Applies transformation to the sequence.
|
||||
virtual SequenceDataPtr Apply(SequenceDataPtr inputSequence,
|
||||
const StreamDescription &inputStream,
|
||||
const StreamDescription &outputStream) = 0;
|
||||
|
||||
TransformerPtr m_next;
|
||||
std::vector<StreamId> m_featureStreamIds;
|
||||
std::vector<StreamDescriptionPtr> m_inputStreams;
|
||||
};
|
||||
|
||||
}}}
|
|
@ -107,9 +107,9 @@ struct SequenceBuffer
|
|||
|
||||
TruncatedBPTTPacker::TruncatedBPTTPacker(
|
||||
MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const vector<StreamDescriptionPtr>& streams)
|
||||
: PackerBase(memoryProvider, transformer, streams),
|
||||
: PackerBase(memoryProvider, sequenceEnumerator, streams),
|
||||
m_truncationSize(0)
|
||||
{
|
||||
auto sparseOutput = find_if(m_outputStreamDescriptions.begin(), m_outputStreamDescriptions.end(), [](const StreamDescriptionPtr& s){ return s->m_storageType == StorageType::sparse_csc; });
|
||||
|
@ -148,6 +148,15 @@ void TruncatedBPTTPacker::StartEpoch(const EpochConfiguration& config)
|
|||
// Estimating the number of parallel sequences to pack (slots) from the minibatch size and truncation size.
|
||||
m_numParallelSequences = max(1, (int)floor(m_minibatchSize / m_truncationSize));
|
||||
|
||||
if (config.m_numberOfWorkers > m_numParallelSequences)
|
||||
{
|
||||
InvalidArgument("Too many workers for minibatch size; please increase minibatch size or decrease number of workers.");
|
||||
}
|
||||
|
||||
m_numParallelSequences =
|
||||
(m_numParallelSequences / config.m_numberOfWorkers) +
|
||||
(config.m_workerRank < (m_numParallelSequences % config.m_numberOfWorkers) ? 1 : 0);
|
||||
|
||||
m_sequenceBufferPerStream.clear();
|
||||
|
||||
// Preparing the buffers.
|
||||
|
@ -303,7 +312,7 @@ void TruncatedBPTTPacker::ReadSequencesToSlot(size_t slotIndex)
|
|||
{
|
||||
// We need a single sequence, potentially we can request (m_truncationSize - slot.AvailableNumberOfSamples())
|
||||
// to be more efficient. In reality the truncation size usually is less the sequence size.
|
||||
auto s = m_transformer->GetNextSequences(1);
|
||||
auto s = m_sequenceEnumerator->GetNextSequences(1);
|
||||
if (s.m_endOfEpoch)
|
||||
{
|
||||
break;
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#include "Reader.h"
|
||||
#include "MemoryProvider.h"
|
||||
#include "Transformer.h"
|
||||
#include "PackerBase.h"
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
@ -23,7 +22,7 @@ class TruncatedBPTTPacker : public PackerBase
|
|||
public:
|
||||
TruncatedBPTTPacker(
|
||||
MemoryProviderPtr memoryProvider,
|
||||
TransformerPtr transformer,
|
||||
SequenceEnumeratorPtr sequenceEnumerator,
|
||||
const std::vector<StreamDescriptionPtr>& streams);
|
||||
|
||||
virtual Minibatch ReadMinibatch() override;
|
||||
|
|
|
@ -1,47 +1,4 @@
|
|||
ModelDir = "$RunDir$/models"
|
||||
|
||||
ndlMacros=$ConfigDir$/Macros.ndl
|
||||
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
|
||||
command=Train:AddTop5Eval:Test
|
||||
|
||||
parallelTrain=false
|
||||
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=$ModelDir$/AlexNet
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
# Map file which maps images to labels using the following format:
|
||||
|
@ -78,23 +35,7 @@ Train=[
|
|||
]
|
||||
]
|
||||
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=$ModelDir$/AlexNet
|
||||
NewModel=$ModelDir$/AlexNet.Top5
|
||||
editPath=$ConfigDir$/add_top5_layer.mel
|
||||
]
|
||||
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=$ModelDir$/AlexNet.Top5
|
||||
# Set minibatch size for testing.
|
||||
minibatchSize=16
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
|
||||
Test=[
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=$ConfigDir$/val_map.txt
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
# Note: reader configuration comes from AlexNet.cntk or AlexNetComposite.cntk, depending on the test
|
||||
ModelDir = "$RunDir$/models"
|
||||
|
||||
ndlMacros=$ConfigDir$/Macros.ndl
|
||||
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
|
||||
command=Train:AddTop5Eval:Test
|
||||
|
||||
parallelTrain=false
|
||||
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=$ModelDir$/AlexNet
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=$ModelDir$/AlexNet
|
||||
NewModel=$ModelDir$/AlexNet.Top5
|
||||
editPath=$ConfigDir$/add_top5_layer.mel
|
||||
]
|
||||
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=$ModelDir$/AlexNet.Top5
|
||||
# Set minibatch size for testing.
|
||||
minibatchSize=16
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
]
|
|
@ -0,0 +1,101 @@
|
|||
Train=[
|
||||
reader = [
|
||||
verbosity=0
|
||||
randomize=true
|
||||
|
||||
# Currently for image reader a single sequence is a chunk
|
||||
# so setting randomization window to 1.
|
||||
randomizationWindow=1
|
||||
useLegacy=false
|
||||
|
||||
# A list of deserializers to use.
|
||||
deserializers=[
|
||||
[
|
||||
type="ImageDataDeserializer"
|
||||
module="ImageReader"
|
||||
|
||||
# Map file which maps images to labels using the following format:
|
||||
# <full path to image><tab><numerical label (0-based class id)>
|
||||
# Example:
|
||||
# C:\Data\ImageNet\2012\train\n01440764\n01440764_10026.JPEG<tab>0
|
||||
file=$ConfigDir$/train_map.txt
|
||||
|
||||
# Description of input streams
|
||||
inputs=[
|
||||
features=[
|
||||
transforms=[
|
||||
[
|
||||
type="Crop"
|
||||
# Possible values: Center, Random. Default: Center
|
||||
cropType=Random
|
||||
# Crop scale ratio. Examples: cropRatio=0.9, cropRatio=0.7:0.9. Default: 1.
|
||||
cropRatio=0.875
|
||||
# Crop scale ratio jitter type.
|
||||
# Possible values: None, UniRatio, UniLength, UniArea. Default: UniRatio
|
||||
jitterType=UniRatio
|
||||
]:[
|
||||
type="Scale"
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
# Interpolation to use when scaling image to width x height size.
|
||||
# Possible values: nearest, linear, cubic, lanczos. Default: linear.
|
||||
interpolations=Linear
|
||||
]:[
|
||||
type="Mean"
|
||||
# Stores mean values for each pixel in OpenCV matrix XML format.
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]:[
|
||||
type="Transpose"
|
||||
]
|
||||
]
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
Test=[
|
||||
reader=[
|
||||
verbosity=0
|
||||
randomize=false
|
||||
|
||||
# A list of deserializers to use.
|
||||
deserializers=[
|
||||
[
|
||||
type="ImageDataDeserializer"
|
||||
module="ImageReader"
|
||||
file=$ConfigDir$/val_map.txt
|
||||
|
||||
# Description of input streams
|
||||
inputs=[
|
||||
features=[
|
||||
transforms=[
|
||||
[
|
||||
type="Crop"
|
||||
cropType=Center
|
||||
]:[
|
||||
type="Scale"
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
]:[
|
||||
type="Mean"
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]:[
|
||||
type="Transpose"
|
||||
]
|
||||
]
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,853 @@
|
|||
Copying test data to local directory
|
||||
=== Running /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.cntk currentDirectory=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData RunDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu DataDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet OutputDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu DeviceId=0 timestamping=true
|
||||
-------------------------------------------------------------------
|
||||
Build info:
|
||||
|
||||
Built time: May 3 2016 17:56:15
|
||||
Last modified date: Tue May 3 11:36:22 2016
|
||||
Build type: release
|
||||
Build target: GPU
|
||||
With 1bit-SGD: no
|
||||
Math lib: acml
|
||||
CUDA_PATH: /usr/local/cuda-7.5
|
||||
CUB_PATH: /usr/local/cub-1.4.1
|
||||
CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
Build Branch: HEAD
|
||||
Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
Built by philly on 18750d26eb32
|
||||
Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
-------------------------------------------------------------------
|
||||
Changed current directory to /tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
05/03/2016 18:06:53: -------------------------------------------------------------------
|
||||
05/03/2016 18:06:53: Build info:
|
||||
|
||||
05/03/2016 18:06:53: Built time: May 3 2016 17:56:15
|
||||
05/03/2016 18:06:53: Last modified date: Tue May 3 11:36:22 2016
|
||||
05/03/2016 18:06:53: Build type: release
|
||||
05/03/2016 18:06:53: Build target: GPU
|
||||
05/03/2016 18:06:53: With 1bit-SGD: no
|
||||
05/03/2016 18:06:53: Math lib: acml
|
||||
05/03/2016 18:06:53: CUDA_PATH: /usr/local/cuda-7.5
|
||||
05/03/2016 18:06:53: CUB_PATH: /usr/local/cub-1.4.1
|
||||
05/03/2016 18:06:53: CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
05/03/2016 18:06:53: Build Branch: HEAD
|
||||
05/03/2016 18:06:53: Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
05/03/2016 18:06:53: Built by philly on 18750d26eb32
|
||||
05/03/2016 18:06:53: Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
05/03/2016 18:06:53: -------------------------------------------------------------------
|
||||
|
||||
05/03/2016 18:06:53: Running on localhost at 2016/05/03 18:06:53
|
||||
05/03/2016 18:06:53: Command line:
|
||||
/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.cntk currentDirectory=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData RunDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu DataDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet OutputDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu DeviceId=0 timestamping=true
|
||||
|
||||
|
||||
|
||||
05/03/2016 18:06:53: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:06:53: ModelDir = "$RunDir$/models"
|
||||
ndlMacros=$ConfigDir$/Macros.ndl
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
command=Train:AddTop5Eval:Test
|
||||
parallelTrain=false
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=$ModelDir$/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=$ConfigDir$/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=$ModelDir$/AlexNet
|
||||
NewModel=$ModelDir$/AlexNet.Top5
|
||||
editPath=$ConfigDir$/add_top5_layer.mel
|
||||
]
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=$ModelDir$/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=$ConfigDir$/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
currentDirectory=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
RunDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
DataDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet
|
||||
OutputDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
DeviceId=0
|
||||
timestamping=true
|
||||
|
||||
05/03/2016 18:06:53: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:06:53: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:06:53: ModelDir = "/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models"
|
||||
ndlMacros=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/Macros.ndl
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
command=Train:AddTop5Eval:Test
|
||||
parallelTrain=false
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet
|
||||
NewModel=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
editPath=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/add_top5_layer.mel
|
||||
]
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
currentDirectory=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
RunDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
DataDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet
|
||||
OutputDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
DeviceId=0
|
||||
timestamping=true
|
||||
|
||||
05/03/2016 18:06:53: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:06:53: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
configparameters: AlexNet.cntk:AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet
|
||||
NewModel=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
editPath=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/add_top5_layer.mel
|
||||
]
|
||||
|
||||
configparameters: AlexNet.cntk:command=Train:AddTop5Eval:Test
|
||||
configparameters: AlexNet.cntk:ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet
|
||||
configparameters: AlexNet.cntk:currentDirectory=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
configparameters: AlexNet.cntk:DataDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/TestData
|
||||
configparameters: AlexNet.cntk:deviceId=0
|
||||
configparameters: AlexNet.cntk:ModelDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models
|
||||
configparameters: AlexNet.cntk:ndlMacros=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/Macros.ndl
|
||||
configparameters: AlexNet.cntk:numMBsToShowResult=100
|
||||
configparameters: AlexNet.cntk:OutputDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
configparameters: AlexNet.cntk:parallelTrain=false
|
||||
configparameters: AlexNet.cntk:precision=float
|
||||
configparameters: AlexNet.cntk:RunDir=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu
|
||||
configparameters: AlexNet.cntk:Test=[
|
||||
action=test
|
||||
modelPath=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
configparameters: AlexNet.cntk:timestamping=true
|
||||
configparameters: AlexNet.cntk:traceLevel=1
|
||||
configparameters: AlexNet.cntk:Train=[
|
||||
action=train
|
||||
modelPath=/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Image/AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
05/03/2016 18:06:53: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:06:53: Commands: Train AddTop5Eval Test
|
||||
05/03/2016 18:06:53: Precision = "float"
|
||||
05/03/2016 18:06:53: CNTKModelPath: /tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet
|
||||
05/03/2016 18:06:53: CNTKCommandTrainInfo: Train : 3
|
||||
05/03/2016 18:06:53: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
|
||||
05/03/2016 18:06:53: ##############################################################################
|
||||
05/03/2016 18:06:53: # #
|
||||
05/03/2016 18:06:53: # Action "train" #
|
||||
05/03/2016 18:06:53: # #
|
||||
05/03/2016 18:06:53: ##############################################################################
|
||||
|
||||
05/03/2016 18:06:53: CNTKCommandTrainBegin: Train
|
||||
NDLBuilder Using GPU 0
|
||||
|
||||
05/03/2016 18:06:53: Creating virgin network.
|
||||
SetGaussianRandomValue (GPU): creating curand object with seed 1, sizeof(ElemType)==4
|
||||
|
||||
Post-processing network...
|
||||
|
||||
3 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
|
||||
Validating network. 48 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *] -> [56 x 56 x 64 x *]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *], [1 x 1 x 64] -> [56 x 56 x 64 x *]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *] -> [56 x 56 x 64 x *]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *] -> [27 x 27 x 64 x *]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *] -> [27 x 27 x 192 x *]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *], [1 x 1 x 192] -> [27 x 27 x 192 x *]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *] -> [27 x 27 x 192 x *]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *] -> [13 x 13 x 192 x *]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *], [1 x 1 x 384] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *], [1 x 1 x 256] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *], [1 x 1 x 256] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *] -> [6 x 6 x 256 x *]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *] -> [4096 x *]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *], [4096] -> [4096 x *]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *] -> [4096 x *]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *], [4096] -> [4096 x *]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *] -> [4096 x *]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *] -> [1000 x *]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *], [1000] -> [1000 x *]
|
||||
Validating --> labels = InputValue() : -> [1000 x *]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *], [1000 x *] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *], [1000 x *] -> [1]
|
||||
|
||||
Validating network. 30 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
18 out of 48 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
05/03/2016 18:06:53: Created model with 48 nodes on GPU 0.
|
||||
|
||||
05/03/2016 18:06:53: Training criterion node(s):
|
||||
05/03/2016 18:06:53: ce = CrossEntropyWithSoftmax
|
||||
|
||||
05/03/2016 18:06:53: Evaluation criterion node(s):
|
||||
|
||||
05/03/2016 18:06:53: err = ErrorPrediction
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
||||
Memory Sharing Structure:
|
||||
|
||||
(nil): {[err Gradient[1]] [features Gradient[224 x 224 x 3 x *]] [labels Gradient[1000 x *]] }
|
||||
0x1eb05c8: {[features Value[224 x 224 x 3 x *]] }
|
||||
0x27d0c58: {[conv1.W Value[64 x 363]] }
|
||||
0x27d1a38: {[conv1.b Value[1 x 1 x 64]] }
|
||||
0x27d32a8: {[conv2.W Value[192 x 1600]] }
|
||||
0x27d49b8: {[conv2.b Value[1 x 1 x 192]] }
|
||||
0x27d5c88: {[conv3.W Value[384 x 1728]] }
|
||||
0x27d7378: {[conv3.b Value[1 x 1 x 384]] }
|
||||
0x27d8698: {[conv4.W Value[256 x 3456]] }
|
||||
0x27d9798: {[OutputNodes.b Value[1000]] }
|
||||
0x27d9b88: {[conv4.b Value[1 x 1 x 256]] }
|
||||
0x27dadf8: {[conv5.W Value[256 x 2304]] }
|
||||
0x27dbff8: {[conv5.b Value[1 x 1 x 256]] }
|
||||
0x27dd778: {[h1.W Value[4096 x 6 x 6 x 256]] }
|
||||
0x27de688: {[h1.b Value[4096]] }
|
||||
0x2c0cab8: {[labels Value[1000 x *]] }
|
||||
0x2ea6e78: {[h2.W Value[4096 x 4096]] }
|
||||
0x2ea7c18: {[h2.b Value[4096]] }
|
||||
0x2ea8838: {[OutputNodes.W Value[1000 x 4096]] }
|
||||
0x7f47b2c352e8: {[conv1.c Gradient[56 x 56 x 64 x *]] [conv1.y Value[56 x 56 x 64 x *]] }
|
||||
0x7f47b2c35448: {[conv1.W Gradient[64 x 363]] [conv1.z Value[56 x 56 x 64 x *]] }
|
||||
0x7f47b2c35648: {[conv1.z Gradient[56 x 56 x 64 x *]] [pool1 Value[27 x 27 x 64 x *]] }
|
||||
0x7f47b2c35948: {[conv1.c Value[56 x 56 x 64 x *]] }
|
||||
0x7f47b2e95948: {[conv1.b Gradient[1 x 1 x 64]] [conv1.y Gradient[56 x 56 x 64 x *]] }
|
||||
0x7f47b2e95b08: {[conv2.W Gradient[192 x 1600]] [conv2.z Value[27 x 27 x 192 x *]] }
|
||||
0x7f47b2e95cc8: {[conv2.c Gradient[27 x 27 x 192 x *]] [conv2.y Value[27 x 27 x 192 x *]] }
|
||||
0x7f47b2e95e88: {[conv2.z Gradient[27 x 27 x 192 x *]] [pool1 Gradient[27 x 27 x 64 x *]] [pool2 Value[13 x 13 x 192 x *]] }
|
||||
0x7f47b2e96048: {[conv3.c Value[13 x 13 x 384 x *]] }
|
||||
0x7f47b2e96208: {[conv2.b Gradient[1 x 1 x 192]] [conv2.y Gradient[27 x 27 x 192 x *]] }
|
||||
0x7f47b2e963c8: {[conv3.W Gradient[384 x 1728]] [conv3.z Value[13 x 13 x 384 x *]] }
|
||||
0x7f47b2e96588: {[conv3.c Gradient[13 x 13 x 384 x *]] [conv3.y Value[13 x 13 x 384 x *]] }
|
||||
0x7f47b2e96748: {[conv4.c Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e96908: {[conv3.z Gradient[13 x 13 x 384 x *]] [pool2 Gradient[13 x 13 x 192 x *]] }
|
||||
0x7f47b2e96ac8: {[conv4.W Gradient[256 x 3456]] [conv4.z Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e96c88: {[conv4.c Gradient[13 x 13 x 256 x *]] [conv4.y Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e96e48: {[conv5.c Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e97008: {[conv3.b Gradient[1 x 1 x 384]] [conv3.y Gradient[13 x 13 x 384 x *]] [conv4.z Gradient[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e971c8: {[conv5.W Gradient[256 x 2304]] [conv5.z Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e97388: {[conv5.c Gradient[13 x 13 x 256 x *]] [conv5.y Value[13 x 13 x 256 x *]] }
|
||||
0x7f47b2e97548: {[conv4.b Gradient[1 x 1 x 256]] [conv4.y Gradient[13 x 13 x 256 x *]] [conv5.z Gradient[13 x 13 x 256 x *]] [pool3 Value[6 x 6 x 256 x *]] }
|
||||
0x7f47b2e97708: {[conv5.b Gradient[1 x 1 x 256]] [conv5.y Gradient[13 x 13 x 256 x *]] [h1.t Value[4096 x *]] }
|
||||
0x7f47b2e978c8: {[h1.W Gradient[4096 x 6 x 6 x 256]] [h1.z Value[4096 x *]] }
|
||||
0x7f47b2e97a88: {[h1.t Gradient[4096 x *]] [h1.y Value[4096 x *]] }
|
||||
0x7f47b2e97c48: {[h1_d Value[4096 x *]] }
|
||||
0x7f47b2e97e08: {[h1.z Gradient[4096 x *]] [pool3 Gradient[6 x 6 x 256 x *]] }
|
||||
0x7f47b2e97fc8: {[h1.b Gradient[4096]] [h1.y Gradient[4096 x *]] [h2.t Value[4096 x *]] }
|
||||
0x7f47b2e98188: {[h2.W Gradient[4096 x 4096]] [h2.z Value[4096 x *]] }
|
||||
0x7f47b2e98348: {[h2.t Gradient[4096 x *]] [h2.y Value[4096 x *]] }
|
||||
0x7f47b2e98508: {[h2_d Value[4096 x *]] }
|
||||
0x7f47b2e986c8: {[h1_d Gradient[4096 x *]] [h2.z Gradient[4096 x *]] }
|
||||
0x7f47b2e98888: {[OutputNodes.t Value[1000 x *]] [h2.b Gradient[4096]] [h2.y Gradient[4096 x *]] }
|
||||
0x7f47b2e99428: {[ce Gradient[1]] }
|
||||
0x7f47b2e995e8: {[OutputNodes.W Gradient[1000 x 4096]] [OutputNodes.z Gradient[1000 x *]] }
|
||||
0x7f47b2e997a8: {[OutputNodes.t Gradient[1000 x *]] }
|
||||
0x7f47b2e99968: {[OutputNodes.b Gradient[1000]] }
|
||||
0x7f47b2e99b28: {[h2_d Gradient[4096 x *]] }
|
||||
0x7f47b2e9aa08: {[OutputNodes.z Value[1000 x *]] }
|
||||
0x7f47b2e9abc8: {[ce Value[1]] }
|
||||
0x7f47b2e9b2f8: {[conv2.c Value[27 x 27 x 192 x *]] }
|
||||
0x7f47b2ef4ce8: {[err Value[1]] }
|
||||
|
||||
05/03/2016 18:06:53: No PreCompute nodes found, skipping PreCompute step.
|
||||
|
||||
05/03/2016 18:06:55: Starting Epoch 1: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 18:06:55: Starting minibatch loop.
|
||||
05/03/2016 18:07:02: Epoch[ 1 of 3]-Minibatch[ 1- 100]: ce = 7.41642395 * 1600; err = 1.00000000 * 1600; time = 7.0425s; samplesPerSecond = 227.2
|
||||
05/03/2016 18:07:08: Finished Epoch[ 1 of 3]: [Training] ce = 7.22737918 * 2999; err = 0.99966656 * 2999; totalSamplesSeen = 2999; learningRatePerSample = 0.00062499999; epochTime=12.9259s
|
||||
05/03/2016 18:07:10: SGD: Saving checkpoint model '/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.1'
|
||||
|
||||
05/03/2016 18:07:13: Starting Epoch 2: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 18:07:13: Starting minibatch loop.
|
||||
05/03/2016 18:07:19: Epoch[ 2 of 3]-Minibatch[ 1- 100, 100.00%]: ce = 6.90983215 * 1600; err = 1.00000000 * 1600; time = 6.2320s; samplesPerSecond = 256.7
|
||||
05/03/2016 18:07:25: Finished Epoch[ 2 of 3]: [Training] ce = 6.91963923 * 2999; err = 0.99866622 * 2999; totalSamplesSeen = 5998; learningRatePerSample = 0.00062499999; epochTime=12.2905s
|
||||
05/03/2016 18:07:27: SGD: Saving checkpoint model '/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet.2'
|
||||
|
||||
05/03/2016 18:07:29: Starting Epoch 3: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 18:07:29: Starting minibatch loop.
|
||||
05/03/2016 18:07:36: Epoch[ 3 of 3]-Minibatch[ 1- 100, 100.00%]: ce = 6.87519836 * 1600; err = 0.99937500 * 1600; time = 6.4714s; samplesPerSecond = 247.2
|
||||
05/03/2016 18:07:42: Finished Epoch[ 3 of 3]: [Training] ce = 6.88608052 * 2999; err = 0.99833278 * 2999; totalSamplesSeen = 8997; learningRatePerSample = 0.00062499999; epochTime=12.1425s
|
||||
05/03/2016 18:07:44: SGD: Saving checkpoint model '/tmp/cntk-test-20160503180555.960884/Image_AlexNet@release_gpu/models/AlexNet'
|
||||
05/03/2016 18:07:46: CNTKCommandTrainEnd: Train
|
||||
|
||||
05/03/2016 18:07:46: Action "train" complete.
|
||||
|
||||
|
||||
05/03/2016 18:07:46: ##############################################################################
|
||||
05/03/2016 18:07:46: # #
|
||||
05/03/2016 18:07:46: # Action "edit" #
|
||||
05/03/2016 18:07:46: # #
|
||||
05/03/2016 18:07:46: ##############################################################################
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
3 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
|
||||
Validating network. 48 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *1]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *1], [1 x 1 x 64] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *1] -> [27 x 27 x 64 x *1]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *1], [1 x 1 x 192] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *1] -> [13 x 13 x 192 x *1]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *1], [1 x 1 x 384] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *1] -> [6 x 6 x 256 x *1]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *1] -> [4096 x *1]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *1] -> [1000 x *1]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *1], [1000] -> [1000 x *1]
|
||||
Validating --> labels = InputValue() : -> [1000 x *1]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
|
||||
Validating network. 30 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
18 out of 48 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
4 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
errTop5 = ErrorPrediction()
|
||||
|
||||
Validating network. 50 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *1]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *1], [1 x 1 x 64] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *1] -> [27 x 27 x 64 x *1]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *1], [1 x 1 x 192] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *1] -> [13 x 13 x 192 x *1]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *1], [1 x 1 x 384] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *1] -> [6 x 6 x 256 x *1]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *1] -> [4096 x *1]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *1] -> [1000 x *1]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *1], [1000] -> [1000 x *1]
|
||||
Validating --> labels = InputValue() : -> [1000 x *1]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> unnamed137 = LearnableParameter() : -> [1 x 1]
|
||||
Validating --> errTop5 = ErrorPrediction (labels, OutputNodes.z, unnamed137) : [1000 x *1], [1000 x *1], [1 x 1] -> [1]
|
||||
|
||||
Validating network. 31 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
|
||||
20 out of 50 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
|
||||
05/03/2016 18:07:51: Action "edit" complete.
|
||||
|
||||
|
||||
05/03/2016 18:07:51: ##############################################################################
|
||||
05/03/2016 18:07:51: # #
|
||||
05/03/2016 18:07:51: # Action "test" #
|
||||
05/03/2016 18:07:51: # #
|
||||
05/03/2016 18:07:51: ##############################################################################
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
4 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
errTop5 = ErrorPrediction()
|
||||
|
||||
Validating network. 50 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *2]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *2] -> [56 x 56 x 64 x *2]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *2], [1 x 1 x 64] -> [56 x 56 x 64 x *2]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *2] -> [56 x 56 x 64 x *2]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *2] -> [27 x 27 x 64 x *2]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *2] -> [27 x 27 x 192 x *2]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *2], [1 x 1 x 192] -> [27 x 27 x 192 x *2]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *2] -> [27 x 27 x 192 x *2]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *2] -> [13 x 13 x 192 x *2]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *2] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *2], [1 x 1 x 384] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *2] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *2], [1 x 1 x 256] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *2], [1 x 1 x 256] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *2] -> [6 x 6 x 256 x *2]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *2] -> [4096 x *2]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *2], [4096] -> [4096 x *2]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *2], [4096] -> [4096 x *2]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *2] -> [1000 x *2]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *2], [1000] -> [1000 x *2]
|
||||
Validating --> labels = InputValue() : -> [1000 x *2]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *2], [1000 x *2] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *2], [1000 x *2] -> [1]
|
||||
Validating --> unnamed137 = LearnableParameter() : -> [1 x 1]
|
||||
Validating --> errTop5 = ErrorPrediction (labels, OutputNodes.z, unnamed137) : [1000 x *2], [1000 x *2], [1 x 1] -> [1]
|
||||
|
||||
Validating network. 31 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
20 out of 50 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
evalNodeNames are not specified, using all the default evalnodes and training criterion nodes.
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
||||
Memory Sharing Structure:
|
||||
|
||||
(nil): {[OutputNodes.W Gradient[1000 x 4096]] [OutputNodes.b Gradient[1000]] [OutputNodes.t Gradient[1000 x *2]] [OutputNodes.z Gradient[1000 x *2]] [ce Gradient[1]] [conv1.W Gradient[64 x 363]] [conv1.b Gradient[1 x 1 x 64]] [conv1.c Gradient[56 x 56 x 64 x *2]] [conv1.y Gradient[56 x 56 x 64 x *2]] [conv1.z Gradient[56 x 56 x 64 x *2]] [conv2.W Gradient[192 x 1600]] [conv2.b Gradient[1 x 1 x 192]] [conv2.c Gradient[27 x 27 x 192 x *2]] [conv2.y Gradient[27 x 27 x 192 x *2]] [conv2.z Gradient[27 x 27 x 192 x *2]] [conv3.W Gradient[384 x 1728]] [conv3.b Gradient[1 x 1 x 384]] [conv3.c Gradient[13 x 13 x 384 x *2]] [conv3.y Gradient[13 x 13 x 384 x *2]] [conv3.z Gradient[13 x 13 x 384 x *2]] [conv4.W Gradient[256 x 3456]] [conv4.b Gradient[1 x 1 x 256]] [conv4.c Gradient[13 x 13 x 256 x *2]] [conv4.y Gradient[13 x 13 x 256 x *2]] [conv4.z Gradient[13 x 13 x 256 x *2]] [conv5.W Gradient[256 x 2304]] [conv5.b Gradient[1 x 1 x 256]] [conv5.c Gradient[13 x 13 x 256 x *2]] [conv5.y Gradient[13 x 13 x 256 x *2]] [conv5.z Gradient[13 x 13 x 256 x *2]] [err Gradient[1]] [errTop5 Gradient[1]] [features Gradient[224 x 224 x 3 x *2]] [h1.W Gradient[4096 x 6 x 6 x 256]] [h1.b Gradient[4096]] [h1.t Gradient[4096 x *2]] [h1.y Gradient[4096 x *2]] [h1.z Gradient[4096 x *2]] [h1_d Gradient[4096 x *2]] [h2.W Gradient[4096 x 4096]] [h2.b Gradient[4096]] [h2.t Gradient[4096 x *2]] [h2.y Gradient[4096 x *2]] [h2.z Gradient[4096 x *2]] [h2_d Gradient[4096 x *2]] [labels Gradient[1000 x *2]] [pool1 Gradient[27 x 27 x 64 x *2]] [pool2 Gradient[13 x 13 x 192 x *2]] [pool3 Gradient[6 x 6 x 256 x *2]] [unnamed137 Gradient[1 x 1]] }
|
||||
0x7f479db02088: {[conv1.b Value[1 x 1 x 64]] }
|
||||
0x7f479db2c418: {[conv1.W Value[64 x 363]] }
|
||||
0x7f479db2d7a8: {[conv2.W Value[192 x 1600]] }
|
||||
0x7f479db2dae8: {[conv2.b Value[1 x 1 x 192]] }
|
||||
0x7f479db2fdd8: {[conv3.W Value[384 x 1728]] }
|
||||
0x7f479db30118: {[conv3.b Value[1 x 1 x 384]] }
|
||||
0x7f479db30908: {[conv4.b Value[1 x 1 x 256]] }
|
||||
0x7f479db33f08: {[conv4.W Value[256 x 3456]] }
|
||||
0x7f479db35358: {[conv5.b Value[1 x 1 x 256]] }
|
||||
0x7f479db36608: {[conv5.W Value[256 x 2304]] }
|
||||
0x7f479db37d68: {[features Value[224 x 224 x 3 x *2]] }
|
||||
0x7f479db38858: {[h1.W Value[4096 x 6 x 6 x 256]] }
|
||||
0x7f479db38b98: {[h1.b Value[4096]] }
|
||||
0x7f479db3aa98: {[h2.b Value[4096]] }
|
||||
0x7f479db3b5d8: {[h2.W Value[4096 x 4096]] }
|
||||
0x7f479db3ca98: {[labels Value[1000 x *2]] }
|
||||
0x7f479db3de18: {[OutputNodes.b Value[1000]] }
|
||||
0x7f479db3e628: {[OutputNodes.W Value[1000 x 4096]] }
|
||||
0x7f479db40748: {[unnamed137 Value[1 x 1]] }
|
||||
0x7f479db413e8: {[errTop5 Value[1]] }
|
||||
0x7f479db42138: {[ce Value[1]] }
|
||||
0x7f479db48378: {[err Value[1]] }
|
||||
0x7f479db53e18: {[pool3 Value[6 x 6 x 256 x *2]] }
|
||||
0x7f479db53fd8: {[h1.t Value[4096 x *2]] }
|
||||
0x7f479db54198: {[h1.z Value[4096 x *2]] }
|
||||
0x7f479db54358: {[h1.y Value[4096 x *2]] }
|
||||
0x7f479db54518: {[h1_d Value[4096 x *2]] }
|
||||
0x7f479db54898: {[h2.t Value[4096 x *2]] }
|
||||
0x7f479db54a58: {[h2.z Value[4096 x *2]] }
|
||||
0x7f479db54c18: {[h2.y Value[4096 x *2]] }
|
||||
0x7f479db54dd8: {[h2_d Value[4096 x *2]] }
|
||||
0x7f479db55158: {[OutputNodes.t Value[1000 x *2]] }
|
||||
0x7f479db55318: {[OutputNodes.z Value[1000 x *2]] }
|
||||
0x7f47a644f258: {[conv1.z Value[56 x 56 x 64 x *2]] }
|
||||
0x7f47a644f558: {[conv1.c Value[56 x 56 x 64 x *2]] }
|
||||
0x7f47a6450068: {[conv1.y Value[56 x 56 x 64 x *2]] }
|
||||
0x7f47a64506b8: {[pool1 Value[27 x 27 x 64 x *2]] }
|
||||
0x7f47a6450878: {[conv2.c Value[27 x 27 x 192 x *2]] }
|
||||
0x7f47a6450bf8: {[conv2.z Value[27 x 27 x 192 x *2]] }
|
||||
0x7f47a6450db8: {[conv2.y Value[27 x 27 x 192 x *2]] }
|
||||
0x7f47a6450f78: {[pool2 Value[13 x 13 x 192 x *2]] }
|
||||
0x7f47a6451138: {[conv3.c Value[13 x 13 x 384 x *2]] }
|
||||
0x7f47a64514b8: {[conv3.z Value[13 x 13 x 384 x *2]] }
|
||||
0x7f47a6451678: {[conv3.y Value[13 x 13 x 384 x *2]] }
|
||||
0x7f47a6451838: {[conv4.c Value[13 x 13 x 256 x *2]] }
|
||||
0x7f47a6451bb8: {[conv4.z Value[13 x 13 x 256 x *2]] }
|
||||
0x7f47a6451d78: {[conv4.y Value[13 x 13 x 256 x *2]] }
|
||||
0x7f47a6451f38: {[conv5.c Value[13 x 13 x 256 x *2]] }
|
||||
0x7f47a64522b8: {[conv5.z Value[13 x 13 x 256 x *2]] }
|
||||
0x7f47a6452478: {[conv5.y Value[13 x 13 x 256 x *2]] }
|
||||
|
||||
05/03/2016 18:07:55: Final Results: Minibatch[1-32]: err = 0.99800000 * 500; errTop5 = 0.99400000 * 500; ce = 6.96324823 * 500; perplexity = 1057.06156985
|
||||
|
||||
05/03/2016 18:07:55: Action "test" complete.
|
||||
|
||||
05/03/2016 18:07:55: __COMPLETED__
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,851 @@
|
|||
Copying test data to local directory
|
||||
=== Running /cygdrive/c/jenkins/workspace/CNTK-Test-Windows-W1/x64/release/cntk.exe configFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.cntk currentDirectory=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData RunDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu DataDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData ConfigDir=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet OutputDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu DeviceId=0 timestamping=true
|
||||
-------------------------------------------------------------------
|
||||
Build info:
|
||||
|
||||
Built time: May 3 2016 13:23:06
|
||||
Last modified date: Mon Apr 18 00:00:12 2016
|
||||
Build type: Release
|
||||
Build target: GPU
|
||||
With 1bit-SGD: no
|
||||
CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
|
||||
CUB_PATH: C:\src\cub-1.4.1
|
||||
CUDNN_PATH: c:\NVIDIA\cudnn-4.0\cuda
|
||||
Build Branch: HEAD
|
||||
Build SHA1: af96f7cce6c3c78a4f1e9315e061291c79360e12
|
||||
Built by svcphil on LIANA-09-w
|
||||
Build Path: c:\jenkins\workspace\CNTK-Build-Windows\Source\CNTK\
|
||||
-------------------------------------------------------------------
|
||||
Changed current directory to C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
05/03/2016 14:11:01: -------------------------------------------------------------------
|
||||
05/03/2016 14:11:01: Build info:
|
||||
|
||||
05/03/2016 14:11:01: Built time: May 3 2016 13:23:06
|
||||
05/03/2016 14:11:01: Last modified date: Mon Apr 18 00:00:12 2016
|
||||
05/03/2016 14:11:01: Build type: Release
|
||||
05/03/2016 14:11:01: Build target: GPU
|
||||
05/03/2016 14:11:01: With 1bit-SGD: no
|
||||
05/03/2016 14:11:01: CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5
|
||||
05/03/2016 14:11:01: CUB_PATH: C:\src\cub-1.4.1
|
||||
05/03/2016 14:11:01: CUDNN_PATH: c:\NVIDIA\cudnn-4.0\cuda
|
||||
05/03/2016 14:11:01: Build Branch: HEAD
|
||||
05/03/2016 14:11:01: Build SHA1: af96f7cce6c3c78a4f1e9315e061291c79360e12
|
||||
05/03/2016 14:11:01: Built by svcphil on LIANA-09-w
|
||||
05/03/2016 14:11:01: Build Path: c:\jenkins\workspace\CNTK-Build-Windows\Source\CNTK\
|
||||
05/03/2016 14:11:01: -------------------------------------------------------------------
|
||||
|
||||
05/03/2016 14:11:01: Running on DPHAIM-25 at 2016/05/03 14:11:01
|
||||
05/03/2016 14:11:01: Command line:
|
||||
C:\jenkins\workspace\CNTK-Test-Windows-W1\x64\release\cntk.exe configFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.cntk currentDirectory=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData RunDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu DataDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData ConfigDir=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet OutputDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu DeviceId=0 timestamping=true
|
||||
|
||||
|
||||
|
||||
05/03/2016 14:11:01: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 14:11:01: ModelDir = "$RunDir$/models"
|
||||
ndlMacros=$ConfigDir$/Macros.ndl
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
command=Train:AddTop5Eval:Test
|
||||
parallelTrain=false
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=$ModelDir$/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=$ConfigDir$/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=$ModelDir$/AlexNet
|
||||
NewModel=$ModelDir$/AlexNet.Top5
|
||||
editPath=$ConfigDir$/add_top5_layer.mel
|
||||
]
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=$ModelDir$/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=$ConfigDir$/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=$ConfigDir$/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=$ConfigDir$/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
currentDirectory=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
RunDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
DataDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
ConfigDir=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet
|
||||
OutputDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
DeviceId=0
|
||||
timestamping=true
|
||||
|
||||
05/03/2016 14:11:01: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 14:11:01: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 14:11:01: ModelDir = "C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models"
|
||||
ndlMacros=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/Macros.ndl
|
||||
precision=float
|
||||
deviceId=Auto
|
||||
command=Train:AddTop5Eval:Test
|
||||
parallelTrain=false
|
||||
traceLevel=1
|
||||
numMBsToShowResult=100
|
||||
Train=[
|
||||
action=train
|
||||
modelPath=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet
|
||||
NewModel=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
editPath=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/add_top5_layer.mel
|
||||
]
|
||||
Test=[
|
||||
action=test
|
||||
modelPath=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
currentDirectory=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
RunDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
DataDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
ConfigDir=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet
|
||||
OutputDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
DeviceId=0
|
||||
timestamping=true
|
||||
|
||||
05/03/2016 14:11:01: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 14:11:01: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
configparameters: AlexNet.cntk:AddTop5Eval=[
|
||||
action=edit
|
||||
CurModel=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet
|
||||
NewModel=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
editPath=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/add_top5_layer.mel
|
||||
]
|
||||
|
||||
configparameters: AlexNet.cntk:command=Train:AddTop5Eval:Test
|
||||
configparameters: AlexNet.cntk:ConfigDir=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet
|
||||
configparameters: AlexNet.cntk:currentDirectory=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
configparameters: AlexNet.cntk:DataDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu\TestData
|
||||
configparameters: AlexNet.cntk:deviceId=0
|
||||
configparameters: AlexNet.cntk:ModelDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models
|
||||
configparameters: AlexNet.cntk:ndlMacros=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/Macros.ndl
|
||||
configparameters: AlexNet.cntk:numMBsToShowResult=100
|
||||
configparameters: AlexNet.cntk:OutputDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
configparameters: AlexNet.cntk:parallelTrain=false
|
||||
configparameters: AlexNet.cntk:precision=float
|
||||
configparameters: AlexNet.cntk:RunDir=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu
|
||||
configparameters: AlexNet.cntk:Test=[
|
||||
action=test
|
||||
modelPath=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.Top5
|
||||
minibatchSize=16
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.ndl
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/val_map.txt
|
||||
randomize=None
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Center
|
||||
meanFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
configparameters: AlexNet.cntk:timestamping=true
|
||||
configparameters: AlexNet.cntk:traceLevel=1
|
||||
configparameters: AlexNet.cntk:Train=[
|
||||
action=train
|
||||
modelPath=C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet
|
||||
NDLNetworkBuilder=[
|
||||
networkDescription=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/AlexNet.ndl
|
||||
]
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=16
|
||||
learningRatesPerMB=0.01*20:0.003*12:0.001*28:0.0003
|
||||
momentumPerMB=0.9
|
||||
maxEpochs=3
|
||||
gradUpdateType=None
|
||||
L2RegWeight=0.0005
|
||||
dropoutRate=0*5:0.5
|
||||
ParallelTrain=[
|
||||
parallelizationMethod=DataParallelSGD
|
||||
distributedMBReading=true
|
||||
parallelizationStartEpoch=1
|
||||
DataParallelSGD=[
|
||||
gradientBits=1
|
||||
]
|
||||
]
|
||||
numMBsToShowResult=100
|
||||
]
|
||||
reader=[
|
||||
readerType=ImageReader
|
||||
file=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/train_map.txt
|
||||
randomize=Auto
|
||||
features=[
|
||||
width=224
|
||||
height=224
|
||||
channels=3
|
||||
cropType=Random
|
||||
cropRatio=0.875
|
||||
jitterType=UniRatio
|
||||
interpolations=Linear
|
||||
meanFile=C:\jenkins\workspace\CNTK-Test-Windows-W1\Tests\EndToEndTests\Image\AlexNet/ImageNet1K_mean.xml
|
||||
]
|
||||
labels=[
|
||||
labelDim=1000
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
05/03/2016 14:11:01: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 14:11:01: Commands: Train AddTop5Eval Test
|
||||
05/03/2016 14:11:01: Precision = "float"
|
||||
05/03/2016 14:11:01: CNTKModelPath: C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet
|
||||
05/03/2016 14:11:01: CNTKCommandTrainInfo: Train : 3
|
||||
05/03/2016 14:11:01: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
|
||||
05/03/2016 14:11:01: ##############################################################################
|
||||
05/03/2016 14:11:01: # #
|
||||
05/03/2016 14:11:01: # Action "train" #
|
||||
05/03/2016 14:11:01: # #
|
||||
05/03/2016 14:11:01: ##############################################################################
|
||||
|
||||
05/03/2016 14:11:01: CNTKCommandTrainBegin: Train
|
||||
NDLBuilder Using GPU 0
|
||||
|
||||
05/03/2016 14:11:01: Creating virgin network.
|
||||
Microsoft::MSR::CNTK::GPUMatrix<ElemType>::SetGaussianRandomValue (GPU): creating curand object with seed 1, sizeof(ElemType)==4
|
||||
|
||||
Post-processing network...
|
||||
|
||||
3 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
|
||||
Validating network. 48 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *] -> [56 x 56 x 64 x *]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *], [1 x 1 x 64] -> [56 x 56 x 64 x *]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *] -> [56 x 56 x 64 x *]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *] -> [27 x 27 x 64 x *]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *] -> [27 x 27 x 192 x *]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *], [1 x 1 x 192] -> [27 x 27 x 192 x *]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *] -> [27 x 27 x 192 x *]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *] -> [13 x 13 x 192 x *]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *], [1 x 1 x 384] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *] -> [13 x 13 x 384 x *]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *], [1 x 1 x 256] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *], [1 x 1 x 256] -> [13 x 13 x 256 x *]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *] -> [13 x 13 x 256 x *]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *] -> [6 x 6 x 256 x *]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *] -> [4096 x *]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *], [4096] -> [4096 x *]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *] -> [4096 x *]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *], [4096] -> [4096 x *]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *] -> [4096 x *]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *] -> [4096 x *]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *] -> [1000 x *]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *], [1000] -> [1000 x *]
|
||||
Validating --> labels = InputValue() : -> [1000 x *]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *], [1000 x *] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *], [1000 x *] -> [1]
|
||||
|
||||
Validating network. 30 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
18 out of 48 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
05/03/2016 14:11:02: Created model with 48 nodes on GPU 0.
|
||||
|
||||
05/03/2016 14:11:02: Training criterion node(s):
|
||||
05/03/2016 14:11:02: ce = CrossEntropyWithSoftmax
|
||||
|
||||
05/03/2016 14:11:02: Evaluation criterion node(s):
|
||||
|
||||
05/03/2016 14:11:02: err = ErrorPrediction
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
||||
Memory Sharing Structure:
|
||||
|
||||
0000000000000000: {[err Gradient[1]] [features Gradient[224 x 224 x 3 x *]] [labels Gradient[1000 x *]] }
|
||||
000000E290039200: {[conv2.W Value[192 x 1600]] }
|
||||
000000E290039340: {[conv1.W Value[64 x 363]] }
|
||||
000000E290039480: {[conv1.b Value[1 x 1 x 64]] }
|
||||
000000E290039520: {[conv2.b Value[1 x 1 x 192]] }
|
||||
000000E29003A060: {[features Value[224 x 224 x 3 x *]] }
|
||||
000000E29003A240: {[labels Value[1000 x *]] }
|
||||
000000E2A80AE1D0: {[OutputNodes.b Value[1000]] }
|
||||
000000E2A80AE270: {[conv3.W Value[384 x 1728]] }
|
||||
000000E2A80AE310: {[h1.W Value[4096 x 6 x 6 x 256]] }
|
||||
000000E2A80AE950: {[conv5.b Value[1 x 1 x 256]] }
|
||||
000000E2A80AEC70: {[h1.b Value[4096]] }
|
||||
000000E2A80AF350: {[h2.W Value[4096 x 4096]] }
|
||||
000000E2A80AF530: {[conv3.b Value[1 x 1 x 384]] }
|
||||
000000E2A80AF710: {[conv4.b Value[1 x 1 x 256]] }
|
||||
000000E2A80AFA30: {[h2.b Value[4096]] }
|
||||
000000E2A80AFDF0: {[conv5.W Value[256 x 2304]] }
|
||||
000000E2A80AFE90: {[conv4.W Value[256 x 3456]] }
|
||||
000000E2A80AFF30: {[OutputNodes.W Value[1000 x 4096]] }
|
||||
000000E2AE0BA220: {[conv4.c Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BA2C0: {[h2.W Gradient[4096 x 4096]] [h2.z Value[4096 x *]] }
|
||||
000000E2AE0BA360: {[conv5.c Gradient[13 x 13 x 256 x *]] [conv5.y Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BA400: {[OutputNodes.t Value[1000 x *]] [h2.b Gradient[4096]] [h2.y Gradient[4096 x *]] }
|
||||
000000E2AE0BA720: {[err Value[1]] }
|
||||
000000E2AE0BA7C0: {[conv3.b Gradient[1 x 1 x 384]] [conv3.y Gradient[13 x 13 x 384 x *]] [conv4.z Gradient[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BA860: {[conv1.c Gradient[56 x 56 x 64 x *]] [conv1.y Value[56 x 56 x 64 x *]] }
|
||||
000000E2AE0BA900: {[conv1.b Gradient[1 x 1 x 64]] [conv1.y Gradient[56 x 56 x 64 x *]] }
|
||||
000000E2AE0BA9A0: {[conv1.z Gradient[56 x 56 x 64 x *]] [pool1 Value[27 x 27 x 64 x *]] }
|
||||
000000E2AE0BAA40: {[conv3.z Gradient[13 x 13 x 384 x *]] [pool2 Gradient[13 x 13 x 192 x *]] }
|
||||
000000E2AE0BAAE0: {[conv5.W Gradient[256 x 2304]] [conv5.z Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BAB80: {[h1_d Value[4096 x *]] }
|
||||
000000E2AE0BACC0: {[conv3.c Gradient[13 x 13 x 384 x *]] [conv3.y Value[13 x 13 x 384 x *]] }
|
||||
000000E2AE0BAE00: {[conv3.c Value[13 x 13 x 384 x *]] }
|
||||
000000E2AE0BAEA0: {[conv4.W Gradient[256 x 3456]] [conv4.z Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BAFE0: {[h2_d Value[4096 x *]] }
|
||||
000000E2AE0BB080: {[conv4.c Gradient[13 x 13 x 256 x *]] [conv4.y Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BB120: {[h1.W Gradient[4096 x 6 x 6 x 256]] [h1.z Value[4096 x *]] }
|
||||
000000E2AE0BB1C0: {[ce Gradient[1]] }
|
||||
000000E2AE0BB260: {[OutputNodes.b Gradient[1000]] }
|
||||
000000E2AE0BB3A0: {[conv2.W Gradient[192 x 1600]] [conv2.z Value[27 x 27 x 192 x *]] }
|
||||
000000E2AE0BB4E0: {[conv1.W Gradient[64 x 363]] [conv1.z Value[56 x 56 x 64 x *]] }
|
||||
000000E2AE0BB800: {[conv2.b Gradient[1 x 1 x 192]] [conv2.y Gradient[27 x 27 x 192 x *]] }
|
||||
000000E2AE0BB940: {[h1.z Gradient[4096 x *]] [pool3 Gradient[6 x 6 x 256 x *]] }
|
||||
000000E2AE0BB9E0: {[h1.b Gradient[4096]] [h1.y Gradient[4096 x *]] [h2.t Value[4096 x *]] }
|
||||
000000E2AE0BBB20: {[OutputNodes.t Gradient[1000 x *]] }
|
||||
000000E2AE0BBBC0: {[conv4.b Gradient[1 x 1 x 256]] [conv4.y Gradient[13 x 13 x 256 x *]] [conv5.z Gradient[13 x 13 x 256 x *]] [pool3 Value[6 x 6 x 256 x *]] }
|
||||
000000E2AE0BBD00: {[ce Value[1]] }
|
||||
000000E2AE0BBDA0: {[conv2.c Value[27 x 27 x 192 x *]] }
|
||||
000000E2AE0BBE40: {[conv1.c Value[56 x 56 x 64 x *]] }
|
||||
000000E2AE0BBF80: {[conv2.c Gradient[27 x 27 x 192 x *]] [conv2.y Value[27 x 27 x 192 x *]] }
|
||||
000000E2AE0BC020: {[h2.t Gradient[4096 x *]] [h2.y Value[4096 x *]] }
|
||||
000000E2AE0BC160: {[conv5.c Value[13 x 13 x 256 x *]] }
|
||||
000000E2AE0BC200: {[conv2.z Gradient[27 x 27 x 192 x *]] [pool1 Gradient[27 x 27 x 64 x *]] [pool2 Value[13 x 13 x 192 x *]] }
|
||||
000000E2AE0BC2A0: {[OutputNodes.z Value[1000 x *]] }
|
||||
000000E2AE0BC340: {[h1_d Gradient[4096 x *]] [h2.z Gradient[4096 x *]] }
|
||||
000000E2AE0BC480: {[OutputNodes.W Gradient[1000 x 4096]] [OutputNodes.z Gradient[1000 x *]] }
|
||||
000000E2AE0BC520: {[h2_d Gradient[4096 x *]] }
|
||||
000000E2AE0BC840: {[conv3.W Gradient[384 x 1728]] [conv3.z Value[13 x 13 x 384 x *]] }
|
||||
000000E2AE0BC8E0: {[conv5.b Gradient[1 x 1 x 256]] [conv5.y Gradient[13 x 13 x 256 x *]] [h1.t Value[4096 x *]] }
|
||||
000000E2AE0BC980: {[h1.t Gradient[4096 x *]] [h1.y Value[4096 x *]] }
|
||||
|
||||
05/03/2016 14:11:02: No PreCompute nodes found, skipping PreCompute step.
|
||||
|
||||
05/03/2016 14:11:05: Starting Epoch 1: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 14:11:05: Starting minibatch loop.
|
||||
05/03/2016 14:11:14: Epoch[ 1 of 3]-Minibatch[ 1- 100]: ce = 7.43287354 * 1600; err = 0.99937500 * 1600; time = 8.8275s; samplesPerSecond = 181.3
|
||||
05/03/2016 14:11:20: Finished Epoch[ 1 of 3]: [Training] ce = 7.24222462 * 2999; err = 0.99933311 * 2999; totalSamplesSeen = 2999; learningRatePerSample = 0.00062499999; epochTime=14.8733s
|
||||
05/03/2016 14:11:24: SGD: Saving checkpoint model 'C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.1'
|
||||
|
||||
05/03/2016 14:11:27: Starting Epoch 2: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 14:11:27: Starting minibatch loop.
|
||||
05/03/2016 14:11:34: Epoch[ 2 of 3]-Minibatch[ 1- 100, 100.00%]: ce = 6.90465576 * 1600; err = 0.99937500 * 1600; time = 6.9523s; samplesPerSecond = 230.1
|
||||
05/03/2016 14:11:40: Finished Epoch[ 2 of 3]: [Training] ce = 6.91868774 * 2999; err = 0.99899967 * 2999; totalSamplesSeen = 5998; learningRatePerSample = 0.00062499999; epochTime=12.9929s
|
||||
05/03/2016 14:11:43: SGD: Saving checkpoint model 'C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet.2'
|
||||
|
||||
05/03/2016 14:11:46: Starting Epoch 3: learning rate per sample = 0.000625 effective momentum = 0.900000 momentum as time constant = 151.9 samples
|
||||
|
||||
05/03/2016 14:11:46: Starting minibatch loop.
|
||||
05/03/2016 14:11:53: Epoch[ 3 of 3]-Minibatch[ 1- 100, 100.00%]: ce = 6.87353699 * 1600; err = 0.99750000 * 1600; time = 7.0845s; samplesPerSecond = 225.8
|
||||
05/03/2016 14:11:59: Finished Epoch[ 3 of 3]: [Training] ce = 6.88654161 * 2999; err = 0.99799933 * 2999; totalSamplesSeen = 8997; learningRatePerSample = 0.00062499999; epochTime=13.0423s
|
||||
05/03/2016 14:12:03: SGD: Saving checkpoint model 'C:\Users\svcphil\AppData\Local\Temp\cntk-test-20160503141032.133212\Image_AlexNet@release_gpu/models/AlexNet'
|
||||
05/03/2016 14:12:06: CNTKCommandTrainEnd: Train
|
||||
|
||||
05/03/2016 14:12:06: Action "train" complete.
|
||||
|
||||
|
||||
05/03/2016 14:12:06: ##############################################################################
|
||||
05/03/2016 14:12:06: # #
|
||||
05/03/2016 14:12:06: # Action "edit" #
|
||||
05/03/2016 14:12:06: # #
|
||||
05/03/2016 14:12:06: ##############################################################################
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
3 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
|
||||
Validating network. 48 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *1]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *1], [1 x 1 x 64] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *1] -> [27 x 27 x 64 x *1]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *1], [1 x 1 x 192] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *1] -> [13 x 13 x 192 x *1]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *1], [1 x 1 x 384] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *1] -> [6 x 6 x 256 x *1]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *1] -> [4096 x *1]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *1] -> [1000 x *1]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *1], [1000] -> [1000 x *1]
|
||||
Validating --> labels = InputValue() : -> [1000 x *1]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
|
||||
Validating network. 30 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using GEMM convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
18 out of 48 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
4 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
errTop5 = ErrorPrediction()
|
||||
|
||||
Validating network. 50 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *1]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *1], [1 x 1 x 64] -> [56 x 56 x 64 x *1]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *1] -> [56 x 56 x 64 x *1]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *1] -> [27 x 27 x 64 x *1]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *1], [1 x 1 x 192] -> [27 x 27 x 192 x *1]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *1] -> [27 x 27 x 192 x *1]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *1] -> [13 x 13 x 192 x *1]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *1], [1 x 1 x 384] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *1] -> [13 x 13 x 384 x *1]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *1], [1 x 1 x 256] -> [13 x 13 x 256 x *1]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *1] -> [13 x 13 x 256 x *1]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *1] -> [6 x 6 x 256 x *1]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *1] -> [4096 x *1]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *1], [4096] -> [4096 x *1]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *1] -> [4096 x *1]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *1] -> [1000 x *1]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *1], [1000] -> [1000 x *1]
|
||||
Validating --> labels = InputValue() : -> [1000 x *1]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *1], [1000 x *1] -> [1]
|
||||
Validating --> unnamed137 = LearnableParameter() : -> [1 x 1]
|
||||
Validating --> errTop5 = ErrorPrediction (labels, OutputNodes.z, unnamed137) : [1000 x *1], [1000 x *1], [1 x 1] -> [1]
|
||||
|
||||
Validating network. 31 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
|
||||
20 out of 50 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
|
||||
05/03/2016 14:12:12: Action "edit" complete.
|
||||
|
||||
|
||||
05/03/2016 14:12:12: ##############################################################################
|
||||
05/03/2016 14:12:12: # #
|
||||
05/03/2016 14:12:12: # Action "test" #
|
||||
05/03/2016 14:12:12: # #
|
||||
05/03/2016 14:12:12: ##############################################################################
|
||||
|
||||
|
||||
Post-processing network...
|
||||
|
||||
4 roots:
|
||||
OutputNodes.z = Plus()
|
||||
ce = CrossEntropyWithSoftmax()
|
||||
err = ErrorPrediction()
|
||||
errTop5 = ErrorPrediction()
|
||||
|
||||
Validating network. 50 nodes to process in pass 1.
|
||||
|
||||
Validating --> OutputNodes.W = LearnableParameter() : -> [1000 x 4096]
|
||||
Validating --> h2.W = LearnableParameter() : -> [4096 x 4096]
|
||||
Validating --> h1.W = LearnableParameter() : -> [4096 x 6 x 6 x 256]
|
||||
Validating --> conv5.W = LearnableParameter() : -> [256 x 2304]
|
||||
Validating --> conv4.W = LearnableParameter() : -> [256 x 3456]
|
||||
Validating --> conv3.W = LearnableParameter() : -> [384 x 1728]
|
||||
Validating --> conv2.W = LearnableParameter() : -> [192 x 1600]
|
||||
Validating --> conv1.W = LearnableParameter() : -> [64 x 363]
|
||||
Validating --> features = InputValue() : -> [224 x 224 x 3 x *2]
|
||||
Validating --> conv1.c = Convolution (conv1.W, features) : [64 x 363], [224 x 224 x 3 x *2] -> [56 x 56 x 64 x *2]
|
||||
Validating --> conv1.b = LearnableParameter() : -> [1 x 1 x 64]
|
||||
Validating --> conv1.z = Plus (conv1.c, conv1.b) : [56 x 56 x 64 x *2], [1 x 1 x 64] -> [56 x 56 x 64 x *2]
|
||||
Validating --> conv1.y = RectifiedLinear (conv1.z) : [56 x 56 x 64 x *2] -> [56 x 56 x 64 x *2]
|
||||
Validating --> pool1 = MaxPooling (conv1.y) : [56 x 56 x 64 x *2] -> [27 x 27 x 64 x *2]
|
||||
Validating --> conv2.c = Convolution (conv2.W, pool1) : [192 x 1600], [27 x 27 x 64 x *2] -> [27 x 27 x 192 x *2]
|
||||
Validating --> conv2.b = LearnableParameter() : -> [1 x 1 x 192]
|
||||
Validating --> conv2.z = Plus (conv2.c, conv2.b) : [27 x 27 x 192 x *2], [1 x 1 x 192] -> [27 x 27 x 192 x *2]
|
||||
Validating --> conv2.y = RectifiedLinear (conv2.z) : [27 x 27 x 192 x *2] -> [27 x 27 x 192 x *2]
|
||||
Validating --> pool2 = MaxPooling (conv2.y) : [27 x 27 x 192 x *2] -> [13 x 13 x 192 x *2]
|
||||
Validating --> conv3.c = Convolution (conv3.W, pool2) : [384 x 1728], [13 x 13 x 192 x *2] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv3.b = LearnableParameter() : -> [1 x 1 x 384]
|
||||
Validating --> conv3.z = Plus (conv3.c, conv3.b) : [13 x 13 x 384 x *2], [1 x 1 x 384] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv3.y = RectifiedLinear (conv3.z) : [13 x 13 x 384 x *2] -> [13 x 13 x 384 x *2]
|
||||
Validating --> conv4.c = Convolution (conv4.W, conv3.y) : [256 x 3456], [13 x 13 x 384 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv4.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv4.z = Plus (conv4.c, conv4.b) : [13 x 13 x 256 x *2], [1 x 1 x 256] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv4.y = RectifiedLinear (conv4.z) : [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.c = Convolution (conv5.W, conv4.y) : [256 x 2304], [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.b = LearnableParameter() : -> [1 x 1 x 256]
|
||||
Validating --> conv5.z = Plus (conv5.c, conv5.b) : [13 x 13 x 256 x *2], [1 x 1 x 256] -> [13 x 13 x 256 x *2]
|
||||
Validating --> conv5.y = RectifiedLinear (conv5.z) : [13 x 13 x 256 x *2] -> [13 x 13 x 256 x *2]
|
||||
Validating --> pool3 = MaxPooling (conv5.y) : [13 x 13 x 256 x *2] -> [6 x 6 x 256 x *2]
|
||||
Validating --> h1.t = Times (h1.W, pool3) : [4096 x 6 x 6 x 256], [6 x 6 x 256 x *2] -> [4096 x *2]
|
||||
Validating --> h1.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h1.z = Plus (h1.t, h1.b) : [4096 x *2], [4096] -> [4096 x *2]
|
||||
Validating --> h1.y = RectifiedLinear (h1.z) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h1_d = Dropout (h1.y) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2.t = Times (h2.W, h1_d) : [4096 x 4096], [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2.b = LearnableParameter() : -> [4096]
|
||||
Validating --> h2.z = Plus (h2.t, h2.b) : [4096 x *2], [4096] -> [4096 x *2]
|
||||
Validating --> h2.y = RectifiedLinear (h2.z) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> h2_d = Dropout (h2.y) : [4096 x *2] -> [4096 x *2]
|
||||
Validating --> OutputNodes.t = Times (OutputNodes.W, h2_d) : [1000 x 4096], [4096 x *2] -> [1000 x *2]
|
||||
Validating --> OutputNodes.b = LearnableParameter() : -> [1000]
|
||||
Validating --> OutputNodes.z = Plus (OutputNodes.t, OutputNodes.b) : [1000 x *2], [1000] -> [1000 x *2]
|
||||
Validating --> labels = InputValue() : -> [1000 x *2]
|
||||
Validating --> ce = CrossEntropyWithSoftmax (labels, OutputNodes.z) : [1000 x *2], [1000 x *2] -> [1]
|
||||
Validating --> err = ErrorPrediction (labels, OutputNodes.z) : [1000 x *2], [1000 x *2] -> [1]
|
||||
Validating --> unnamed137 = LearnableParameter() : -> [1 x 1]
|
||||
Validating --> errTop5 = ErrorPrediction (labels, OutputNodes.z, unnamed137) : [1000 x *2], [1000 x *2], [1 x 1] -> [1]
|
||||
|
||||
Validating network. 31 nodes to process in pass 2.
|
||||
|
||||
|
||||
Validating network, final pass.
|
||||
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 224 x 224 x 3, Output: 56 x 56 x 64, Kernel: 11 x 11 x 3, Map: 1 x 1 x 64, Stride: 4 x 4 x 3, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 56 x 56 x 64, Output: 27 x 27 x 64, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 64, Output: 27 x 27 x 192, Kernel: 5 x 5 x 64, Map: 1 x 1 x 192, Stride: 1 x 1 x 64, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 27 x 27 x 192, Output: 13 x 13 x 192, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 192, Output: 13 x 13 x 384, Kernel: 3 x 3 x 192, Map: 1 x 1 x 384, Stride: 1 x 1 x 192, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 384, Output: 13 x 13 x 256, Kernel: 3 x 3 x 384, Map: 1 x 1 x 256, Stride: 1 x 1 x 384, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 13 x 13 x 256, Kernel: 3 x 3 x 256, Map: 1 x 1 x 256, Stride: 1 x 1 x 256, Sharing: (1), AutoPad: (1), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
Using cuDNN convolution engine for geometry: Input: 13 x 13 x 256, Output: 6 x 6 x 256, Kernel: 3 x 3 x 1, Map: 1, Stride: 2 x 2 x 1, Sharing: (1), AutoPad: (0), LowerPad: 0, UpperPad: 0.
|
||||
|
||||
|
||||
20 out of 50 nodes do not share the minibatch layout with the input data.
|
||||
|
||||
Post-processing network complete.
|
||||
|
||||
evalNodeNames are not specified, using all the default evalnodes and training criterion nodes.
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
||||
Memory Sharing Structure:
|
||||
|
||||
0000000000000000: {[OutputNodes.W Gradient[1000 x 4096]] [OutputNodes.b Gradient[1000]] [OutputNodes.t Gradient[1000 x *2]] [OutputNodes.z Gradient[1000 x *2]] [ce Gradient[1]] [conv1.W Gradient[64 x 363]] [conv1.b Gradient[1 x 1 x 64]] [conv1.c Gradient[56 x 56 x 64 x *2]] [conv1.y Gradient[56 x 56 x 64 x *2]] [conv1.z Gradient[56 x 56 x 64 x *2]] [conv2.W Gradient[192 x 1600]] [conv2.b Gradient[1 x 1 x 192]] [conv2.c Gradient[27 x 27 x 192 x *2]] [conv2.y Gradient[27 x 27 x 192 x *2]] [conv2.z Gradient[27 x 27 x 192 x *2]] [conv3.W Gradient[384 x 1728]] [conv3.b Gradient[1 x 1 x 384]] [conv3.c Gradient[13 x 13 x 384 x *2]] [conv3.y Gradient[13 x 13 x 384 x *2]] [conv3.z Gradient[13 x 13 x 384 x *2]] [conv4.W Gradient[256 x 3456]] [conv4.b Gradient[1 x 1 x 256]] [conv4.c Gradient[13 x 13 x 256 x *2]] [conv4.y Gradient[13 x 13 x 256 x *2]] [conv4.z Gradient[13 x 13 x 256 x *2]] [conv5.W Gradient[256 x 2304]] [conv5.b Gradient[1 x 1 x 256]] [conv5.c Gradient[13 x 13 x 256 x *2]] [conv5.y Gradient[13 x 13 x 256 x *2]] [conv5.z Gradient[13 x 13 x 256 x *2]] [err Gradient[1]] [errTop5 Gradient[1]] [features Gradient[224 x 224 x 3 x *2]] [h1.W Gradient[4096 x 6 x 6 x 256]] [h1.b Gradient[4096]] [h1.t Gradient[4096 x *2]] [h1.y Gradient[4096 x *2]] [h1.z Gradient[4096 x *2]] [h1_d Gradient[4096 x *2]] [h2.W Gradient[4096 x 4096]] [h2.b Gradient[4096]] [h2.t Gradient[4096 x *2]] [h2.y Gradient[4096 x *2]] [h2.z Gradient[4096 x *2]] [h2_d Gradient[4096 x *2]] [labels Gradient[1000 x *2]] [pool1 Gradient[27 x 27 x 64 x *2]] [pool2 Gradient[13 x 13 x 192 x *2]] [pool3 Gradient[6 x 6 x 256 x *2]] [unnamed137 Gradient[1 x 1]] }
|
||||
000000E28E168F70: {[conv3.W Value[384 x 1728]] }
|
||||
000000E28E1691F0: {[conv5.W Value[256 x 2304]] }
|
||||
000000E28E1693D0: {[conv4.b Value[1 x 1 x 256]] }
|
||||
000000E28E169510: {[conv4.W Value[256 x 3456]] }
|
||||
000000E28E169830: {[conv5.b Value[1 x 1 x 256]] }
|
||||
000000E28E1698D0: {[conv3.b Value[1 x 1 x 384]] }
|
||||
000000E36C778260: {[OutputNodes.b Value[1000]] }
|
||||
000000E36C7783A0: {[OutputNodes.W Value[1000 x 4096]] }
|
||||
000000E36C778440: {[labels Value[1000 x *2]] }
|
||||
000000E36C7786C0: {[features Value[224 x 224 x 3 x *2]] }
|
||||
000000E36C7788A0: {[h1.b Value[4096]] }
|
||||
000000E36C7789E0: {[h2.b Value[4096]] }
|
||||
000000E36C778B20: {[h2.W Value[4096 x 4096]] }
|
||||
000000E36C778DA0: {[h1.W Value[4096 x 6 x 6 x 256]] }
|
||||
000000E370969220: {[conv5.y Value[13 x 13 x 256 x *2]] }
|
||||
000000E370969360: {[h1.t Value[4096 x *2]] }
|
||||
000000E3709694A0: {[conv4.z Value[13 x 13 x 256 x *2]] }
|
||||
000000E370969540: {[conv4.c Value[13 x 13 x 256 x *2]] }
|
||||
000000E370969680: {[conv4.y Value[13 x 13 x 256 x *2]] }
|
||||
000000E370969720: {[conv5.z Value[13 x 13 x 256 x *2]] }
|
||||
000000E3709697C0: {[h1.z Value[4096 x *2]] }
|
||||
000000E370969860: {[h1_d Value[4096 x *2]] }
|
||||
000000E3709699A0: {[h2.t Value[4096 x *2]] }
|
||||
000000E370969A40: {[h2.z Value[4096 x *2]] }
|
||||
000000E370969AE0: {[h2.y Value[4096 x *2]] }
|
||||
000000E370969B80: {[h2_d Value[4096 x *2]] }
|
||||
000000E370969C20: {[conv3.y Value[13 x 13 x 384 x *2]] }
|
||||
000000E370969CC0: {[conv5.c Value[13 x 13 x 256 x *2]] }
|
||||
000000E370969D60: {[h1.y Value[4096 x *2]] }
|
||||
000000E370969EA0: {[OutputNodes.t Value[1000 x *2]] }
|
||||
000000E370969F40: {[pool3 Value[6 x 6 x 256 x *2]] }
|
||||
000000E37096A080: {[OutputNodes.z Value[1000 x *2]] }
|
||||
000000E3728E02A0: {[conv2.y Value[27 x 27 x 192 x *2]] }
|
||||
000000E3728E0340: {[conv1.c Value[56 x 56 x 64 x *2]] }
|
||||
000000E3728E03E0: {[err Value[1]] }
|
||||
000000E3728E0480: {[conv1.z Value[56 x 56 x 64 x *2]] }
|
||||
000000E3728E0700: {[pool2 Value[13 x 13 x 192 x *2]] }
|
||||
000000E3728E07A0: {[conv3.c Value[13 x 13 x 384 x *2]] }
|
||||
000000E3728E0980: {[errTop5 Value[1]] }
|
||||
000000E3728E0A20: {[conv3.z Value[13 x 13 x 384 x *2]] }
|
||||
000000E3728E0AC0: {[ce Value[1]] }
|
||||
000000E3728E0CA0: {[unnamed137 Value[1 x 1]] }
|
||||
000000E3728E0DE0: {[conv1.y Value[56 x 56 x 64 x *2]] }
|
||||
000000E3728E0E80: {[pool1 Value[27 x 27 x 64 x *2]] }
|
||||
000000E3728E0F20: {[conv2.c Value[27 x 27 x 192 x *2]] }
|
||||
000000E3728E1100: {[conv2.z Value[27 x 27 x 192 x *2]] }
|
||||
000000E372D9CB80: {[conv2.b Value[1 x 1 x 192]] }
|
||||
000000E372D9CE00: {[conv1.W Value[64 x 363]] }
|
||||
000000E372D9CFE0: {[conv2.W Value[192 x 1600]] }
|
||||
000000E372D9D120: {[conv1.b Value[1 x 1 x 64]] }
|
||||
|
||||
05/03/2016 14:12:19: Final Results: Minibatch[1-32]: err = 0.99800000 * 500; errTop5 = 0.99600000 * 500; ce = 6.94932878 * 500; perplexity = 1042.44978531
|
||||
|
||||
05/03/2016 14:12:19: Action "test" complete.
|
||||
|
||||
05/03/2016 14:12:19: __COMPLETED__
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
|
||||
. $TEST_ROOT_DIR/run-test-common
|
||||
|
||||
# This test uses a large dataset which is not part of the CNTK repository itself
|
||||
# We use the dataset from an external location specified using an environment variable
|
||||
if [[ "$CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY" == "" || ! -d "$CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY" ]]; then
|
||||
echo 'This test uses external data that is not part of the CNTK repository. Environment variable CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY must be set to point to the external test data location'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$OS" == "Windows_NT" ]; then
|
||||
DataSourceDir=`cygpath -au $CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY`/private/Image/ResNet/Data/v0
|
||||
else
|
||||
DataSourceDir=$CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY/private/Image/ResNet/Data/v0
|
||||
fi
|
||||
|
||||
# Copy the test data to the test run directory
|
||||
echo 'Copying test data to local directory'
|
||||
DataDir=$TEST_RUN_DIR/TestData
|
||||
mkdir $DataDir
|
||||
cp -R $DataSourceDir/* $DataDir || exit $?
|
||||
|
||||
OriginalTestDir=..
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines copied from $OriginalTestDir must match the baselines of the original test.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ConfigDir=$TEST_DIR/..
|
||||
|
||||
# Set the required parameters for the configuration
|
||||
if [ "$OS" == "Windows_NT" ]; then
|
||||
ConfigDir=$(cygpath -aw $ConfigDir)
|
||||
fi
|
||||
|
||||
# cntkrun <CNTK config file name> <additional CNTK args>
|
||||
cntkrun AlexNetCommon.cntk "configFile=$ConfigDir/AlexNetComposite.cntk"
|
||||
ExitCode=$?
|
||||
|
||||
# Delete the test data
|
||||
rm -rf $DataDir
|
||||
|
||||
exit $ExitCode
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
dataDir: ../../Data
|
||||
tags:
|
||||
# running on every BVT job in 'I' (Image) leg:
|
||||
- bvt-i (build_sku == 'gpu') and (device=='gpu') and (flavor=='release')
|
||||
# running every Nightly job in 'I' leg
|
||||
- nightly-i (build_sku == 'gpu') and (device=='gpu') and (flavor=='release')
|
||||
|
||||
testCases:
|
||||
CNTK Run must be completed:
|
||||
patterns:
|
||||
- __COMPLETED__
|
||||
|
||||
Must train epochs in exactly same order and parameters:
|
||||
patterns:
|
||||
- Starting Epoch {{integer}}
|
||||
- learning rate per sample = {{float}}
|
||||
- momentum = {{float}}
|
||||
|
||||
Epochs must be finished with expected results:
|
||||
patterns:
|
||||
- Finished Epoch[{{integer}} of {{integer}}]
|
||||
- ce = {{float,tolerance=2.0%}}
|
||||
- err = {{float,tolerance=2.0%}}
|
||||
- learningRatePerSample = {{float,tolerance=0.001%}}
|
||||
|
||||
Per-minibatch training results must match:
|
||||
patterns:
|
||||
- Epoch[{{integer}} of {{integer}}]-Minibatch[{{integer}}-{{integer}}
|
||||
- " * {{integer}}; "
|
||||
- ce = {{float,tolerance=2.0%}}
|
||||
|
|
@ -21,8 +21,12 @@ DataDir=$TEST_RUN_DIR/TestData
|
|||
mkdir $DataDir
|
||||
cp -R $DataSourceDir/* $DataDir || exit $?
|
||||
|
||||
if [ "$OS" == "Windows_NT" ]; then
|
||||
ConfigDir=$(cygpath -aw $ConfigDir)
|
||||
fi
|
||||
|
||||
# cntkrun <CNTK config file name> <additional CNTK args>
|
||||
cntkrun AlexNet.cntk
|
||||
cntkrun AlexNetCommon.cntk "configFile=$ConfigDir/AlexNet.cntk"
|
||||
ExitCode=$?
|
||||
|
||||
# Delete the test data
|
||||
|
|
|
@ -41,7 +41,6 @@ train=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -308,7 +307,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -411,4 +409,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -30,7 +30,6 @@ train=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.0
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
# rnnType=LSTM
|
||||
|
||||
|
@ -297,7 +296,6 @@ test=[
|
|||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
@ -400,4 +398,4 @@ test=[
|
|||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
@ -71,7 +71,6 @@ write = [
|
|||
|
||||
deviceId = $DeviceId$
|
||||
traceLevel = 1
|
||||
useValidation=true
|
||||
|
||||
printValues=true
|
||||
|
||||
|
|
|
@ -630,76 +630,76 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 3.74305420; EvalErrorPrediction = 0.81132812; TotalTime = 1.61207s; TotalTimePerSample = 0.62972ms; SamplesPerSecond = 1588
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.94799194; EvalErrorPrediction = 0.72539062; TotalTime = 1.71218s; TotalTimePerSample = 0.66882ms; SamplesPerSecond = 1495
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.62617187; EvalErrorPrediction = 0.68046875; TotalTime = 1.96081s; TotalTimePerSample = 0.76594ms; SamplesPerSecond = 1305
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 2.31340332; EvalErrorPrediction = 0.60000000; TotalTime = 1.98096s; TotalTimePerSample = 0.77381ms; SamplesPerSecond = 1292
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 2.08197784; EvalErrorPrediction = 0.56367188; TotalTime = 2.37392s; TotalTimePerSample = 0.92731ms; SamplesPerSecond = 1078
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.93575439; EvalErrorPrediction = 0.53437500; TotalTime = 2.27887s; TotalTimePerSample = 0.89018ms; SamplesPerSecond = 1123
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.83957062; EvalErrorPrediction = 0.51796875; TotalTime = 2.12047s; TotalTimePerSample = 0.82831ms; SamplesPerSecond = 1207
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.70679779; EvalErrorPrediction = 0.48750000; TotalTime = 1.99332s; TotalTimePerSample = 0.77864ms; SamplesPerSecond = 1284
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.59371796; EvalErrorPrediction = 0.45703125; TotalTime = 2.26050s; TotalTimePerSample = 0.88301ms; SamplesPerSecond = 1132
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.64279327; EvalErrorPrediction = 0.48593750; TotalTime = 2.19745s; TotalTimePerSample = 0.85838ms; SamplesPerSecond = 1164
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.60591888; EvalErrorPrediction = 0.47578125; TotalTime = 2.17477s; TotalTimePerSample = 0.84952ms; SamplesPerSecond = 1177
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.52358704; EvalErrorPrediction = 0.44882813; TotalTime = 2.13886s; TotalTimePerSample = 0.83549ms; SamplesPerSecond = 1196
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.49677734; EvalErrorPrediction = 0.44609375; TotalTime = 2.13765s; TotalTimePerSample = 0.83502ms; SamplesPerSecond = 1197
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.54127502; EvalErrorPrediction = 0.45273438; TotalTime = 2.20730s; TotalTimePerSample = 0.86222ms; SamplesPerSecond = 1159
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.43566284; EvalErrorPrediction = 0.41406250; TotalTime = 2.14483s; TotalTimePerSample = 0.83782ms; SamplesPerSecond = 1193
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41996460; EvalErrorPrediction = 0.40976563; TotalTime = 2.27204s; TotalTimePerSample = 0.88751ms; SamplesPerSecond = 1126
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.38546448; EvalErrorPrediction = 0.40976563; TotalTime = 2.37860s; TotalTimePerSample = 0.92914ms; SamplesPerSecond = 1076
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.40654907; EvalErrorPrediction = 0.42109375; TotalTime = 2.21343s; TotalTimePerSample = 0.86462ms; SamplesPerSecond = 1156
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41048584; EvalErrorPrediction = 0.41445312; TotalTime = 2.20519s; TotalTimePerSample = 0.86140ms; SamplesPerSecond = 1160
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.43002319; EvalErrorPrediction = 0.42500000; TotalTime = 2.10237s; TotalTimePerSample = 0.82124ms; SamplesPerSecond = 1217
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41000977; EvalErrorPrediction = 0.42382812; TotalTime = 2.31127s; TotalTimePerSample = 0.90284ms; SamplesPerSecond = 1107
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33088989; EvalErrorPrediction = 0.40468750; TotalTime = 2.30367s; TotalTimePerSample = 0.89987ms; SamplesPerSecond = 1111
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.28450928; EvalErrorPrediction = 0.38515625; TotalTime = 2.22202s; TotalTimePerSample = 0.86798ms; SamplesPerSecond = 1152
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.34680481; EvalErrorPrediction = 0.40664062; TotalTime = 2.28282s; TotalTimePerSample = 0.89173ms; SamplesPerSecond = 1121
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.32020569; EvalErrorPrediction = 0.39140625; TotalTime = 2.06229s; TotalTimePerSample = 0.80558ms; SamplesPerSecond = 1241
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22445068; EvalErrorPrediction = 0.37031250; TotalTime = 2.10306s; TotalTimePerSample = 0.82151ms; SamplesPerSecond = 1217
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23881226; EvalErrorPrediction = 0.37109375; TotalTime = 2.26618s; TotalTimePerSample = 0.88523ms; SamplesPerSecond = 1129
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.30255432; EvalErrorPrediction = 0.38984375; TotalTime = 2.17350s; TotalTimePerSample = 0.84902ms; SamplesPerSecond = 1177
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22100830; EvalErrorPrediction = 0.36992188; TotalTime = 1.77139s; TotalTimePerSample = 0.69195ms; SamplesPerSecond = 1445
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21442871; EvalErrorPrediction = 0.36445312; TotalTime = 2.28764s; TotalTimePerSample = 0.89361ms; SamplesPerSecond = 1119
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23150024; EvalErrorPrediction = 0.37578125; TotalTime = 2.29486s; TotalTimePerSample = 0.89643ms; SamplesPerSecond = 1115
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.25499268; EvalErrorPrediction = 0.37656250; TotalTime = 2.14378s; TotalTimePerSample = 0.83741ms; SamplesPerSecond = 1194
|
||||
Finished Epoch[ 1 of 2]: [Training] CrossEntropyWithSoftmax = 1.6395972; EvalErrorPrediction = 0.46284181; learningRatePerSample = 0.003125000047; EpochTime=69.649363
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 3.74305420; err = 0.81132812; TotalTime = 1.61207s; TotalTimePerSample = 0.62972ms; SamplesPerSecond = 1588
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.94799194; err = 0.72539062; TotalTime = 1.71218s; TotalTimePerSample = 0.66882ms; SamplesPerSecond = 1495
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.62617187; err = 0.68046875; TotalTime = 1.96081s; TotalTimePerSample = 0.76594ms; SamplesPerSecond = 1305
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 2.31340332; err = 0.60000000; TotalTime = 1.98096s; TotalTimePerSample = 0.77381ms; SamplesPerSecond = 1292
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 2.08197784; err = 0.56367188; TotalTime = 2.37392s; TotalTimePerSample = 0.92731ms; SamplesPerSecond = 1078
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.93575439; err = 0.53437500; TotalTime = 2.27887s; TotalTimePerSample = 0.89018ms; SamplesPerSecond = 1123
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.83957062; err = 0.51796875; TotalTime = 2.12047s; TotalTimePerSample = 0.82831ms; SamplesPerSecond = 1207
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.70679779; err = 0.48750000; TotalTime = 1.99332s; TotalTimePerSample = 0.77864ms; SamplesPerSecond = 1284
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.59371796; err = 0.45703125; TotalTime = 2.26050s; TotalTimePerSample = 0.88301ms; SamplesPerSecond = 1132
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.64279327; err = 0.48593750; TotalTime = 2.19745s; TotalTimePerSample = 0.85838ms; SamplesPerSecond = 1164
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.60591888; err = 0.47578125; TotalTime = 2.17477s; TotalTimePerSample = 0.84952ms; SamplesPerSecond = 1177
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.52358704; err = 0.44882813; TotalTime = 2.13886s; TotalTimePerSample = 0.83549ms; SamplesPerSecond = 1196
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.49677734; err = 0.44609375; TotalTime = 2.13765s; TotalTimePerSample = 0.83502ms; SamplesPerSecond = 1197
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.54127502; err = 0.45273438; TotalTime = 2.20730s; TotalTimePerSample = 0.86222ms; SamplesPerSecond = 1159
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.43566284; err = 0.41406250; TotalTime = 2.14483s; TotalTimePerSample = 0.83782ms; SamplesPerSecond = 1193
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.41996460; err = 0.40976563; TotalTime = 2.27204s; TotalTimePerSample = 0.88751ms; SamplesPerSecond = 1126
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.38546448; err = 0.40976563; TotalTime = 2.37860s; TotalTimePerSample = 0.92914ms; SamplesPerSecond = 1076
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.40654907; err = 0.42109375; TotalTime = 2.21343s; TotalTimePerSample = 0.86462ms; SamplesPerSecond = 1156
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.41048584; err = 0.41445312; TotalTime = 2.20519s; TotalTimePerSample = 0.86140ms; SamplesPerSecond = 1160
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.43002319; err = 0.42500000; TotalTime = 2.10237s; TotalTimePerSample = 0.82124ms; SamplesPerSecond = 1217
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.41000977; err = 0.42382812; TotalTime = 2.31127s; TotalTimePerSample = 0.90284ms; SamplesPerSecond = 1107
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.33088989; err = 0.40468750; TotalTime = 2.30367s; TotalTimePerSample = 0.89987ms; SamplesPerSecond = 1111
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.28450928; err = 0.38515625; TotalTime = 2.22202s; TotalTimePerSample = 0.86798ms; SamplesPerSecond = 1152
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.34680481; err = 0.40664062; TotalTime = 2.28282s; TotalTimePerSample = 0.89173ms; SamplesPerSecond = 1121
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.32020569; err = 0.39140625; TotalTime = 2.06229s; TotalTimePerSample = 0.80558ms; SamplesPerSecond = 1241
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.22445068; err = 0.37031250; TotalTime = 2.10306s; TotalTimePerSample = 0.82151ms; SamplesPerSecond = 1217
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.23881226; err = 0.37109375; TotalTime = 2.26618s; TotalTimePerSample = 0.88523ms; SamplesPerSecond = 1129
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.30255432; err = 0.38984375; TotalTime = 2.17350s; TotalTimePerSample = 0.84902ms; SamplesPerSecond = 1177
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.22100830; err = 0.36992188; TotalTime = 1.77139s; TotalTimePerSample = 0.69195ms; SamplesPerSecond = 1445
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.21442871; err = 0.36445312; TotalTime = 2.28764s; TotalTimePerSample = 0.89361ms; SamplesPerSecond = 1119
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.23150024; err = 0.37578125; TotalTime = 2.29486s; TotalTimePerSample = 0.89643ms; SamplesPerSecond = 1115
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.25499268; err = 0.37656250; TotalTime = 2.14378s; TotalTimePerSample = 0.83741ms; SamplesPerSecond = 1194
|
||||
Finished Epoch[ 1 of 2]: [Training] ce = 1.6395972; err = 0.46284181; learningRatePerSample = 0.003125000047; EpochTime=69.649363
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.900000
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 1.24432030; EvalErrorPrediction = 0.38437500; TotalTime = 2.17401s; TotalTimePerSample = 0.84922ms; SamplesPerSecond = 1177
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21878033; EvalErrorPrediction = 0.37500000; TotalTime = 2.22384s; TotalTimePerSample = 0.86869ms; SamplesPerSecond = 1151
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 1.28410358; EvalErrorPrediction = 0.37812500; TotalTime = 2.19445s; TotalTimePerSample = 0.85721ms; SamplesPerSecond = 1166
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22131767; EvalErrorPrediction = 0.37382813; TotalTime = 2.02087s; TotalTimePerSample = 0.78940ms; SamplesPerSecond = 1266
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17638283; EvalErrorPrediction = 0.35273437; TotalTime = 1.98391s; TotalTimePerSample = 0.77497ms; SamplesPerSecond = 1290
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.28770714; EvalErrorPrediction = 0.39218750; TotalTime = 2.10243s; TotalTimePerSample = 0.82126ms; SamplesPerSecond = 1217
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22729797; EvalErrorPrediction = 0.37421875; TotalTime = 2.10615s; TotalTimePerSample = 0.82271ms; SamplesPerSecond = 1215
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17497940; EvalErrorPrediction = 0.36953125; TotalTime = 2.13498s; TotalTimePerSample = 0.83398ms; SamplesPerSecond = 1199
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23583298; EvalErrorPrediction = 0.35742188; TotalTime = 2.17273s; TotalTimePerSample = 0.84872ms; SamplesPerSecond = 1178
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16937485; EvalErrorPrediction = 0.37187500; TotalTime = 1.96073s; TotalTimePerSample = 0.76591ms; SamplesPerSecond = 1305
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18656921; EvalErrorPrediction = 0.34765625; TotalTime = 2.07057s; TotalTimePerSample = 0.80882ms; SamplesPerSecond = 1236
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18989105; EvalErrorPrediction = 0.35781250; TotalTime = 1.97441s; TotalTimePerSample = 0.77125ms; SamplesPerSecond = 1296
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17073975; EvalErrorPrediction = 0.36445312; TotalTime = 2.17177s; TotalTimePerSample = 0.84835ms; SamplesPerSecond = 1178
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13176422; EvalErrorPrediction = 0.34375000; TotalTime = 2.20069s; TotalTimePerSample = 0.85964ms; SamplesPerSecond = 1163
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.08576660; EvalErrorPrediction = 0.32421875; TotalTime = 2.25159s; TotalTimePerSample = 0.87953ms; SamplesPerSecond = 1136
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11148376; EvalErrorPrediction = 0.33867188; TotalTime = 2.25098s; TotalTimePerSample = 0.87929ms; SamplesPerSecond = 1137
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20480194; EvalErrorPrediction = 0.36250000; TotalTime = 2.09545s; TotalTimePerSample = 0.81854ms; SamplesPerSecond = 1221
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17241821; EvalErrorPrediction = 0.35820313; TotalTime = 2.07758s; TotalTimePerSample = 0.81155ms; SamplesPerSecond = 1232
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13457642; EvalErrorPrediction = 0.35429688; TotalTime = 2.10773s; TotalTimePerSample = 0.82333ms; SamplesPerSecond = 1214
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12700500; EvalErrorPrediction = 0.35234375; TotalTime = 2.33236s; TotalTimePerSample = 0.91108ms; SamplesPerSecond = 1097
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11282043; EvalErrorPrediction = 0.33515625; TotalTime = 2.11595s; TotalTimePerSample = 0.82654ms; SamplesPerSecond = 1209
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13374786; EvalErrorPrediction = 0.34296875; TotalTime = 2.14508s; TotalTimePerSample = 0.83792ms; SamplesPerSecond = 1193
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14316711; EvalErrorPrediction = 0.35312500; TotalTime = 2.15834s; TotalTimePerSample = 0.84310ms; SamplesPerSecond = 1186
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27329712; EvalErrorPrediction = 0.38554688; TotalTime = 2.26755s; TotalTimePerSample = 0.88576ms; SamplesPerSecond = 1128
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15661011; EvalErrorPrediction = 0.34726563; TotalTime = 2.30714s; TotalTimePerSample = 0.90123ms; SamplesPerSecond = 1109
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13043823; EvalErrorPrediction = 0.34101562; TotalTime = 2.06456s; TotalTimePerSample = 0.80647ms; SamplesPerSecond = 1239
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13791809; EvalErrorPrediction = 0.34960938; TotalTime = 2.19548s; TotalTimePerSample = 0.85761ms; SamplesPerSecond = 1166
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14694214; EvalErrorPrediction = 0.34101562; TotalTime = 2.33209s; TotalTimePerSample = 0.91097ms; SamplesPerSecond = 1097
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06658325; EvalErrorPrediction = 0.33476563; TotalTime = 2.20537s; TotalTimePerSample = 0.86147ms; SamplesPerSecond = 1160
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10054626; EvalErrorPrediction = 0.33750000; TotalTime = 2.02138s; TotalTimePerSample = 0.78960ms; SamplesPerSecond = 1266
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09098816; EvalErrorPrediction = 0.34375000; TotalTime = 2.19745s; TotalTimePerSample = 0.85838ms; SamplesPerSecond = 1164
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.05595398; EvalErrorPrediction = 0.33671875; TotalTime = 2.11208s; TotalTimePerSample = 0.82503ms; SamplesPerSecond = 1212
|
||||
Finished Epoch[ 2 of 2]: [Training] CrossEntropyWithSoftmax = 1.165754; EvalErrorPrediction = 0.35567626; learningRatePerSample = 0.003125000047; EpochTime=68.751932
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 1.24432030; err = 0.38437500; TotalTime = 2.17401s; TotalTimePerSample = 0.84922ms; SamplesPerSecond = 1177
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 1.21878033; err = 0.37500000; TotalTime = 2.22384s; TotalTimePerSample = 0.86869ms; SamplesPerSecond = 1151
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 1.28410358; err = 0.37812500; TotalTime = 2.19445s; TotalTimePerSample = 0.85721ms; SamplesPerSecond = 1166
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.22131767; err = 0.37382813; TotalTime = 2.02087s; TotalTimePerSample = 0.78940ms; SamplesPerSecond = 1266
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.17638283; err = 0.35273437; TotalTime = 1.98391s; TotalTimePerSample = 0.77497ms; SamplesPerSecond = 1290
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.28770714; err = 0.39218750; TotalTime = 2.10243s; TotalTimePerSample = 0.82126ms; SamplesPerSecond = 1217
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.22729797; err = 0.37421875; TotalTime = 2.10615s; TotalTimePerSample = 0.82271ms; SamplesPerSecond = 1215
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.17497940; err = 0.36953125; TotalTime = 2.13498s; TotalTimePerSample = 0.83398ms; SamplesPerSecond = 1199
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.23583298; err = 0.35742188; TotalTime = 2.17273s; TotalTimePerSample = 0.84872ms; SamplesPerSecond = 1178
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.16937485; err = 0.37187500; TotalTime = 1.96073s; TotalTimePerSample = 0.76591ms; SamplesPerSecond = 1305
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.18656921; err = 0.34765625; TotalTime = 2.07057s; TotalTimePerSample = 0.80882ms; SamplesPerSecond = 1236
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.18989105; err = 0.35781250; TotalTime = 1.97441s; TotalTimePerSample = 0.77125ms; SamplesPerSecond = 1296
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.17073975; err = 0.36445312; TotalTime = 2.17177s; TotalTimePerSample = 0.84835ms; SamplesPerSecond = 1178
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.13176422; err = 0.34375000; TotalTime = 2.20069s; TotalTimePerSample = 0.85964ms; SamplesPerSecond = 1163
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.08576660; err = 0.32421875; TotalTime = 2.25159s; TotalTimePerSample = 0.87953ms; SamplesPerSecond = 1136
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.11148376; err = 0.33867188; TotalTime = 2.25098s; TotalTimePerSample = 0.87929ms; SamplesPerSecond = 1137
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.20480194; err = 0.36250000; TotalTime = 2.09545s; TotalTimePerSample = 0.81854ms; SamplesPerSecond = 1221
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.17241821; err = 0.35820313; TotalTime = 2.07758s; TotalTimePerSample = 0.81155ms; SamplesPerSecond = 1232
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.13457642; err = 0.35429688; TotalTime = 2.10773s; TotalTimePerSample = 0.82333ms; SamplesPerSecond = 1214
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.12700500; err = 0.35234375; TotalTime = 2.33236s; TotalTimePerSample = 0.91108ms; SamplesPerSecond = 1097
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.11282043; err = 0.33515625; TotalTime = 2.11595s; TotalTimePerSample = 0.82654ms; SamplesPerSecond = 1209
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.13374786; err = 0.34296875; TotalTime = 2.14508s; TotalTimePerSample = 0.83792ms; SamplesPerSecond = 1193
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.14316711; err = 0.35312500; TotalTime = 2.15834s; TotalTimePerSample = 0.84310ms; SamplesPerSecond = 1186
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.27329712; err = 0.38554688; TotalTime = 2.26755s; TotalTimePerSample = 0.88576ms; SamplesPerSecond = 1128
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.15661011; err = 0.34726563; TotalTime = 2.30714s; TotalTimePerSample = 0.90123ms; SamplesPerSecond = 1109
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.13043823; err = 0.34101562; TotalTime = 2.06456s; TotalTimePerSample = 0.80647ms; SamplesPerSecond = 1239
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.13791809; err = 0.34960938; TotalTime = 2.19548s; TotalTimePerSample = 0.85761ms; SamplesPerSecond = 1166
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.14694214; err = 0.34101562; TotalTime = 2.33209s; TotalTimePerSample = 0.91097ms; SamplesPerSecond = 1097
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.06658325; err = 0.33476563; TotalTime = 2.20537s; TotalTimePerSample = 0.86147ms; SamplesPerSecond = 1160
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.10054626; err = 0.33750000; TotalTime = 2.02138s; TotalTimePerSample = 0.78960ms; SamplesPerSecond = 1266
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.09098816; err = 0.34375000; TotalTime = 2.19745s; TotalTimePerSample = 0.85838ms; SamplesPerSecond = 1164
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.05595398; err = 0.33671875; TotalTime = 2.11208s; TotalTimePerSample = 0.82503ms; SamplesPerSecond = 1212
|
||||
Finished Epoch[ 2 of 2]: [Training] ce = 1.165754; err = 0.35567626; learningRatePerSample = 0.003125000047; EpochTime=68.751932
|
||||
CNTKCommandTrainEnd: DPT_Pre1
|
||||
|
||||
|
||||
|
@ -1784,76 +1784,76 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 4.12742958; EvalErrorPrediction = 0.80507812; TotalTime = 3.39015s; TotalTimePerSample = 1.32428ms; SamplesPerSecond = 755
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.76509590; EvalErrorPrediction = 0.69960937; TotalTime = 3.25866s; TotalTimePerSample = 1.27292ms; SamplesPerSecond = 785
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.20613861; EvalErrorPrediction = 0.57812500; TotalTime = 3.30868s; TotalTimePerSample = 1.29245ms; SamplesPerSecond = 773
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.90078354; EvalErrorPrediction = 0.50898438; TotalTime = 3.24681s; TotalTimePerSample = 1.26828ms; SamplesPerSecond = 788
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.71711044; EvalErrorPrediction = 0.48710938; TotalTime = 3.34396s; TotalTimePerSample = 1.30623ms; SamplesPerSecond = 765
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.58837662; EvalErrorPrediction = 0.44726562; TotalTime = 3.54100s; TotalTimePerSample = 1.38320ms; SamplesPerSecond = 722
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.54870148; EvalErrorPrediction = 0.44296875; TotalTime = 3.27957s; TotalTimePerSample = 1.28108ms; SamplesPerSecond = 780
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.46472015; EvalErrorPrediction = 0.42773438; TotalTime = 3.39303s; TotalTimePerSample = 1.32540ms; SamplesPerSecond = 754
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.38026276; EvalErrorPrediction = 0.40273437; TotalTime = 3.33514s; TotalTimePerSample = 1.30279ms; SamplesPerSecond = 767
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.39969788; EvalErrorPrediction = 0.42148438; TotalTime = 3.28349s; TotalTimePerSample = 1.28262ms; SamplesPerSecond = 779
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.37001648; EvalErrorPrediction = 0.41796875; TotalTime = 3.17869s; TotalTimePerSample = 1.24168ms; SamplesPerSecond = 805
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.35947266; EvalErrorPrediction = 0.40820312; TotalTime = 3.54772s; TotalTimePerSample = 1.38583ms; SamplesPerSecond = 721
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.32850189; EvalErrorPrediction = 0.40468750; TotalTime = 3.44065s; TotalTimePerSample = 1.34401ms; SamplesPerSecond = 744
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.39116974; EvalErrorPrediction = 0.40703125; TotalTime = 3.30371s; TotalTimePerSample = 1.29051ms; SamplesPerSecond = 774
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31802521; EvalErrorPrediction = 0.38437500; TotalTime = 3.36631s; TotalTimePerSample = 1.31496ms; SamplesPerSecond = 760
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.32752075; EvalErrorPrediction = 0.40117188; TotalTime = 3.14228s; TotalTimePerSample = 1.22745ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27012329; EvalErrorPrediction = 0.37929687; TotalTime = 3.23155s; TotalTimePerSample = 1.26233ms; SamplesPerSecond = 792
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.29055176; EvalErrorPrediction = 0.38359375; TotalTime = 3.35835s; TotalTimePerSample = 1.31186ms; SamplesPerSecond = 762
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.29355164; EvalErrorPrediction = 0.38593750; TotalTime = 3.42075s; TotalTimePerSample = 1.33623ms; SamplesPerSecond = 748
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27504883; EvalErrorPrediction = 0.38906250; TotalTime = 3.37690s; TotalTimePerSample = 1.31910ms; SamplesPerSecond = 758
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27267761; EvalErrorPrediction = 0.39101562; TotalTime = 3.12080s; TotalTimePerSample = 1.21906ms; SamplesPerSecond = 820
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21395569; EvalErrorPrediction = 0.36679688; TotalTime = 3.14198s; TotalTimePerSample = 1.22734ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20708313; EvalErrorPrediction = 0.36445312; TotalTime = 3.50516s; TotalTimePerSample = 1.36920ms; SamplesPerSecond = 730
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.25370178; EvalErrorPrediction = 0.38320312; TotalTime = 3.14201s; TotalTimePerSample = 1.22735ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22307739; EvalErrorPrediction = 0.37500000; TotalTime = 3.13153s; TotalTimePerSample = 1.22325ms; SamplesPerSecond = 817
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14909363; EvalErrorPrediction = 0.35234375; TotalTime = 3.41643s; TotalTimePerSample = 1.33454ms; SamplesPerSecond = 749
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17035828; EvalErrorPrediction = 0.35937500; TotalTime = 3.22442s; TotalTimePerSample = 1.25954ms; SamplesPerSecond = 793
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22515869; EvalErrorPrediction = 0.36875000; TotalTime = 3.47776s; TotalTimePerSample = 1.35850ms; SamplesPerSecond = 736
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16166687; EvalErrorPrediction = 0.35664062; TotalTime = 2.99925s; TotalTimePerSample = 1.17158ms; SamplesPerSecond = 853
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18268433; EvalErrorPrediction = 0.35820313; TotalTime = 3.23501s; TotalTimePerSample = 1.26368ms; SamplesPerSecond = 791
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16473083; EvalErrorPrediction = 0.35195312; TotalTime = 3.21572s; TotalTimePerSample = 1.25614ms; SamplesPerSecond = 796
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17591248; EvalErrorPrediction = 0.35195312; TotalTime = 3.07276s; TotalTimePerSample = 1.20030ms; SamplesPerSecond = 833
|
||||
Finished Epoch[ 1 of 2]: [Training] CrossEntropyWithSoftmax = 1.491325; EvalErrorPrediction = 0.42381594; learningRatePerSample = 0.003125000047; EpochTime=106.67356
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 4.12742958; err = 0.80507812; TotalTime = 3.39015s; TotalTimePerSample = 1.32428ms; SamplesPerSecond = 755
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.76509590; err = 0.69960937; TotalTime = 3.25866s; TotalTimePerSample = 1.27292ms; SamplesPerSecond = 785
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.20613861; err = 0.57812500; TotalTime = 3.30868s; TotalTimePerSample = 1.29245ms; SamplesPerSecond = 773
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.90078354; err = 0.50898438; TotalTime = 3.24681s; TotalTimePerSample = 1.26828ms; SamplesPerSecond = 788
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.71711044; err = 0.48710938; TotalTime = 3.34396s; TotalTimePerSample = 1.30623ms; SamplesPerSecond = 765
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.58837662; err = 0.44726562; TotalTime = 3.54100s; TotalTimePerSample = 1.38320ms; SamplesPerSecond = 722
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.54870148; err = 0.44296875; TotalTime = 3.27957s; TotalTimePerSample = 1.28108ms; SamplesPerSecond = 780
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.46472015; err = 0.42773438; TotalTime = 3.39303s; TotalTimePerSample = 1.32540ms; SamplesPerSecond = 754
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.38026276; err = 0.40273437; TotalTime = 3.33514s; TotalTimePerSample = 1.30279ms; SamplesPerSecond = 767
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.39969788; err = 0.42148438; TotalTime = 3.28349s; TotalTimePerSample = 1.28262ms; SamplesPerSecond = 779
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.37001648; err = 0.41796875; TotalTime = 3.17869s; TotalTimePerSample = 1.24168ms; SamplesPerSecond = 805
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.35947266; err = 0.40820312; TotalTime = 3.54772s; TotalTimePerSample = 1.38583ms; SamplesPerSecond = 721
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.32850189; err = 0.40468750; TotalTime = 3.44065s; TotalTimePerSample = 1.34401ms; SamplesPerSecond = 744
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.39116974; err = 0.40703125; TotalTime = 3.30371s; TotalTimePerSample = 1.29051ms; SamplesPerSecond = 774
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.31802521; err = 0.38437500; TotalTime = 3.36631s; TotalTimePerSample = 1.31496ms; SamplesPerSecond = 760
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.32752075; err = 0.40117188; TotalTime = 3.14228s; TotalTimePerSample = 1.22745ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.27012329; err = 0.37929687; TotalTime = 3.23155s; TotalTimePerSample = 1.26233ms; SamplesPerSecond = 792
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.29055176; err = 0.38359375; TotalTime = 3.35835s; TotalTimePerSample = 1.31186ms; SamplesPerSecond = 762
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.29355164; err = 0.38593750; TotalTime = 3.42075s; TotalTimePerSample = 1.33623ms; SamplesPerSecond = 748
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.27504883; err = 0.38906250; TotalTime = 3.37690s; TotalTimePerSample = 1.31910ms; SamplesPerSecond = 758
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.27267761; err = 0.39101562; TotalTime = 3.12080s; TotalTimePerSample = 1.21906ms; SamplesPerSecond = 820
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.21395569; err = 0.36679688; TotalTime = 3.14198s; TotalTimePerSample = 1.22734ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.20708313; err = 0.36445312; TotalTime = 3.50516s; TotalTimePerSample = 1.36920ms; SamplesPerSecond = 730
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.25370178; err = 0.38320312; TotalTime = 3.14201s; TotalTimePerSample = 1.22735ms; SamplesPerSecond = 814
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.22307739; err = 0.37500000; TotalTime = 3.13153s; TotalTimePerSample = 1.22325ms; SamplesPerSecond = 817
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.14909363; err = 0.35234375; TotalTime = 3.41643s; TotalTimePerSample = 1.33454ms; SamplesPerSecond = 749
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.17035828; err = 0.35937500; TotalTime = 3.22442s; TotalTimePerSample = 1.25954ms; SamplesPerSecond = 793
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.22515869; err = 0.36875000; TotalTime = 3.47776s; TotalTimePerSample = 1.35850ms; SamplesPerSecond = 736
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.16166687; err = 0.35664062; TotalTime = 2.99925s; TotalTimePerSample = 1.17158ms; SamplesPerSecond = 853
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.18268433; err = 0.35820313; TotalTime = 3.23501s; TotalTimePerSample = 1.26368ms; SamplesPerSecond = 791
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.16473083; err = 0.35195312; TotalTime = 3.21572s; TotalTimePerSample = 1.25614ms; SamplesPerSecond = 796
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.17591248; err = 0.35195312; TotalTime = 3.07276s; TotalTimePerSample = 1.20030ms; SamplesPerSecond = 833
|
||||
Finished Epoch[ 1 of 2]: [Training] ce = 1.491325; err = 0.42381594; learningRatePerSample = 0.003125000047; EpochTime=106.67356
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.900000
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14145651; EvalErrorPrediction = 0.35078125; TotalTime = 3.20015s; TotalTimePerSample = 1.25006ms; SamplesPerSecond = 799
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17236452; EvalErrorPrediction = 0.35703125; TotalTime = 3.58645s; TotalTimePerSample = 1.40096ms; SamplesPerSecond = 713
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23701782; EvalErrorPrediction = 0.37890625; TotalTime = 3.13229s; TotalTimePerSample = 1.22355ms; SamplesPerSecond = 817
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18644638; EvalErrorPrediction = 0.36132812; TotalTime = 3.23432s; TotalTimePerSample = 1.26341ms; SamplesPerSecond = 791
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12840500; EvalErrorPrediction = 0.34140625; TotalTime = 3.31180s; TotalTimePerSample = 1.29367ms; SamplesPerSecond = 772
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21571541; EvalErrorPrediction = 0.37031250; TotalTime = 3.27370s; TotalTimePerSample = 1.27879ms; SamplesPerSecond = 781
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14553375; EvalErrorPrediction = 0.34257813; TotalTime = 3.35806s; TotalTimePerSample = 1.31174ms; SamplesPerSecond = 762
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12870712; EvalErrorPrediction = 0.34453125; TotalTime = 3.07358s; TotalTimePerSample = 1.20062ms; SamplesPerSecond = 832
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15200119; EvalErrorPrediction = 0.34179688; TotalTime = 3.26694s; TotalTimePerSample = 1.27615ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12955780; EvalErrorPrediction = 0.35312500; TotalTime = 3.26072s; TotalTimePerSample = 1.27372ms; SamplesPerSecond = 785
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15128708; EvalErrorPrediction = 0.34414062; TotalTime = 3.13385s; TotalTimePerSample = 1.22416ms; SamplesPerSecond = 816
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13170090; EvalErrorPrediction = 0.34414062; TotalTime = 3.24222s; TotalTimePerSample = 1.26649ms; SamplesPerSecond = 789
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10571136; EvalErrorPrediction = 0.34296875; TotalTime = 3.26617s; TotalTimePerSample = 1.27585ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06392975; EvalErrorPrediction = 0.32695313; TotalTime = 2.93591s; TotalTimePerSample = 1.14684ms; SamplesPerSecond = 871
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.05555420; EvalErrorPrediction = 0.31835938; TotalTime = 3.06553s; TotalTimePerSample = 1.19747ms; SamplesPerSecond = 835
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06729126; EvalErrorPrediction = 0.32460937; TotalTime = 3.01623s; TotalTimePerSample = 1.17822ms; SamplesPerSecond = 848
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14530792; EvalErrorPrediction = 0.34687500; TotalTime = 3.26534s; TotalTimePerSample = 1.27552ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14569397; EvalErrorPrediction = 0.35625000; TotalTime = 3.23646s; TotalTimePerSample = 1.26424ms; SamplesPerSecond = 790
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07375793; EvalErrorPrediction = 0.32929687; TotalTime = 3.50725s; TotalTimePerSample = 1.37002ms; SamplesPerSecond = 729
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07886505; EvalErrorPrediction = 0.33671875; TotalTime = 3.40044s; TotalTimePerSample = 1.32829ms; SamplesPerSecond = 752
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06901398; EvalErrorPrediction = 0.33164063; TotalTime = 3.25460s; TotalTimePerSample = 1.27133ms; SamplesPerSecond = 786
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09929962; EvalErrorPrediction = 0.33437500; TotalTime = 3.16798s; TotalTimePerSample = 1.23749ms; SamplesPerSecond = 808
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12124939; EvalErrorPrediction = 0.34531250; TotalTime = 3.56923s; TotalTimePerSample = 1.39423ms; SamplesPerSecond = 717
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13580627; EvalErrorPrediction = 0.35937500; TotalTime = 3.10338s; TotalTimePerSample = 1.21226ms; SamplesPerSecond = 824
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09370117; EvalErrorPrediction = 0.33515625; TotalTime = 3.33700s; TotalTimePerSample = 1.30352ms; SamplesPerSecond = 767
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07206116; EvalErrorPrediction = 0.33359375; TotalTime = 3.24466s; TotalTimePerSample = 1.26745ms; SamplesPerSecond = 788
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06741028; EvalErrorPrediction = 0.33359375; TotalTime = 3.38665s; TotalTimePerSample = 1.32291ms; SamplesPerSecond = 755
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10143433; EvalErrorPrediction = 0.32734375; TotalTime = 3.31745s; TotalTimePerSample = 1.29588ms; SamplesPerSecond = 771
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.02370911; EvalErrorPrediction = 0.31757812; TotalTime = 3.08865s; TotalTimePerSample = 1.20650ms; SamplesPerSecond = 828
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.08736572; EvalErrorPrediction = 0.33984375; TotalTime = 3.50527s; TotalTimePerSample = 1.36924ms; SamplesPerSecond = 730
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06789551; EvalErrorPrediction = 0.32890625; TotalTime = 3.27224s; TotalTimePerSample = 1.27822ms; SamplesPerSecond = 782
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.05290527; EvalErrorPrediction = 0.33398438; TotalTime = 3.47792s; TotalTimePerSample = 1.35856ms; SamplesPerSecond = 736
|
||||
Finished Epoch[ 2 of 2]: [Training] CrossEntropyWithSoftmax = 1.114005; EvalErrorPrediction = 0.3416504; learningRatePerSample = 0.003125000047; EpochTime=104.51539
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 1.14145651; err = 0.35078125; TotalTime = 3.20015s; TotalTimePerSample = 1.25006ms; SamplesPerSecond = 799
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 1.17236452; err = 0.35703125; TotalTime = 3.58645s; TotalTimePerSample = 1.40096ms; SamplesPerSecond = 713
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 1.23701782; err = 0.37890625; TotalTime = 3.13229s; TotalTimePerSample = 1.22355ms; SamplesPerSecond = 817
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.18644638; err = 0.36132812; TotalTime = 3.23432s; TotalTimePerSample = 1.26341ms; SamplesPerSecond = 791
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.12840500; err = 0.34140625; TotalTime = 3.31180s; TotalTimePerSample = 1.29367ms; SamplesPerSecond = 772
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.21571541; err = 0.37031250; TotalTime = 3.27370s; TotalTimePerSample = 1.27879ms; SamplesPerSecond = 781
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.14553375; err = 0.34257813; TotalTime = 3.35806s; TotalTimePerSample = 1.31174ms; SamplesPerSecond = 762
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.12870712; err = 0.34453125; TotalTime = 3.07358s; TotalTimePerSample = 1.20062ms; SamplesPerSecond = 832
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.15200119; err = 0.34179688; TotalTime = 3.26694s; TotalTimePerSample = 1.27615ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.12955780; err = 0.35312500; TotalTime = 3.26072s; TotalTimePerSample = 1.27372ms; SamplesPerSecond = 785
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.15128708; err = 0.34414062; TotalTime = 3.13385s; TotalTimePerSample = 1.22416ms; SamplesPerSecond = 816
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.13170090; err = 0.34414062; TotalTime = 3.24222s; TotalTimePerSample = 1.26649ms; SamplesPerSecond = 789
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.10571136; err = 0.34296875; TotalTime = 3.26617s; TotalTimePerSample = 1.27585ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.06392975; err = 0.32695313; TotalTime = 2.93591s; TotalTimePerSample = 1.14684ms; SamplesPerSecond = 871
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.05555420; err = 0.31835938; TotalTime = 3.06553s; TotalTimePerSample = 1.19747ms; SamplesPerSecond = 835
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.06729126; err = 0.32460937; TotalTime = 3.01623s; TotalTimePerSample = 1.17822ms; SamplesPerSecond = 848
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.14530792; err = 0.34687500; TotalTime = 3.26534s; TotalTimePerSample = 1.27552ms; SamplesPerSecond = 783
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.14569397; err = 0.35625000; TotalTime = 3.23646s; TotalTimePerSample = 1.26424ms; SamplesPerSecond = 790
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.07375793; err = 0.32929687; TotalTime = 3.50725s; TotalTimePerSample = 1.37002ms; SamplesPerSecond = 729
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.07886505; err = 0.33671875; TotalTime = 3.40044s; TotalTimePerSample = 1.32829ms; SamplesPerSecond = 752
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.06901398; err = 0.33164063; TotalTime = 3.25460s; TotalTimePerSample = 1.27133ms; SamplesPerSecond = 786
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.09929962; err = 0.33437500; TotalTime = 3.16798s; TotalTimePerSample = 1.23749ms; SamplesPerSecond = 808
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.12124939; err = 0.34531250; TotalTime = 3.56923s; TotalTimePerSample = 1.39423ms; SamplesPerSecond = 717
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.13580627; err = 0.35937500; TotalTime = 3.10338s; TotalTimePerSample = 1.21226ms; SamplesPerSecond = 824
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.09370117; err = 0.33515625; TotalTime = 3.33700s; TotalTimePerSample = 1.30352ms; SamplesPerSecond = 767
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.07206116; err = 0.33359375; TotalTime = 3.24466s; TotalTimePerSample = 1.26745ms; SamplesPerSecond = 788
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.06741028; err = 0.33359375; TotalTime = 3.38665s; TotalTimePerSample = 1.32291ms; SamplesPerSecond = 755
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.10143433; err = 0.32734375; TotalTime = 3.31745s; TotalTimePerSample = 1.29588ms; SamplesPerSecond = 771
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.02370911; err = 0.31757812; TotalTime = 3.08865s; TotalTimePerSample = 1.20650ms; SamplesPerSecond = 828
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.08736572; err = 0.33984375; TotalTime = 3.50527s; TotalTimePerSample = 1.36924ms; SamplesPerSecond = 730
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.06789551; err = 0.32890625; TotalTime = 3.27224s; TotalTimePerSample = 1.27822ms; SamplesPerSecond = 782
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.05290527; err = 0.33398438; TotalTime = 3.47792s; TotalTimePerSample = 1.35856ms; SamplesPerSecond = 736
|
||||
Finished Epoch[ 2 of 2]: [Training] ce = 1.114005; err = 0.3416504; learningRatePerSample = 0.003125000047; EpochTime=104.51539
|
||||
CNTKCommandTrainEnd: DPT_Pre2
|
||||
|
||||
|
||||
|
@ -3168,101 +3168,101 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 4]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 4.01592903; EvalErrorPrediction = 0.82421875; TotalTime = 3.95135s; TotalTimePerSample = 1.54350ms; SamplesPerSecond = 647
|
||||
Epoch[ 1 of 4]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.63751793; EvalErrorPrediction = 0.63789063; TotalTime = 1.56999s; TotalTimePerSample = 0.61328ms; SamplesPerSecond = 1630
|
||||
Epoch[ 1 of 4]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.03013535; EvalErrorPrediction = 0.54843750; TotalTime = 1.09485s; TotalTimePerSample = 0.42768ms; SamplesPerSecond = 2338
|
||||
Epoch[ 1 of 4]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.74010468; EvalErrorPrediction = 0.47148438; TotalTime = 1.14739s; TotalTimePerSample = 0.44820ms; SamplesPerSecond = 2231
|
||||
Epoch[ 1 of 4]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.56799011; EvalErrorPrediction = 0.44335938; TotalTime = 1.09577s; TotalTimePerSample = 0.42803ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.46781845; EvalErrorPrediction = 0.41328125; TotalTime = 1.09510s; TotalTimePerSample = 0.42777ms; SamplesPerSecond = 2337
|
||||
Epoch[ 1 of 4]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.43012238; EvalErrorPrediction = 0.40585938; TotalTime = 1.09635s; TotalTimePerSample = 0.42826ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.35918579; EvalErrorPrediction = 0.40039062; TotalTime = 1.09548s; TotalTimePerSample = 0.42792ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.28387451; EvalErrorPrediction = 0.37812500; TotalTime = 1.09595s; TotalTimePerSample = 0.42811ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.29969482; EvalErrorPrediction = 0.39726563; TotalTime = 1.09572s; TotalTimePerSample = 0.42802ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27851257; EvalErrorPrediction = 0.38945313; TotalTime = 1.09571s; TotalTimePerSample = 0.42801ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27491150; EvalErrorPrediction = 0.38476562; TotalTime = 1.12142s; TotalTimePerSample = 0.43806ms; SamplesPerSecond = 2282
|
||||
Epoch[ 1 of 4]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.24143066; EvalErrorPrediction = 0.38164063; TotalTime = 1.09592s; TotalTimePerSample = 0.42809ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31309967; EvalErrorPrediction = 0.38867188; TotalTime = 1.09608s; TotalTimePerSample = 0.42816ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.24519043; EvalErrorPrediction = 0.36054687; TotalTime = 1.09577s; TotalTimePerSample = 0.42804ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.26173248; EvalErrorPrediction = 0.38554688; TotalTime = 1.13408s; TotalTimePerSample = 0.44300ms; SamplesPerSecond = 2257
|
||||
Epoch[ 1 of 4]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20199585; EvalErrorPrediction = 0.35390625; TotalTime = 1.11229s; TotalTimePerSample = 0.43449ms; SamplesPerSecond = 2301
|
||||
Epoch[ 1 of 4]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21707153; EvalErrorPrediction = 0.37031250; TotalTime = 1.09594s; TotalTimePerSample = 0.42810ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21532898; EvalErrorPrediction = 0.37382813; TotalTime = 1.09629s; TotalTimePerSample = 0.42824ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20324097; EvalErrorPrediction = 0.37187500; TotalTime = 1.10557s; TotalTimePerSample = 0.43186ms; SamplesPerSecond = 2315
|
||||
Epoch[ 1 of 4]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20709839; EvalErrorPrediction = 0.37343750; TotalTime = 1.09610s; TotalTimePerSample = 0.42816ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14372253; EvalErrorPrediction = 0.33828125; TotalTime = 1.09640s; TotalTimePerSample = 0.42828ms; SamplesPerSecond = 2334
|
||||
Epoch[ 1 of 4]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15016785; EvalErrorPrediction = 0.34492187; TotalTime = 1.09523s; TotalTimePerSample = 0.42782ms; SamplesPerSecond = 2337
|
||||
Epoch[ 1 of 4]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19444275; EvalErrorPrediction = 0.35546875; TotalTime = 1.09550s; TotalTimePerSample = 0.42793ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16820984; EvalErrorPrediction = 0.35937500; TotalTime = 1.10647s; TotalTimePerSample = 0.43222ms; SamplesPerSecond = 2313
|
||||
Epoch[ 1 of 4]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09052429; EvalErrorPrediction = 0.34062500; TotalTime = 1.11512s; TotalTimePerSample = 0.43559ms; SamplesPerSecond = 2295
|
||||
Epoch[ 1 of 4]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11017761; EvalErrorPrediction = 0.34140625; TotalTime = 1.09791s; TotalTimePerSample = 0.42887ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17647095; EvalErrorPrediction = 0.34960938; TotalTime = 1.09768s; TotalTimePerSample = 0.42878ms; SamplesPerSecond = 2332
|
||||
Epoch[ 1 of 4]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12259827; EvalErrorPrediction = 0.34960938; TotalTime = 1.09812s; TotalTimePerSample = 0.42895ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14627686; EvalErrorPrediction = 0.34882812; TotalTime = 1.09796s; TotalTimePerSample = 0.42889ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12782593; EvalErrorPrediction = 0.34296875; TotalTime = 1.11678s; TotalTimePerSample = 0.43624ms; SamplesPerSecond = 2292
|
||||
Epoch[ 1 of 4]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12669983; EvalErrorPrediction = 0.34453125; TotalTime = 1.08905s; TotalTimePerSample = 0.42541ms; SamplesPerSecond = 2350
|
||||
Finished Epoch[ 1 of 4]: [Training] CrossEntropyWithSoftmax = 1.4077845; EvalErrorPrediction = 0.40218505; learningRatePerSample = 0.003125000047; EpochTime=39.654781
|
||||
Epoch[ 1 of 4]-Minibatch[ 1- 10 of 320]: * 2560; ce = 4.01592903; err = 0.82421875; TotalTime = 3.95135s; TotalTimePerSample = 1.54350ms; SamplesPerSecond = 647
|
||||
Epoch[ 1 of 4]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.63751793; err = 0.63789063; TotalTime = 1.56999s; TotalTimePerSample = 0.61328ms; SamplesPerSecond = 1630
|
||||
Epoch[ 1 of 4]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.03013535; err = 0.54843750; TotalTime = 1.09485s; TotalTimePerSample = 0.42768ms; SamplesPerSecond = 2338
|
||||
Epoch[ 1 of 4]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.74010468; err = 0.47148438; TotalTime = 1.14739s; TotalTimePerSample = 0.44820ms; SamplesPerSecond = 2231
|
||||
Epoch[ 1 of 4]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.56799011; err = 0.44335938; TotalTime = 1.09577s; TotalTimePerSample = 0.42803ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.46781845; err = 0.41328125; TotalTime = 1.09510s; TotalTimePerSample = 0.42777ms; SamplesPerSecond = 2337
|
||||
Epoch[ 1 of 4]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.43012238; err = 0.40585938; TotalTime = 1.09635s; TotalTimePerSample = 0.42826ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.35918579; err = 0.40039062; TotalTime = 1.09548s; TotalTimePerSample = 0.42792ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.28387451; err = 0.37812500; TotalTime = 1.09595s; TotalTimePerSample = 0.42811ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.29969482; err = 0.39726563; TotalTime = 1.09572s; TotalTimePerSample = 0.42802ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.27851257; err = 0.38945313; TotalTime = 1.09571s; TotalTimePerSample = 0.42801ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.27491150; err = 0.38476562; TotalTime = 1.12142s; TotalTimePerSample = 0.43806ms; SamplesPerSecond = 2282
|
||||
Epoch[ 1 of 4]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.24143066; err = 0.38164063; TotalTime = 1.09592s; TotalTimePerSample = 0.42809ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.31309967; err = 0.38867188; TotalTime = 1.09608s; TotalTimePerSample = 0.42816ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.24519043; err = 0.36054687; TotalTime = 1.09577s; TotalTimePerSample = 0.42804ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.26173248; err = 0.38554688; TotalTime = 1.13408s; TotalTimePerSample = 0.44300ms; SamplesPerSecond = 2257
|
||||
Epoch[ 1 of 4]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.20199585; err = 0.35390625; TotalTime = 1.11229s; TotalTimePerSample = 0.43449ms; SamplesPerSecond = 2301
|
||||
Epoch[ 1 of 4]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.21707153; err = 0.37031250; TotalTime = 1.09594s; TotalTimePerSample = 0.42810ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.21532898; err = 0.37382813; TotalTime = 1.09629s; TotalTimePerSample = 0.42824ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.20324097; err = 0.37187500; TotalTime = 1.10557s; TotalTimePerSample = 0.43186ms; SamplesPerSecond = 2315
|
||||
Epoch[ 1 of 4]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.20709839; err = 0.37343750; TotalTime = 1.09610s; TotalTimePerSample = 0.42816ms; SamplesPerSecond = 2335
|
||||
Epoch[ 1 of 4]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.14372253; err = 0.33828125; TotalTime = 1.09640s; TotalTimePerSample = 0.42828ms; SamplesPerSecond = 2334
|
||||
Epoch[ 1 of 4]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.15016785; err = 0.34492187; TotalTime = 1.09523s; TotalTimePerSample = 0.42782ms; SamplesPerSecond = 2337
|
||||
Epoch[ 1 of 4]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.19444275; err = 0.35546875; TotalTime = 1.09550s; TotalTimePerSample = 0.42793ms; SamplesPerSecond = 2336
|
||||
Epoch[ 1 of 4]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.16820984; err = 0.35937500; TotalTime = 1.10647s; TotalTimePerSample = 0.43222ms; SamplesPerSecond = 2313
|
||||
Epoch[ 1 of 4]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.09052429; err = 0.34062500; TotalTime = 1.11512s; TotalTimePerSample = 0.43559ms; SamplesPerSecond = 2295
|
||||
Epoch[ 1 of 4]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.11017761; err = 0.34140625; TotalTime = 1.09791s; TotalTimePerSample = 0.42887ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.17647095; err = 0.34960938; TotalTime = 1.09768s; TotalTimePerSample = 0.42878ms; SamplesPerSecond = 2332
|
||||
Epoch[ 1 of 4]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.12259827; err = 0.34960938; TotalTime = 1.09812s; TotalTimePerSample = 0.42895ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.14627686; err = 0.34882812; TotalTime = 1.09796s; TotalTimePerSample = 0.42889ms; SamplesPerSecond = 2331
|
||||
Epoch[ 1 of 4]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.12782593; err = 0.34296875; TotalTime = 1.11678s; TotalTimePerSample = 0.43624ms; SamplesPerSecond = 2292
|
||||
Epoch[ 1 of 4]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.12669983; err = 0.34453125; TotalTime = 1.08905s; TotalTimePerSample = 0.42541ms; SamplesPerSecond = 2350
|
||||
Finished Epoch[ 1 of 4]: [Training] ce = 1.4077845; err = 0.40218505; learningRatePerSample = 0.003125000047; EpochTime=39.654781
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.32465096; EvalErrorPrediction = 0.39160156; TotalTime = 1.80429s; TotalTimePerSample = 0.35240ms; SamplesPerSecond = 2837
|
||||
Epoch[ 2 of 4]-Minibatch[ 11- 20 of 160]: * 5120; CrossEntropyWithSoftmax = 1.26754742; EvalErrorPrediction = 0.38085938; TotalTime = 1.81056s; TotalTimePerSample = 0.35363ms; SamplesPerSecond = 2827
|
||||
Epoch[ 2 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.17425861; EvalErrorPrediction = 0.35332031; TotalTime = 1.79388s; TotalTimePerSample = 0.35037ms; SamplesPerSecond = 2854
|
||||
Epoch[ 2 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 1.12545509; EvalErrorPrediction = 0.34492187; TotalTime = 1.79352s; TotalTimePerSample = 0.35030ms; SamplesPerSecond = 2854
|
||||
Epoch[ 2 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 1.13674049; EvalErrorPrediction = 0.34238281; TotalTime = 1.79283s; TotalTimePerSample = 0.35016ms; SamplesPerSecond = 2855
|
||||
Epoch[ 2 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 1.13298378; EvalErrorPrediction = 0.34746094; TotalTime = 1.79214s; TotalTimePerSample = 0.35003ms; SamplesPerSecond = 2856
|
||||
Epoch[ 2 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 1.07790451; EvalErrorPrediction = 0.33378906; TotalTime = 1.79264s; TotalTimePerSample = 0.35013ms; SamplesPerSecond = 2856
|
||||
Epoch[ 2 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 1.04510498; EvalErrorPrediction = 0.31738281; TotalTime = 1.84448s; TotalTimePerSample = 0.36025ms; SamplesPerSecond = 2775
|
||||
Epoch[ 2 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 1.15464554; EvalErrorPrediction = 0.35839844; TotalTime = 1.79575s; TotalTimePerSample = 0.35073ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 1.25793457; EvalErrorPrediction = 0.37714844; TotalTime = 1.79629s; TotalTimePerSample = 0.35084ms; SamplesPerSecond = 2850
|
||||
Epoch[ 2 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 1.20009308; EvalErrorPrediction = 0.37695312; TotalTime = 1.79532s; TotalTimePerSample = 0.35065ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11907349; EvalErrorPrediction = 0.34453125; TotalTime = 1.79536s; TotalTimePerSample = 0.35066ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 1.10299835; EvalErrorPrediction = 0.34179688; TotalTime = 1.79584s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 1.10662994; EvalErrorPrediction = 0.33437500; TotalTime = 1.79551s; TotalTimePerSample = 0.35069ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05814362; EvalErrorPrediction = 0.33378906; TotalTime = 1.79585s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05615540; EvalErrorPrediction = 0.32558594; TotalTime = 1.78428s; TotalTimePerSample = 0.34849ms; SamplesPerSecond = 2869
|
||||
Finished Epoch[ 2 of 4]: [Training] CrossEntropyWithSoftmax = 1.14627; EvalErrorPrediction = 0.35026857; learningRatePerSample = 0.003125000047; EpochTime=28.798577
|
||||
Epoch[ 2 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.32465096; err = 0.39160156; TotalTime = 1.80429s; TotalTimePerSample = 0.35240ms; SamplesPerSecond = 2837
|
||||
Epoch[ 2 of 4]-Minibatch[ 11- 20 of 160]: * 5120; ce = 1.26754742; err = 0.38085938; TotalTime = 1.81056s; TotalTimePerSample = 0.35363ms; SamplesPerSecond = 2827
|
||||
Epoch[ 2 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.17425861; err = 0.35332031; TotalTime = 1.79388s; TotalTimePerSample = 0.35037ms; SamplesPerSecond = 2854
|
||||
Epoch[ 2 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 1.12545509; err = 0.34492187; TotalTime = 1.79352s; TotalTimePerSample = 0.35030ms; SamplesPerSecond = 2854
|
||||
Epoch[ 2 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 1.13674049; err = 0.34238281; TotalTime = 1.79283s; TotalTimePerSample = 0.35016ms; SamplesPerSecond = 2855
|
||||
Epoch[ 2 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 1.13298378; err = 0.34746094; TotalTime = 1.79214s; TotalTimePerSample = 0.35003ms; SamplesPerSecond = 2856
|
||||
Epoch[ 2 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 1.07790451; err = 0.33378906; TotalTime = 1.79264s; TotalTimePerSample = 0.35013ms; SamplesPerSecond = 2856
|
||||
Epoch[ 2 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 1.04510498; err = 0.31738281; TotalTime = 1.84448s; TotalTimePerSample = 0.36025ms; SamplesPerSecond = 2775
|
||||
Epoch[ 2 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 1.15464554; err = 0.35839844; TotalTime = 1.79575s; TotalTimePerSample = 0.35073ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 1.25793457; err = 0.37714844; TotalTime = 1.79629s; TotalTimePerSample = 0.35084ms; SamplesPerSecond = 2850
|
||||
Epoch[ 2 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 1.20009308; err = 0.37695312; TotalTime = 1.79532s; TotalTimePerSample = 0.35065ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 1.11907349; err = 0.34453125; TotalTime = 1.79536s; TotalTimePerSample = 0.35066ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 1.10299835; err = 0.34179688; TotalTime = 1.79584s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 1.10662994; err = 0.33437500; TotalTime = 1.79551s; TotalTimePerSample = 0.35069ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 1.05814362; err = 0.33378906; TotalTime = 1.79585s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 2 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 1.05615540; err = 0.32558594; TotalTime = 1.78428s; TotalTimePerSample = 0.34849ms; SamplesPerSecond = 2869
|
||||
Finished Epoch[ 2 of 4]: [Training] ce = 1.14627; err = 0.35026857; learningRatePerSample = 0.003125000047; EpochTime=28.798577
|
||||
Starting Epoch 3: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 2: frames [163840..245760] (first utterance at frame 163840), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 3 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11535473; EvalErrorPrediction = 0.34570312; TotalTime = 1.79470s; TotalTimePerSample = 0.35053ms; SamplesPerSecond = 2852
|
||||
Epoch[ 3 of 4]-Minibatch[ 11- 20 of 160]: * 5120; CrossEntropyWithSoftmax = 1.10306950; EvalErrorPrediction = 0.33984375; TotalTime = 1.79571s; TotalTimePerSample = 0.35072ms; SamplesPerSecond = 2851
|
||||
Epoch[ 3 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08655663; EvalErrorPrediction = 0.33750000; TotalTime = 1.85428s; TotalTimePerSample = 0.36216ms; SamplesPerSecond = 2761
|
||||
Epoch[ 3 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08894272; EvalErrorPrediction = 0.32910156; TotalTime = 1.79696s; TotalTimePerSample = 0.35097ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 1.12028427; EvalErrorPrediction = 0.34257813; TotalTime = 1.79705s; TotalTimePerSample = 0.35099ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08059044; EvalErrorPrediction = 0.33847656; TotalTime = 1.79691s; TotalTimePerSample = 0.35096ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09700623; EvalErrorPrediction = 0.34140625; TotalTime = 1.79658s; TotalTimePerSample = 0.35090ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08042450; EvalErrorPrediction = 0.32988281; TotalTime = 1.79673s; TotalTimePerSample = 0.35092ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 1.03139420; EvalErrorPrediction = 0.31875000; TotalTime = 1.79605s; TotalTimePerSample = 0.35079ms; SamplesPerSecond = 2850
|
||||
Epoch[ 3 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 1.04829330; EvalErrorPrediction = 0.31484375; TotalTime = 1.79666s; TotalTimePerSample = 0.35091ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05102234; EvalErrorPrediction = 0.32949219; TotalTime = 1.79625s; TotalTimePerSample = 0.35083ms; SamplesPerSecond = 2850
|
||||
Epoch[ 3 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08982849; EvalErrorPrediction = 0.34023437; TotalTime = 1.79698s; TotalTimePerSample = 0.35097ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05953979; EvalErrorPrediction = 0.31953125; TotalTime = 1.81837s; TotalTimePerSample = 0.35515ms; SamplesPerSecond = 2815
|
||||
Epoch[ 3 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02886810; EvalErrorPrediction = 0.32363281; TotalTime = 1.80412s; TotalTimePerSample = 0.35237ms; SamplesPerSecond = 2837
|
||||
Epoch[ 3 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 1.03884735; EvalErrorPrediction = 0.32656250; TotalTime = 1.79584s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 3 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02478790; EvalErrorPrediction = 0.31718750; TotalTime = 1.78394s; TotalTimePerSample = 0.34843ms; SamplesPerSecond = 2870
|
||||
Finished Epoch[ 3 of 4]: [Training] CrossEntropyWithSoftmax = 1.0715507; EvalErrorPrediction = 0.33092043; learningRatePerSample = 0.003125000047; EpochTime=28.836488
|
||||
Epoch[ 3 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.11535473; err = 0.34570312; TotalTime = 1.79470s; TotalTimePerSample = 0.35053ms; SamplesPerSecond = 2852
|
||||
Epoch[ 3 of 4]-Minibatch[ 11- 20 of 160]: * 5120; ce = 1.10306950; err = 0.33984375; TotalTime = 1.79571s; TotalTimePerSample = 0.35072ms; SamplesPerSecond = 2851
|
||||
Epoch[ 3 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.08655663; err = 0.33750000; TotalTime = 1.85428s; TotalTimePerSample = 0.36216ms; SamplesPerSecond = 2761
|
||||
Epoch[ 3 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 1.08894272; err = 0.32910156; TotalTime = 1.79696s; TotalTimePerSample = 0.35097ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 1.12028427; err = 0.34257813; TotalTime = 1.79705s; TotalTimePerSample = 0.35099ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 1.08059044; err = 0.33847656; TotalTime = 1.79691s; TotalTimePerSample = 0.35096ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 1.09700623; err = 0.34140625; TotalTime = 1.79658s; TotalTimePerSample = 0.35090ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 1.08042450; err = 0.32988281; TotalTime = 1.79673s; TotalTimePerSample = 0.35092ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 1.03139420; err = 0.31875000; TotalTime = 1.79605s; TotalTimePerSample = 0.35079ms; SamplesPerSecond = 2850
|
||||
Epoch[ 3 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 1.04829330; err = 0.31484375; TotalTime = 1.79666s; TotalTimePerSample = 0.35091ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 1.05102234; err = 0.32949219; TotalTime = 1.79625s; TotalTimePerSample = 0.35083ms; SamplesPerSecond = 2850
|
||||
Epoch[ 3 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 1.08982849; err = 0.34023437; TotalTime = 1.79698s; TotalTimePerSample = 0.35097ms; SamplesPerSecond = 2849
|
||||
Epoch[ 3 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 1.05953979; err = 0.31953125; TotalTime = 1.81837s; TotalTimePerSample = 0.35515ms; SamplesPerSecond = 2815
|
||||
Epoch[ 3 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 1.02886810; err = 0.32363281; TotalTime = 1.80412s; TotalTimePerSample = 0.35237ms; SamplesPerSecond = 2837
|
||||
Epoch[ 3 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 1.03884735; err = 0.32656250; TotalTime = 1.79584s; TotalTimePerSample = 0.35075ms; SamplesPerSecond = 2851
|
||||
Epoch[ 3 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 1.02478790; err = 0.31718750; TotalTime = 1.78394s; TotalTimePerSample = 0.34843ms; SamplesPerSecond = 2870
|
||||
Finished Epoch[ 3 of 4]: [Training] ce = 1.0715507; err = 0.33092043; learningRatePerSample = 0.003125000047; EpochTime=28.836488
|
||||
Starting Epoch 4: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 3: frames [245760..327680] (first utterance at frame 245760), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 4 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02606211; EvalErrorPrediction = 0.31562500; TotalTime = 1.79489s; TotalTimePerSample = 0.35056ms; SamplesPerSecond = 2852
|
||||
Epoch[ 4 of 4]-Minibatch[ 11- 20 of 160]: * 4926; CrossEntropyWithSoftmax = 1.03991783; EvalErrorPrediction = 0.32216809; TotalTime = 1.95701s; TotalTimePerSample = 0.39728ms; SamplesPerSecond = 2517
|
||||
Epoch[ 4 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.01588020; EvalErrorPrediction = 0.31601563; TotalTime = 1.79596s; TotalTimePerSample = 0.35077ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99285030; EvalErrorPrediction = 0.30957031; TotalTime = 1.79623s; TotalTimePerSample = 0.35083ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99535828; EvalErrorPrediction = 0.31640625; TotalTime = 1.79578s; TotalTimePerSample = 0.35074ms; SamplesPerSecond = 2851
|
||||
Epoch[ 4 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02987175; EvalErrorPrediction = 0.32539062; TotalTime = 1.79591s; TotalTimePerSample = 0.35076ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 1.03030205; EvalErrorPrediction = 0.31582031; TotalTime = 1.79514s; TotalTimePerSample = 0.35061ms; SamplesPerSecond = 2852
|
||||
Epoch[ 4 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 0.98913116; EvalErrorPrediction = 0.31210938; TotalTime = 1.79670s; TotalTimePerSample = 0.35092ms; SamplesPerSecond = 2849
|
||||
Epoch[ 4 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 0.98892746; EvalErrorPrediction = 0.30546875; TotalTime = 1.79605s; TotalTimePerSample = 0.35079ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 1.00130386; EvalErrorPrediction = 0.30917969; TotalTime = 1.80031s; TotalTimePerSample = 0.35162ms; SamplesPerSecond = 2843
|
||||
Epoch[ 4 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02166672; EvalErrorPrediction = 0.31054688; TotalTime = 1.79190s; TotalTimePerSample = 0.34998ms; SamplesPerSecond = 2857
|
||||
Epoch[ 4 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02634430; EvalErrorPrediction = 0.32597656; TotalTime = 1.79346s; TotalTimePerSample = 0.35029ms; SamplesPerSecond = 2854
|
||||
Epoch[ 4 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 0.97695312; EvalErrorPrediction = 0.29863281; TotalTime = 1.79173s; TotalTimePerSample = 0.34995ms; SamplesPerSecond = 2857
|
||||
Epoch[ 4 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 0.97142334; EvalErrorPrediction = 0.30546875; TotalTime = 1.79446s; TotalTimePerSample = 0.35048ms; SamplesPerSecond = 2853
|
||||
Epoch[ 4 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 0.98984375; EvalErrorPrediction = 0.31269531; TotalTime = 1.79283s; TotalTimePerSample = 0.35016ms; SamplesPerSecond = 2855
|
||||
Epoch[ 4 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 0.97683563; EvalErrorPrediction = 0.30175781; TotalTime = 1.78603s; TotalTimePerSample = 0.34883ms; SamplesPerSecond = 2866
|
||||
Finished Epoch[ 4 of 4]: [Training] CrossEntropyWithSoftmax = 1.0043954; EvalErrorPrediction = 0.31276855; learningRatePerSample = 0.003125000047; EpochTime=28.984064
|
||||
Epoch[ 4 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.02606211; err = 0.31562500; TotalTime = 1.79489s; TotalTimePerSample = 0.35056ms; SamplesPerSecond = 2852
|
||||
Epoch[ 4 of 4]-Minibatch[ 11- 20 of 160]: * 4926; ce = 1.03991783; err = 0.32216809; TotalTime = 1.95701s; TotalTimePerSample = 0.39728ms; SamplesPerSecond = 2517
|
||||
Epoch[ 4 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.01588020; err = 0.31601563; TotalTime = 1.79596s; TotalTimePerSample = 0.35077ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 0.99285030; err = 0.30957031; TotalTime = 1.79623s; TotalTimePerSample = 0.35083ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 0.99535828; err = 0.31640625; TotalTime = 1.79578s; TotalTimePerSample = 0.35074ms; SamplesPerSecond = 2851
|
||||
Epoch[ 4 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 1.02987175; err = 0.32539062; TotalTime = 1.79591s; TotalTimePerSample = 0.35076ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 1.03030205; err = 0.31582031; TotalTime = 1.79514s; TotalTimePerSample = 0.35061ms; SamplesPerSecond = 2852
|
||||
Epoch[ 4 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 0.98913116; err = 0.31210938; TotalTime = 1.79670s; TotalTimePerSample = 0.35092ms; SamplesPerSecond = 2849
|
||||
Epoch[ 4 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 0.98892746; err = 0.30546875; TotalTime = 1.79605s; TotalTimePerSample = 0.35079ms; SamplesPerSecond = 2850
|
||||
Epoch[ 4 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 1.00130386; err = 0.30917969; TotalTime = 1.80031s; TotalTimePerSample = 0.35162ms; SamplesPerSecond = 2843
|
||||
Epoch[ 4 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 1.02166672; err = 0.31054688; TotalTime = 1.79190s; TotalTimePerSample = 0.34998ms; SamplesPerSecond = 2857
|
||||
Epoch[ 4 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 1.02634430; err = 0.32597656; TotalTime = 1.79346s; TotalTimePerSample = 0.35029ms; SamplesPerSecond = 2854
|
||||
Epoch[ 4 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 0.97695312; err = 0.29863281; TotalTime = 1.79173s; TotalTimePerSample = 0.34995ms; SamplesPerSecond = 2857
|
||||
Epoch[ 4 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 0.97142334; err = 0.30546875; TotalTime = 1.79446s; TotalTimePerSample = 0.35048ms; SamplesPerSecond = 2853
|
||||
Epoch[ 4 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 0.98984375; err = 0.31269531; TotalTime = 1.79283s; TotalTimePerSample = 0.35016ms; SamplesPerSecond = 2855
|
||||
Epoch[ 4 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 0.97683563; err = 0.30175781; TotalTime = 1.78603s; TotalTimePerSample = 0.34883ms; SamplesPerSecond = 2866
|
||||
Finished Epoch[ 4 of 4]: [Training] ce = 1.0043954; err = 0.31276855; learningRatePerSample = 0.003125000047; EpochTime=28.984064
|
||||
CNTKCommandTrainEnd: speechTrain
|
||||
__COMPLETED__
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -639,76 +639,76 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 3.88299332; EvalErrorPrediction = 0.84648437; TotalTime = 1.48752s; TotalTimePerSample = 0.58106ms; SamplesPerSecond = 1720
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.95486374; EvalErrorPrediction = 0.71289063; TotalTime = 1.04921s; TotalTimePerSample = 0.40985ms; SamplesPerSecond = 2439
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.54855499; EvalErrorPrediction = 0.64804688; TotalTime = 1.26032s; TotalTimePerSample = 0.49231ms; SamplesPerSecond = 2031
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 2.30297852; EvalErrorPrediction = 0.61679688; TotalTime = 0.80500s; TotalTimePerSample = 0.31445ms; SamplesPerSecond = 3180
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 2.02965393; EvalErrorPrediction = 0.54843750; TotalTime = 0.78922s; TotalTimePerSample = 0.30829ms; SamplesPerSecond = 3243
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.86639099; EvalErrorPrediction = 0.52187500; TotalTime = 0.80311s; TotalTimePerSample = 0.31371ms; SamplesPerSecond = 3187
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.78586273; EvalErrorPrediction = 0.50976563; TotalTime = 0.77006s; TotalTimePerSample = 0.30081ms; SamplesPerSecond = 3324
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.75383606; EvalErrorPrediction = 0.50507813; TotalTime = 0.79602s; TotalTimePerSample = 0.31095ms; SamplesPerSecond = 3215
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.66867371; EvalErrorPrediction = 0.45625000; TotalTime = 0.78483s; TotalTimePerSample = 0.30658ms; SamplesPerSecond = 3261
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.62280121; EvalErrorPrediction = 0.48710938; TotalTime = 0.80117s; TotalTimePerSample = 0.31296ms; SamplesPerSecond = 3195
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.65261841; EvalErrorPrediction = 0.47695312; TotalTime = 0.79092s; TotalTimePerSample = 0.30895ms; SamplesPerSecond = 3236
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.53025208; EvalErrorPrediction = 0.45976563; TotalTime = 1.09289s; TotalTimePerSample = 0.42691ms; SamplesPerSecond = 2342
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.47788544; EvalErrorPrediction = 0.43945313; TotalTime = 0.78271s; TotalTimePerSample = 0.30575ms; SamplesPerSecond = 3270
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.51797485; EvalErrorPrediction = 0.45195313; TotalTime = 0.79339s; TotalTimePerSample = 0.30992ms; SamplesPerSecond = 3226
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.46555481; EvalErrorPrediction = 0.43203125; TotalTime = 0.83098s; TotalTimePerSample = 0.32460ms; SamplesPerSecond = 3080
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.42054138; EvalErrorPrediction = 0.43320313; TotalTime = 1.14820s; TotalTimePerSample = 0.44851ms; SamplesPerSecond = 2229
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41380615; EvalErrorPrediction = 0.41875000; TotalTime = 0.81105s; TotalTimePerSample = 0.31682ms; SamplesPerSecond = 3156
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.45621948; EvalErrorPrediction = 0.42695312; TotalTime = 0.78965s; TotalTimePerSample = 0.30846ms; SamplesPerSecond = 3241
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.48666992; EvalErrorPrediction = 0.44218750; TotalTime = 0.77602s; TotalTimePerSample = 0.30313ms; SamplesPerSecond = 3298
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.43567505; EvalErrorPrediction = 0.43710938; TotalTime = 0.77241s; TotalTimePerSample = 0.30172ms; SamplesPerSecond = 3314
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.35690918; EvalErrorPrediction = 0.41562500; TotalTime = 0.80105s; TotalTimePerSample = 0.31291ms; SamplesPerSecond = 3195
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.39897156; EvalErrorPrediction = 0.42539063; TotalTime = 0.78187s; TotalTimePerSample = 0.30542ms; SamplesPerSecond = 3274
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.40048218; EvalErrorPrediction = 0.40937500; TotalTime = 0.76873s; TotalTimePerSample = 0.30029ms; SamplesPerSecond = 3330
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.39494934; EvalErrorPrediction = 0.43046875; TotalTime = 0.77391s; TotalTimePerSample = 0.30231ms; SamplesPerSecond = 3307
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33256531; EvalErrorPrediction = 0.40312500; TotalTime = 0.81253s; TotalTimePerSample = 0.31740ms; SamplesPerSecond = 3150
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27213135; EvalErrorPrediction = 0.39687500; TotalTime = 0.82009s; TotalTimePerSample = 0.32035ms; SamplesPerSecond = 3121
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31734619; EvalErrorPrediction = 0.39804688; TotalTime = 1.00677s; TotalTimePerSample = 0.39327ms; SamplesPerSecond = 2542
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.25228271; EvalErrorPrediction = 0.38437500; TotalTime = 1.24405s; TotalTimePerSample = 0.48596ms; SamplesPerSecond = 2057
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22771301; EvalErrorPrediction = 0.37343750; TotalTime = 0.81330s; TotalTimePerSample = 0.31770ms; SamplesPerSecond = 3147
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20522766; EvalErrorPrediction = 0.35976562; TotalTime = 0.80344s; TotalTimePerSample = 0.31384ms; SamplesPerSecond = 3186
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23264771; EvalErrorPrediction = 0.36718750; TotalTime = 0.81546s; TotalTimePerSample = 0.31854ms; SamplesPerSecond = 3139
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23756104; EvalErrorPrediction = 0.37773438; TotalTime = 0.89764s; TotalTimePerSample = 0.35064ms; SamplesPerSecond = 2851
|
||||
Finished Epoch[ 1 of 2]: [Training] CrossEntropyWithSoftmax = 1.6532061; EvalErrorPrediction = 0.46914062; learningRatePerSample = 0.003125000047; EpochTime=32.141459
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 3.88299332; err = 0.84648437; TotalTime = 1.48752s; TotalTimePerSample = 0.58106ms; SamplesPerSecond = 1720
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.95486374; err = 0.71289063; TotalTime = 1.04921s; TotalTimePerSample = 0.40985ms; SamplesPerSecond = 2439
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.54855499; err = 0.64804688; TotalTime = 1.26032s; TotalTimePerSample = 0.49231ms; SamplesPerSecond = 2031
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 2.30297852; err = 0.61679688; TotalTime = 0.80500s; TotalTimePerSample = 0.31445ms; SamplesPerSecond = 3180
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 2.02965393; err = 0.54843750; TotalTime = 0.78922s; TotalTimePerSample = 0.30829ms; SamplesPerSecond = 3243
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.86639099; err = 0.52187500; TotalTime = 0.80311s; TotalTimePerSample = 0.31371ms; SamplesPerSecond = 3187
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.78586273; err = 0.50976563; TotalTime = 0.77006s; TotalTimePerSample = 0.30081ms; SamplesPerSecond = 3324
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.75383606; err = 0.50507813; TotalTime = 0.79602s; TotalTimePerSample = 0.31095ms; SamplesPerSecond = 3215
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.66867371; err = 0.45625000; TotalTime = 0.78483s; TotalTimePerSample = 0.30658ms; SamplesPerSecond = 3261
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.62280121; err = 0.48710938; TotalTime = 0.80117s; TotalTimePerSample = 0.31296ms; SamplesPerSecond = 3195
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.65261841; err = 0.47695312; TotalTime = 0.79092s; TotalTimePerSample = 0.30895ms; SamplesPerSecond = 3236
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.53025208; err = 0.45976563; TotalTime = 1.09289s; TotalTimePerSample = 0.42691ms; SamplesPerSecond = 2342
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.47788544; err = 0.43945313; TotalTime = 0.78271s; TotalTimePerSample = 0.30575ms; SamplesPerSecond = 3270
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.51797485; err = 0.45195313; TotalTime = 0.79339s; TotalTimePerSample = 0.30992ms; SamplesPerSecond = 3226
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.46555481; err = 0.43203125; TotalTime = 0.83098s; TotalTimePerSample = 0.32460ms; SamplesPerSecond = 3080
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.42054138; err = 0.43320313; TotalTime = 1.14820s; TotalTimePerSample = 0.44851ms; SamplesPerSecond = 2229
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.41380615; err = 0.41875000; TotalTime = 0.81105s; TotalTimePerSample = 0.31682ms; SamplesPerSecond = 3156
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.45621948; err = 0.42695312; TotalTime = 0.78965s; TotalTimePerSample = 0.30846ms; SamplesPerSecond = 3241
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.48666992; err = 0.44218750; TotalTime = 0.77602s; TotalTimePerSample = 0.30313ms; SamplesPerSecond = 3298
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.43567505; err = 0.43710938; TotalTime = 0.77241s; TotalTimePerSample = 0.30172ms; SamplesPerSecond = 3314
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.35690918; err = 0.41562500; TotalTime = 0.80105s; TotalTimePerSample = 0.31291ms; SamplesPerSecond = 3195
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.39897156; err = 0.42539063; TotalTime = 0.78187s; TotalTimePerSample = 0.30542ms; SamplesPerSecond = 3274
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.40048218; err = 0.40937500; TotalTime = 0.76873s; TotalTimePerSample = 0.30029ms; SamplesPerSecond = 3330
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.39494934; err = 0.43046875; TotalTime = 0.77391s; TotalTimePerSample = 0.30231ms; SamplesPerSecond = 3307
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.33256531; err = 0.40312500; TotalTime = 0.81253s; TotalTimePerSample = 0.31740ms; SamplesPerSecond = 3150
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.27213135; err = 0.39687500; TotalTime = 0.82009s; TotalTimePerSample = 0.32035ms; SamplesPerSecond = 3121
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.31734619; err = 0.39804688; TotalTime = 1.00677s; TotalTimePerSample = 0.39327ms; SamplesPerSecond = 2542
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.25228271; err = 0.38437500; TotalTime = 1.24405s; TotalTimePerSample = 0.48596ms; SamplesPerSecond = 2057
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.22771301; err = 0.37343750; TotalTime = 0.81330s; TotalTimePerSample = 0.31770ms; SamplesPerSecond = 3147
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.20522766; err = 0.35976562; TotalTime = 0.80344s; TotalTimePerSample = 0.31384ms; SamplesPerSecond = 3186
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.23264771; err = 0.36718750; TotalTime = 0.81546s; TotalTimePerSample = 0.31854ms; SamplesPerSecond = 3139
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.23756104; err = 0.37773438; TotalTime = 0.89764s; TotalTimePerSample = 0.35064ms; SamplesPerSecond = 2851
|
||||
Finished Epoch[ 1 of 2]: [Training] ce = 1.6532061; err = 0.46914062; learningRatePerSample = 0.003125000047; EpochTime=32.141459
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.900000
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23025007; EvalErrorPrediction = 0.37500000; TotalTime = 0.93409s; TotalTimePerSample = 0.36488ms; SamplesPerSecond = 2740
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19630919; EvalErrorPrediction = 0.37031250; TotalTime = 0.82552s; TotalTimePerSample = 0.32247ms; SamplesPerSecond = 3101
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17490788; EvalErrorPrediction = 0.35585937; TotalTime = 0.79413s; TotalTimePerSample = 0.31021ms; SamplesPerSecond = 3223
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20401611; EvalErrorPrediction = 0.36210938; TotalTime = 0.81917s; TotalTimePerSample = 0.31999ms; SamplesPerSecond = 3125
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18899193; EvalErrorPrediction = 0.38164063; TotalTime = 0.84552s; TotalTimePerSample = 0.33028ms; SamplesPerSecond = 3027
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16435585; EvalErrorPrediction = 0.34492187; TotalTime = 0.92039s; TotalTimePerSample = 0.35953ms; SamplesPerSecond = 2781
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13413086; EvalErrorPrediction = 0.34570313; TotalTime = 0.78939s; TotalTimePerSample = 0.30836ms; SamplesPerSecond = 3243
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18822556; EvalErrorPrediction = 0.35820313; TotalTime = 1.28111s; TotalTimePerSample = 0.50043ms; SamplesPerSecond = 1998
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23435211; EvalErrorPrediction = 0.37265625; TotalTime = 0.84101s; TotalTimePerSample = 0.32852ms; SamplesPerSecond = 3043
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19776535; EvalErrorPrediction = 0.36406250; TotalTime = 0.79750s; TotalTimePerSample = 0.31153ms; SamplesPerSecond = 3210
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17883530; EvalErrorPrediction = 0.36601563; TotalTime = 0.78897s; TotalTimePerSample = 0.30819ms; SamplesPerSecond = 3244
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.26480560; EvalErrorPrediction = 0.39179687; TotalTime = 0.80044s; TotalTimePerSample = 0.31267ms; SamplesPerSecond = 3198
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19315338; EvalErrorPrediction = 0.36406250; TotalTime = 0.78345s; TotalTimePerSample = 0.30604ms; SamplesPerSecond = 3267
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22714691; EvalErrorPrediction = 0.38046875; TotalTime = 0.83964s; TotalTimePerSample = 0.32798ms; SamplesPerSecond = 3048
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21824493; EvalErrorPrediction = 0.37929687; TotalTime = 0.78280s; TotalTimePerSample = 0.30578ms; SamplesPerSecond = 3270
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16403503; EvalErrorPrediction = 0.35742188; TotalTime = 0.77936s; TotalTimePerSample = 0.30444ms; SamplesPerSecond = 3284
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14682007; EvalErrorPrediction = 0.35273437; TotalTime = 0.80358s; TotalTimePerSample = 0.31390ms; SamplesPerSecond = 3185
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16286163; EvalErrorPrediction = 0.34296875; TotalTime = 0.80497s; TotalTimePerSample = 0.31444ms; SamplesPerSecond = 3180
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15572357; EvalErrorPrediction = 0.35742188; TotalTime = 0.82832s; TotalTimePerSample = 0.32356ms; SamplesPerSecond = 3090
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09647369; EvalErrorPrediction = 0.33515625; TotalTime = 1.20946s; TotalTimePerSample = 0.47245ms; SamplesPerSecond = 2116
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15619965; EvalErrorPrediction = 0.35625000; TotalTime = 0.84213s; TotalTimePerSample = 0.32896ms; SamplesPerSecond = 3039
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18662567; EvalErrorPrediction = 0.36171875; TotalTime = 0.79636s; TotalTimePerSample = 0.31108ms; SamplesPerSecond = 3214
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19353638; EvalErrorPrediction = 0.37578125; TotalTime = 0.79557s; TotalTimePerSample = 0.31077ms; SamplesPerSecond = 3217
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15247192; EvalErrorPrediction = 0.34726563; TotalTime = 0.78307s; TotalTimePerSample = 0.30589ms; SamplesPerSecond = 3269
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15059509; EvalErrorPrediction = 0.35117188; TotalTime = 0.78616s; TotalTimePerSample = 0.30709ms; SamplesPerSecond = 3256
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07452087; EvalErrorPrediction = 0.32890625; TotalTime = 0.81104s; TotalTimePerSample = 0.31681ms; SamplesPerSecond = 3156
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10093384; EvalErrorPrediction = 0.34609375; TotalTime = 0.82247s; TotalTimePerSample = 0.32128ms; SamplesPerSecond = 3112
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06968994; EvalErrorPrediction = 0.33164063; TotalTime = 0.80968s; TotalTimePerSample = 0.31628ms; SamplesPerSecond = 3161
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11170044; EvalErrorPrediction = 0.34296875; TotalTime = 0.80222s; TotalTimePerSample = 0.31337ms; SamplesPerSecond = 3191
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15401306; EvalErrorPrediction = 0.35585937; TotalTime = 0.96892s; TotalTimePerSample = 0.37848ms; SamplesPerSecond = 2642
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12380981; EvalErrorPrediction = 0.35234375; TotalTime = 1.05247s; TotalTimePerSample = 0.41112ms; SamplesPerSecond = 2432
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07885132; EvalErrorPrediction = 0.32148437; TotalTime = 1.29900s; TotalTimePerSample = 0.50742ms; SamplesPerSecond = 1970
|
||||
Finished Epoch[ 2 of 2]: [Training] CrossEntropyWithSoftmax = 1.1648235; EvalErrorPrediction = 0.35716555; learningRatePerSample = 0.003125000047; EpochTime=27.866186
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 1.23025007; err = 0.37500000; TotalTime = 0.93409s; TotalTimePerSample = 0.36488ms; SamplesPerSecond = 2740
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 1.19630919; err = 0.37031250; TotalTime = 0.82552s; TotalTimePerSample = 0.32247ms; SamplesPerSecond = 3101
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 1.17490788; err = 0.35585937; TotalTime = 0.79413s; TotalTimePerSample = 0.31021ms; SamplesPerSecond = 3223
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.20401611; err = 0.36210938; TotalTime = 0.81917s; TotalTimePerSample = 0.31999ms; SamplesPerSecond = 3125
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.18899193; err = 0.38164063; TotalTime = 0.84552s; TotalTimePerSample = 0.33028ms; SamplesPerSecond = 3027
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.16435585; err = 0.34492187; TotalTime = 0.92039s; TotalTimePerSample = 0.35953ms; SamplesPerSecond = 2781
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.13413086; err = 0.34570313; TotalTime = 0.78939s; TotalTimePerSample = 0.30836ms; SamplesPerSecond = 3243
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.18822556; err = 0.35820313; TotalTime = 1.28111s; TotalTimePerSample = 0.50043ms; SamplesPerSecond = 1998
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.23435211; err = 0.37265625; TotalTime = 0.84101s; TotalTimePerSample = 0.32852ms; SamplesPerSecond = 3043
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.19776535; err = 0.36406250; TotalTime = 0.79750s; TotalTimePerSample = 0.31153ms; SamplesPerSecond = 3210
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.17883530; err = 0.36601563; TotalTime = 0.78897s; TotalTimePerSample = 0.30819ms; SamplesPerSecond = 3244
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.26480560; err = 0.39179687; TotalTime = 0.80044s; TotalTimePerSample = 0.31267ms; SamplesPerSecond = 3198
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.19315338; err = 0.36406250; TotalTime = 0.78345s; TotalTimePerSample = 0.30604ms; SamplesPerSecond = 3267
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.22714691; err = 0.38046875; TotalTime = 0.83964s; TotalTimePerSample = 0.32798ms; SamplesPerSecond = 3048
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.21824493; err = 0.37929687; TotalTime = 0.78280s; TotalTimePerSample = 0.30578ms; SamplesPerSecond = 3270
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.16403503; err = 0.35742188; TotalTime = 0.77936s; TotalTimePerSample = 0.30444ms; SamplesPerSecond = 3284
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.14682007; err = 0.35273437; TotalTime = 0.80358s; TotalTimePerSample = 0.31390ms; SamplesPerSecond = 3185
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.16286163; err = 0.34296875; TotalTime = 0.80497s; TotalTimePerSample = 0.31444ms; SamplesPerSecond = 3180
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.15572357; err = 0.35742188; TotalTime = 0.82832s; TotalTimePerSample = 0.32356ms; SamplesPerSecond = 3090
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.09647369; err = 0.33515625; TotalTime = 1.20946s; TotalTimePerSample = 0.47245ms; SamplesPerSecond = 2116
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.15619965; err = 0.35625000; TotalTime = 0.84213s; TotalTimePerSample = 0.32896ms; SamplesPerSecond = 3039
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.18662567; err = 0.36171875; TotalTime = 0.79636s; TotalTimePerSample = 0.31108ms; SamplesPerSecond = 3214
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.19353638; err = 0.37578125; TotalTime = 0.79557s; TotalTimePerSample = 0.31077ms; SamplesPerSecond = 3217
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.15247192; err = 0.34726563; TotalTime = 0.78307s; TotalTimePerSample = 0.30589ms; SamplesPerSecond = 3269
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.15059509; err = 0.35117188; TotalTime = 0.78616s; TotalTimePerSample = 0.30709ms; SamplesPerSecond = 3256
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.07452087; err = 0.32890625; TotalTime = 0.81104s; TotalTimePerSample = 0.31681ms; SamplesPerSecond = 3156
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.10093384; err = 0.34609375; TotalTime = 0.82247s; TotalTimePerSample = 0.32128ms; SamplesPerSecond = 3112
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.06968994; err = 0.33164063; TotalTime = 0.80968s; TotalTimePerSample = 0.31628ms; SamplesPerSecond = 3161
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.11170044; err = 0.34296875; TotalTime = 0.80222s; TotalTimePerSample = 0.31337ms; SamplesPerSecond = 3191
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.15401306; err = 0.35585937; TotalTime = 0.96892s; TotalTimePerSample = 0.37848ms; SamplesPerSecond = 2642
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.12380981; err = 0.35234375; TotalTime = 1.05247s; TotalTimePerSample = 0.41112ms; SamplesPerSecond = 2432
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.07885132; err = 0.32148437; TotalTime = 1.29900s; TotalTimePerSample = 0.50742ms; SamplesPerSecond = 1970
|
||||
Finished Epoch[ 2 of 2]: [Training] ce = 1.1648235; err = 0.35716555; learningRatePerSample = 0.003125000047; EpochTime=27.866186
|
||||
CNTKCommandTrainEnd: DPT_Pre1
|
||||
|
||||
|
||||
|
@ -1793,76 +1793,76 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 4.54558067; EvalErrorPrediction = 0.80625000; TotalTime = 1.47303s; TotalTimePerSample = 0.57540ms; SamplesPerSecond = 1737
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.84298668; EvalErrorPrediction = 0.68515625; TotalTime = 1.40407s; TotalTimePerSample = 0.54846ms; SamplesPerSecond = 1823
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.27536545; EvalErrorPrediction = 0.60273438; TotalTime = 1.75662s; TotalTimePerSample = 0.68618ms; SamplesPerSecond = 1457
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.91519928; EvalErrorPrediction = 0.51406250; TotalTime = 1.35283s; TotalTimePerSample = 0.52845ms; SamplesPerSecond = 1892
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.68722076; EvalErrorPrediction = 0.46601562; TotalTime = 1.36410s; TotalTimePerSample = 0.53285ms; SamplesPerSecond = 1876
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.58424530; EvalErrorPrediction = 0.45742187; TotalTime = 1.36985s; TotalTimePerSample = 0.53510ms; SamplesPerSecond = 1868
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.49036713; EvalErrorPrediction = 0.43554688; TotalTime = 1.55377s; TotalTimePerSample = 0.60694ms; SamplesPerSecond = 1647
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.48389893; EvalErrorPrediction = 0.43085937; TotalTime = 1.39856s; TotalTimePerSample = 0.54631ms; SamplesPerSecond = 1830
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.45019989; EvalErrorPrediction = 0.41250000; TotalTime = 1.40718s; TotalTimePerSample = 0.54968ms; SamplesPerSecond = 1819
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41547852; EvalErrorPrediction = 0.40351562; TotalTime = 1.89277s; TotalTimePerSample = 0.73936ms; SamplesPerSecond = 1352
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.41315918; EvalErrorPrediction = 0.40742187; TotalTime = 1.39634s; TotalTimePerSample = 0.54545ms; SamplesPerSecond = 1833
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33824921; EvalErrorPrediction = 0.39179687; TotalTime = 1.57873s; TotalTimePerSample = 0.61669ms; SamplesPerSecond = 1621
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31290741; EvalErrorPrediction = 0.38593750; TotalTime = 1.36941s; TotalTimePerSample = 0.53493ms; SamplesPerSecond = 1869
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33027344; EvalErrorPrediction = 0.40039063; TotalTime = 1.35049s; TotalTimePerSample = 0.52753ms; SamplesPerSecond = 1895
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31422729; EvalErrorPrediction = 0.38632813; TotalTime = 1.35598s; TotalTimePerSample = 0.52968ms; SamplesPerSecond = 1887
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.26712646; EvalErrorPrediction = 0.38710937; TotalTime = 1.39183s; TotalTimePerSample = 0.54368ms; SamplesPerSecond = 1839
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.28440247; EvalErrorPrediction = 0.38242188; TotalTime = 1.69816s; TotalTimePerSample = 0.66334ms; SamplesPerSecond = 1507
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31289368; EvalErrorPrediction = 0.39648438; TotalTime = 1.39519s; TotalTimePerSample = 0.54500ms; SamplesPerSecond = 1834
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33919067; EvalErrorPrediction = 0.41250000; TotalTime = 1.39722s; TotalTimePerSample = 0.54579ms; SamplesPerSecond = 1832
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.31965942; EvalErrorPrediction = 0.41757813; TotalTime = 1.65563s; TotalTimePerSample = 0.64673ms; SamplesPerSecond = 1546
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23342590; EvalErrorPrediction = 0.37578125; TotalTime = 1.64381s; TotalTimePerSample = 0.64211ms; SamplesPerSecond = 1557
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.26905212; EvalErrorPrediction = 0.38671875; TotalTime = 1.40643s; TotalTimePerSample = 0.54938ms; SamplesPerSecond = 1820
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.27187195; EvalErrorPrediction = 0.37109375; TotalTime = 1.33750s; TotalTimePerSample = 0.52246ms; SamplesPerSecond = 1914
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.24517822; EvalErrorPrediction = 0.37382813; TotalTime = 1.70417s; TotalTimePerSample = 0.66569ms; SamplesPerSecond = 1502
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.21053467; EvalErrorPrediction = 0.37109375; TotalTime = 1.36920s; TotalTimePerSample = 0.53484ms; SamplesPerSecond = 1869
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18406067; EvalErrorPrediction = 0.36757812; TotalTime = 1.38623s; TotalTimePerSample = 0.54150ms; SamplesPerSecond = 1846
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23108521; EvalErrorPrediction = 0.36718750; TotalTime = 1.33867s; TotalTimePerSample = 0.52292ms; SamplesPerSecond = 1912
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18462524; EvalErrorPrediction = 0.36093750; TotalTime = 1.37471s; TotalTimePerSample = 0.53700ms; SamplesPerSecond = 1862
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17063904; EvalErrorPrediction = 0.35781250; TotalTime = 1.38296s; TotalTimePerSample = 0.54022ms; SamplesPerSecond = 1851
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14370728; EvalErrorPrediction = 0.34335938; TotalTime = 1.42403s; TotalTimePerSample = 0.55626ms; SamplesPerSecond = 1797
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17314453; EvalErrorPrediction = 0.34921875; TotalTime = 1.37369s; TotalTimePerSample = 0.53660ms; SamplesPerSecond = 1863
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18715210; EvalErrorPrediction = 0.36328125; TotalTime = 1.80418s; TotalTimePerSample = 0.70476ms; SamplesPerSecond = 1418
|
||||
Finished Epoch[ 1 of 2]: [Training] CrossEntropyWithSoftmax = 1.5133471; EvalErrorPrediction = 0.42406008; learningRatePerSample = 0.003125000047; EpochTime=49.952198
|
||||
Epoch[ 1 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 4.54558067; err = 0.80625000; TotalTime = 1.47303s; TotalTimePerSample = 0.57540ms; SamplesPerSecond = 1737
|
||||
Epoch[ 1 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.84298668; err = 0.68515625; TotalTime = 1.40407s; TotalTimePerSample = 0.54846ms; SamplesPerSecond = 1823
|
||||
Epoch[ 1 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.27536545; err = 0.60273438; TotalTime = 1.75662s; TotalTimePerSample = 0.68618ms; SamplesPerSecond = 1457
|
||||
Epoch[ 1 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.91519928; err = 0.51406250; TotalTime = 1.35283s; TotalTimePerSample = 0.52845ms; SamplesPerSecond = 1892
|
||||
Epoch[ 1 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.68722076; err = 0.46601562; TotalTime = 1.36410s; TotalTimePerSample = 0.53285ms; SamplesPerSecond = 1876
|
||||
Epoch[ 1 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.58424530; err = 0.45742187; TotalTime = 1.36985s; TotalTimePerSample = 0.53510ms; SamplesPerSecond = 1868
|
||||
Epoch[ 1 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.49036713; err = 0.43554688; TotalTime = 1.55377s; TotalTimePerSample = 0.60694ms; SamplesPerSecond = 1647
|
||||
Epoch[ 1 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.48389893; err = 0.43085937; TotalTime = 1.39856s; TotalTimePerSample = 0.54631ms; SamplesPerSecond = 1830
|
||||
Epoch[ 1 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.45019989; err = 0.41250000; TotalTime = 1.40718s; TotalTimePerSample = 0.54968ms; SamplesPerSecond = 1819
|
||||
Epoch[ 1 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.41547852; err = 0.40351562; TotalTime = 1.89277s; TotalTimePerSample = 0.73936ms; SamplesPerSecond = 1352
|
||||
Epoch[ 1 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.41315918; err = 0.40742187; TotalTime = 1.39634s; TotalTimePerSample = 0.54545ms; SamplesPerSecond = 1833
|
||||
Epoch[ 1 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.33824921; err = 0.39179687; TotalTime = 1.57873s; TotalTimePerSample = 0.61669ms; SamplesPerSecond = 1621
|
||||
Epoch[ 1 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.31290741; err = 0.38593750; TotalTime = 1.36941s; TotalTimePerSample = 0.53493ms; SamplesPerSecond = 1869
|
||||
Epoch[ 1 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.33027344; err = 0.40039063; TotalTime = 1.35049s; TotalTimePerSample = 0.52753ms; SamplesPerSecond = 1895
|
||||
Epoch[ 1 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.31422729; err = 0.38632813; TotalTime = 1.35598s; TotalTimePerSample = 0.52968ms; SamplesPerSecond = 1887
|
||||
Epoch[ 1 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.26712646; err = 0.38710937; TotalTime = 1.39183s; TotalTimePerSample = 0.54368ms; SamplesPerSecond = 1839
|
||||
Epoch[ 1 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.28440247; err = 0.38242188; TotalTime = 1.69816s; TotalTimePerSample = 0.66334ms; SamplesPerSecond = 1507
|
||||
Epoch[ 1 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.31289368; err = 0.39648438; TotalTime = 1.39519s; TotalTimePerSample = 0.54500ms; SamplesPerSecond = 1834
|
||||
Epoch[ 1 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.33919067; err = 0.41250000; TotalTime = 1.39722s; TotalTimePerSample = 0.54579ms; SamplesPerSecond = 1832
|
||||
Epoch[ 1 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.31965942; err = 0.41757813; TotalTime = 1.65563s; TotalTimePerSample = 0.64673ms; SamplesPerSecond = 1546
|
||||
Epoch[ 1 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.23342590; err = 0.37578125; TotalTime = 1.64381s; TotalTimePerSample = 0.64211ms; SamplesPerSecond = 1557
|
||||
Epoch[ 1 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.26905212; err = 0.38671875; TotalTime = 1.40643s; TotalTimePerSample = 0.54938ms; SamplesPerSecond = 1820
|
||||
Epoch[ 1 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.27187195; err = 0.37109375; TotalTime = 1.33750s; TotalTimePerSample = 0.52246ms; SamplesPerSecond = 1914
|
||||
Epoch[ 1 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.24517822; err = 0.37382813; TotalTime = 1.70417s; TotalTimePerSample = 0.66569ms; SamplesPerSecond = 1502
|
||||
Epoch[ 1 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.21053467; err = 0.37109375; TotalTime = 1.36920s; TotalTimePerSample = 0.53484ms; SamplesPerSecond = 1869
|
||||
Epoch[ 1 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.18406067; err = 0.36757812; TotalTime = 1.38623s; TotalTimePerSample = 0.54150ms; SamplesPerSecond = 1846
|
||||
Epoch[ 1 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.23108521; err = 0.36718750; TotalTime = 1.33867s; TotalTimePerSample = 0.52292ms; SamplesPerSecond = 1912
|
||||
Epoch[ 1 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.18462524; err = 0.36093750; TotalTime = 1.37471s; TotalTimePerSample = 0.53700ms; SamplesPerSecond = 1862
|
||||
Epoch[ 1 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.17063904; err = 0.35781250; TotalTime = 1.38296s; TotalTimePerSample = 0.54022ms; SamplesPerSecond = 1851
|
||||
Epoch[ 1 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.14370728; err = 0.34335938; TotalTime = 1.42403s; TotalTimePerSample = 0.55626ms; SamplesPerSecond = 1797
|
||||
Epoch[ 1 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.17314453; err = 0.34921875; TotalTime = 1.37369s; TotalTimePerSample = 0.53660ms; SamplesPerSecond = 1863
|
||||
Epoch[ 1 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.18715210; err = 0.36328125; TotalTime = 1.80418s; TotalTimePerSample = 0.70476ms; SamplesPerSecond = 1418
|
||||
Finished Epoch[ 1 of 2]: [Training] ce = 1.5133471; err = 0.42406008; learningRatePerSample = 0.003125000047; EpochTime=49.952198
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.900000
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18743801; EvalErrorPrediction = 0.35585937; TotalTime = 1.47891s; TotalTimePerSample = 0.57770ms; SamplesPerSecond = 1731
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14856281; EvalErrorPrediction = 0.34804687; TotalTime = 1.38199s; TotalTimePerSample = 0.53984ms; SamplesPerSecond = 1852
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 1.15754395; EvalErrorPrediction = 0.34804687; TotalTime = 1.35597s; TotalTimePerSample = 0.52968ms; SamplesPerSecond = 1887
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14760780; EvalErrorPrediction = 0.34375000; TotalTime = 1.36131s; TotalTimePerSample = 0.53176ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14606209; EvalErrorPrediction = 0.35546875; TotalTime = 1.39984s; TotalTimePerSample = 0.54681ms; SamplesPerSecond = 1828
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13943710; EvalErrorPrediction = 0.33593750; TotalTime = 1.39025s; TotalTimePerSample = 0.54307ms; SamplesPerSecond = 1841
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09978561; EvalErrorPrediction = 0.33632812; TotalTime = 1.83114s; TotalTimePerSample = 0.71529ms; SamplesPerSecond = 1398
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16258240; EvalErrorPrediction = 0.35468750; TotalTime = 1.37695s; TotalTimePerSample = 0.53787ms; SamplesPerSecond = 1859
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16670074; EvalErrorPrediction = 0.36015625; TotalTime = 1.39585s; TotalTimePerSample = 0.54525ms; SamplesPerSecond = 1834
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12352142; EvalErrorPrediction = 0.33867188; TotalTime = 1.36493s; TotalTimePerSample = 0.53317ms; SamplesPerSecond = 1875
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12195129; EvalErrorPrediction = 0.34570313; TotalTime = 1.33980s; TotalTimePerSample = 0.52336ms; SamplesPerSecond = 1910
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18841553; EvalErrorPrediction = 0.36562500; TotalTime = 1.34158s; TotalTimePerSample = 0.52405ms; SamplesPerSecond = 1908
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14197235; EvalErrorPrediction = 0.34062500; TotalTime = 1.33997s; TotalTimePerSample = 0.52343ms; SamplesPerSecond = 1910
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.17212372; EvalErrorPrediction = 0.35742188; TotalTime = 1.80645s; TotalTimePerSample = 0.70565ms; SamplesPerSecond = 1417
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12667999; EvalErrorPrediction = 0.35273437; TotalTime = 1.38029s; TotalTimePerSample = 0.53918ms; SamplesPerSecond = 1854
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.09235840; EvalErrorPrediction = 0.33476563; TotalTime = 1.43088s; TotalTimePerSample = 0.55894ms; SamplesPerSecond = 1789
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10599670; EvalErrorPrediction = 0.34062500; TotalTime = 1.34357s; TotalTimePerSample = 0.52483ms; SamplesPerSecond = 1905
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11184387; EvalErrorPrediction = 0.33320312; TotalTime = 1.38528s; TotalTimePerSample = 0.54113ms; SamplesPerSecond = 1847
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10395508; EvalErrorPrediction = 0.34023437; TotalTime = 1.39965s; TotalTimePerSample = 0.54674ms; SamplesPerSecond = 1829
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.06003723; EvalErrorPrediction = 0.32773438; TotalTime = 1.37113s; TotalTimePerSample = 0.53560ms; SamplesPerSecond = 1867
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.10617218; EvalErrorPrediction = 0.33476563; TotalTime = 1.80950s; TotalTimePerSample = 0.70684ms; SamplesPerSecond = 1414
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14527283; EvalErrorPrediction = 0.35429688; TotalTime = 1.37585s; TotalTimePerSample = 0.53744ms; SamplesPerSecond = 1860
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12649536; EvalErrorPrediction = 0.34414062; TotalTime = 1.35334s; TotalTimePerSample = 0.52865ms; SamplesPerSecond = 1891
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11939697; EvalErrorPrediction = 0.33632812; TotalTime = 1.33956s; TotalTimePerSample = 0.52327ms; SamplesPerSecond = 1911
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11855164; EvalErrorPrediction = 0.34375000; TotalTime = 1.36494s; TotalTimePerSample = 0.53318ms; SamplesPerSecond = 1875
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.04503174; EvalErrorPrediction = 0.32539062; TotalTime = 1.38926s; TotalTimePerSample = 0.54268ms; SamplesPerSecond = 1842
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.04819031; EvalErrorPrediction = 0.33281250; TotalTime = 1.36162s; TotalTimePerSample = 0.53188ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.03961487; EvalErrorPrediction = 0.32070312; TotalTime = 1.37349s; TotalTimePerSample = 0.53652ms; SamplesPerSecond = 1863
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.07194214; EvalErrorPrediction = 0.33242187; TotalTime = 1.81902s; TotalTimePerSample = 0.71056ms; SamplesPerSecond = 1407
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11237183; EvalErrorPrediction = 0.34335938; TotalTime = 1.36152s; TotalTimePerSample = 0.53184ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.08430786; EvalErrorPrediction = 0.32890625; TotalTime = 1.43272s; TotalTimePerSample = 0.55965ms; SamplesPerSecond = 1786
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.05424194; EvalErrorPrediction = 0.31484375; TotalTime = 1.34370s; TotalTimePerSample = 0.52488ms; SamplesPerSecond = 1905
|
||||
Finished Epoch[ 2 of 2]: [Training] CrossEntropyWithSoftmax = 1.1180052; EvalErrorPrediction = 0.34147951; learningRatePerSample = 0.003125000047; EpochTime=45.82816
|
||||
Epoch[ 2 of 2]-Minibatch[ 1- 10 of 320]: * 2560; ce = 1.18743801; err = 0.35585937; TotalTime = 1.47891s; TotalTimePerSample = 0.57770ms; SamplesPerSecond = 1731
|
||||
Epoch[ 2 of 2]-Minibatch[ 11- 20 of 320]: * 2560; ce = 1.14856281; err = 0.34804687; TotalTime = 1.38199s; TotalTimePerSample = 0.53984ms; SamplesPerSecond = 1852
|
||||
Epoch[ 2 of 2]-Minibatch[ 21- 30 of 320]: * 2560; ce = 1.15754395; err = 0.34804687; TotalTime = 1.35597s; TotalTimePerSample = 0.52968ms; SamplesPerSecond = 1887
|
||||
Epoch[ 2 of 2]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.14760780; err = 0.34375000; TotalTime = 1.36131s; TotalTimePerSample = 0.53176ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.14606209; err = 0.35546875; TotalTime = 1.39984s; TotalTimePerSample = 0.54681ms; SamplesPerSecond = 1828
|
||||
Epoch[ 2 of 2]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.13943710; err = 0.33593750; TotalTime = 1.39025s; TotalTimePerSample = 0.54307ms; SamplesPerSecond = 1841
|
||||
Epoch[ 2 of 2]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.09978561; err = 0.33632812; TotalTime = 1.83114s; TotalTimePerSample = 0.71529ms; SamplesPerSecond = 1398
|
||||
Epoch[ 2 of 2]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.16258240; err = 0.35468750; TotalTime = 1.37695s; TotalTimePerSample = 0.53787ms; SamplesPerSecond = 1859
|
||||
Epoch[ 2 of 2]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.16670074; err = 0.36015625; TotalTime = 1.39585s; TotalTimePerSample = 0.54525ms; SamplesPerSecond = 1834
|
||||
Epoch[ 2 of 2]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.12352142; err = 0.33867188; TotalTime = 1.36493s; TotalTimePerSample = 0.53317ms; SamplesPerSecond = 1875
|
||||
Epoch[ 2 of 2]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.12195129; err = 0.34570313; TotalTime = 1.33980s; TotalTimePerSample = 0.52336ms; SamplesPerSecond = 1910
|
||||
Epoch[ 2 of 2]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.18841553; err = 0.36562500; TotalTime = 1.34158s; TotalTimePerSample = 0.52405ms; SamplesPerSecond = 1908
|
||||
Epoch[ 2 of 2]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.14197235; err = 0.34062500; TotalTime = 1.33997s; TotalTimePerSample = 0.52343ms; SamplesPerSecond = 1910
|
||||
Epoch[ 2 of 2]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.17212372; err = 0.35742188; TotalTime = 1.80645s; TotalTimePerSample = 0.70565ms; SamplesPerSecond = 1417
|
||||
Epoch[ 2 of 2]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.12667999; err = 0.35273437; TotalTime = 1.38029s; TotalTimePerSample = 0.53918ms; SamplesPerSecond = 1854
|
||||
Epoch[ 2 of 2]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.09235840; err = 0.33476563; TotalTime = 1.43088s; TotalTimePerSample = 0.55894ms; SamplesPerSecond = 1789
|
||||
Epoch[ 2 of 2]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.10599670; err = 0.34062500; TotalTime = 1.34357s; TotalTimePerSample = 0.52483ms; SamplesPerSecond = 1905
|
||||
Epoch[ 2 of 2]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.11184387; err = 0.33320312; TotalTime = 1.38528s; TotalTimePerSample = 0.54113ms; SamplesPerSecond = 1847
|
||||
Epoch[ 2 of 2]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.10395508; err = 0.34023437; TotalTime = 1.39965s; TotalTimePerSample = 0.54674ms; SamplesPerSecond = 1829
|
||||
Epoch[ 2 of 2]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.06003723; err = 0.32773438; TotalTime = 1.37113s; TotalTimePerSample = 0.53560ms; SamplesPerSecond = 1867
|
||||
Epoch[ 2 of 2]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.10617218; err = 0.33476563; TotalTime = 1.80950s; TotalTimePerSample = 0.70684ms; SamplesPerSecond = 1414
|
||||
Epoch[ 2 of 2]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.14527283; err = 0.35429688; TotalTime = 1.37585s; TotalTimePerSample = 0.53744ms; SamplesPerSecond = 1860
|
||||
Epoch[ 2 of 2]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.12649536; err = 0.34414062; TotalTime = 1.35334s; TotalTimePerSample = 0.52865ms; SamplesPerSecond = 1891
|
||||
Epoch[ 2 of 2]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.11939697; err = 0.33632812; TotalTime = 1.33956s; TotalTimePerSample = 0.52327ms; SamplesPerSecond = 1911
|
||||
Epoch[ 2 of 2]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.11855164; err = 0.34375000; TotalTime = 1.36494s; TotalTimePerSample = 0.53318ms; SamplesPerSecond = 1875
|
||||
Epoch[ 2 of 2]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.04503174; err = 0.32539062; TotalTime = 1.38926s; TotalTimePerSample = 0.54268ms; SamplesPerSecond = 1842
|
||||
Epoch[ 2 of 2]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.04819031; err = 0.33281250; TotalTime = 1.36162s; TotalTimePerSample = 0.53188ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.03961487; err = 0.32070312; TotalTime = 1.37349s; TotalTimePerSample = 0.53652ms; SamplesPerSecond = 1863
|
||||
Epoch[ 2 of 2]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.07194214; err = 0.33242187; TotalTime = 1.81902s; TotalTimePerSample = 0.71056ms; SamplesPerSecond = 1407
|
||||
Epoch[ 2 of 2]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.11237183; err = 0.34335938; TotalTime = 1.36152s; TotalTimePerSample = 0.53184ms; SamplesPerSecond = 1880
|
||||
Epoch[ 2 of 2]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.08430786; err = 0.32890625; TotalTime = 1.43272s; TotalTimePerSample = 0.55965ms; SamplesPerSecond = 1786
|
||||
Epoch[ 2 of 2]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.05424194; err = 0.31484375; TotalTime = 1.34370s; TotalTimePerSample = 0.52488ms; SamplesPerSecond = 1905
|
||||
Finished Epoch[ 2 of 2]: [Training] ce = 1.1180052; err = 0.34147951; learningRatePerSample = 0.003125000047; EpochTime=45.82816
|
||||
CNTKCommandTrainEnd: DPT_Pre2
|
||||
|
||||
|
||||
|
@ -3177,101 +3177,101 @@ minibatchiterator: epoch 0: frames [0..81920] (first utterance at frame 0), data
|
|||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 1 of 4]-Minibatch[ 1- 10 of 320]: * 2560; CrossEntropyWithSoftmax = 4.17336311; EvalErrorPrediction = 0.84023437; TotalTime = 2.06124s; TotalTimePerSample = 0.80517ms; SamplesPerSecond = 1241
|
||||
Epoch[ 1 of 4]-Minibatch[ 11- 20 of 320]: * 2560; CrossEntropyWithSoftmax = 2.58318291; EvalErrorPrediction = 0.64453125; TotalTime = 1.93110s; TotalTimePerSample = 0.75433ms; SamplesPerSecond = 1325
|
||||
Epoch[ 1 of 4]-Minibatch[ 21- 30 of 320]: * 2560; CrossEntropyWithSoftmax = 2.05603027; EvalErrorPrediction = 0.54648438; TotalTime = 1.90603s; TotalTimePerSample = 0.74454ms; SamplesPerSecond = 1343
|
||||
Epoch[ 1 of 4]-Minibatch[ 31- 40 of 320]: * 2560; CrossEntropyWithSoftmax = 1.74777603; EvalErrorPrediction = 0.47773437; TotalTime = 1.91457s; TotalTimePerSample = 0.74788ms; SamplesPerSecond = 1337
|
||||
Epoch[ 1 of 4]-Minibatch[ 41- 50 of 320]: * 2560; CrossEntropyWithSoftmax = 1.54688110; EvalErrorPrediction = 0.43867187; TotalTime = 2.54444s; TotalTimePerSample = 0.99392ms; SamplesPerSecond = 1006
|
||||
Epoch[ 1 of 4]-Minibatch[ 51- 60 of 320]: * 2560; CrossEntropyWithSoftmax = 1.44241409; EvalErrorPrediction = 0.41406250; TotalTime = 2.03288s; TotalTimePerSample = 0.79410ms; SamplesPerSecond = 1259
|
||||
Epoch[ 1 of 4]-Minibatch[ 61- 70 of 320]: * 2560; CrossEntropyWithSoftmax = 1.35854034; EvalErrorPrediction = 0.40312500; TotalTime = 2.14522s; TotalTimePerSample = 0.83798ms; SamplesPerSecond = 1193
|
||||
Epoch[ 1 of 4]-Minibatch[ 71- 80 of 320]: * 2560; CrossEntropyWithSoftmax = 1.35585175; EvalErrorPrediction = 0.39531250; TotalTime = 1.92814s; TotalTimePerSample = 0.75318ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 81- 90 of 320]: * 2560; CrossEntropyWithSoftmax = 1.33494263; EvalErrorPrediction = 0.38789062; TotalTime = 2.00338s; TotalTimePerSample = 0.78257ms; SamplesPerSecond = 1277
|
||||
Epoch[ 1 of 4]-Minibatch[ 91- 100 of 320]: * 2560; CrossEntropyWithSoftmax = 1.30348053; EvalErrorPrediction = 0.38320312; TotalTime = 2.44259s; TotalTimePerSample = 0.95414ms; SamplesPerSecond = 1048
|
||||
Epoch[ 1 of 4]-Minibatch[ 101- 110 of 320]: * 2560; CrossEntropyWithSoftmax = 1.30501862; EvalErrorPrediction = 0.38085938; TotalTime = 1.92867s; TotalTimePerSample = 0.75339ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 111- 120 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23170624; EvalErrorPrediction = 0.36640625; TotalTime = 3.54710s; TotalTimePerSample = 1.38558ms; SamplesPerSecond = 721
|
||||
Epoch[ 1 of 4]-Minibatch[ 121- 130 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20843506; EvalErrorPrediction = 0.35546875; TotalTime = 2.56219s; TotalTimePerSample = 1.00086ms; SamplesPerSecond = 999
|
||||
Epoch[ 1 of 4]-Minibatch[ 131- 140 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23209686; EvalErrorPrediction = 0.36601563; TotalTime = 2.63928s; TotalTimePerSample = 1.03097ms; SamplesPerSecond = 969
|
||||
Epoch[ 1 of 4]-Minibatch[ 141- 150 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22095490; EvalErrorPrediction = 0.37070313; TotalTime = 1.94429s; TotalTimePerSample = 0.75949ms; SamplesPerSecond = 1316
|
||||
Epoch[ 1 of 4]-Minibatch[ 151- 160 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18400879; EvalErrorPrediction = 0.35156250; TotalTime = 1.94206s; TotalTimePerSample = 0.75862ms; SamplesPerSecond = 1318
|
||||
Epoch[ 1 of 4]-Minibatch[ 161- 170 of 320]: * 2560; CrossEntropyWithSoftmax = 1.20606384; EvalErrorPrediction = 0.35976562; TotalTime = 1.91605s; TotalTimePerSample = 0.74846ms; SamplesPerSecond = 1336
|
||||
Epoch[ 1 of 4]-Minibatch[ 171- 180 of 320]: * 2560; CrossEntropyWithSoftmax = 1.23779907; EvalErrorPrediction = 0.37617187; TotalTime = 1.92765s; TotalTimePerSample = 0.75299ms; SamplesPerSecond = 1328
|
||||
Epoch[ 1 of 4]-Minibatch[ 181- 190 of 320]: * 2560; CrossEntropyWithSoftmax = 1.26740112; EvalErrorPrediction = 0.37851563; TotalTime = 2.45290s; TotalTimePerSample = 0.95817ms; SamplesPerSecond = 1043
|
||||
Epoch[ 1 of 4]-Minibatch[ 191- 200 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22087402; EvalErrorPrediction = 0.38046875; TotalTime = 1.94683s; TotalTimePerSample = 0.76048ms; SamplesPerSecond = 1314
|
||||
Epoch[ 1 of 4]-Minibatch[ 201- 210 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18200684; EvalErrorPrediction = 0.36210938; TotalTime = 1.92878s; TotalTimePerSample = 0.75343ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 211- 220 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19344177; EvalErrorPrediction = 0.37070313; TotalTime = 1.94856s; TotalTimePerSample = 0.76116ms; SamplesPerSecond = 1313
|
||||
Epoch[ 1 of 4]-Minibatch[ 221- 230 of 320]: * 2560; CrossEntropyWithSoftmax = 1.22325745; EvalErrorPrediction = 0.35468750; TotalTime = 2.01215s; TotalTimePerSample = 0.78600ms; SamplesPerSecond = 1272
|
||||
Epoch[ 1 of 4]-Minibatch[ 231- 240 of 320]: * 2560; CrossEntropyWithSoftmax = 1.19638977; EvalErrorPrediction = 0.35898438; TotalTime = 2.45478s; TotalTimePerSample = 0.95890ms; SamplesPerSecond = 1042
|
||||
Epoch[ 1 of 4]-Minibatch[ 241- 250 of 320]: * 2560; CrossEntropyWithSoftmax = 1.16811523; EvalErrorPrediction = 0.36562500; TotalTime = 2.04822s; TotalTimePerSample = 0.80009ms; SamplesPerSecond = 1249
|
||||
Epoch[ 1 of 4]-Minibatch[ 251- 260 of 320]: * 2560; CrossEntropyWithSoftmax = 1.12518311; EvalErrorPrediction = 0.34765625; TotalTime = 1.96534s; TotalTimePerSample = 0.76771ms; SamplesPerSecond = 1302
|
||||
Epoch[ 1 of 4]-Minibatch[ 261- 270 of 320]: * 2560; CrossEntropyWithSoftmax = 1.18634338; EvalErrorPrediction = 0.35312500; TotalTime = 1.99261s; TotalTimePerSample = 0.77836ms; SamplesPerSecond = 1284
|
||||
Epoch[ 1 of 4]-Minibatch[ 271- 280 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14113159; EvalErrorPrediction = 0.35000000; TotalTime = 1.92141s; TotalTimePerSample = 0.75055ms; SamplesPerSecond = 1332
|
||||
Epoch[ 1 of 4]-Minibatch[ 281- 290 of 320]: * 2560; CrossEntropyWithSoftmax = 1.14277954; EvalErrorPrediction = 0.34414062; TotalTime = 2.31260s; TotalTimePerSample = 0.90336ms; SamplesPerSecond = 1106
|
||||
Epoch[ 1 of 4]-Minibatch[ 291- 300 of 320]: * 2560; CrossEntropyWithSoftmax = 1.11815796; EvalErrorPrediction = 0.33867188; TotalTime = 1.95541s; TotalTimePerSample = 0.76383ms; SamplesPerSecond = 1309
|
||||
Epoch[ 1 of 4]-Minibatch[ 301- 310 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13609314; EvalErrorPrediction = 0.34140625; TotalTime = 1.91000s; TotalTimePerSample = 0.74609ms; SamplesPerSecond = 1340
|
||||
Epoch[ 1 of 4]-Minibatch[ 311- 320 of 320]: * 2560; CrossEntropyWithSoftmax = 1.13069458; EvalErrorPrediction = 0.34609375; TotalTime = 1.90057s; TotalTimePerSample = 0.74241ms; SamplesPerSecond = 1346
|
||||
Finished Epoch[ 1 of 4]: [Training] CrossEntropyWithSoftmax = 1.411263; EvalErrorPrediction = 0.4015747; learningRatePerSample = 0.003125000047; EpochTime=71.007888
|
||||
Epoch[ 1 of 4]-Minibatch[ 1- 10 of 320]: * 2560; ce = 4.17336311; err = 0.84023437; TotalTime = 2.06124s; TotalTimePerSample = 0.80517ms; SamplesPerSecond = 1241
|
||||
Epoch[ 1 of 4]-Minibatch[ 11- 20 of 320]: * 2560; ce = 2.58318291; err = 0.64453125; TotalTime = 1.93110s; TotalTimePerSample = 0.75433ms; SamplesPerSecond = 1325
|
||||
Epoch[ 1 of 4]-Minibatch[ 21- 30 of 320]: * 2560; ce = 2.05603027; err = 0.54648438; TotalTime = 1.90603s; TotalTimePerSample = 0.74454ms; SamplesPerSecond = 1343
|
||||
Epoch[ 1 of 4]-Minibatch[ 31- 40 of 320]: * 2560; ce = 1.74777603; err = 0.47773437; TotalTime = 1.91457s; TotalTimePerSample = 0.74788ms; SamplesPerSecond = 1337
|
||||
Epoch[ 1 of 4]-Minibatch[ 41- 50 of 320]: * 2560; ce = 1.54688110; err = 0.43867187; TotalTime = 2.54444s; TotalTimePerSample = 0.99392ms; SamplesPerSecond = 1006
|
||||
Epoch[ 1 of 4]-Minibatch[ 51- 60 of 320]: * 2560; ce = 1.44241409; err = 0.41406250; TotalTime = 2.03288s; TotalTimePerSample = 0.79410ms; SamplesPerSecond = 1259
|
||||
Epoch[ 1 of 4]-Minibatch[ 61- 70 of 320]: * 2560; ce = 1.35854034; err = 0.40312500; TotalTime = 2.14522s; TotalTimePerSample = 0.83798ms; SamplesPerSecond = 1193
|
||||
Epoch[ 1 of 4]-Minibatch[ 71- 80 of 320]: * 2560; ce = 1.35585175; err = 0.39531250; TotalTime = 1.92814s; TotalTimePerSample = 0.75318ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 81- 90 of 320]: * 2560; ce = 1.33494263; err = 0.38789062; TotalTime = 2.00338s; TotalTimePerSample = 0.78257ms; SamplesPerSecond = 1277
|
||||
Epoch[ 1 of 4]-Minibatch[ 91- 100 of 320]: * 2560; ce = 1.30348053; err = 0.38320312; TotalTime = 2.44259s; TotalTimePerSample = 0.95414ms; SamplesPerSecond = 1048
|
||||
Epoch[ 1 of 4]-Minibatch[ 101- 110 of 320]: * 2560; ce = 1.30501862; err = 0.38085938; TotalTime = 1.92867s; TotalTimePerSample = 0.75339ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 111- 120 of 320]: * 2560; ce = 1.23170624; err = 0.36640625; TotalTime = 3.54710s; TotalTimePerSample = 1.38558ms; SamplesPerSecond = 721
|
||||
Epoch[ 1 of 4]-Minibatch[ 121- 130 of 320]: * 2560; ce = 1.20843506; err = 0.35546875; TotalTime = 2.56219s; TotalTimePerSample = 1.00086ms; SamplesPerSecond = 999
|
||||
Epoch[ 1 of 4]-Minibatch[ 131- 140 of 320]: * 2560; ce = 1.23209686; err = 0.36601563; TotalTime = 2.63928s; TotalTimePerSample = 1.03097ms; SamplesPerSecond = 969
|
||||
Epoch[ 1 of 4]-Minibatch[ 141- 150 of 320]: * 2560; ce = 1.22095490; err = 0.37070313; TotalTime = 1.94429s; TotalTimePerSample = 0.75949ms; SamplesPerSecond = 1316
|
||||
Epoch[ 1 of 4]-Minibatch[ 151- 160 of 320]: * 2560; ce = 1.18400879; err = 0.35156250; TotalTime = 1.94206s; TotalTimePerSample = 0.75862ms; SamplesPerSecond = 1318
|
||||
Epoch[ 1 of 4]-Minibatch[ 161- 170 of 320]: * 2560; ce = 1.20606384; err = 0.35976562; TotalTime = 1.91605s; TotalTimePerSample = 0.74846ms; SamplesPerSecond = 1336
|
||||
Epoch[ 1 of 4]-Minibatch[ 171- 180 of 320]: * 2560; ce = 1.23779907; err = 0.37617187; TotalTime = 1.92765s; TotalTimePerSample = 0.75299ms; SamplesPerSecond = 1328
|
||||
Epoch[ 1 of 4]-Minibatch[ 181- 190 of 320]: * 2560; ce = 1.26740112; err = 0.37851563; TotalTime = 2.45290s; TotalTimePerSample = 0.95817ms; SamplesPerSecond = 1043
|
||||
Epoch[ 1 of 4]-Minibatch[ 191- 200 of 320]: * 2560; ce = 1.22087402; err = 0.38046875; TotalTime = 1.94683s; TotalTimePerSample = 0.76048ms; SamplesPerSecond = 1314
|
||||
Epoch[ 1 of 4]-Minibatch[ 201- 210 of 320]: * 2560; ce = 1.18200684; err = 0.36210938; TotalTime = 1.92878s; TotalTimePerSample = 0.75343ms; SamplesPerSecond = 1327
|
||||
Epoch[ 1 of 4]-Minibatch[ 211- 220 of 320]: * 2560; ce = 1.19344177; err = 0.37070313; TotalTime = 1.94856s; TotalTimePerSample = 0.76116ms; SamplesPerSecond = 1313
|
||||
Epoch[ 1 of 4]-Minibatch[ 221- 230 of 320]: * 2560; ce = 1.22325745; err = 0.35468750; TotalTime = 2.01215s; TotalTimePerSample = 0.78600ms; SamplesPerSecond = 1272
|
||||
Epoch[ 1 of 4]-Minibatch[ 231- 240 of 320]: * 2560; ce = 1.19638977; err = 0.35898438; TotalTime = 2.45478s; TotalTimePerSample = 0.95890ms; SamplesPerSecond = 1042
|
||||
Epoch[ 1 of 4]-Minibatch[ 241- 250 of 320]: * 2560; ce = 1.16811523; err = 0.36562500; TotalTime = 2.04822s; TotalTimePerSample = 0.80009ms; SamplesPerSecond = 1249
|
||||
Epoch[ 1 of 4]-Minibatch[ 251- 260 of 320]: * 2560; ce = 1.12518311; err = 0.34765625; TotalTime = 1.96534s; TotalTimePerSample = 0.76771ms; SamplesPerSecond = 1302
|
||||
Epoch[ 1 of 4]-Minibatch[ 261- 270 of 320]: * 2560; ce = 1.18634338; err = 0.35312500; TotalTime = 1.99261s; TotalTimePerSample = 0.77836ms; SamplesPerSecond = 1284
|
||||
Epoch[ 1 of 4]-Minibatch[ 271- 280 of 320]: * 2560; ce = 1.14113159; err = 0.35000000; TotalTime = 1.92141s; TotalTimePerSample = 0.75055ms; SamplesPerSecond = 1332
|
||||
Epoch[ 1 of 4]-Minibatch[ 281- 290 of 320]: * 2560; ce = 1.14277954; err = 0.34414062; TotalTime = 2.31260s; TotalTimePerSample = 0.90336ms; SamplesPerSecond = 1106
|
||||
Epoch[ 1 of 4]-Minibatch[ 291- 300 of 320]: * 2560; ce = 1.11815796; err = 0.33867188; TotalTime = 1.95541s; TotalTimePerSample = 0.76383ms; SamplesPerSecond = 1309
|
||||
Epoch[ 1 of 4]-Minibatch[ 301- 310 of 320]: * 2560; ce = 1.13609314; err = 0.34140625; TotalTime = 1.91000s; TotalTimePerSample = 0.74609ms; SamplesPerSecond = 1340
|
||||
Epoch[ 1 of 4]-Minibatch[ 311- 320 of 320]: * 2560; ce = 1.13069458; err = 0.34609375; TotalTime = 1.90057s; TotalTimePerSample = 0.74241ms; SamplesPerSecond = 1346
|
||||
Finished Epoch[ 1 of 4]: [Training] ce = 1.411263; err = 0.4015747; learningRatePerSample = 0.003125000047; EpochTime=71.007888
|
||||
Starting Epoch 2: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 1: frames [81920..163840] (first utterance at frame 81920), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 2 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.20858374; EvalErrorPrediction = 0.36269531; TotalTime = 2.60521s; TotalTimePerSample = 0.50883ms; SamplesPerSecond = 1965
|
||||
Epoch[ 2 of 4]-Minibatch[ 11- 20 of 160]: * 5120; CrossEntropyWithSoftmax = 1.15259104; EvalErrorPrediction = 0.34609375; TotalTime = 2.83770s; TotalTimePerSample = 0.55424ms; SamplesPerSecond = 1804
|
||||
Epoch[ 2 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11579819; EvalErrorPrediction = 0.34238281; TotalTime = 2.41000s; TotalTimePerSample = 0.47070ms; SamplesPerSecond = 2124
|
||||
Epoch[ 2 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11495934; EvalErrorPrediction = 0.34570313; TotalTime = 2.45457s; TotalTimePerSample = 0.47941ms; SamplesPerSecond = 2085
|
||||
Epoch[ 2 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 1.19023743; EvalErrorPrediction = 0.36894531; TotalTime = 2.40870s; TotalTimePerSample = 0.47045ms; SamplesPerSecond = 2125
|
||||
Epoch[ 2 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 1.18024330; EvalErrorPrediction = 0.36210938; TotalTime = 2.75762s; TotalTimePerSample = 0.53860ms; SamplesPerSecond = 1856
|
||||
Epoch[ 2 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 1.16740799; EvalErrorPrediction = 0.35175781; TotalTime = 2.46142s; TotalTimePerSample = 0.48075ms; SamplesPerSecond = 2080
|
||||
Epoch[ 2 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09000397; EvalErrorPrediction = 0.34121094; TotalTime = 2.43527s; TotalTimePerSample = 0.47564ms; SamplesPerSecond = 2102
|
||||
Epoch[ 2 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09481125; EvalErrorPrediction = 0.33378906; TotalTime = 2.46109s; TotalTimePerSample = 0.48068ms; SamplesPerSecond = 2080
|
||||
Epoch[ 2 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06353989; EvalErrorPrediction = 0.32480469; TotalTime = 2.90383s; TotalTimePerSample = 0.56715ms; SamplesPerSecond = 1763
|
||||
Epoch[ 2 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11828995; EvalErrorPrediction = 0.34199219; TotalTime = 2.37363s; TotalTimePerSample = 0.46360ms; SamplesPerSecond = 2157
|
||||
Epoch[ 2 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 1.15714111; EvalErrorPrediction = 0.35742188; TotalTime = 2.41495s; TotalTimePerSample = 0.47167ms; SamplesPerSecond = 2120
|
||||
Epoch[ 2 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06128235; EvalErrorPrediction = 0.32871094; TotalTime = 2.42177s; TotalTimePerSample = 0.47300ms; SamplesPerSecond = 2114
|
||||
Epoch[ 2 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 1.03393250; EvalErrorPrediction = 0.32167969; TotalTime = 2.86138s; TotalTimePerSample = 0.55886ms; SamplesPerSecond = 1789
|
||||
Epoch[ 2 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09766846; EvalErrorPrediction = 0.33828125; TotalTime = 2.49456s; TotalTimePerSample = 0.48722ms; SamplesPerSecond = 2052
|
||||
Epoch[ 2 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 1.07232513; EvalErrorPrediction = 0.32617188; TotalTime = 2.62645s; TotalTimePerSample = 0.51298ms; SamplesPerSecond = 1949
|
||||
Finished Epoch[ 2 of 4]: [Training] CrossEntropyWithSoftmax = 1.119926; EvalErrorPrediction = 0.34335938; learningRatePerSample = 0.003125000047; EpochTime=40.972593
|
||||
Epoch[ 2 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.20858374; err = 0.36269531; TotalTime = 2.60521s; TotalTimePerSample = 0.50883ms; SamplesPerSecond = 1965
|
||||
Epoch[ 2 of 4]-Minibatch[ 11- 20 of 160]: * 5120; ce = 1.15259104; err = 0.34609375; TotalTime = 2.83770s; TotalTimePerSample = 0.55424ms; SamplesPerSecond = 1804
|
||||
Epoch[ 2 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.11579819; err = 0.34238281; TotalTime = 2.41000s; TotalTimePerSample = 0.47070ms; SamplesPerSecond = 2124
|
||||
Epoch[ 2 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 1.11495934; err = 0.34570313; TotalTime = 2.45457s; TotalTimePerSample = 0.47941ms; SamplesPerSecond = 2085
|
||||
Epoch[ 2 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 1.19023743; err = 0.36894531; TotalTime = 2.40870s; TotalTimePerSample = 0.47045ms; SamplesPerSecond = 2125
|
||||
Epoch[ 2 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 1.18024330; err = 0.36210938; TotalTime = 2.75762s; TotalTimePerSample = 0.53860ms; SamplesPerSecond = 1856
|
||||
Epoch[ 2 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 1.16740799; err = 0.35175781; TotalTime = 2.46142s; TotalTimePerSample = 0.48075ms; SamplesPerSecond = 2080
|
||||
Epoch[ 2 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 1.09000397; err = 0.34121094; TotalTime = 2.43527s; TotalTimePerSample = 0.47564ms; SamplesPerSecond = 2102
|
||||
Epoch[ 2 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 1.09481125; err = 0.33378906; TotalTime = 2.46109s; TotalTimePerSample = 0.48068ms; SamplesPerSecond = 2080
|
||||
Epoch[ 2 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 1.06353989; err = 0.32480469; TotalTime = 2.90383s; TotalTimePerSample = 0.56715ms; SamplesPerSecond = 1763
|
||||
Epoch[ 2 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 1.11828995; err = 0.34199219; TotalTime = 2.37363s; TotalTimePerSample = 0.46360ms; SamplesPerSecond = 2157
|
||||
Epoch[ 2 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 1.15714111; err = 0.35742188; TotalTime = 2.41495s; TotalTimePerSample = 0.47167ms; SamplesPerSecond = 2120
|
||||
Epoch[ 2 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 1.06128235; err = 0.32871094; TotalTime = 2.42177s; TotalTimePerSample = 0.47300ms; SamplesPerSecond = 2114
|
||||
Epoch[ 2 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 1.03393250; err = 0.32167969; TotalTime = 2.86138s; TotalTimePerSample = 0.55886ms; SamplesPerSecond = 1789
|
||||
Epoch[ 2 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 1.09766846; err = 0.33828125; TotalTime = 2.49456s; TotalTimePerSample = 0.48722ms; SamplesPerSecond = 2052
|
||||
Epoch[ 2 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 1.07232513; err = 0.32617188; TotalTime = 2.62645s; TotalTimePerSample = 0.51298ms; SamplesPerSecond = 1949
|
||||
Finished Epoch[ 2 of 4]: [Training] ce = 1.119926; err = 0.34335938; learningRatePerSample = 0.003125000047; EpochTime=40.972593
|
||||
Starting Epoch 3: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 2: frames [163840..245760] (first utterance at frame 163840), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 3 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.12369976; EvalErrorPrediction = 0.34121094; TotalTime = 2.71170s; TotalTimePerSample = 0.52963ms; SamplesPerSecond = 1888
|
||||
Epoch[ 3 of 4]-Minibatch[ 11- 20 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08172264; EvalErrorPrediction = 0.33535156; TotalTime = 3.00751s; TotalTimePerSample = 0.58741ms; SamplesPerSecond = 1702
|
||||
Epoch[ 3 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06359730; EvalErrorPrediction = 0.32871094; TotalTime = 2.41305s; TotalTimePerSample = 0.47130ms; SamplesPerSecond = 2121
|
||||
Epoch[ 3 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09275322; EvalErrorPrediction = 0.34023437; TotalTime = 2.38985s; TotalTimePerSample = 0.46677ms; SamplesPerSecond = 2142
|
||||
Epoch[ 3 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06271973; EvalErrorPrediction = 0.32773438; TotalTime = 2.45865s; TotalTimePerSample = 0.48021ms; SamplesPerSecond = 2082
|
||||
Epoch[ 3 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05469666; EvalErrorPrediction = 0.33300781; TotalTime = 2.79982s; TotalTimePerSample = 0.54684ms; SamplesPerSecond = 1828
|
||||
Epoch[ 3 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09982071; EvalErrorPrediction = 0.33613281; TotalTime = 2.28760s; TotalTimePerSample = 0.44680ms; SamplesPerSecond = 2238
|
||||
Epoch[ 3 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 1.08198242; EvalErrorPrediction = 0.32695313; TotalTime = 2.27461s; TotalTimePerSample = 0.44426ms; SamplesPerSecond = 2250
|
||||
Epoch[ 3 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 1.04190979; EvalErrorPrediction = 0.32617188; TotalTime = 2.41349s; TotalTimePerSample = 0.47138ms; SamplesPerSecond = 2121
|
||||
Epoch[ 3 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05153503; EvalErrorPrediction = 0.32187500; TotalTime = 2.94621s; TotalTimePerSample = 0.57543ms; SamplesPerSecond = 1737
|
||||
Epoch[ 3 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 1.04438324; EvalErrorPrediction = 0.32597656; TotalTime = 2.49370s; TotalTimePerSample = 0.48705ms; SamplesPerSecond = 2053
|
||||
Epoch[ 3 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 1.09297791; EvalErrorPrediction = 0.33476563; TotalTime = 2.44252s; TotalTimePerSample = 0.47705ms; SamplesPerSecond = 2096
|
||||
Epoch[ 3 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 1.11578674; EvalErrorPrediction = 0.33554688; TotalTime = 2.41458s; TotalTimePerSample = 0.47160ms; SamplesPerSecond = 2120
|
||||
Epoch[ 3 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06495667; EvalErrorPrediction = 0.32539062; TotalTime = 2.80408s; TotalTimePerSample = 0.54767ms; SamplesPerSecond = 1825
|
||||
Epoch[ 3 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 1.06517181; EvalErrorPrediction = 0.33945313; TotalTime = 2.51803s; TotalTimePerSample = 0.49180ms; SamplesPerSecond = 2033
|
||||
Epoch[ 3 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 1.05488586; EvalErrorPrediction = 0.32402344; TotalTime = 2.71141s; TotalTimePerSample = 0.52957ms; SamplesPerSecond = 1888
|
||||
Finished Epoch[ 3 of 4]: [Training] CrossEntropyWithSoftmax = 1.0745375; EvalErrorPrediction = 0.33140871; learningRatePerSample = 0.003125000047; EpochTime=41.133271
|
||||
Epoch[ 3 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.12369976; err = 0.34121094; TotalTime = 2.71170s; TotalTimePerSample = 0.52963ms; SamplesPerSecond = 1888
|
||||
Epoch[ 3 of 4]-Minibatch[ 11- 20 of 160]: * 5120; ce = 1.08172264; err = 0.33535156; TotalTime = 3.00751s; TotalTimePerSample = 0.58741ms; SamplesPerSecond = 1702
|
||||
Epoch[ 3 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.06359730; err = 0.32871094; TotalTime = 2.41305s; TotalTimePerSample = 0.47130ms; SamplesPerSecond = 2121
|
||||
Epoch[ 3 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 1.09275322; err = 0.34023437; TotalTime = 2.38985s; TotalTimePerSample = 0.46677ms; SamplesPerSecond = 2142
|
||||
Epoch[ 3 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 1.06271973; err = 0.32773438; TotalTime = 2.45865s; TotalTimePerSample = 0.48021ms; SamplesPerSecond = 2082
|
||||
Epoch[ 3 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 1.05469666; err = 0.33300781; TotalTime = 2.79982s; TotalTimePerSample = 0.54684ms; SamplesPerSecond = 1828
|
||||
Epoch[ 3 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 1.09982071; err = 0.33613281; TotalTime = 2.28760s; TotalTimePerSample = 0.44680ms; SamplesPerSecond = 2238
|
||||
Epoch[ 3 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 1.08198242; err = 0.32695313; TotalTime = 2.27461s; TotalTimePerSample = 0.44426ms; SamplesPerSecond = 2250
|
||||
Epoch[ 3 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 1.04190979; err = 0.32617188; TotalTime = 2.41349s; TotalTimePerSample = 0.47138ms; SamplesPerSecond = 2121
|
||||
Epoch[ 3 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 1.05153503; err = 0.32187500; TotalTime = 2.94621s; TotalTimePerSample = 0.57543ms; SamplesPerSecond = 1737
|
||||
Epoch[ 3 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 1.04438324; err = 0.32597656; TotalTime = 2.49370s; TotalTimePerSample = 0.48705ms; SamplesPerSecond = 2053
|
||||
Epoch[ 3 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 1.09297791; err = 0.33476563; TotalTime = 2.44252s; TotalTimePerSample = 0.47705ms; SamplesPerSecond = 2096
|
||||
Epoch[ 3 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 1.11578674; err = 0.33554688; TotalTime = 2.41458s; TotalTimePerSample = 0.47160ms; SamplesPerSecond = 2120
|
||||
Epoch[ 3 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 1.06495667; err = 0.32539062; TotalTime = 2.80408s; TotalTimePerSample = 0.54767ms; SamplesPerSecond = 1825
|
||||
Epoch[ 3 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 1.06517181; err = 0.33945313; TotalTime = 2.51803s; TotalTimePerSample = 0.49180ms; SamplesPerSecond = 2033
|
||||
Epoch[ 3 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 1.05488586; err = 0.32402344; TotalTime = 2.71141s; TotalTimePerSample = 0.52957ms; SamplesPerSecond = 1888
|
||||
Finished Epoch[ 3 of 4]: [Training] ce = 1.0745375; err = 0.33140871; learningRatePerSample = 0.003125000047; EpochTime=41.133271
|
||||
Starting Epoch 4: learning rate per sample = 0.003125 effective momentum = 0.810210
|
||||
minibatchiterator: epoch 3: frames [245760..327680] (first utterance at frame 245760), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
Starting minibatch loop.
|
||||
Epoch[ 4 of 4]-Minibatch[ 1- 10 of 160]: * 5120; CrossEntropyWithSoftmax = 1.03678217; EvalErrorPrediction = 0.32226563; TotalTime = 2.66643s; TotalTimePerSample = 0.52079ms; SamplesPerSecond = 1920
|
||||
Epoch[ 4 of 4]-Minibatch[ 11- 20 of 160]: * 4926; CrossEntropyWithSoftmax = 1.04455462; EvalErrorPrediction = 0.32115307; TotalTime = 3.59836s; TotalTimePerSample = 0.73048ms; SamplesPerSecond = 1368
|
||||
Epoch[ 4 of 4]-Minibatch[ 21- 30 of 160]: * 5120; CrossEntropyWithSoftmax = 1.01124554; EvalErrorPrediction = 0.31757812; TotalTime = 2.59429s; TotalTimePerSample = 0.50670ms; SamplesPerSecond = 1973
|
||||
Epoch[ 4 of 4]-Minibatch[ 31- 40 of 160]: * 5120; CrossEntropyWithSoftmax = 1.00737896; EvalErrorPrediction = 0.31542969; TotalTime = 2.41720s; TotalTimePerSample = 0.47211ms; SamplesPerSecond = 2118
|
||||
Epoch[ 4 of 4]-Minibatch[ 41- 50 of 160]: * 5120; CrossEntropyWithSoftmax = 1.00528069; EvalErrorPrediction = 0.31347656; TotalTime = 2.48426s; TotalTimePerSample = 0.48521ms; SamplesPerSecond = 2060
|
||||
Epoch[ 4 of 4]-Minibatch[ 51- 60 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99712868; EvalErrorPrediction = 0.30898437; TotalTime = 3.63720s; TotalTimePerSample = 0.71039ms; SamplesPerSecond = 1407
|
||||
Epoch[ 4 of 4]-Minibatch[ 61- 70 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99358406; EvalErrorPrediction = 0.30605469; TotalTime = 4.19525s; TotalTimePerSample = 0.81938ms; SamplesPerSecond = 1220
|
||||
Epoch[ 4 of 4]-Minibatch[ 71- 80 of 160]: * 5120; CrossEntropyWithSoftmax = 1.02139435; EvalErrorPrediction = 0.31445313; TotalTime = 2.82677s; TotalTimePerSample = 0.55210ms; SamplesPerSecond = 1811
|
||||
Epoch[ 4 of 4]-Minibatch[ 81- 90 of 160]: * 5120; CrossEntropyWithSoftmax = 1.00482025; EvalErrorPrediction = 0.31542969; TotalTime = 2.87430s; TotalTimePerSample = 0.56139ms; SamplesPerSecond = 1781
|
||||
Epoch[ 4 of 4]-Minibatch[ 91- 100 of 160]: * 5120; CrossEntropyWithSoftmax = 0.97015762; EvalErrorPrediction = 0.31035156; TotalTime = 4.26995s; TotalTimePerSample = 0.83397ms; SamplesPerSecond = 1199
|
||||
Epoch[ 4 of 4]-Minibatch[ 101- 110 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99198990; EvalErrorPrediction = 0.30410156; TotalTime = 2.86275s; TotalTimePerSample = 0.55913ms; SamplesPerSecond = 1788
|
||||
Epoch[ 4 of 4]-Minibatch[ 111- 120 of 160]: * 5120; CrossEntropyWithSoftmax = 0.99568176; EvalErrorPrediction = 0.30703125; TotalTime = 2.88755s; TotalTimePerSample = 0.56397ms; SamplesPerSecond = 1773
|
||||
Epoch[ 4 of 4]-Minibatch[ 121- 130 of 160]: * 5120; CrossEntropyWithSoftmax = 1.01617508; EvalErrorPrediction = 0.31660156; TotalTime = 2.64123s; TotalTimePerSample = 0.51586ms; SamplesPerSecond = 1938
|
||||
Epoch[ 4 of 4]-Minibatch[ 131- 140 of 160]: * 5120; CrossEntropyWithSoftmax = 0.98181610; EvalErrorPrediction = 0.30996094; TotalTime = 2.65385s; TotalTimePerSample = 0.51833ms; SamplesPerSecond = 1929
|
||||
Epoch[ 4 of 4]-Minibatch[ 141- 150 of 160]: * 5120; CrossEntropyWithSoftmax = 0.94842072; EvalErrorPrediction = 0.30253906; TotalTime = 2.43389s; TotalTimePerSample = 0.47537ms; SamplesPerSecond = 2103
|
||||
Epoch[ 4 of 4]-Minibatch[ 151- 160 of 160]: * 5120; CrossEntropyWithSoftmax = 0.96573181; EvalErrorPrediction = 0.30156250; TotalTime = 2.77351s; TotalTimePerSample = 0.54170ms; SamplesPerSecond = 1846
|
||||
Finished Epoch[ 4 of 4]: [Training] CrossEntropyWithSoftmax = 0.9992947; EvalErrorPrediction = 0.31165773; learningRatePerSample = 0.003125000047; EpochTime=48.032169
|
||||
Epoch[ 4 of 4]-Minibatch[ 1- 10 of 160]: * 5120; ce = 1.03678217; err = 0.32226563; TotalTime = 2.66643s; TotalTimePerSample = 0.52079ms; SamplesPerSecond = 1920
|
||||
Epoch[ 4 of 4]-Minibatch[ 11- 20 of 160]: * 4926; ce = 1.04455462; err = 0.32115307; TotalTime = 3.59836s; TotalTimePerSample = 0.73048ms; SamplesPerSecond = 1368
|
||||
Epoch[ 4 of 4]-Minibatch[ 21- 30 of 160]: * 5120; ce = 1.01124554; err = 0.31757812; TotalTime = 2.59429s; TotalTimePerSample = 0.50670ms; SamplesPerSecond = 1973
|
||||
Epoch[ 4 of 4]-Minibatch[ 31- 40 of 160]: * 5120; ce = 1.00737896; err = 0.31542969; TotalTime = 2.41720s; TotalTimePerSample = 0.47211ms; SamplesPerSecond = 2118
|
||||
Epoch[ 4 of 4]-Minibatch[ 41- 50 of 160]: * 5120; ce = 1.00528069; err = 0.31347656; TotalTime = 2.48426s; TotalTimePerSample = 0.48521ms; SamplesPerSecond = 2060
|
||||
Epoch[ 4 of 4]-Minibatch[ 51- 60 of 160]: * 5120; ce = 0.99712868; err = 0.30898437; TotalTime = 3.63720s; TotalTimePerSample = 0.71039ms; SamplesPerSecond = 1407
|
||||
Epoch[ 4 of 4]-Minibatch[ 61- 70 of 160]: * 5120; ce = 0.99358406; err = 0.30605469; TotalTime = 4.19525s; TotalTimePerSample = 0.81938ms; SamplesPerSecond = 1220
|
||||
Epoch[ 4 of 4]-Minibatch[ 71- 80 of 160]: * 5120; ce = 1.02139435; err = 0.31445313; TotalTime = 2.82677s; TotalTimePerSample = 0.55210ms; SamplesPerSecond = 1811
|
||||
Epoch[ 4 of 4]-Minibatch[ 81- 90 of 160]: * 5120; ce = 1.00482025; err = 0.31542969; TotalTime = 2.87430s; TotalTimePerSample = 0.56139ms; SamplesPerSecond = 1781
|
||||
Epoch[ 4 of 4]-Minibatch[ 91- 100 of 160]: * 5120; ce = 0.97015762; err = 0.31035156; TotalTime = 4.26995s; TotalTimePerSample = 0.83397ms; SamplesPerSecond = 1199
|
||||
Epoch[ 4 of 4]-Minibatch[ 101- 110 of 160]: * 5120; ce = 0.99198990; err = 0.30410156; TotalTime = 2.86275s; TotalTimePerSample = 0.55913ms; SamplesPerSecond = 1788
|
||||
Epoch[ 4 of 4]-Minibatch[ 111- 120 of 160]: * 5120; ce = 0.99568176; err = 0.30703125; TotalTime = 2.88755s; TotalTimePerSample = 0.56397ms; SamplesPerSecond = 1773
|
||||
Epoch[ 4 of 4]-Minibatch[ 121- 130 of 160]: * 5120; ce = 1.01617508; err = 0.31660156; TotalTime = 2.64123s; TotalTimePerSample = 0.51586ms; SamplesPerSecond = 1938
|
||||
Epoch[ 4 of 4]-Minibatch[ 131- 140 of 160]: * 5120; ce = 0.98181610; err = 0.30996094; TotalTime = 2.65385s; TotalTimePerSample = 0.51833ms; SamplesPerSecond = 1929
|
||||
Epoch[ 4 of 4]-Minibatch[ 141- 150 of 160]: * 5120; ce = 0.94842072; err = 0.30253906; TotalTime = 2.43389s; TotalTimePerSample = 0.47537ms; SamplesPerSecond = 2103
|
||||
Epoch[ 4 of 4]-Minibatch[ 151- 160 of 160]: * 5120; ce = 0.96573181; err = 0.30156250; TotalTime = 2.77351s; TotalTimePerSample = 0.54170ms; SamplesPerSecond = 1846
|
||||
Finished Epoch[ 4 of 4]: [Training] ce = 0.9992947; err = 0.31165773; learningRatePerSample = 0.003125000047; EpochTime=48.032169
|
||||
CNTKCommandTrainEnd: speechTrain
|
||||
__COMPLETED__
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -5,5 +5,11 @@
|
|||
OriginalTestDir=../../../DNN/DiscriminativePreTraining
|
||||
ConfigDir=$TEST_DIR/$OriginalTestDir
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# cntkrun <CNTK config file name> <additional CNTK args>
|
||||
cntkrun cntk_dpt.cntk 'reader=[readerType=ExperimentalHTKMLFReader] reader=[prefetch=true]' || exit $?
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -8,6 +8,12 @@ LogFileName=stderr
|
|||
Instances=3
|
||||
NumCPUThreads=$(threadsPerInstance $Instances)
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# cntkmpirun <MPI args> <CNTK config file name> <additional CNTK args>
|
||||
cntkmpirun "-n $Instances" cntk.cntk "speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]] speechTrain=[reader=[prefetch=true]] numCPUThreads=$NumCPUThreads precision=double speechTrain=[SGD=[ParallelTrain=[DataParallelSGD=[gradientBits=1]]]] speechTrain=[SGD=[ParallelTrain=[parallelizationStartEpoch=2]]]"
|
||||
ExitCode=$?
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -8,6 +8,12 @@ LogFileName=stderr
|
|||
Instances=3
|
||||
NumCPUThreads=$(threadsPerInstance $Instances)
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# cntkmpirun <MPI args> <CNTK config file name> <additional CNTK args>
|
||||
cntkmpirun "-n $Instances" cntk.cntk "speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]] speechTrain=[reader=[prefetch=true]] numCPUThreads=$NumCPUThreads precision=double speechTrain=[SGD=[ParallelTrain=[DataParallelSGD=[gradientBits=1]]]] speechTrain=[SGD=[ParallelTrain=[DataParallelSGD=[useBufferedAsyncGradientAggregation=true]]]] speechTrain=[SGD=[ParallelTrain=[parallelizationStartEpoch=2]]] speechTrain=[SGD=[maxEpochs=4]] speechTrain=[SGD=[ParallelTrain=[syncPerfStats=5]]]"
|
||||
ExitCode=$?
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -8,6 +8,12 @@ LogFileName=stderr
|
|||
Instances=3
|
||||
NumCPUThreads=$(threadsPerInstance $Instances)
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# cntkmpirun <MPI args> <CNTK config file name> <additional CNTK args>
|
||||
cntkmpirun "-n $Instances" cntk.cntk "speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]] speechTrain=[reader=[prefetch=true]] numCPUThreads=$NumCPUThreads"
|
||||
ExitCode=$?
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -8,6 +8,12 @@ LogFileName=stderr
|
|||
Instances=3
|
||||
NumCPUThreads=$(threadsPerInstance $Instances)
|
||||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# cntkmpirun <MPI args> <CNTK config file name> <additional CNTK args>
|
||||
cntkmpirun "-n $Instances" cntk.cntk "speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]] speechTrain=[reader=[prefetch=true]] numCPUThreads=$NumCPUThreads precision=double speechTrain=[SGD=[ParallelTrain=[DataParallelSGD=[gradientBits=64]]]] speechTrain=[SGD=[ParallelTrain=[DataParallelSGD=[useBufferedAsyncGradientAggregation=true]]]] speechTrain=[SGD=[ParallelTrain=[parallelizationStartEpoch=2]]] speechTrain=[SGD=[maxEpochs=4]] speechTrain=[SGD=[ParallelTrain=[syncPerfStats=5]]]"
|
||||
ExitCode=$?
|
||||
|
|
|
@ -7,7 +7,7 @@ ConfigDir=$TEST_DIR/../../../LSTM
|
|||
|
||||
(cd $TEST_DIR/$OriginalTestDir && md5sum baseline*) | (cd $TEST_DIR && md5sum --status -c -)
|
||||
if [ $? != 0 ]; then
|
||||
echo Error: Baselines must match original test.
|
||||
echo Error: Baselines must match original test. Copy from $OriginalTestDir.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
=== Running /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DeviceId=-1 timestamping=true speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
=== Running /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DeviceId=-1 timestamping=true
|
||||
-------------------------------------------------------------------
|
||||
Build info:
|
||||
|
||||
|
@ -17,32 +17,32 @@ Build info:
|
|||
Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
-------------------------------------------------------------------
|
||||
Changed current directory to /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
05/03/2016 18:18:00: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:00: Build info:
|
||||
05/03/2016 18:18:38: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:38: Build info:
|
||||
|
||||
05/03/2016 18:18:00: Built time: May 3 2016 17:56:15
|
||||
05/03/2016 18:18:00: Last modified date: Tue May 3 11:36:22 2016
|
||||
05/03/2016 18:18:00: Build type: release
|
||||
05/03/2016 18:18:00: Build target: GPU
|
||||
05/03/2016 18:18:00: With 1bit-SGD: no
|
||||
05/03/2016 18:18:00: Math lib: acml
|
||||
05/03/2016 18:18:00: CUDA_PATH: /usr/local/cuda-7.5
|
||||
05/03/2016 18:18:00: CUB_PATH: /usr/local/cub-1.4.1
|
||||
05/03/2016 18:18:00: CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
05/03/2016 18:18:00: Build Branch: HEAD
|
||||
05/03/2016 18:18:00: Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
05/03/2016 18:18:00: Built by philly on 18750d26eb32
|
||||
05/03/2016 18:18:00: Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
05/03/2016 18:18:00: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:38: Built time: May 3 2016 17:56:15
|
||||
05/03/2016 18:18:38: Last modified date: Tue May 3 11:36:22 2016
|
||||
05/03/2016 18:18:38: Build type: release
|
||||
05/03/2016 18:18:38: Build target: GPU
|
||||
05/03/2016 18:18:38: With 1bit-SGD: no
|
||||
05/03/2016 18:18:38: Math lib: acml
|
||||
05/03/2016 18:18:38: CUDA_PATH: /usr/local/cuda-7.5
|
||||
05/03/2016 18:18:38: CUB_PATH: /usr/local/cub-1.4.1
|
||||
05/03/2016 18:18:38: CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
05/03/2016 18:18:38: Build Branch: HEAD
|
||||
05/03/2016 18:18:38: Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
05/03/2016 18:18:38: Built by philly on 18750d26eb32
|
||||
05/03/2016 18:18:38: Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
05/03/2016 18:18:38: -------------------------------------------------------------------
|
||||
|
||||
05/03/2016 18:18:00: Running on localhost at 2016/05/03 18:18:00
|
||||
05/03/2016 18:18:00: Command line:
|
||||
/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DeviceId=-1 timestamping=true speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
05/03/2016 18:18:38: Running on localhost at 2016/05/03 18:18:38
|
||||
05/03/2016 18:18:38: Command line:
|
||||
/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DeviceId=-1 timestamping=true
|
||||
|
||||
|
||||
|
||||
05/03/2016 18:18:00: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:00: precision = "float"
|
||||
05/03/2016 18:18:38: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:38: precision = "float"
|
||||
command = speechTrain
|
||||
deviceId = $DeviceId$
|
||||
parallelTrain = false
|
||||
|
@ -128,25 +128,24 @@ speechTrain = [
|
|||
]
|
||||
]
|
||||
currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DeviceId=-1
|
||||
timestamping=true
|
||||
speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
|
||||
05/03/2016 18:18:00: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:38: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:18:00: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:00: precision = "float"
|
||||
05/03/2016 18:18:38: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:38: precision = "float"
|
||||
command = speechTrain
|
||||
deviceId = -1
|
||||
parallelTrain = false
|
||||
makeMode = false
|
||||
speechTrain = [
|
||||
action = "train"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
deviceId = -1
|
||||
traceLevel = 1
|
||||
SimpleNetworkBuilder = [
|
||||
|
@ -225,30 +224,29 @@ speechTrain = [
|
|||
]
|
||||
]
|
||||
currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DeviceId=-1
|
||||
timestamping=true
|
||||
speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
|
||||
05/03/2016 18:18:00: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:38: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:18:00: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:38: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
configparameters: cntk.cntk:command=speechTrain
|
||||
configparameters: cntk.cntk:ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
configparameters: cntk.cntk:ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
configparameters: cntk.cntk:currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
configparameters: cntk.cntk:DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
configparameters: cntk.cntk:deviceId=-1
|
||||
configparameters: cntk.cntk:makeMode=false
|
||||
configparameters: cntk.cntk:OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:parallelTrain=false
|
||||
configparameters: cntk.cntk:precision=float
|
||||
configparameters: cntk.cntk:RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:speechTrain=[
|
||||
action = "train"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
deviceId = -1
|
||||
traceLevel = 1
|
||||
SimpleNetworkBuilder = [
|
||||
|
@ -325,33 +323,32 @@ configparameters: cntk.cntk:speechTrain=[
|
|||
labelType = "category"
|
||||
]
|
||||
]
|
||||
] [reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
]
|
||||
|
||||
configparameters: cntk.cntk:timestamping=true
|
||||
05/03/2016 18:18:00: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:00: Commands: speechTrain
|
||||
05/03/2016 18:18:00: Precision = "float"
|
||||
05/03/2016 18:18:00: CNTKModelPath: /tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn
|
||||
05/03/2016 18:18:00: CNTKCommandTrainInfo: speechTrain : 3
|
||||
05/03/2016 18:18:00: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
05/03/2016 18:18:38: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:38: Commands: speechTrain
|
||||
05/03/2016 18:18:38: Precision = "float"
|
||||
05/03/2016 18:18:38: CNTKModelPath: /tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn
|
||||
05/03/2016 18:18:38: CNTKCommandTrainInfo: speechTrain : 3
|
||||
05/03/2016 18:18:38: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
|
||||
05/03/2016 18:18:00: ##############################################################################
|
||||
05/03/2016 18:18:00: # #
|
||||
05/03/2016 18:18:00: # Action "train" #
|
||||
05/03/2016 18:18:00: # #
|
||||
05/03/2016 18:18:00: ##############################################################################
|
||||
05/03/2016 18:18:38: ##############################################################################
|
||||
05/03/2016 18:18:38: # #
|
||||
05/03/2016 18:18:38: # Action "train" #
|
||||
05/03/2016 18:18:38: # #
|
||||
05/03/2016 18:18:38: ##############################################################################
|
||||
|
||||
05/03/2016 18:18:00: CNTKCommandTrainBegin: speechTrain
|
||||
05/03/2016 18:18:38: CNTKCommandTrainBegin: speechTrain
|
||||
SimpleNetworkBuilder Using CPU
|
||||
Reading script file glob_0000.scp ... 948 entries
|
||||
HTKDataDeserializer::HTKDataDeserializer: 948 utterances grouped into 3 chunks, av. chunk size: 316.0 utterances, 84244.7 frames
|
||||
HTKDataDeserializer::HTKDataDeserializer: determined feature kind as 363-dimensional 'USER' with frame shift 10.0 ms
|
||||
reading script file glob_0000.scp ... 948 entries
|
||||
total 132 state names in state list /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data/state.list
|
||||
htkmlfreader: reading MLF file /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data/glob_0000.mlf ... total 948 entries
|
||||
MLFDataDeserializer::MLFDataDeserializer: read 252734 sequences
|
||||
MLFDataDeserializer::MLFDataDeserializer: read 948 utterances
|
||||
...............................................................................................feature set 0: 252734 frames in 948 out of 948 utterances
|
||||
label set 0: 129 classes
|
||||
minibatchutterancesource: 948 utterances grouped into 3 chunks, av. chunk size: 316.0 utterances, 84244.7 frames
|
||||
|
||||
05/03/2016 18:18:00: Creating virgin network.
|
||||
05/03/2016 18:18:38: Creating virgin network.
|
||||
|
||||
Post-processing network...
|
||||
|
||||
|
@ -403,14 +400,14 @@ Validating network, final pass.
|
|||
|
||||
Post-processing network complete.
|
||||
|
||||
05/03/2016 18:18:00: Created model with 25 nodes on CPU.
|
||||
05/03/2016 18:18:38: Created model with 25 nodes on CPU.
|
||||
|
||||
05/03/2016 18:18:00: Training criterion node(s):
|
||||
05/03/2016 18:18:00: CrossEntropyWithSoftmax = CrossEntropyWithSoftmax
|
||||
05/03/2016 18:18:38: Training criterion node(s):
|
||||
05/03/2016 18:18:38: CrossEntropyWithSoftmax = CrossEntropyWithSoftmax
|
||||
|
||||
05/03/2016 18:18:00: Evaluation criterion node(s):
|
||||
05/03/2016 18:18:38: Evaluation criterion node(s):
|
||||
|
||||
05/03/2016 18:18:00: EvalErrorPrediction = ErrorPrediction
|
||||
05/03/2016 18:18:38: EvalErrorPrediction = ErrorPrediction
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
@ -418,112 +415,117 @@ Allocating matrices for forward and/or backward propagation.
|
|||
Memory Sharing Structure:
|
||||
|
||||
(nil): {[EvalErrorPrediction Gradient[1]] [InvStdOfFeatures Gradient[363]] [LogOfPrior Gradient[132]] [MVNormalizedFeatures Gradient[363 x *]] [MeanOfFeatures Gradient[363]] [PosteriorProb Gradient[132 x 1 x *]] [PosteriorProb Value[132 x 1 x *]] [Prior Gradient[132]] [ScaledLogLikelihood Gradient[132 x 1 x *]] [features Gradient[363 x *]] [labels Gradient[132 x *]] }
|
||||
0xfa4f78: {[W2 Value[132 x 512]] }
|
||||
0xfb95f8: {[CrossEntropyWithSoftmax Value[1]] }
|
||||
0xfb9878: {[W0*features Value[512 x *]] }
|
||||
0xfc8998: {[B2 Value[132 x 1]] }
|
||||
0xfe3868: {[MVNormalizedFeatures Value[363 x *]] }
|
||||
0xfe39a8: {[LogOfPrior Value[132]] }
|
||||
0x1044b38: {[B1 Value[512 x 1]] }
|
||||
0x104ac18: {[H1 Value[512 x 1 x *]] [W0*features Gradient[512 x *]] }
|
||||
0x104add8: {[W0*features+B0 Gradient[512 x 1 x *]] [W1*H1 Value[512 x 1 x *]] }
|
||||
0x106bae8: {[InvStdOfFeatures Value[363]] }
|
||||
0x1072f98: {[HLast Value[132 x 1 x *]] [W2 Gradient[132 x 512]] }
|
||||
0x108b8a8: {[labels Value[132 x *]] }
|
||||
0x108ff18: {[W1 Value[512 x 512]] }
|
||||
0x1095e98: {[W0 Value[512 x 363]] }
|
||||
0x10bbc58: {[features Value[363 x *]] }
|
||||
0x10c1fd8: {[B0 Value[512 x 1]] }
|
||||
0x10cdf28: {[EvalErrorPrediction Value[1]] }
|
||||
0x10ce0e8: {[ScaledLogLikelihood Value[132 x 1 x *]] }
|
||||
0x10cea18: {[MeanOfFeatures Value[363]] }
|
||||
0x10d8788: {[W1 Gradient[512 x 512]] [W1*H1+B1 Value[512 x 1 x *]] }
|
||||
0x10d8948: {[H2 Value[512 x 1 x *]] [W1*H1 Gradient[512 x 1 x *]] }
|
||||
0x10d8b08: {[B0 Gradient[512 x 1]] [H1 Gradient[512 x 1 x *]] [W1*H1+B1 Gradient[512 x 1 x *]] [W2*H1 Value[132 x 1 x *]] }
|
||||
0x10db288: {[W0 Gradient[512 x 363]] [W0*features+B0 Value[512 x 1 x *]] }
|
||||
0x10db628: {[CrossEntropyWithSoftmax Gradient[1]] }
|
||||
0x10db7e8: {[B1 Gradient[512 x 1]] [H2 Gradient[512 x 1 x *]] [HLast Gradient[132 x 1 x *]] }
|
||||
0x10db9a8: {[W2*H1 Gradient[132 x 1 x *]] }
|
||||
0x10dbb68: {[B2 Gradient[132 x 1]] }
|
||||
0x10dbe08: {[Prior Value[132]] }
|
||||
0x1381e08: {[W2 Value[132 x 512]] }
|
||||
0x1381f08: {[B2 Value[132 x 1]] }
|
||||
0x1385b78: {[InvStdOfFeatures Value[363]] }
|
||||
0x13866a8: {[MeanOfFeatures Value[363]] }
|
||||
0x1386858: {[W1 Value[512 x 512]] }
|
||||
0x138a4f8: {[B1 Value[512 x 1]] }
|
||||
0x138d288: {[features Value[363 x *]] }
|
||||
0x13da588: {[MVNormalizedFeatures Value[363 x *]] }
|
||||
0x13dee18: {[EvalErrorPrediction Value[1]] }
|
||||
0x13e1868: {[W1 Gradient[512 x 512]] [W1*H1+B1 Value[512 x 1 x *]] }
|
||||
0x13e1a28: {[H2 Value[512 x 1 x *]] [W1*H1 Gradient[512 x 1 x *]] }
|
||||
0x13e1be8: {[B0 Gradient[512 x 1]] [H1 Gradient[512 x 1 x *]] [W1*H1+B1 Gradient[512 x 1 x *]] [W2*H1 Value[132 x 1 x *]] }
|
||||
0x13e1da8: {[HLast Value[132 x 1 x *]] [W2 Gradient[132 x 512]] }
|
||||
0x1426628: {[W0 Value[512 x 363]] }
|
||||
0x1454828: {[B0 Value[512 x 1]] }
|
||||
0x148f0c8: {[W0 Gradient[512 x 363]] [W0*features+B0 Value[512 x 1 x *]] }
|
||||
0x148f2d8: {[H1 Value[512 x 1 x *]] [W0*features Gradient[512 x *]] }
|
||||
0x148f498: {[W0*features+B0 Gradient[512 x 1 x *]] [W1*H1 Value[512 x 1 x *]] }
|
||||
0x14a5828: {[W2*H1 Gradient[132 x 1 x *]] }
|
||||
0x14a59e8: {[B2 Gradient[132 x 1]] }
|
||||
0x14a7318: {[CrossEntropyWithSoftmax Gradient[1]] }
|
||||
0x14a74d8: {[B1 Gradient[512 x 1]] [H2 Gradient[512 x 1 x *]] [HLast Gradient[132 x 1 x *]] }
|
||||
0x14a8ac8: {[ScaledLogLikelihood Value[132 x 1 x *]] }
|
||||
0x14a8c88: {[CrossEntropyWithSoftmax Value[1]] }
|
||||
0x14ae858: {[W0*features Value[512 x *]] }
|
||||
0x14ae958: {[LogOfPrior Value[132]] }
|
||||
0x14af3e8: {[labels Value[132 x *]] }
|
||||
0x14afd28: {[Prior Value[132]] }
|
||||
|
||||
|
||||
05/03/2016 18:18:00: Precomputing --> 3 PreCompute nodes found.
|
||||
05/03/2016 18:18:38: Precomputing --> 3 PreCompute nodes found.
|
||||
|
||||
05/03/2016 18:18:00: MeanOfFeatures = Mean()
|
||||
05/03/2016 18:18:00: InvStdOfFeatures = InvStdDev()
|
||||
05/03/2016 18:18:00: Prior = Mean()
|
||||
05/03/2016 18:18:38: MeanOfFeatures = Mean()
|
||||
05/03/2016 18:18:38: InvStdOfFeatures = InvStdDev()
|
||||
05/03/2016 18:18:38: Prior = Mean()
|
||||
minibatchiterator: epoch 0: frames [0..252734] (first utterance at frame 0), data subset 0 of 1, with 1 datapasses
|
||||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
05/03/2016 18:18:04: Precomputing --> Completed.
|
||||
05/03/2016 18:18:39: Precomputing --> Completed.
|
||||
|
||||
|
||||
05/03/2016 18:18:04: Starting Epoch 1: learning rate per sample = 0.015625 effective momentum = 0.900000 momentum as time constant = 607.4 samples
|
||||
05/03/2016 18:18:39: Starting Epoch 1: learning rate per sample = 0.015625 effective momentum = 0.900000 momentum as time constant = 607.4 samples
|
||||
minibatchiterator: epoch 0: frames [0..20480] (first utterance at frame 0), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
05/03/2016 18:18:04: Starting minibatch loop.
|
||||
05/03/2016 18:18:04: Epoch[ 1 of 3]-Minibatch[ 1- 10, 3.12%]: CrossEntropyWithSoftmax = 4.39181900 * 640; EvalErrorPrediction = 0.89843750 * 640; time = 0.2546s; samplesPerSecond = 2513.5
|
||||
05/03/2016 18:18:04: Epoch[ 1 of 3]-Minibatch[ 11- 20, 6.25%]: CrossEntropyWithSoftmax = 4.16675568 * 640; EvalErrorPrediction = 0.87187500 * 640; time = 0.1455s; samplesPerSecond = 4397.5
|
||||
05/03/2016 18:18:04: Epoch[ 1 of 3]-Minibatch[ 21- 30, 9.38%]: CrossEntropyWithSoftmax = 3.98684082 * 640; EvalErrorPrediction = 0.87812500 * 640; time = 0.0788s; samplesPerSecond = 8117.2
|
||||
05/03/2016 18:18:04: Epoch[ 1 of 3]-Minibatch[ 31- 40, 12.50%]: CrossEntropyWithSoftmax = 3.86595383 * 640; EvalErrorPrediction = 0.87812500 * 640; time = 0.1143s; samplesPerSecond = 5598.0
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 41- 50, 15.62%]: CrossEntropyWithSoftmax = 3.81007080 * 640; EvalErrorPrediction = 0.88593750 * 640; time = 0.1319s; samplesPerSecond = 4852.8
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 51- 60, 18.75%]: CrossEntropyWithSoftmax = 3.73428192 * 640; EvalErrorPrediction = 0.87656250 * 640; time = 0.1725s; samplesPerSecond = 3710.1
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 61- 70, 21.88%]: CrossEntropyWithSoftmax = 3.57475586 * 640; EvalErrorPrediction = 0.81875000 * 640; time = 0.0770s; samplesPerSecond = 8315.4
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 71- 80, 25.00%]: CrossEntropyWithSoftmax = 3.43591919 * 640; EvalErrorPrediction = 0.80781250 * 640; time = 0.0918s; samplesPerSecond = 6971.2
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 81- 90, 28.12%]: CrossEntropyWithSoftmax = 3.36042786 * 640; EvalErrorPrediction = 0.77343750 * 640; time = 0.1240s; samplesPerSecond = 5162.2
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 91- 100, 31.25%]: CrossEntropyWithSoftmax = 3.39383850 * 640; EvalErrorPrediction = 0.85156250 * 640; time = 0.0852s; samplesPerSecond = 7509.6
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 101- 110, 34.38%]: CrossEntropyWithSoftmax = 3.25078430 * 640; EvalErrorPrediction = 0.76406250 * 640; time = 0.0958s; samplesPerSecond = 6680.3
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 111- 120, 37.50%]: CrossEntropyWithSoftmax = 3.35325317 * 640; EvalErrorPrediction = 0.79375000 * 640; time = 0.0866s; samplesPerSecond = 7387.0
|
||||
05/03/2016 18:18:05: Epoch[ 1 of 3]-Minibatch[ 121- 130, 40.62%]: CrossEntropyWithSoftmax = 3.19606934 * 640; EvalErrorPrediction = 0.76875000 * 640; time = 0.1067s; samplesPerSecond = 5996.0
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 131- 140, 43.75%]: CrossEntropyWithSoftmax = 3.06110535 * 640; EvalErrorPrediction = 0.73125000 * 640; time = 0.1282s; samplesPerSecond = 4991.7
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 141- 150, 46.88%]: CrossEntropyWithSoftmax = 3.05118713 * 640; EvalErrorPrediction = 0.75625000 * 640; time = 0.1014s; samplesPerSecond = 6310.2
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 151- 160, 50.00%]: CrossEntropyWithSoftmax = 3.02474365 * 640; EvalErrorPrediction = 0.74062500 * 640; time = 0.1247s; samplesPerSecond = 5133.2
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 161- 170, 53.12%]: CrossEntropyWithSoftmax = 2.89902954 * 640; EvalErrorPrediction = 0.70781250 * 640; time = 0.0935s; samplesPerSecond = 6841.8
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 171- 180, 56.25%]: CrossEntropyWithSoftmax = 2.75173340 * 640; EvalErrorPrediction = 0.68125000 * 640; time = 0.0905s; samplesPerSecond = 7070.2
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 181- 190, 59.38%]: CrossEntropyWithSoftmax = 2.83969116 * 640; EvalErrorPrediction = 0.71875000 * 640; time = 0.0954s; samplesPerSecond = 6711.4
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 191- 200, 62.50%]: CrossEntropyWithSoftmax = 2.62870483 * 640; EvalErrorPrediction = 0.65468750 * 640; time = 0.1093s; samplesPerSecond = 5854.5
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 201- 210, 65.62%]: CrossEntropyWithSoftmax = 2.66655273 * 640; EvalErrorPrediction = 0.67187500 * 640; time = 0.1071s; samplesPerSecond = 5978.4
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 211- 220, 68.75%]: CrossEntropyWithSoftmax = 2.61327515 * 640; EvalErrorPrediction = 0.65937500 * 640; time = 0.1147s; samplesPerSecond = 5579.3
|
||||
05/03/2016 18:18:06: Epoch[ 1 of 3]-Minibatch[ 221- 230, 71.88%]: CrossEntropyWithSoftmax = 2.53099976 * 640; EvalErrorPrediction = 0.63750000 * 640; time = 0.1295s; samplesPerSecond = 4942.8
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 231- 240, 75.00%]: CrossEntropyWithSoftmax = 2.43747559 * 640; EvalErrorPrediction = 0.64375000 * 640; time = 0.1067s; samplesPerSecond = 5996.5
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 241- 250, 78.12%]: CrossEntropyWithSoftmax = 2.41107178 * 640; EvalErrorPrediction = 0.65312500 * 640; time = 0.0903s; samplesPerSecond = 7087.1
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 251- 260, 81.25%]: CrossEntropyWithSoftmax = 2.48898926 * 640; EvalErrorPrediction = 0.63750000 * 640; time = 0.3125s; samplesPerSecond = 2048.2
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 261- 270, 84.38%]: CrossEntropyWithSoftmax = 2.34965820 * 640; EvalErrorPrediction = 0.61093750 * 640; time = 0.1393s; samplesPerSecond = 4593.6
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 271- 280, 87.50%]: CrossEntropyWithSoftmax = 2.23708496 * 640; EvalErrorPrediction = 0.57812500 * 640; time = 0.1166s; samplesPerSecond = 5490.3
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 281- 290, 90.62%]: CrossEntropyWithSoftmax = 2.33135376 * 640; EvalErrorPrediction = 0.62031250 * 640; time = 0.0950s; samplesPerSecond = 6737.5
|
||||
05/03/2016 18:18:07: Epoch[ 1 of 3]-Minibatch[ 291- 300, 93.75%]: CrossEntropyWithSoftmax = 2.21607666 * 640; EvalErrorPrediction = 0.62812500 * 640; time = 0.1283s; samplesPerSecond = 4987.1
|
||||
05/03/2016 18:18:08: Epoch[ 1 of 3]-Minibatch[ 301- 310, 96.88%]: CrossEntropyWithSoftmax = 2.29110107 * 640; EvalErrorPrediction = 0.60625000 * 640; time = 0.1013s; samplesPerSecond = 6316.5
|
||||
05/03/2016 18:18:08: Epoch[ 1 of 3]-Minibatch[ 311- 320, 100.00%]: CrossEntropyWithSoftmax = 2.20535278 * 640; EvalErrorPrediction = 0.57500000 * 640; time = 0.1259s; samplesPerSecond = 5082.8
|
||||
05/03/2016 18:18:08: Finished Epoch[ 1 of 3]: [Training] CrossEntropyWithSoftmax = 3.01737366 * 20480; EvalErrorPrediction = 0.73061523 * 20480; totalSamplesSeen = 20480; learningRatePerSample = 0.015625; epochTime=3.94389s
|
||||
05/03/2016 18:18:08: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn.1'
|
||||
05/03/2016 18:18:39: Starting minibatch loop.
|
||||
05/03/2016 18:18:39: Epoch[ 1 of 3]-Minibatch[ 1- 10, 3.12%]: CrossEntropyWithSoftmax = 4.39181900 * 640; EvalErrorPrediction = 0.89843750 * 640; time = 0.0735s; samplesPerSecond = 8707.4
|
||||
05/03/2016 18:18:39: Epoch[ 1 of 3]-Minibatch[ 11- 20, 6.25%]: CrossEntropyWithSoftmax = 4.16675568 * 640; EvalErrorPrediction = 0.87187500 * 640; time = 0.1005s; samplesPerSecond = 6370.4
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 21- 30, 9.38%]: CrossEntropyWithSoftmax = 3.98684082 * 640; EvalErrorPrediction = 0.87812500 * 640; time = 0.0829s; samplesPerSecond = 7720.1
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 31- 40, 12.50%]: CrossEntropyWithSoftmax = 3.86595383 * 640; EvalErrorPrediction = 0.87812500 * 640; time = 0.0518s; samplesPerSecond = 12362.8
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 41- 50, 15.62%]: CrossEntropyWithSoftmax = 3.81007080 * 640; EvalErrorPrediction = 0.88593750 * 640; time = 0.0514s; samplesPerSecond = 12451.8
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 51- 60, 18.75%]: CrossEntropyWithSoftmax = 3.73428192 * 640; EvalErrorPrediction = 0.87656250 * 640; time = 0.0516s; samplesPerSecond = 12413.4
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 61- 70, 21.88%]: CrossEntropyWithSoftmax = 3.57475586 * 640; EvalErrorPrediction = 0.81875000 * 640; time = 0.0511s; samplesPerSecond = 12525.7
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 71- 80, 25.00%]: CrossEntropyWithSoftmax = 3.43591919 * 640; EvalErrorPrediction = 0.80781250 * 640; time = 0.0514s; samplesPerSecond = 12439.5
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 81- 90, 28.12%]: CrossEntropyWithSoftmax = 3.36042786 * 640; EvalErrorPrediction = 0.77343750 * 640; time = 0.0513s; samplesPerSecond = 12483.2
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 91- 100, 31.25%]: CrossEntropyWithSoftmax = 3.39383850 * 640; EvalErrorPrediction = 0.85156250 * 640; time = 0.0513s; samplesPerSecond = 12470.5
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 101- 110, 34.38%]: CrossEntropyWithSoftmax = 3.25078430 * 640; EvalErrorPrediction = 0.76406250 * 640; time = 0.0523s; samplesPerSecond = 12242.2
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 111- 120, 37.50%]: CrossEntropyWithSoftmax = 3.35325317 * 640; EvalErrorPrediction = 0.79375000 * 640; time = 0.0530s; samplesPerSecond = 12069.1
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 121- 130, 40.62%]: CrossEntropyWithSoftmax = 3.19606934 * 640; EvalErrorPrediction = 0.76875000 * 640; time = 0.0519s; samplesPerSecond = 12332.4
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 131- 140, 43.75%]: CrossEntropyWithSoftmax = 3.06110535 * 640; EvalErrorPrediction = 0.73125000 * 640; time = 0.0513s; samplesPerSecond = 12480.0
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 141- 150, 46.88%]: CrossEntropyWithSoftmax = 3.05118713 * 640; EvalErrorPrediction = 0.75625000 * 640; time = 0.0876s; samplesPerSecond = 7307.6
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 151- 160, 50.00%]: CrossEntropyWithSoftmax = 3.02474365 * 640; EvalErrorPrediction = 0.74062500 * 640; time = 0.0515s; samplesPerSecond = 12429.4
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 161- 170, 53.12%]: CrossEntropyWithSoftmax = 2.89902954 * 640; EvalErrorPrediction = 0.70781250 * 640; time = 0.0516s; samplesPerSecond = 12405.5
|
||||
05/03/2016 18:18:40: Epoch[ 1 of 3]-Minibatch[ 171- 180, 56.25%]: CrossEntropyWithSoftmax = 2.75173340 * 640; EvalErrorPrediction = 0.68125000 * 640; time = 0.0516s; samplesPerSecond = 12410.3
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 181- 190, 59.38%]: CrossEntropyWithSoftmax = 2.83969116 * 640; EvalErrorPrediction = 0.71875000 * 640; time = 0.1163s; samplesPerSecond = 5501.6
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 191- 200, 62.50%]: CrossEntropyWithSoftmax = 2.62870483 * 640; EvalErrorPrediction = 0.65468750 * 640; time = 0.0649s; samplesPerSecond = 9868.8
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 201- 210, 65.62%]: CrossEntropyWithSoftmax = 2.66655273 * 640; EvalErrorPrediction = 0.67187500 * 640; time = 0.0511s; samplesPerSecond = 12520.3
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 211- 220, 68.75%]: CrossEntropyWithSoftmax = 2.61327515 * 640; EvalErrorPrediction = 0.65937500 * 640; time = 0.0511s; samplesPerSecond = 12526.2
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 221- 230, 71.88%]: CrossEntropyWithSoftmax = 2.53099976 * 640; EvalErrorPrediction = 0.63750000 * 640; time = 0.0513s; samplesPerSecond = 12468.6
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 231- 240, 75.00%]: CrossEntropyWithSoftmax = 2.43747559 * 640; EvalErrorPrediction = 0.64375000 * 640; time = 0.0547s; samplesPerSecond = 11694.2
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 241- 250, 78.12%]: CrossEntropyWithSoftmax = 2.41107178 * 640; EvalErrorPrediction = 0.65312500 * 640; time = 0.0513s; samplesPerSecond = 12469.3
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 251- 260, 81.25%]: CrossEntropyWithSoftmax = 2.48898926 * 640; EvalErrorPrediction = 0.63750000 * 640; time = 0.0537s; samplesPerSecond = 11919.0
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 261- 270, 84.38%]: CrossEntropyWithSoftmax = 2.34965820 * 640; EvalErrorPrediction = 0.61093750 * 640; time = 0.0514s; samplesPerSecond = 12450.2
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 271- 280, 87.50%]: CrossEntropyWithSoftmax = 2.23708496 * 640; EvalErrorPrediction = 0.57812500 * 640; time = 0.0511s; samplesPerSecond = 12524.0
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 281- 290, 90.62%]: CrossEntropyWithSoftmax = 2.33135376 * 640; EvalErrorPrediction = 0.62031250 * 640; time = 0.0514s; samplesPerSecond = 12443.9
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 291- 300, 93.75%]: CrossEntropyWithSoftmax = 2.21607666 * 640; EvalErrorPrediction = 0.62812500 * 640; time = 0.0565s; samplesPerSecond = 11332.0
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 301- 310, 96.88%]: CrossEntropyWithSoftmax = 2.29110107 * 640; EvalErrorPrediction = 0.60625000 * 640; time = 0.0531s; samplesPerSecond = 12062.3
|
||||
05/03/2016 18:18:41: Epoch[ 1 of 3]-Minibatch[ 311- 320, 100.00%]: CrossEntropyWithSoftmax = 2.20535278 * 640; EvalErrorPrediction = 0.57500000 * 640; time = 0.0519s; samplesPerSecond = 12326.9
|
||||
05/03/2016 18:18:41: Finished Epoch[ 1 of 3]: [Training] CrossEntropyWithSoftmax = 3.01737366 * 20480; EvalErrorPrediction = 0.73061523 * 20480; totalSamplesSeen = 20480; learningRatePerSample = 0.015625; epochTime=1.88594s
|
||||
05/03/2016 18:18:41: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn.1'
|
||||
|
||||
05/03/2016 18:18:08: Starting Epoch 2: learning rate per sample = 0.001953 effective momentum = 0.656119 momentum as time constant = 607.5 samples
|
||||
05/03/2016 18:18:41: Starting Epoch 2: learning rate per sample = 0.001953 effective momentum = 0.656119 momentum as time constant = 607.5 samples
|
||||
minibatchiterator: epoch 1: frames [20480..40960] (first utterance at frame 20480), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
05/03/2016 18:18:08: Starting minibatch loop.
|
||||
05/03/2016 18:18:08: Epoch[ 2 of 3]-Minibatch[ 1- 10, 12.50%]: CrossEntropyWithSoftmax = 2.05711155 * 2560; EvalErrorPrediction = 0.55000000 * 2560; time = 0.1986s; samplesPerSecond = 12889.8
|
||||
05/03/2016 18:18:08: Epoch[ 2 of 3]-Minibatch[ 11- 20, 25.00%]: CrossEntropyWithSoftmax = 2.02925396 * 2560; EvalErrorPrediction = 0.54648438 * 2560; time = 0.2552s; samplesPerSecond = 10031.0
|
||||
05/03/2016 18:18:08: Epoch[ 2 of 3]-Minibatch[ 21- 30, 37.50%]: CrossEntropyWithSoftmax = 2.02826538 * 2560; EvalErrorPrediction = 0.54843750 * 2560; time = 0.2181s; samplesPerSecond = 11736.7
|
||||
05/03/2016 18:18:09: Epoch[ 2 of 3]-Minibatch[ 31- 40, 50.00%]: CrossEntropyWithSoftmax = 1.97095795 * 2560; EvalErrorPrediction = 0.54140625 * 2560; time = 0.1814s; samplesPerSecond = 14113.3
|
||||
05/03/2016 18:18:09: Epoch[ 2 of 3]-Minibatch[ 41- 50, 62.50%]: CrossEntropyWithSoftmax = 1.94550018 * 2560; EvalErrorPrediction = 0.53867188 * 2560; time = 0.2214s; samplesPerSecond = 11565.2
|
||||
05/03/2016 18:18:09: Epoch[ 2 of 3]-Minibatch[ 51- 60, 75.00%]: CrossEntropyWithSoftmax = 2.01561737 * 2560; EvalErrorPrediction = 0.54414063 * 2560; time = 0.3224s; samplesPerSecond = 7940.8
|
||||
05/03/2016 18:18:09: Epoch[ 2 of 3]-Minibatch[ 61- 70, 87.50%]: CrossEntropyWithSoftmax = 1.94069901 * 2560; EvalErrorPrediction = 0.52500000 * 2560; time = 0.2357s; samplesPerSecond = 10862.4
|
||||
05/03/2016 18:18:10: Epoch[ 2 of 3]-Minibatch[ 71- 80, 100.00%]: CrossEntropyWithSoftmax = 1.94857330 * 2560; EvalErrorPrediction = 0.54023438 * 2560; time = 0.2088s; samplesPerSecond = 12260.2
|
||||
05/03/2016 18:18:10: Finished Epoch[ 2 of 3]: [Training] CrossEntropyWithSoftmax = 1.99199734 * 20480; EvalErrorPrediction = 0.54179687 * 20480; totalSamplesSeen = 40960; learningRatePerSample = 0.001953125; epochTime=1.84574s
|
||||
05/03/2016 18:18:10: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn.2'
|
||||
05/03/2016 18:18:41: Starting minibatch loop.
|
||||
05/03/2016 18:18:41: Epoch[ 2 of 3]-Minibatch[ 1- 10, 12.50%]: CrossEntropyWithSoftmax = 2.05711155 * 2560; EvalErrorPrediction = 0.55000000 * 2560; time = 0.1738s; samplesPerSecond = 14733.1
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 11- 20, 25.00%]: CrossEntropyWithSoftmax = 2.02925396 * 2560; EvalErrorPrediction = 0.54648438 * 2560; time = 0.1667s; samplesPerSecond = 15355.6
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 21- 30, 37.50%]: CrossEntropyWithSoftmax = 2.02826538 * 2560; EvalErrorPrediction = 0.54843750 * 2560; time = 0.1568s; samplesPerSecond = 16327.2
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 31- 40, 50.00%]: CrossEntropyWithSoftmax = 1.97095795 * 2560; EvalErrorPrediction = 0.54140625 * 2560; time = 0.2171s; samplesPerSecond = 11791.3
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 41- 50, 62.50%]: CrossEntropyWithSoftmax = 1.94550018 * 2560; EvalErrorPrediction = 0.53867188 * 2560; time = 0.1636s; samplesPerSecond = 15644.3
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 51- 60, 75.00%]: CrossEntropyWithSoftmax = 2.01561737 * 2560; EvalErrorPrediction = 0.54414063 * 2560; time = 0.1627s; samplesPerSecond = 15732.7
|
||||
05/03/2016 18:18:42: Epoch[ 2 of 3]-Minibatch[ 61- 70, 87.50%]: CrossEntropyWithSoftmax = 1.94069901 * 2560; EvalErrorPrediction = 0.52500000 * 2560; time = 0.1746s; samplesPerSecond = 14665.6
|
||||
05/03/2016 18:18:43: Epoch[ 2 of 3]-Minibatch[ 71- 80, 100.00%]: CrossEntropyWithSoftmax = 1.94857330 * 2560; EvalErrorPrediction = 0.54023438 * 2560; time = 0.1637s; samplesPerSecond = 15635.9
|
||||
05/03/2016 18:18:43: Finished Epoch[ 2 of 3]: [Training] CrossEntropyWithSoftmax = 1.99199734 * 20480; EvalErrorPrediction = 0.54179687 * 20480; totalSamplesSeen = 40960; learningRatePerSample = 0.001953125; epochTime=1.38363s
|
||||
05/03/2016 18:18:43: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn.2'
|
||||
|
||||
05/03/2016 18:18:10: Starting Epoch 3: learning rate per sample = 0.000098 effective momentum = 0.656119 momentum as time constant = 2429.9 samples
|
||||
05/03/2016 18:18:43: Starting Epoch 3: learning rate per sample = 0.000098 effective momentum = 0.656119 momentum as time constant = 2429.9 samples
|
||||
minibatchiterator: epoch 2: frames [40960..61440] (first utterance at frame 40960), data subset 0 of 1, with 1 datapasses
|
||||
|
||||
05/03/2016 18:18:10: Starting minibatch loop.
|
||||
05/03/2016 18:18:11: Epoch[ 3 of 3]-Minibatch[ 1- 10, 50.00%]: CrossEntropyWithSoftmax = 1.91946163 * 10240; EvalErrorPrediction = 0.52890625 * 10240; time = 0.9372s; samplesPerSecond = 10926.7
|
||||
05/03/2016 18:18:11: Epoch[ 3 of 3]-Minibatch[ 11- 20, 100.00%]: CrossEntropyWithSoftmax = 1.91066799 * 10240; EvalErrorPrediction = 0.52783203 * 10240; time = 0.5568s; samplesPerSecond = 18389.6
|
||||
05/03/2016 18:18:11: Finished Epoch[ 3 of 3]: [Training] CrossEntropyWithSoftmax = 1.91506481 * 20480; EvalErrorPrediction = 0.52836914 * 20480; totalSamplesSeen = 61440; learningRatePerSample = 9.7656251e-05; epochTime=1.49933s
|
||||
05/03/2016 18:18:11: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn'
|
||||
05/03/2016 18:18:11: CNTKCommandTrainEnd: speechTrain
|
||||
05/03/2016 18:18:43: Starting minibatch loop.
|
||||
05/03/2016 18:18:43: Epoch[ 3 of 3]-Minibatch[ 1- 10, 50.00%]: CrossEntropyWithSoftmax = 1.91946163 * 10240; EvalErrorPrediction = 0.52890625 * 10240; time = 0.5706s; samplesPerSecond = 17944.9
|
||||
05/03/2016 18:18:44: Epoch[ 3 of 3]-Minibatch[ 11- 20, 100.00%]: CrossEntropyWithSoftmax = 1.91066799 * 10240; EvalErrorPrediction = 0.52783203 * 10240; time = 0.5679s; samplesPerSecond = 18031.6
|
||||
05/03/2016 18:18:44: Finished Epoch[ 3 of 3]: [Training] CrossEntropyWithSoftmax = 1.91506481 * 20480; EvalErrorPrediction = 0.52836914 * 20480; totalSamplesSeen = 61440; learningRatePerSample = 9.7656251e-05; epochTime=1.14421s
|
||||
05/03/2016 18:18:44: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn'
|
||||
05/03/2016 18:18:44: CNTKCommandTrainEnd: speechTrain
|
||||
|
||||
05/03/2016 18:18:11: Action "train" complete.
|
||||
05/03/2016 18:18:44: Action "train" complete.
|
||||
|
||||
05/03/2016 18:18:11: __COMPLETED__
|
||||
05/03/2016 18:18:44: __COMPLETED__
|
||||
=== Deleting last epoch data
|
||||
==== Re-running from checkpoint
|
||||
=== Running /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DeviceId=-1 timestamping=true makeMode=true speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
=== Running /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DeviceId=-1 timestamping=true makeMode=true
|
||||
-------------------------------------------------------------------
|
||||
Build info:
|
||||
|
||||
|
@ -542,32 +544,32 @@ Build info:
|
|||
Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
-------------------------------------------------------------------
|
||||
Changed current directory to /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
05/03/2016 18:18:11: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:11: Build info:
|
||||
05/03/2016 18:18:44: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:44: Build info:
|
||||
|
||||
05/03/2016 18:18:11: Built time: May 3 2016 17:56:15
|
||||
05/03/2016 18:18:11: Last modified date: Tue May 3 11:36:22 2016
|
||||
05/03/2016 18:18:11: Build type: release
|
||||
05/03/2016 18:18:11: Build target: GPU
|
||||
05/03/2016 18:18:11: With 1bit-SGD: no
|
||||
05/03/2016 18:18:11: Math lib: acml
|
||||
05/03/2016 18:18:11: CUDA_PATH: /usr/local/cuda-7.5
|
||||
05/03/2016 18:18:11: CUB_PATH: /usr/local/cub-1.4.1
|
||||
05/03/2016 18:18:11: CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
05/03/2016 18:18:11: Build Branch: HEAD
|
||||
05/03/2016 18:18:11: Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
05/03/2016 18:18:11: Built by philly on 18750d26eb32
|
||||
05/03/2016 18:18:11: Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
05/03/2016 18:18:11: -------------------------------------------------------------------
|
||||
05/03/2016 18:18:44: Built time: May 3 2016 17:56:15
|
||||
05/03/2016 18:18:44: Last modified date: Tue May 3 11:36:22 2016
|
||||
05/03/2016 18:18:44: Build type: release
|
||||
05/03/2016 18:18:44: Build target: GPU
|
||||
05/03/2016 18:18:44: With 1bit-SGD: no
|
||||
05/03/2016 18:18:44: Math lib: acml
|
||||
05/03/2016 18:18:44: CUDA_PATH: /usr/local/cuda-7.5
|
||||
05/03/2016 18:18:44: CUB_PATH: /usr/local/cub-1.4.1
|
||||
05/03/2016 18:18:44: CUDNN_PATH: /usr/local/cudnn-4.0
|
||||
05/03/2016 18:18:44: Build Branch: HEAD
|
||||
05/03/2016 18:18:44: Build SHA1: 571b092d60e131fd529081a5ed52af2dc815dc82
|
||||
05/03/2016 18:18:44: Built by philly on 18750d26eb32
|
||||
05/03/2016 18:18:44: Build Path: /home/philly/jenkins/workspace/CNTK-Build-Linux
|
||||
05/03/2016 18:18:44: -------------------------------------------------------------------
|
||||
|
||||
05/03/2016 18:18:11: Running on localhost at 2016/05/03 18:18:11
|
||||
05/03/2016 18:18:11: Command line:
|
||||
/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu DeviceId=-1 timestamping=true makeMode=true speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
05/03/2016 18:18:44: Running on localhost at 2016/05/03 18:18:44
|
||||
05/03/2016 18:18:44: Command line:
|
||||
/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/build/gpu/release/bin/cntk configFile=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E/cntk.cntk currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu DeviceId=-1 timestamping=true makeMode=true
|
||||
|
||||
|
||||
|
||||
05/03/2016 18:18:11: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:11: precision = "float"
|
||||
05/03/2016 18:18:44: >>>>>>>>>>>>>>>>>>>> RAW CONFIG (VARIABLES NOT RESOLVED) >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:44: precision = "float"
|
||||
command = speechTrain
|
||||
deviceId = $DeviceId$
|
||||
parallelTrain = false
|
||||
|
@ -653,26 +655,25 @@ speechTrain = [
|
|||
]
|
||||
]
|
||||
currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DeviceId=-1
|
||||
timestamping=true
|
||||
makeMode=true
|
||||
speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
|
||||
05/03/2016 18:18:11: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:44: <<<<<<<<<<<<<<<<<<<< RAW CONFIG (VARIABLES NOT RESOLVED) <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:18:11: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:11: precision = "float"
|
||||
05/03/2016 18:18:44: >>>>>>>>>>>>>>>>>>>> RAW CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:44: precision = "float"
|
||||
command = speechTrain
|
||||
deviceId = -1
|
||||
parallelTrain = false
|
||||
makeMode = false
|
||||
speechTrain = [
|
||||
action = "train"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
deviceId = -1
|
||||
traceLevel = 1
|
||||
SimpleNetworkBuilder = [
|
||||
|
@ -751,31 +752,30 @@ speechTrain = [
|
|||
]
|
||||
]
|
||||
currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
DeviceId=-1
|
||||
timestamping=true
|
||||
makeMode=true
|
||||
speechTrain=[reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
|
||||
05/03/2016 18:18:11: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:44: <<<<<<<<<<<<<<<<<<<< RAW CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
05/03/2016 18:18:11: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
05/03/2016 18:18:44: >>>>>>>>>>>>>>>>>>>> PROCESSED CONFIG WITH ALL VARIABLES RESOLVED >>>>>>>>>>>>>>>>>>>>
|
||||
configparameters: cntk.cntk:command=speechTrain
|
||||
configparameters: cntk.cntk:ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/ExperimentalHtkmlfReader/QuickE2E/../../QuickE2E
|
||||
configparameters: cntk.cntk:ConfigDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/QuickE2E
|
||||
configparameters: cntk.cntk:currentDirectory=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
configparameters: cntk.cntk:DataDir=/home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data
|
||||
configparameters: cntk.cntk:deviceId=-1
|
||||
configparameters: cntk.cntk:makeMode=true
|
||||
configparameters: cntk.cntk:OutputDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:OutputDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:parallelTrain=false
|
||||
configparameters: cntk.cntk:precision=float
|
||||
configparameters: cntk.cntk:RunDir=/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:RunDir=/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu
|
||||
configparameters: cntk.cntk:speechTrain=[
|
||||
action = "train"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
modelPath = "/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn"
|
||||
deviceId = -1
|
||||
traceLevel = 1
|
||||
SimpleNetworkBuilder = [
|
||||
|
@ -852,33 +852,32 @@ configparameters: cntk.cntk:speechTrain=[
|
|||
labelType = "category"
|
||||
]
|
||||
]
|
||||
] [reader=[readerType=ExperimentalHTKMLFReader]]
|
||||
]
|
||||
|
||||
configparameters: cntk.cntk:timestamping=true
|
||||
05/03/2016 18:18:11: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:11: Commands: speechTrain
|
||||
05/03/2016 18:18:11: Precision = "float"
|
||||
05/03/2016 18:18:11: CNTKModelPath: /tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn
|
||||
05/03/2016 18:18:11: CNTKCommandTrainInfo: speechTrain : 3
|
||||
05/03/2016 18:18:11: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
05/03/2016 18:18:44: <<<<<<<<<<<<<<<<<<<< PROCESSED CONFIG WITH ALL VARIABLES RESOLVED <<<<<<<<<<<<<<<<<<<<
|
||||
05/03/2016 18:18:44: Commands: speechTrain
|
||||
05/03/2016 18:18:44: Precision = "float"
|
||||
05/03/2016 18:18:44: CNTKModelPath: /tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn
|
||||
05/03/2016 18:18:44: CNTKCommandTrainInfo: speechTrain : 3
|
||||
05/03/2016 18:18:44: CNTKCommandTrainInfo: CNTKNoMoreCommands_Total : 3
|
||||
|
||||
05/03/2016 18:18:11: ##############################################################################
|
||||
05/03/2016 18:18:11: # #
|
||||
05/03/2016 18:18:11: # Action "train" #
|
||||
05/03/2016 18:18:11: # #
|
||||
05/03/2016 18:18:11: ##############################################################################
|
||||
05/03/2016 18:18:44: ##############################################################################
|
||||
05/03/2016 18:18:44: # #
|
||||
05/03/2016 18:18:44: # Action "train" #
|
||||
05/03/2016 18:18:44: # #
|
||||
05/03/2016 18:18:44: ##############################################################################
|
||||
|
||||
05/03/2016 18:18:11: CNTKCommandTrainBegin: speechTrain
|
||||
05/03/2016 18:18:44: CNTKCommandTrainBegin: speechTrain
|
||||
SimpleNetworkBuilder Using CPU
|
||||
Reading script file glob_0000.scp ... 948 entries
|
||||
HTKDataDeserializer::HTKDataDeserializer: 948 utterances grouped into 3 chunks, av. chunk size: 316.0 utterances, 84244.7 frames
|
||||
HTKDataDeserializer::HTKDataDeserializer: determined feature kind as 363-dimensional 'USER' with frame shift 10.0 ms
|
||||
reading script file glob_0000.scp ... 948 entries
|
||||
total 132 state names in state list /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data/state.list
|
||||
htkmlfreader: reading MLF file /home/philly/jenkins/workspace/CNTK-Test-Linux-W1/Tests/EndToEndTests/Speech/Data/glob_0000.mlf ... total 948 entries
|
||||
MLFDataDeserializer::MLFDataDeserializer: read 252734 sequences
|
||||
MLFDataDeserializer::MLFDataDeserializer: read 948 utterances
|
||||
...............................................................................................feature set 0: 252734 frames in 948 out of 948 utterances
|
||||
label set 0: 129 classes
|
||||
minibatchutterancesource: 948 utterances grouped into 3 chunks, av. chunk size: 316.0 utterances, 84244.7 frames
|
||||
|
||||
05/03/2016 18:18:11: Starting from checkpoint. Loading network from '/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn.2'.
|
||||
05/03/2016 18:18:44: Starting from checkpoint. Loading network from '/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn.2'.
|
||||
|
||||
Post-processing network...
|
||||
|
||||
|
@ -930,14 +929,14 @@ Validating network, final pass.
|
|||
|
||||
Post-processing network complete.
|
||||
|
||||
05/03/2016 18:18:11: Loaded model with 25 nodes on CPU.
|
||||
05/03/2016 18:18:44: Loaded model with 25 nodes on CPU.
|
||||
|
||||
05/03/2016 18:18:11: Training criterion node(s):
|
||||
05/03/2016 18:18:11: CrossEntropyWithSoftmax = CrossEntropyWithSoftmax
|
||||
05/03/2016 18:18:44: Training criterion node(s):
|
||||
05/03/2016 18:18:44: CrossEntropyWithSoftmax = CrossEntropyWithSoftmax
|
||||
|
||||
05/03/2016 18:18:11: Evaluation criterion node(s):
|
||||
05/03/2016 18:18:44: Evaluation criterion node(s):
|
||||
|
||||
05/03/2016 18:18:11: EvalErrorPrediction = ErrorPrediction
|
||||
05/03/2016 18:18:44: EvalErrorPrediction = ErrorPrediction
|
||||
|
||||
|
||||
Allocating matrices for forward and/or backward propagation.
|
||||
|
@ -945,46 +944,48 @@ Allocating matrices for forward and/or backward propagation.
|
|||
Memory Sharing Structure:
|
||||
|
||||
(nil): {[EvalErrorPrediction Gradient[1]] [InvStdOfFeatures Gradient[363]] [LogOfPrior Gradient[132]] [MVNormalizedFeatures Gradient[363 x *1]] [MeanOfFeatures Gradient[363]] [PosteriorProb Gradient[132 x 1 x *1]] [PosteriorProb Value[132 x 1 x *1]] [Prior Gradient[132]] [ScaledLogLikelihood Gradient[132 x 1 x *1]] [features Gradient[363 x *1]] [labels Gradient[132 x *1]] }
|
||||
0x1aeb028: {[features Value[363 x *1]] }
|
||||
0x1aeefc8: {[W0 Value[512 x 363]] }
|
||||
0x1af6028: {[W0 Gradient[512 x 363]] [W0*features+B0 Value[512 x 1 x *1]] }
|
||||
0x1af6178: {[W0*features Value[512 x *1]] }
|
||||
0x1b44848: {[Prior Value[132]] }
|
||||
0x1b45f68: {[InvStdOfFeatures Value[363]] }
|
||||
0x1b47188: {[B1 Gradient[512 x 1]] [H2 Gradient[512 x 1 x *1]] [HLast Gradient[132 x 1 x *1]] }
|
||||
0x1b47348: {[W2*H1 Gradient[132 x 1 x *1]] }
|
||||
0x1b47508: {[B2 Gradient[132 x 1]] }
|
||||
0x1bb5828: {[EvalErrorPrediction Value[1]] }
|
||||
0x1bb88e8: {[B2 Value[132 x 1]] }
|
||||
0x1bbf8c8: {[H1 Value[512 x 1 x *1]] [W0*features Gradient[512 x *1]] }
|
||||
0x1bbfa88: {[W0*features+B0 Gradient[512 x 1 x *1]] [W1*H1 Value[512 x 1 x *1]] }
|
||||
0x1bbfc48: {[W1 Gradient[512 x 512]] [W1*H1+B1 Value[512 x 1 x *1]] }
|
||||
0x1bc48f8: {[W2 Value[132 x 512]] }
|
||||
0x1bc4b58: {[H2 Value[512 x 1 x *1]] [W1*H1 Gradient[512 x 1 x *1]] }
|
||||
0x1bc4cb8: {[B0 Gradient[512 x 1]] [H1 Gradient[512 x 1 x *1]] [W1*H1+B1 Gradient[512 x 1 x *1]] [W2*H1 Value[132 x 1 x *1]] }
|
||||
0x1bc4e78: {[HLast Value[132 x 1 x *1]] [W2 Gradient[132 x 512]] }
|
||||
0x1bdcd98: {[B0 Value[512 x 1]] }
|
||||
0x1be2ca8: {[W1 Value[512 x 512]] }
|
||||
0x1bf94e8: {[B1 Value[512 x 1]] }
|
||||
0x1c22658: {[MVNormalizedFeatures Value[363 x *1]] }
|
||||
0x1c22708: {[LogOfPrior Value[132]] }
|
||||
0x1c246c8: {[CrossEntropyWithSoftmax Gradient[1]] }
|
||||
0x1c25598: {[ScaledLogLikelihood Value[132 x 1 x *1]] }
|
||||
0x1c25758: {[CrossEntropyWithSoftmax Value[1]] }
|
||||
0x1c28958: {[labels Value[132 x *1]] }
|
||||
0x1c2ca78: {[MeanOfFeatures Value[363]] }
|
||||
0x162aba8: {[B1 Value[512 x 1]] }
|
||||
0x162b068: {[B0 Value[512 x 1]] }
|
||||
0x162dc58: {[features Value[363 x *1]] }
|
||||
0x162e6e8: {[B2 Value[132 x 1]] }
|
||||
0x162e808: {[Prior Value[132]] }
|
||||
0x1632798: {[InvStdOfFeatures Value[363]] }
|
||||
0x1635a88: {[W0 Gradient[512 x 363]] [W0*features+B0 Value[512 x 1 x *1]] }
|
||||
0x1635c98: {[H1 Value[512 x 1 x *1]] [W0*features Gradient[512 x *1]] }
|
||||
0x1635e58: {[W0*features+B0 Gradient[512 x 1 x *1]] [W1*H1 Value[512 x 1 x *1]] }
|
||||
0x1636018: {[W1 Gradient[512 x 512]] [W1*H1+B1 Value[512 x 1 x *1]] }
|
||||
0x16361d8: {[H2 Value[512 x 1 x *1]] [W1*H1 Gradient[512 x 1 x *1]] }
|
||||
0x16820c8: {[EvalErrorPrediction Value[1]] }
|
||||
0x16823b8: {[ScaledLogLikelihood Value[132 x 1 x *1]] }
|
||||
0x1682578: {[CrossEntropyWithSoftmax Value[1]] }
|
||||
0x1682848: {[W0*features Value[512 x *1]] }
|
||||
0x1689ce8: {[MVNormalizedFeatures Value[363 x *1]] }
|
||||
0x16ce748: {[MeanOfFeatures Value[363]] }
|
||||
0x1733f58: {[CrossEntropyWithSoftmax Gradient[1]] }
|
||||
0x1734118: {[B1 Gradient[512 x 1]] [H2 Gradient[512 x 1 x *1]] [HLast Gradient[132 x 1 x *1]] }
|
||||
0x17342d8: {[W2*H1 Gradient[132 x 1 x *1]] }
|
||||
0x1734498: {[B2 Gradient[132 x 1]] }
|
||||
0x1742148: {[W0 Value[512 x 363]] }
|
||||
0x1746838: {[labels Value[132 x *1]] }
|
||||
0x174d948: {[B0 Gradient[512 x 1]] [H1 Gradient[512 x 1 x *1]] [W1*H1+B1 Gradient[512 x 1 x *1]] [W2*H1 Value[132 x 1 x *1]] }
|
||||
0x174db08: {[HLast Value[132 x 1 x *1]] [W2 Gradient[132 x 512]] }
|
||||
0x174ef58: {[LogOfPrior Value[132]] }
|
||||
0x1753168: {[W1 Value[512 x 512]] }
|
||||
0x1757cc8: {[W2 Value[132 x 512]] }
|
||||
|
||||
05/03/2016 18:18:11: No PreCompute nodes found, skipping PreCompute step.
|
||||
05/03/2016 18:18:44: No PreCompute nodes found, skipping PreCompute step.
|
||||
|
||||
05/03/2016 18:18:11: Starting Epoch 3: learning rate per sample = 0.000098 effective momentum = 0.656119 momentum as time constant = 2429.9 samples
|
||||
05/03/2016 18:18:44: Starting Epoch 3: learning rate per sample = 0.000098 effective momentum = 0.656119 momentum as time constant = 2429.9 samples
|
||||
minibatchiterator: epoch 2: frames [40960..61440] (first utterance at frame 40960), data subset 0 of 1, with 1 datapasses
|
||||
requiredata: determined feature kind as 33-dimensional 'USER' with frame shift 10.0 ms
|
||||
|
||||
05/03/2016 18:18:11: Starting minibatch loop.
|
||||
05/03/2016 18:18:12: Epoch[ 3 of 3]-Minibatch[ 1- 10, 50.00%]: CrossEntropyWithSoftmax = 1.91946163 * 10240; EvalErrorPrediction = 0.52890625 * 10240; time = 0.9073s; samplesPerSecond = 11286.8
|
||||
05/03/2016 18:18:13: Epoch[ 3 of 3]-Minibatch[ 11- 20, 100.00%]: CrossEntropyWithSoftmax = 1.91066799 * 10240; EvalErrorPrediction = 0.52783203 * 10240; time = 0.7119s; samplesPerSecond = 14383.7
|
||||
05/03/2016 18:18:13: Finished Epoch[ 3 of 3]: [Training] CrossEntropyWithSoftmax = 1.91506481 * 20480; EvalErrorPrediction = 0.52836914 * 20480; totalSamplesSeen = 61440; learningRatePerSample = 9.7656251e-05; epochTime=1.65992s
|
||||
05/03/2016 18:18:13: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech/ExperimentalHtkmlfReader_QuickE2E@release_cpu/models/cntkSpeech.dnn'
|
||||
05/03/2016 18:18:13: CNTKCommandTrainEnd: speechTrain
|
||||
05/03/2016 18:18:44: Starting minibatch loop.
|
||||
05/03/2016 18:18:45: Epoch[ 3 of 3]-Minibatch[ 1- 10, 50.00%]: CrossEntropyWithSoftmax = 1.91946163 * 10240; EvalErrorPrediction = 0.52890625 * 10240; time = 0.7391s; samplesPerSecond = 13854.3
|
||||
05/03/2016 18:18:45: Epoch[ 3 of 3]-Minibatch[ 11- 20, 100.00%]: CrossEntropyWithSoftmax = 1.91066799 * 10240; EvalErrorPrediction = 0.52783203 * 10240; time = 0.5899s; samplesPerSecond = 17358.9
|
||||
05/03/2016 18:18:45: Finished Epoch[ 3 of 3]: [Training] CrossEntropyWithSoftmax = 1.91506481 * 20480; EvalErrorPrediction = 0.52836914 * 20480; totalSamplesSeen = 61440; learningRatePerSample = 9.7656251e-05; epochTime=1.41708s
|
||||
05/03/2016 18:18:45: SGD: Saving checkpoint model '/tmp/cntk-test-20160503181449.303380/Speech_QuickE2E@release_cpu/models/cntkSpeech.dnn'
|
||||
05/03/2016 18:18:46: CNTKCommandTrainEnd: speechTrain
|
||||
|
||||
05/03/2016 18:18:13: Action "train" complete.
|
||||
05/03/2016 18:18:46: Action "train" complete.
|
||||
|
||||
05/03/2016 18:18:13: __COMPLETED__
|
||||
05/03/2016 18:18:46: __COMPLETED__
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче