ESL 연구실 활동/LAB

0513 한 일

천숭이 2022. 5. 13. 18:41

kmc선배님 자료 찾았는데, 가중치 write 부분이 없어서 어느 부분이 커널이고 가중치이고 풀링인지 파악해야함

 

mnist는 아니지만 cifar10의 data.h파일을 참조하면서 비슷한 형태들의 텍스트파일을 만들어야함

 

- 선언된 변수들 -> 커널, conv. pooling 뭔지 파악해야함

	// Init Nodes
	Node node			  [5];		// Input - Conv - Pool - Conv - Pool

	Node conv_kernel	  [2];		// 2 Conv
	Node pool_mark		  [2];		// 2 Pool   
	Node cnp_delta		  [4];		// Conv - pool - Conv - Pool
	Node conv_momentum    [2];		//		*	   *	  *
	Node conv_dKernel     [2];		//		*	   *	  *

	Node layer			  [4];		// Input - Hidden - Hidden - Output
	Node weight			  [3];		//		 *		  *		   *
	Node delta			  [4];		// Input - Hidden - Hidden - Output
	Node momentum		  [3];		//		 *		  *		   *
	Node dWeight		  [3];		//		 *		  *		   *

	// Convolution
	conv_kernel[0]	= InitKernel(D3, 1 * 8, 5, 5);	
	conv_kernel[1]	= InitKernel(D3, 8 * 16, 5, 5);
									
	// Weight
	weight[0]		= InitWeight(D3, 1, 256 , 128 );		
	weight[1]		= InitWeight(D3, 1, 128 ,  64 );
	weight[2]		= InitWeight(D3, 1,  64 ,  10 );

 

 

- 텍스트파일 저장이 안되는 layer, delta는 Write1DData함수를 사용. ((맞는 적용인지는 모르겠음))

	Write3DData(node[0], f);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(node[1], f);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(node[2], f);   // 가중치 파일에 쓰기   (수빈)
	printf("---------node write---------\n");

	Write3DData(conv_kernel[0], f1);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(conv_kernel[1], f1);   // 가중치 파일에 쓰기   (수빈)
	printf("---------conf_kernle write---------\n");

	Write3DData(weight[0], f2);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(weight[1], f2);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(weight[2], f2);   // 가중치 파일에 쓰기   (수빈)
	printf("--------weight write---------\n");

	Write1DData(layer[0], f3);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(layer[1], f3);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(layer[2], f3);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(layer[3], f3);   // 가중치 파일에 쓰기   (수빈)
	printf("---------layer write---------\n");

	Write1DData(delta[0], f4);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(delta[1], f4);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(delta[2], f4);   // 가중치 파일에 쓰기   (수빈)
	Write1DData(delta[3], f4);   // 가중치 파일에 쓰기   (수빈)
	printf("---------delta write---------\n");
	Write3DData(cnp_delta[0], f5);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(cnp_delta[1], f5);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(cnp_delta[2], f5);   // 가중치 파일에 쓰기   (수빈)
	Write3DData(cnp_delta[3], f5);   // 가중치 파일에 쓰기   (수빈)
	printf("---------cnp_delta write---------\n");

 

 

 

- data (concatenate test) 구조

 

처음에 이미지 28줄만큼 틀 마련

다음에 R,G,B 틀 마련

그 다음부터

Conv1

Poo1

Conv2

Pool2

// 합성곱, 풀링 계층이 모델 순서에 따라서 

hidden1   (2XN)

hidden2   (1XN)

 

 

 

'ESL 연구실 활동 > LAB' 카테고리의 다른 글

[08] 임베디드 직무강좌  (0) 2022.05.22
[07] 임베디드 직무강좌  (0) 2022.05.20
0518 연구원분들 회의  (0) 2022.05.18
_  (0) 2022.05.08
0504 (작성중)  (0) 2022.05.04
0502 한 일 / 해야할 일/ 미팅  (0) 2022.05.02