Class BaseNDManager
- All Implemented Interfaces:
NDManager
,AutoCloseable
BaseNDManager
is the default implementation of NDManager
.-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface ai.djl.ndarray.NDManager
NDManager.SystemNDManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected NDManager
protected AtomicBoolean
protected AtomicBoolean
protected Device
protected String
protected NDManager
protected ConcurrentHashMap<String,
AutoCloseable> protected ConcurrentHashMap<String,
BaseNDManager.TempResource> protected String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns evenly spaced values within a given interval.void
attachInternal
(String resourceId, AutoCloseable... resources) Attaches a resource to thisNDManager
.void
attachUncappedInternal
(String resourceId, AutoCloseable resource) Attaches a resource to thisNDManager
circumventing any cap protection.void
cap()
Caps this manager to prevent unintentional attachment of resources.void
close()
static void
copyBuffer
(Buffer src, ByteBuffer target) Copies data from the sourceBuffer
to the targetByteBuffer
.Creates a StringNDArray
based on the provided shape.Creates a Coordinate Format (COO) Matrix.Creates a Compressed Sparse Row Storage (CSR) Format Matrix.createRowSparse
(Buffer data, Shape dataShape, long[] indices, Shape shape) Stores the matrix in row sparse format.void
debugDump
(int level) Prints information about thisNDManager
and all sub-managers to the console.final Device
Returns the default context used in Engine.void
detachInternal
(String resourceId) Detaches aNDArray
from thisNDManager
's lifecycle.Returns a 2-D array with ones on the diagonal and zeros elsewhere.Return a newNDArray
of given shape, filled with value.Returns the defaultDevice
of thisNDManager
.Returns allNDArray
s managed by this manager (including recursively).getName()
Gets the name of the NDManager.Returns the parentNDManager
.void
An engine specific generic invocation to native operation.An engine specific generic invocation to native operation.boolean
isOpen()
Check if the manager is still valid.linspace
(float start, float stop, int num, boolean endpoint) Returns evenly spaced numbers over a specified interval.Loads the NDArrays saved to a file.Creates a childNDManager
.randomInteger
(long low, long high, Shape shape, DataType dataType) Returns random integer values from low (inclusive) to high (exclusive).randomMultinomial
(int n, NDArray pValues) Draw samples from a multinomial distribution.randomMultinomial
(int n, NDArray pValues, Shape shape) Draw samples from a multinomial distribution.randomNormal
(float loc, float scale, Shape shape, DataType dataType) Draws random samples from a normal (Gaussian) distribution.randomPermutation
(long n) Returns a random permutation of integers from 0 to n - 1.randomUniform
(float low, float high, Shape shape, DataType dataType) Draws samples from a uniform distribution.sampleGamma
(NDArray alpha, NDArray beta) Draw random samples from a gamma distribution.sampleGamma
(NDArray alpha, NDArray beta, Shape shape) Draw random samples from a gamma distribution.sampleNormal
(NDArray mu, NDArray sigma) Concurrent sampling from multiple normal distributions with parameters *mu* (mean) and *sigma* (standard deviation).sampleNormal
(NDArray mu, NDArray sigma, Shape shape) Concurrent sampling from multiple normal distributions with parameters *mu* (mean) and *sigma* (standard deviation).samplePoisson
(NDArray lam) Draw random samples from a Poisson distribution.samplePoisson
(NDArray lam, Shape shape) Draw random samples from a Poisson distribution.void
Sets the name for the NDManager.void
tempAttachInternal
(NDManager originalManager, String resourceId, NDResource resource) Temporarily attaches a resource to thisNDManager
to be returned when this is closed.toString()
truncatedNormal
(float loc, float scale, Shape shape, DataType dataType) Draws random samples from a normal (Gaussian) distribution, discarding and re-drawing any samples that are more than two standard deviations from the mean.static void
validateBuffer
(Buffer buffer, DataType dataType, int expected) Checks if the input buffer size is match expected data type.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ai.djl.ndarray.NDManager
allocateDirect, arange, arange, arange, arange, arange, arange, arange, arange, attachAll, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, create, createCSR, createCSR, createRowSparse, decode, decode, eye, eye, eye, eye, from, full, full, full, getEngine, hanningWindow, linspace, linspace, linspace, linspace, load, newSubManager, ones, ones, ones, randomNormal, randomNormal, randomNormal, randomUniform, randomUniform, ret, tempAttachAll, truncatedNormal, truncatedNormal, truncatedNormal, zeros, zeros, zeros
-
Field Details
-
parent
-
alternativeManager
-
uid
-
name
-
device
-
resources
-
tempResources
-
closed
-
capped
-
-
Constructor Details
-
BaseNDManager
-
-
Method Details
-
defaultDevice
Returns the default context used in Engine.The default type is defined by whether the deep learning engine is recognizing GPUs available on your machine. If there is no GPU available, CPU will be used.
- Specified by:
defaultDevice
in interfaceNDManager
- Returns:
- a
Device
-
create
Creates a StringNDArray
based on the provided shape. -
create
-
createCSR
Creates a Compressed Sparse Row Storage (CSR) Format Matrix.- Specified by:
createCSR
in interfaceNDManager
- Parameters:
data
- the data to set for the CSR Matrixindptr
- the indptr array is what will help identify the rows where the data appearsindices
- the indices array stores the column index for each non-zero element in datashape
- theShape
of theNDArray
- Returns:
- a new instance of
NDArray
-
createRowSparse
Stores the matrix in row sparse format. -
createCoo
Creates a Coordinate Format (COO) Matrix. -
load
Loads the NDArrays saved to a file. -
setName
Sets the name for the NDManager. -
getName
Gets the name of the NDManager. -
full
Return a newNDArray
of given shape, filled with value. -
arange
Returns evenly spaced values within a given interval.Values are generated within the half-open interval [start, stop) (in other words, the interval including start but excluding stop). For integer arguments, the function is equivalent to the Python built-in range function, but returns an instance of
NDArray
rather than a list. -
eye
Returns a 2-D array with ones on the diagonal and zeros elsewhere.- Specified by:
eye
in interfaceNDManager
- Parameters:
rows
- the number of rows int the outputcols
- the number of columns in the outputk
- the index of the diagonal: a positive value refers to an upper diagonal, and a negative value to a lower diagonaldataType
- theDataType
of theNDArray
- Returns:
- a
NDArray
where all elements are equal to zero, except for the k-th diagonal, whose values are equal to one
-
linspace
Returns evenly spaced numbers over a specified interval.Returns num evenly spaced samples, calculated over the interval [start, stop].The endpoint of the interval can optionally be excluded.
-
randomInteger
Returns random integer values from low (inclusive) to high (exclusive).- Specified by:
randomInteger
in interfaceNDManager
- Parameters:
low
- Lowest (signed) longs to be drawn from the distributionhigh
- one above the largest (signed) long to be drawn from the distributionshape
- theShape
of theNDArray
dataType
- theDataType
of theNDArray
- Returns:
- the drawn samples
NDArray
-
randomPermutation
Returns a random permutation of integers from 0 to n - 1.- Specified by:
randomPermutation
in interfaceNDManager
- Parameters:
n
- (int) – the upper bound (exclusive)- Returns:
- a random permutation of integers from 0 to n - 1.
-
randomUniform
Draws samples from a uniform distribution.Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). In other words, any value within the given interval is equally likely to be drawn by uniform.
- Specified by:
randomUniform
in interfaceNDManager
- Parameters:
low
- the lower boundary of the output interval. All values generated will be greater than or equal to low.high
- the upper boundary of the output interval. All values generated will be less than high.shape
- theShape
of theNDArray
dataType
- theDataType
of theNDArray
- Returns:
- the drawn samples
NDArray
-
randomNormal
Draws random samples from a normal (Gaussian) distribution. -
truncatedNormal
Draws random samples from a normal (Gaussian) distribution, discarding and re-drawing any samples that are more than two standard deviations from the mean. -
randomMultinomial
Draw samples from a multinomial distribution.The multinomial distribution is a multivariate generalization of the binomial distribution. Take an experiment with one of p possible outcomes. An example of such an experiment is throwing a dice, where the outcome can be 1 through 6. Each sample drawn from the distribution represents n such experiments. Its values, X_i = [X_0, X_1, ..., X_p], represent the number of times the outcome was i.
- Specified by:
randomMultinomial
in interfaceNDManager
- Parameters:
n
- the number of experimentspValues
- the probabilities of each of the p different outcomes. These should sum to 1 The last element is always assumed to account for the remaining probability, as long as pValues.sum().getFloat() <= 1)- Returns:
- the drawn samples
NDArray
-
randomMultinomial
Draw samples from a multinomial distribution.The multinomial distribution is a multivariate generalization of the binomial distribution. Take an experiment with one of p possible outcomes. An example of such an experiment is throwing a dice, where the outcome can be 1 through 6. Each sample drawn from the distribution represents n such experiments. Its values, X_i = [X_0, X_1, ..., X_p], represent the number of times the outcome was i.
- Specified by:
randomMultinomial
in interfaceNDManager
- Parameters:
n
- the number of experimentspValues
- the probabilities of each of the p different outcomes. These should sum to 1 The last element is always assumed to account for the remaining probability, as long as pValues.sum().getFloat() <= 1)shape
- the outputShape
- Returns:
- the drawn samples
NDArray
-
sampleNormal
Concurrent sampling from multiple normal distributions with parameters *mu* (mean) and *sigma* (standard deviation).- Specified by:
sampleNormal
in interfaceNDManager
- Parameters:
mu
- Means of the distributionssigma
- Standard deviations of the distributions- Returns:
- the drawn samples
NDArray
-
sampleNormal
Concurrent sampling from multiple normal distributions with parameters *mu* (mean) and *sigma* (standard deviation).- Specified by:
sampleNormal
in interfaceNDManager
- Parameters:
mu
- Means of the distributionssigma
- Standard deviations of the distributionsshape
- Shape to be sampled from each random distribution- Returns:
- the drawn samples
NDArray
-
samplePoisson
Draw random samples from a Poisson distribution.Samples are distributed according to a Poisson distribution parametrized by *lambda* (rate). Samples will always be returned as a floating point data type.
- Specified by:
samplePoisson
in interfaceNDManager
- Parameters:
lam
- Lambda (rate) parameters of the distributions- Returns:
- the drawn samples
NDArray
-
samplePoisson
Draw random samples from a Poisson distribution.Samples are distributed according to a Poisson distribution parametrized by *lambda* (rate). Samples will always be returned as a floating point data type.
- Specified by:
samplePoisson
in interfaceNDManager
- Parameters:
lam
- Lambda (rate) parameters of the distributionsshape
- Shape to be sampled from each random distribution- Returns:
- the drawn samples
NDArray
-
sampleGamma
Draw random samples from a gamma distribution.Samples are distributed according to a gamma distribution parametrized by *alpha* (shape) and *beta* (scale).
- Specified by:
sampleGamma
in interfaceNDManager
- Parameters:
alpha
- The shape of the gamma distributionbeta
- The scale of the gamma distribution- Returns:
- the drawn samples
NDArray
-
sampleGamma
Draw random samples from a gamma distribution.Samples are distributed according to a gamma distribution parametrized by *alpha* (shape) and *beta* (scale).
- Specified by:
sampleGamma
in interfaceNDManager
- Parameters:
alpha
- The shape of the gamma distributionbeta
- The scale of the gamma distributionshape
- Shape to be sampled from each random distribution- Returns:
- the drawn samples
NDArray
-
isOpen
public boolean isOpen()Check if the manager is still valid. -
cap
public void cap()Caps this manager to prevent unintentional attachment of resources. This is useful to detect memory leaks at an early point in time. The attachment of sub managers is still allowed after this method has been called. -
getParentManager
Returns the parentNDManager
.- Specified by:
getParentManager
in interfaceNDManager
- Returns:
- the parent
NDManager
-
newSubManager
Creates a childNDManager
.Child
NDManager
will inherit defaultDevice
from thisNDManager
.- Specified by:
newSubManager
in interfaceNDManager
- Returns:
- a child
NDManager
-
getDevice
Returns the defaultDevice
of thisNDManager
. -
getManagedArrays
Returns allNDArray
s managed by this manager (including recursively).- Specified by:
getManagedArrays
in interfaceNDManager
- Returns:
- all
NDArray
s managed by this manager (including recursively)
-
toString
-
attachInternal
Attaches a resource to thisNDManager
.The attached resource will be closed when this
NDManager
is closed.This attachment is internal. Many resources will internally track which manager they are attached to. In that case, you should call
NDResource.attach(NDManager)
instead and that should then call attachInternal.- Specified by:
attachInternal
in interfaceNDManager
- Parameters:
resourceId
- the unique resourceIdresources
- theAutoCloseable
resource to be attached
-
attachUncappedInternal
Attaches a resource to thisNDManager
circumventing any cap protection.The attached resource will be closed when this
NDManager
is closed.This attachment is internal. Many resources will internally track which manager they are attached to. In that case, you should call
NDResource.attach(NDManager)
instead and that should then call attachInternal.- Specified by:
attachUncappedInternal
in interfaceNDManager
- Parameters:
resourceId
- the unique resourceIdresource
- theAutoCloseable
resource to be attached
-
tempAttachInternal
Temporarily attaches a resource to thisNDManager
to be returned when this is closed.The attached resource will be returned to it's original manager when this
NDManager
is closed.This attachment is internal. Many resources will internally track which manager they are attached to. In that case, you should call
NDResource.attach(NDManager)
instead and that should then call tempAttachInternal.- Specified by:
tempAttachInternal
in interfaceNDManager
- Parameters:
originalManager
- the original manager to return the resource toresourceId
- the unique resourceIdresource
- theAutoCloseable
resource to be attached
-
detachInternal
Detaches aNDArray
from thisNDManager
's lifecycle.The detached
NDArray
become un-managed, it's user's responsibility to close the resource. Failed to close the resource has to wait on GC to be freed, and might cause out of native memory.This detach is internal. Many resources will internally track which manager they are attached to. In that case, you should call
NDResource.detach()
instead and that should then call detachInternal.- Specified by:
detachInternal
in interfaceNDManager
- Parameters:
resourceId
- the resourceId to be removed from thisNDManager
's lifecycle
-
invoke
public void invoke(String operation, NDArray[] src, NDArray[] dest, ai.djl.util.PairList<String, ?> params) An engine specific generic invocation to native operation.You should avoid using this function if possible. Since this function is engine specific, using this API may cause a portability issue. Native operation may not be compatible between each version.
-
invoke
An engine specific generic invocation to native operation.You should avoid using this function if possible. Since this function is engine specific, using this API may cause a portability issue. Native operation may not compatible between each version.
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceNDManager
-
debugDump
public void debugDump(int level) Prints information about thisNDManager
and all sub-managers to the console.- Parameters:
level
- the level of thisNDManager
in the hierarchy
-
validateBuffer
Checks if the input buffer size is match expected data type.- Parameters:
buffer
- the input bufferdataType
- the desiredDataType
expected
- the expected size- Throws:
IllegalArgumentException
- if buffer size is invalid
-
copyBuffer
Copies data from the sourceBuffer
to the targetByteBuffer
.- Parameters:
src
- the sourceBuffer
target
- the targetByteBuffer
-