Merge branch 'master' of https://git01.codeplex.com/cntk
До Ширина: | Высота: | Размер: 177 KiB После Ширина: | Высота: | Размер: 177 KiB |
До Ширина: | Высота: | Размер: 11 KiB После Ширина: | Высота: | Размер: 11 KiB |
До Ширина: | Высота: | Размер: 22 KiB После Ширина: | Высота: | Размер: 22 KiB |
До Ширина: | Высота: | Размер: 16 KiB После Ширина: | Высота: | Размер: 16 KiB |
До Ширина: | Высота: | Размер: 14 KiB После Ширина: | Высота: | Размер: 14 KiB |
До Ширина: | Высота: | Размер: 15 KiB После Ширина: | Высота: | Размер: 15 KiB |
До Ширина: | Высота: | Размер: 11 KiB После Ширина: | Высота: | Размер: 11 KiB |
|
@ -102,7 +102,6 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
||||||
evalResultsLastMBs.push_back((ElemType)0);
|
evalResultsLastMBs.push_back((ElemType)0);
|
||||||
|
|
||||||
dataReader.StartMinibatchLoop(mbSize, 0, testSize);
|
dataReader.StartMinibatchLoop(mbSize, 0, testSize);
|
||||||
dataReader.SetNbrSlicesEachRecurrentIter(1);
|
|
||||||
|
|
||||||
for (int i=0; i<evalNodes.size(); i++)
|
for (int i=0; i<evalNodes.size(); i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,6 +125,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
||||||
throw std::logic_error("CPUSparseMatrix: unsupported sparse matrix format");
|
throw std::logic_error("CPUSparseMatrix: unsupported sparse matrix format");
|
||||||
}
|
}
|
||||||
m_format = format;
|
m_format = format;
|
||||||
|
m_default = defaultElem();
|
||||||
ZeroInit();
|
ZeroInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -541,7 +542,7 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
||||||
|
|
||||||
bool result = true;
|
bool result = true;
|
||||||
|
|
||||||
//#pragma omp parallel for
|
#pragma omp parallel for
|
||||||
foreach_coord(i, j, a)
|
foreach_coord(i, j, a)
|
||||||
{
|
{
|
||||||
if (abs(a(i, j) - b(i, j)) > threshold)
|
if (abs(a(i, j) - b(i, j)) > threshold)
|
||||||
|
|
|
@ -92,18 +92,39 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
||||||
void Resize(const size_t numRows, const size_t numCols, size_t numNZElemToReserve = 0, const bool growOnly = true, const bool keepExistingValues = true);
|
void Resize(const size_t numRows, const size_t numCols, size_t numNZElemToReserve = 0, const bool growOnly = true, const bool keepExistingValues = true);
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
inline ElemType& operator() (const size_t row, const size_t col)
|
inline ElemType defaultElem()
|
||||||
{
|
{
|
||||||
row;
|
ElemType default;
|
||||||
col;
|
memset(&default, 0, sizeof(ElemType));
|
||||||
NOT_IMPLEMENTED;
|
return default;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const ElemType& operator() (const size_t row, const size_t col) const
|
const ElemType& operator() (const size_t row, const size_t col) const
|
||||||
{
|
{
|
||||||
row;
|
if (col >= m_numCols || row >= m_numRows)
|
||||||
col;
|
{
|
||||||
NOT_IMPLEMENTED;
|
throw std::runtime_error("Position outside matrix dimensions");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_format == MatrixFormat::matrixFormatSparseCSC)
|
||||||
|
{
|
||||||
|
size_t start = m_compIndex[col];
|
||||||
|
size_t end = m_compIndex[col + 1];
|
||||||
|
for (size_t p = start; p < end; p++)
|
||||||
|
{
|
||||||
|
size_t i = m_unCompIndex[p];
|
||||||
|
if (i == row)
|
||||||
|
{
|
||||||
|
return m_pArray[p];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_default;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -158,6 +179,8 @@ namespace Microsoft { namespace MSR { namespace CNTK {
|
||||||
|
|
||||||
size_t m_blockSize; //block size
|
size_t m_blockSize; //block size
|
||||||
size_t *m_blockIds; //block ids
|
size_t *m_blockIds; //block ids
|
||||||
|
|
||||||
|
ElemType m_default;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef CPUSparseMatrix<float> CPUSingleSparseMatrix;
|
typedef CPUSparseMatrix<float> CPUSingleSparseMatrix;
|
||||||
|
|
До Ширина: | Высота: | Размер: 16 KiB После Ширина: | Высота: | Размер: 16 KiB |
До Ширина: | Высота: | Размер: 14 KiB После Ширина: | Высота: | Размер: 14 KiB |
До Ширина: | Высота: | Размер: 177 KiB После Ширина: | Высота: | Размер: 177 KiB |
До Ширина: | Высота: | Размер: 11 KiB После Ширина: | Высота: | Размер: 11 KiB |
До Ширина: | Высота: | Размер: 22 KiB После Ширина: | Высота: | Размер: 22 KiB |
До Ширина: | Высота: | Размер: 11 KiB После Ширина: | Высота: | Размер: 11 KiB |