我正在查看深度学习 4j 的示例,以根据电影评论的情绪对其进行分类。 回顾示例
在第 124-142 行创建了 N 维数组,我有点不确定这些行发生了什么:
第 132 行:
features.put(new INDArrayIndex[]{NDArrayIndex.point(i),
NDArrayIndex.all(), NDArrayIndex.point(j)}, vector);
我可以对其进行成像.point(x)
并.point(j)
寻址数组中的单元格,但NDArrayIndex.all()
调用在这里究竟做了什么?
虽然构建特征数组或多或少没问题,但那里发生的事情我完全被标签掩码和这个lastIdx
变量弄糊涂了
138 - 142 号线
int idx = (positive[i] ? 0 : 1);
int lastIdx = Math.min(tokens.size(),maxLength);
labels.putScalar(new int[]{i,idx,lastIdx-1},1.0); //Set label: [0,1] for negative, [1,0] for positive
labelsMask.putScalar(new int[]{i,lastIdx-1},1.0); //Specify that an output exists at the final time step for this example
标签数组本身由i, idx
例如设置为 1.0 的列/行寻址 - 但我真的不明白这个时间步长信息如何适应?这是最后一个参数必须标记最后一个条目的惯例吗?
那么为什么labelsMask只使用而不使用i
呢i, idx
?
感谢您提供有助于澄清我的一些问题的解释或指示