test_convolution_timing


#define __WINDOWS__ 1

#include <iostream>
#include <algorithm>
#include <string>
#include "libidxgui.h"
#include "datasource.h"
#include "libidx.h"
#include "idx.h"
#include "ebl_basic.h"
#include "ebl_layers.h"

uint dump_count = 0;
using namespace std;
using namespace ebl;
void test_convolution_timing();

int main(int argc,char** argv) 
{ 
    test_convolution_timing();
	return 0;
}

void test_convolution_timing() 
{
	layers<double> l(true);
	idx<intg> tbl = full_table(1, 8);
	idx<intg> tbl2 = full_table(8, 16);
	idxdim ker(9,9);
	idxdim stride(1,1);
	l.add_module(new convolution_module<double>(NULL, ker, stride, tbl));
	l.add_module(new tanh_module<double>());
	l.add_module(new convolution_module<double>(NULL, ker, stride, tbl2));
	l.add_module(new tanh_module<double>());
	//convolution_module<double> l2(NULL, ker, stride, tbl);
	state<double> in(1, 512, 512), out(16, 496, 496);
	timer t;
	t.start();
	for (uint i = 0; i < 10; ++i) 
	{
		l.fprop(in, out);
	}
	long tim = t.elapsed_milliseconds();
	cout << " big convolution time: " << tim/10 << "ms";
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章