ND4JINDArray
切片是通过javaget()
中回答的一种重载方法实现的- 获取 Nd4j 数组的任意切片 - 代码日志。作为INDArray
一个连续的本机内存块,使用切片是否get()
会复制原始内存(尤其是行切片,其中可以创建一个INDArray
具有相同后备内存的新内存)?
我找到了另一种INDArray
方法subArray()
。这个有什么区别吗?
我问这个是因为我正在尝试创建一个DatasetIterator
可以直接从INDArray
s 中提取数据的程序,并且我想消除可能的开销。源代码中有太多抽象,我自己找不到实现。
在python - Numpy: views vs copy by slicing - Stack Overflow中提出了一个关于 NumPy 的类似问题,答案可以在Indexing - NumPy v1.16 Manual中找到:
这里的经验法则可以是:在左值索引的上下文中(即索引放置在赋值的左侧值中),不创建数组的视图或副本(因为没有必要)。但是,对于常规值,上述创建视图的规则确实适用。