Java 是否有一个INDArray';s执行两个INDARY(大小不同)相加的方法?
设想两个阵列:Java 是否有一个INDArray';s执行两个INDARY(大小不同)相加的方法?,java,nd4j,Java,Nd4j,设想两个阵列: a1.shape()=[2,3],a1中满是1 a2.shape()=[1,2],a2中满是2 我想在它们之间执行一个加法,例如: ?> result = a1.add(0, a2) ?> print(result) [[3, 3, 1], [1, 1, 1]] ?> result = a1.add(1, a2) ?> print(result) [[1, 1, 1], [3, 3, 1]] ?> result = a1.add(1, 1, a2
- a1.shape()=[2,3],a1中满是1
- a2.shape()=[1,2],a2中满是2
?> result = a1.add(0, a2)
?> print(result)
[[3, 3, 1], [1, 1, 1]]
?> result = a1.add(1, a2)
?> print(result)
[[1, 1, 1], [3, 3, 1]]
?> result = a1.add(1, 1, a2)
?> print(result)
[[1, 1, 1], [1, 3, 3]]
我已尝试首先选择一个子数组:
?> subarray = a1.get(NDArrayIndex.interval(0, 1), NDArrayIndex.interval(0, 2))
?> print(subarray)
[1, 1]
执行添加操作:
?> subarray = subarray.add(a2)
?> print(subarray)
[3, 3]
但我不知道如何在“a1”中的好位置插入“子阵列”
注:为了便于解释,我简化了问题。正在处理的阵列是4D阵列。我刚刚在文档中找到以下函数:
INDArray put(INDArrayIndex[] indices, INDArray element)
这可用于解决以下问题:
a1.put(
new INDArrayIndex[] {NDArrayIndex.interval(0, 1), NDArrayIndex.interval(0, 2)},
subarray
);
实际上,NDArrayIndex实现了INDArrayIndex接口