每一个层都可以通过属性获取到:输入形状、输出形状和层间数据。
形状和维度
假设有一个三维数组 x = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]] ,那么它的形状为 x.shape == [2, 2, 2] ,表示的是在每一个维度中长度。它的维度 x.shape.length == 3 ,表示该数组在
3个维度中有意义。
- filter_center_focus 维度描述数组的维度特征,例如 [1,2,3] 就是一维数组,维度为 1 。
- filter_center_focus 形状描述每一维的长度特征,例如 [[1,2],[3,4]] 是一个二维数组,形状为 [2,2] ,表示一维长度为 2 ,二维长度为 2 。
- filter_center_focus 关于维度的详细说明,点击链接获得更多的详细信息和例子。
输入和输出形状
某些层的形状是会发生变化的。例如卷积层,会增加一个维度,并且根据卷积核(过滤器)的特征改变长宽的值。
为了方便地展示层输入、输出的变化,我们提供 inputShape 和 outputShape
属性来方便地获取输入、输出的形状信息。
在 TensorSpace 中,dataFormat
默认通道数都在最后。例如,shape=[28 ,28, 3],就是指一个彩色图象的输入,通道数为 3 。
层间数据
在神经网络中,每一层都会有相对应的层间数据。经过预处理,我们可以提取到所需要层间数据,并将它们渲染到所对应的3D实体表面。这样我们就可以更直观地观察曾见数据的数据特征与变化。
例子
// 添加一些层
convLayer = new TSP.layers.Conv2d({...})
// 添加一些层
model.init();
// Must be used AFTER init() method.
console.log(convLayer.inputShape);
console.log(convLayer.outputShape);
console.log(convLayer.neuralValue);