1、要实现CNN,其中包括 卷积、池化(下采样)、分类器、优化方法、分类器、反向传播
2、可以使用一个三维数组来表示一张图片(通道、行、列)
3、卷积,卷积的方式有三种:valid,full,same,在CNN中我们用到了两种:前向传播时,使用valid,反向传播时使
full:假设我们的图片大小为 resourceImage:4*4,卷积核大小为 kernelSize:2*2,
1> 前向传播时,valid 卷积的得到的resultImage:3*3 (4-2+1=3,假设stride为 1,pad :0)
case "valid" :
{
resultImage = new double[inputImage.length-kernel.length+1][inputImage[0].length-kernel[0].length+1];
for(int i=0;i
{
for(int j=0;j
{
int[] row={i,i+kernel.length-1};
int[] col={j,j+kernel[0].length-1};
double [][] regionImage= arroperation.copy2(inputImage,row,col);
resultImage[i][j]=arroperation.product(regionImage,kernel);