本文整理了Java中org.nd4j.linalg.factory.Nd4j.getCompressor()
方法的一些代码示例,展示了Nd4j.getCompressor()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Nd4j.getCompressor()
方法的具体详情如下:
包路径:org.nd4j.linalg.factory.Nd4j
类名称:Nd4j
方法名:getCompressor
[英]This method returns BasicNDArrayCompressor instance, suitable for NDArray compression/decompression at runtime
[中]此方法返回BasicNDArrayCompressor实例,适用于运行时的NDArray压缩/解压缩
代码示例来源:origin: deeplearning4j/nd4j
/**
*
* @param img
* @param kernel
* @param stride
* @param padding
* @return
*/
public static INDArray im2col(INDArray img, int[] kernel, int[] stride, int[] padding) {
Nd4j.getCompressor().autoDecompress(img);
return im2col(img, kernel[0], kernel[1], stride[0], stride[1], padding[0], padding[1], 0, false);
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Replaces all elements in this ndarray that are matching give condition, with corresponding elements from given array
*
* @param arr
* @param condition
* @return
*/
@Override
public INDArray replaceWhere(INDArray arr, Condition condition) {
Nd4j.getCompressor().autoDecompress(this);
BooleanIndexing.replaceWhere(this, arr, condition);
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray put(INDArrayIndex[] indices, Number element) {
Nd4j.getCompressor().autoDecompress(this);
INDArray get = get(indices);
for (int i = 0; i < get.length(); i++)
get.putScalar(i, element.doubleValue());
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Returns the (euclidean) distance.
*/
@Override
public double distance2(INDArray other) {
Nd4j.getCompressor().autoDecompress(this);
return Nd4j.getExecutioner().execAndReturn(new EuclideanDistance(this, other)).getFinalResult().doubleValue();
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Returns the (1-norm) distance.
*/
@Override
public double distance1(INDArray other) {
Nd4j.getCompressor().autoDecompress(this);
return Nd4j.getExecutioner().execAndReturn(new ManhattanDistance(this, other)).getFinalResult().doubleValue();
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray putScalar(long row, long col, double value) {
Nd4j.getCompressor().autoDecompress(this);
autoProcessScalarCall();
if (rank() > 2)
throw new IllegalStateException("Cannot use putScalar(int,int,double) on a rank " + rank() + " INDArray");
long offset = Shape.getOffsetUnsafe(javaShapeInformation, row, col);
data.put(offset, value);
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray putScalar(long dim0, long dim1, long dim2, long dim3, double value) {
Nd4j.getCompressor().autoDecompress(this);
autoProcessScalarCall();
if (rank() != 4)
throw new IllegalStateException(
"Cannot use putScalar(int,int,int,int,double) on a rank " + rank() + " INDArray");
long offset = Shape.getOffsetUnsafe(javaShapeInformation, dim0, dim1, dim2, dim3);
data.put(offset, value);
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray putScalar(long dim0, long dim1, long dim2, double value) {
Nd4j.getCompressor().autoDecompress(this);
autoProcessScalarCall();
if (rank() != 3)
throw new IllegalStateException(
"Cannot use putScalar(int,int,int,double) on a rank " + rank() + " INDArray");
long offset = 0; // Shape.getOffsetUnsafe(javaShapeInformation, dim0, dim1, dim2);
long size_0 = javaShapeInformation[1];
long size_1 = javaShapeInformation[1 + 1];
long size_2 = javaShapeInformation[1 + 2];
if (size_0 != 1)
offset += dim0 * javaShapeInformation[1 + 0 + 3];
if (size_1 != 1)
offset += dim1 * javaShapeInformation[1 + 1 + 3];
if (size_2 != 1)
offset += dim2 * javaShapeInformation[1 + 2 + 3];
data.put(offset, value);
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray condi(Condition condition) {
Nd4j.getCompressor().autoDecompress(this);
INDArray linear = this;
for (int i = 0; i < length(); i++) {
boolean met = condition.apply(linear.getDouble(i));
linear.putScalar(i, met ? 1 : 0);
}
return this;
}
代码示例来源:origin: deeplearning4j/nd4j
protected void checkForCompression(Op op) {
// check for INT datatype arrays
interceptIntDataType(op);
if (op.x() != null && op.x().isCompressed())
Nd4j.getCompressor().decompressi(op.x());
if (op.y() != null && op.y().isCompressed())
Nd4j.getCompressor().decompressi(op.y());
if (op.z() != null && op.z().isCompressed())
Nd4j.getCompressor().decompressi(op.z());
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray putWhere(INDArray comp, INDArray put, Condition condition) {
Nd4j.getCompressor().autoDecompress(this);
MatchConditionTransform matchCondition = new MatchConditionTransform(this,comp,condition);
Nd4j.getExecutioner().exec(matchCondition);
return putWhereWithMask(matchCondition.z(),put);
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Get the specified column
*
* @param c
*/
@Override
public INDArray getColumn(long c) {
Nd4j.getCompressor().autoDecompress(this);
if (isColumnVector() && c == 0)
return this;
else if (isColumnVector() && c > 0)
throw new IllegalArgumentException("Illegal index for row");
else if(isRowVector()) {
return Nd4j.scalar(getDouble(c));
}
return get(NDArrayIndex.all(), NDArrayIndex.point(c));
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray dup() {
WorkspaceUtils.assertValidArray(this, "Cannot duplicate INDArray");
if (this.isCompressed() && this.ordering() == Nd4j.order().charValue()) {
INDArray ret = Nd4j.createArrayFromShapeBuffer(data().dup(), this.shapeInfoDataBuffer());
ret.markAsCompressed(true);
return ret;
}
Nd4j.getCompressor().autoDecompress(this);
INDArray ret = Shape.toOffsetZeroCopy(this);
return ret;
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Insert a column in to this array
* Will throw an exception if this
* ndarray is not a matrix
*
* @param column the column to insert
* @param toPut the array to put
* @return this
*/
@Override
public INDArray putColumn(int column, INDArray toPut) {
Nd4j.getCompressor().autoDecompress(this);
if (isColumnVector() && toPut.isVector()) {
return assign(toPut);
}
return put(new INDArrayIndex[] {NDArrayIndex.all(), NDArrayIndex.point(column)}, toPut);
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public double getDouble(long i) {
Nd4j.getCompressor().autoDecompress(this);
if (i >= length()) {
throw new IllegalArgumentException("Unable to get linear index >= " + length());
}
autoProcessScalarCall();
if (i == 0)
return data().getDouble(i);
long[] dimensions = ordering() == 'c' ? Shape.ind2subC(this, i) : Shape.ind2sub(this, i);
Shape.assertShapeLessThan(dimensions, shape());
return getDouble(dimensions);
}
代码示例来源:origin: deeplearning4j/nd4j
public static INDArray im2col(INDArray img, int kh, int kw, int sy, int sx, int ph, int pw, int dh, int dw, boolean isSameMode) {
Nd4j.getCompressor().autoDecompress(img);
//Input: NCHW format
// FIXME: int cast
int outH = outputSize((int) img.size(2), kh, sy, ph, dh, isSameMode);
int outW = outputSize((int) img.size(3), kw, sx, pw, dw, isSameMode);
//[miniBatch,depth,kH,kW,outH,outW]
INDArray out = Nd4j.create(new long[]{img.size(0), img.size(1), kh, kw, outH, outW}, 'c');
return im2col(img, kh, kw, sy, sx, ph, pw, dh, dw, isSameMode, out);
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Flattens the array for linear indexing
*
* @return the flattened version of this array
*/
@Override
public INDArray ravel(char ordering) {
Nd4j.getCompressor().autoDecompress(this);
if (length() >= Integer.MAX_VALUE)
throw new IllegalArgumentException("Length can not be >= Integer.MAX_VALUE");
INDArray ret = create(new int[] {1, (int) length()}, ordering);
NDArrayIndex index = new NDArrayIndex(this.shape());
for (int i = 0; i < length(); i++) {
// FIXME: LONG
double val = getDouble((int) index.next());
ret.putScalar(new int[] {0, i}, val);
}
return ret;
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray dup(char order) {
WorkspaceUtils.assertValidArray(this, "Cannot duplicate INDArray");
if (this.isCompressed() && this.ordering() == order) {
INDArray ret = Nd4j.createArrayFromShapeBuffer(data().dup(), this.shapeInfoDataBuffer());
ret.markAsCompressed(true);
return ret;
}
Nd4j.getCompressor().autoDecompress(this);
return Shape.toOffsetZeroCopy(this, order);
}
代码示例来源:origin: deeplearning4j/nd4j
@Override
public INDArray put(INDArrayIndex[] indices, INDArray element) {
Nd4j.getCompressor().autoDecompress(this);
if (indices[0] instanceof SpecifiedIndex && element.isVector()) {
indices[0].reset();
int cnt = 0;
while (indices[0].hasNext()) {
long idx = indices[0].next();
// FIXME: LONG
putScalar((int) idx, element.getDouble(cnt));
cnt++;
}
return this;
} else {
return get(indices).assign(element);
}
}
代码示例来源:origin: deeplearning4j/nd4j
/**
* Replicate and tile array to fill out to the given shape
* See:
* https://github.com/numpy/numpy/blob/master/numpy/matlib.py#L310-L358
* @param shape the new shape of this ndarray
* @return the shape to fill out to
*/
@Override
public INDArray repmat(int[] shape) {
Nd4j.getCompressor().autoDecompress(this);
long rows = rows() * shape[0];
long cols = columns() * shape[1];
INDArray ret = reshape(1, length()).repeat(0, shape[0]).reshape(rows, columns()).repeat(0, shape[1]);
return ret.reshape(rows, cols);
}
内容来源于网络,如有侵权,请联系作者删除!