manifold.cpp
来自「一个由Mike Gashler完成的机器学习方面的includes neural」· C++ 代码 · 共 1,682 行 · 第 1/5 页
CPP
1,682 行
}
void RunImageSemiSupPerfTest(int nCount, int nWid, int nHgt, int nTargetDims, int nNeighbors, double dSquishingRate, const char* szDir, int nSupervisedPoints)
{
printf("\n\n--- Image Semi Supervised Perf Test ---\n");
delete(m_pModel);
m_pModel = new ImageModel(0, nCount, nWid, nHgt, nTargetDims, nNeighbors, dSquishingRate, szDir, 0, NULL, true);
// First learn the points
int nPass = 0;
GManifoldSculpting* pSculpter = m_pModel->GetSculpter();
int nDataPoints = pSculpter->GetDataPointCount();
int nErrors;
int nBestErrors = nDataPoints;
int nIttersSinceImprovement = 0;
while(true)
{
pSculpter->SquishPass(rand() % nDataPoints);
nErrors = m_pModel->MeasureSingleDimOrderErrors();
if(nErrors < nBestErrors)
{
nBestErrors = nErrors;
nIttersSinceImprovement = 0;
}
else
nIttersSinceImprovement++;
if(nErrors == 0 || nIttersSinceImprovement > 100)
{
printf("First pass errors: %d\n", nErrors);
break;
}
nPass++;
}
int nPassLimit = 3 * nPass;
nPass = 0;
// Precision iterations
int i;
for(i = 0; i < nPass; i++)
pSculpter->SquishPass(rand() % nDataPoints);
nErrors = m_pModel->MeasureSingleDimOrderErrors();
int nTargetErrors = nErrors;
printf("Errors after precision iterations: %d\n", nErrors);
// Now do the demo with semi-supervision
ImageModel* pPrevModel = (ImageModel*)m_pModel;
double dStartTime = GTime::GetTime();
m_pModel = new ImageModel(0, nCount, nWid, nHgt, nTargetDims, nNeighbors, dSquishingRate, szDir, nSupervisedPoints, pPrevModel, true);
delete(pPrevModel);
pSculpter = m_pModel->GetSculpter();
double dBeginIterationTime = GTime::GetTime();
while(true)
{
pSculpter->SquishPass(rand() % nDataPoints);
nErrors = m_pModel->MeasureSingleDimOrderErrors();
if(nErrors <= nTargetErrors)
break;
if(nPass++ > nPassLimit)
{
printf("############ FAILED ##########\n");
break;
}
}
double dEndTime = GTime::GetTime();
printf("Iterate time: %f, Total time: %f\n", dEndTime - dBeginIterationTime, dEndTime - dStartTime);
}
void MakeGeneratedMatrix(const char* szFilename, SwissRollModel::ManifoldType eType, int nCount)
{
delete(m_pModel);
m_pModel = new SwissRollModel(eType, nCount, false, 8, .995, true, 0, NULL);
m_pModel->ToMatrix(szFilename);
}
void MakeImageMatrix(const char* szFilename, int nCount, int nWid, int nHgt, const char* szDir)
{
delete(m_pModel);
m_pModel = new ImageModel(0, nCount, nWid, nHgt, 1, 8, .995, szDir, 0, NULL, false);
m_pModel->ToMatrix(szFilename);
}
void RunGeneratedSemiSupPerfTest(SwissRollModel::ManifoldType eType, int nCount, int nNeighbors, double dSquishingRate, int nSupervisedPoints, double dFirstAcceptableError, double dSecondAcceptableError)
{
printf("\n\n--- Generated Semi Supervised Perf Test ---\n");
delete(m_pModel);
m_pModel = new SwissRollModel(eType, nCount, false, nNeighbors, dSquishingRate, true, 0, NULL);
// First learn the points
GManifoldSculpting* pSculpter = m_pModel->GetSculpter();
int nDataPoints = pSculpter->GetDataPointCount();
double dError;
while(true)
{
pSculpter->SquishPass(rand() % nDataPoints);
dError = (eType == SwissRollModel::SPIRALS ? ((SwissRollModel*)m_pModel)->Measure1DError() : ((SwissRollModel*)m_pModel)->Measure2DError());
if(dError < dFirstAcceptableError)
break;
}
// Now do the demo with semi-supervision
SwissRollModel* pPrevModel = (SwissRollModel*)m_pModel;
double dStartTime = GTime::GetTime();
m_pModel = new SwissRollModel(eType, nCount, false, nNeighbors, dSquishingRate, true, nSupervisedPoints, pPrevModel);
delete(pPrevModel);
pSculpter = m_pModel->GetSculpter();
double dBeginIterationTime = GTime::GetTime();
while(true)
{
pSculpter->SquishPass(rand() % nDataPoints);
dError = (eType == SwissRollModel::SPIRALS ? ((SwissRollModel*)m_pModel)->Measure1DError() : ((SwissRollModel*)m_pModel)->Measure2DError());
if(dError < dSecondAcceptableError)
break;
}
double dEndTime = GTime::GetTime();
printf("Iterate time: %f, Total time: %f\n", dEndTime - dBeginIterationTime, dEndTime - dStartTime);
}
void RunImagePerfTest(int nCount, int nWid, int nHgt, int nTargetDims, int nNeighbors, double dSquishingRate, const char* szDir, int nFinalErrors)
{
char szBuf[64];
printf("\n\n--- Image Perf Test for %s --- %s", szDir, GTime::GetAsciiTime(szBuf, 64));
delete(m_pModel);
double dStartTime = GTime::GetTime();
m_pModel = new ImageModel(0, nCount, nWid, nHgt, nTargetDims, nNeighbors, dSquishingRate, szDir, 0, NULL, true);
GManifoldSculpting* pSculpter = m_pModel->GetSculpter();
int nDataPoints = pSculpter->GetDataPointCount();
int nErrors;
int nBestErrors = nDataPoints;
int nIttersSinceImprovement = 0;
double dBeginIterationTime = GTime::GetTime();
while(true)
{
pSculpter->SquishPass(rand() % nDataPoints);
nErrors = m_pModel->MeasureSingleDimOrderErrors();
if(nErrors < nBestErrors)
{
nBestErrors = nErrors;
nIttersSinceImprovement = 0;
}
else
nIttersSinceImprovement++;
if(/*nErrors <= nFinalErrors || */nIttersSinceImprovement > 500)
{
printf("Number of errors: %d\n", nErrors);
break;
}
}
double dEndTime = GTime::GetTime();
double dMeanSquaredError = m_pModel->Measure1DError();
printf("Iterate time: %f, Total time: %f, Errors: %d, MeanSquaredError: %f\n", dEndTime - dBeginIterationTime, dEndTime - dStartTime, nBestErrors, dMeanSquaredError);
}
void ExportImageData(int nCount, int nWid, int nHgt, const char* szDir, const char* szOutFilename)
{
printf("\n\n--- Exporting images set: %s ---\n", szOutFilename);
delete(m_pModel);
m_pModel = new ImageModel(0, nCount, nWid, nHgt, 1, 1, .99, szDir, 0, NULL, false);
m_pModel->ToMatrix(szOutFilename);
printf("done.\n");
}
void DoImagePerfTests()
{
//RunImagePerfTest(12/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .99/*squishing rate*/, "faces/", 0);
//RunImagePerfTest(17/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .99/*squishing rate*/, "faces/", 0);
//RunImagePerfTest(25/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .99/*squishing rate*/, "faces/", 0);
//RunImagePerfTest(35/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .99/*squishing rate*/, "faces/", 0);
//RunImagePerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .99/*squishing rate*/, "faces/", 0);
//RunImagePerfTest(14/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(20/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(28/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(40/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(56/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(79/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(112/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(158/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 0);
//RunImagePerfTest(225/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 5);
//RunImagePerfTest(318/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 6);
RunImagePerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox1/", 5);
//RunImagePerfTest(14/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(20/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(28/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(40/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(56/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(79/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(112/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(158/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 0);
//RunImagePerfTest(225/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 5);
//RunImagePerfTest(318/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 6);
RunImagePerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/fox2/", 5);
//RunImagePerfTest(15/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 0);
//RunImagePerfTest(21/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 0);
//RunImagePerfTest(30/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 2);
//RunImagePerfTest(42/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 4);
//RunImagePerfTest(60/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 6);
//RunImagePerfTest(85/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 8);
//RunImagePerfTest(120/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 12);
//RunImagePerfTest(170/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 26);
//RunImagePerfTest(240/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 29);
//RunImagePerfTest(339/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 38);
//RunImagePerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/games/", 94);
//RunImagePerfTest(14/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(20/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(28/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(40/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(57/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(81/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(115/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 0);
//RunImagePerfTest(163/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 1);
RunImagePerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall1/", 1);
//RunImagePerfTest(16/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 0);
//RunImagePerfTest(23/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 0);
//RunImagePerfTest(33/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 0);
//RunImagePerfTest(47/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 0);
//RunImagePerfTest(67/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 0);
//RunImagePerfTest(95/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 1);
//RunImagePerfTest(135/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 1);
//RunImagePerfTest(191/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 1);
RunImagePerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/hall2/", 1);
//RunImagePerfTest(15/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(21/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(31/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(44/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(63/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(89/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 0);
//RunImagePerfTest(127/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 9);
//RunImagePerfTest(180/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 14);
//RunImagePerfTest(255/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 20);
RunImagePerfTest(360/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 23);
RunImagePerfTest(510/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/marsup/", 34);
//RunImagePerfTest(16/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(23/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(32/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(45/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(65/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(92/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(130/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 0);
//RunImagePerfTest(184/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 3);
//RunImagePerfTest(260/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan1/", 2);
//RunImagePerfTest(17/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(24/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(35/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(49/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(70/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(99/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(140/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 1);
//RunImagePerfTest(198/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 0);
//RunImagePerfTest(280/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan2/", 1);
//RunImagePerfTest(17/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(24/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(35/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(49/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(70/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(99/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
//RunImagePerfTest(140/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 1);
//RunImagePerfTest(198/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 0);
RunImagePerfTest(280/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .995/*squishing rate*/, "movies/pan3/", 1);
}
void DoImageSemiSupTests()
{
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 0);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 1);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 2);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 4);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 8);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 16);
RunImageSemiSupPerfTest(50/*count*/, 43/*wid*/, 38/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .98/*squishing rate*/, "faces/", 32);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 0);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 1);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 2);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 4);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 8);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 16);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 32);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 64);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 128);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox1/", 256);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 0);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 1);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 2);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 4);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 8);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 16);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 32);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 64);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 128);
RunImageSemiSupPerfTest(450/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/fox2/", 256);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 0);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 1);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 2);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 4);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 8);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 16);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 32);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 64);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 128);
RunImageSemiSupPerfTest(480/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/games/", 256);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 0);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 1);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 2);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 4);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 8);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 16);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 32);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 64);
RunImageSemiSupPerfTest(230/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall1/", 128);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 0);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 1);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 2);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 4);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 8);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 16);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 32);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 64);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 128);
RunImageSemiSupPerfTest(270/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/hall2/", 256);
RunImageSemiSupPerfTest(510/*count*/, 40/*wid*/, 30/*hgt*/, 1/*target dims*/, 6/*neighbors*/, .985/*squishing rate*/, "movies/marsup/", 0);
RunImageSemiSupPerfTest(510/*count*/, 40/*wid*/, 30/*hgt*/, 1/*
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?