3D 数组中的 ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException in 3D array
我正在尝试为神经网络制作一个锯齿状数组,这给了我一个越界错误...
int[] sizes = {
layer1, layer2, layer3
};
int k = sizes.length - 1;
double[][][] net = new double[k][][];
int i;
for (i = 0; i < k; i++)
net[i] = new double[sizes[i]][];
for (int j = 0; j < sizes[i]; j++)
net[i][j] = new double[sizes[i + 1]];
net[x][ ][y]
中 y 的大小应等于 net[x+1][y][ ]
的大小。
我是在纸上做的,我认为这行得通。
int[] sizes = {
layer1, layer2, layer3
};
int k = sizes.length - 1;
因此,k
等于 2。
int i;
for (i = 0; i < k; i++)
net[i] = new double[sizes[i]][];
循环后 i
等于 2.
for (int j = 0; j < sizes[i]; j++)
net[i][j] = new double[sizes[i + 1]];
^^^^^^^^^^^^
ArrayIndexOutOfBoundsException
Boom,sizes[i + 1]
抛出 ArrayIndexOutOfBoundsException
,因为 sizes
只有索引 0、1 和 2,而您指的是 sizes[3]
。
我正在尝试为神经网络制作一个锯齿状数组,这给了我一个越界错误...
int[] sizes = {
layer1, layer2, layer3
};
int k = sizes.length - 1;
double[][][] net = new double[k][][];
int i;
for (i = 0; i < k; i++)
net[i] = new double[sizes[i]][];
for (int j = 0; j < sizes[i]; j++)
net[i][j] = new double[sizes[i + 1]];
net[x][ ][y]
中 y 的大小应等于 net[x+1][y][ ]
的大小。
我是在纸上做的,我认为这行得通。
int[] sizes = {
layer1, layer2, layer3
};
int k = sizes.length - 1;
因此,k
等于 2。
int i;
for (i = 0; i < k; i++)
net[i] = new double[sizes[i]][];
循环后 i
等于 2.
for (int j = 0; j < sizes[i]; j++)
net[i][j] = new double[sizes[i + 1]];
^^^^^^^^^^^^
ArrayIndexOutOfBoundsException
Boom,sizes[i + 1]
抛出 ArrayIndexOutOfBoundsException
,因为 sizes
只有索引 0、1 和 2,而您指的是 sizes[3]
。