35 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			879 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var data = csv.read('test-cnn-DT.csv'),
							 | 
						||
| 
								 | 
							
								    x,
							 | 
						||
| 
								 | 
							
								    y;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								data.shift();
							 | 
						||
| 
								 | 
							
								x=select(data,0,data[0].length-2);
							 | 
						||
| 
								 | 
							
								y=select(data,data[0].length-1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var model = ml.learn({
							 | 
						||
| 
								 | 
							
								  algorithm:ml.ML.CNN,
							 | 
						||
| 
								 | 
							
								  x:x,  // [row1=[col1=[z1,z2,..],col2,..],row2,..]
							 | 
						||
| 
								 | 
							
								  y:y,
							 | 
						||
| 
								 | 
							
								  width:28,
							 | 
						||
| 
								 | 
							
								  height:28,
							 | 
						||
| 
								 | 
							
								  depth:1,
							 | 
						||
| 
								 | 
							
								  normalize:[-.5,.5],
							 | 
						||
| 
								 | 
							
								  iterations:100,
							 | 
						||
| 
								 | 
							
								  layers:[
							 | 
						||
| 
								 | 
							
								    // output Vol is of size 3x4x2 here
							 | 
						||
| 
								 | 
							
								    {type:'input', out_sx:28, out_sy:28, out_depth:1},
							 | 
						||
| 
								 | 
							
								    {type:'conv', sx:5, filters:8, stride:1, pad:2, activation:'relu'},
							 | 
						||
| 
								 | 
							
								    {type:'pool', sx:2, stride:2},
							 | 
						||
| 
								 | 
							
								    {type:'conv', sx:5, filters:16, stride:1, pad:2, activation:'relu'},
							 | 
						||
| 
								 | 
							
								    {type:'pool', sx:3, stride:3},
							 | 
						||
| 
								 | 
							
								    {type:'softmax', num_classes:10}
							 | 
						||
| 
								 | 
							
								  ],
							 | 
						||
| 
								 | 
							
								  trainer : {method: 'adadelta', 
							 | 
						||
| 
								 | 
							
								            l2_decay: 0.001, 
							 | 
						||
| 
								 | 
							
								            batch_size: 10}
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								// print(model)
							 | 
						||
| 
								 | 
							
								for(var i=0;i<100;i++)
							 | 
						||
| 
								 | 
							
								  print(y[i],ml.stats.utils.best(ml.classify(model,x[i]).w))
							 |