Package ai.djl.pytorch.jni
Class JniUtils
java.lang.Object
ai.djl.pytorch.jni.JniUtils
A class containing utilities to interact with the PyTorch Engine's Java Native Interface (JNI)
layer.
-
Method Summary
Modifier and TypeMethodDescriptionstatic PtNDArray
static PtNDArray
static void
adamUpdate
(PtNDArray weight, PtNDArray grad, PtNDArray mean, PtNDArray variance, float lr, float learningRateBiasCorrection, float wd, float rescaleGrad, float clipGrad, float beta1, float beta2, float eps, boolean adamw) static PtNDArray
adaptiveAvgPool
(PtNDArray ndArray, ai.djl.ndarray.types.Shape outputSize) static PtNDArray
adaptiveMaxPool
(PtNDArray ndArray, ai.djl.ndarray.types.Shape outputSize) static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
arange
(PtNDManager manager, float start, float stop, float step, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static void
attachGradient
(PtNDArray ndArray, boolean requiresGrad) static PtNDArray
avgPool
(PtNDArray ndArray, ai.djl.ndarray.types.Shape kernelSize, ai.djl.ndarray.types.Shape stride, ai.djl.ndarray.types.Shape padding, boolean ceilMode, boolean countIncludePad) static void
static PtNDArray
batchNorm
(PtNDArray ndArray, PtNDArray gamma, PtNDArray beta, PtNDArray runningMean, PtNDArray runningVar, boolean isTraining, double momentum, double eps) static PtNDArray
static PtNDArray
booleanMask
(PtNDArray ndArray, PtNDArray indicesNd) static void
booleanMaskSet
(PtNDArray ndArray, PtNDArray value, PtNDArray indicesNd) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static boolean
contentEqual
(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArray
convolution
(PtNDArray ndArray, PtNDArray weight, PtNDArray bias, ai.djl.ndarray.types.Shape stride, ai.djl.ndarray.types.Shape padding, ai.djl.ndarray.types.Shape dilation, int groups) static PtNDArray
static PtNDArray
static PtNDArray
createEmptyNdArray
(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
createNdFromByteBuffer
(PtNDManager manager, ByteBuffer data, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.ndarray.types.SparseFormat fmt, ai.djl.Device device) static PtNDArray
createOnesNdArray
(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
createSparseCoo
(PtNDArray indices, PtNDArray values, ai.djl.ndarray.types.Shape shape) static PtNDArray
createZerosNdArray
(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
static PtNDArray
static void
deleteModule
(long pointer) static void
deleteNDArray
(long handle) static PtNDArray
detachGradient
(PtNDArray ndArray) static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static void
static void
enableInferenceMode
(PtSymbolBlock block) static void
enableTrainingMode
(PtSymbolBlock block) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
eye
(PtNDManager manager, int n, int m, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
full
(PtNDManager manager, ai.djl.ndarray.types.Shape shape, double fillValue, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
static PtNDArray
static ByteBuffer
getByteBuffer
(PtNDArray ndArray) static ai.djl.ndarray.types.DataType
getDataType
(PtNDArray ndArray) static ai.djl.Device
static PtNDArray
getGradient
(PtNDArray ndArray) static String
getGradientFunctionNames
(PtNDArray ndArray) static PtNDArray
getItem
(PtNDArray ndArray, long[] indices, PtNDManager manager) static int
static String[]
getMethodNames
(PtSymbolBlock block) static int
static int
static ai.djl.ndarray.types.Shape
static ai.djl.ndarray.types.SparseFormat
getSparseFormat
(PtNDArray ndArray) static ai.djl.ndarray.NDList
gru
(PtNDArray input, PtNDArray hx, ai.djl.ndarray.NDList params, boolean hasBiases, int numLayers, double dropRate, boolean training, boolean bidirectional, boolean batchFirst) static PtNDArray
static PtNDArray
static PtNDArray
hannWindow
(PtNDManager manager, long numPoints, boolean periodic, ai.djl.Device device) static PtNDArray
static PtNDArray
index
(PtNDArray ndArray, long[] minIndices, long[] maxIndices, long[] stepIndices, PtNDManager manager) static PtNDArray
indexAdv
(PtNDArray ndArray, ai.djl.ndarray.index.NDIndex index, PtNDManager manager) static void
indexAdvPut
(PtNDArray ndArray, ai.djl.ndarray.index.NDIndex index, PtNDArray data) static void
indexSet
(PtNDArray ndArray, PtNDArray value, long[] minIndices, long[] maxIndices, long[] stepIndices) static PtNDArray
interpolate
(PtNDArray ndArray, long[] size, int mode, boolean alignCorners) static PtNDArray
static boolean
static PtNDArray
static PtNDArray
static PtNDArray
layerNorm
(PtNDArray ndArray, ai.djl.ndarray.types.Shape normalizedShape, PtNDArray gamma, PtNDArray beta, double eps) static PtNDArray
static PtNDArray
static PtNDArray
linspace
(PtNDManager manager, float start, float stop, int step, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtSymbolBlock
loadModule
(PtNDManager manager, InputStream is, boolean mapLocation, boolean hasSize) static PtSymbolBlock
loadModule
(PtNDManager manager, Path path, boolean mapLocation, String[] extraFileKeys, String[] extraFileValues, boolean trainParam) static long
loadModuleHandle
(InputStream is, ai.djl.Device device, boolean mapLocation, boolean hasSize) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
logicalAnd
(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArray
logicalNot
(PtNDArray ndArray) static PtNDArray
static PtNDArray
logicalXor
(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArray
logSoftmax
(PtNDArray ndArray, long dim, ai.djl.ndarray.types.DataType dTpe) static PtNDArray
lpPool
(PtNDArray ndArray, double normType, ai.djl.ndarray.types.Shape kernelSize, ai.djl.ndarray.types.Shape stride, boolean ceilMode) static ai.djl.ndarray.NDList
lstm
(PtNDArray input, ai.djl.ndarray.NDList hx, ai.djl.ndarray.NDList params, boolean hasBiases, int numLayers, double dropRate, boolean training, boolean bidirectional, boolean batchFirst) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
maxPool
(PtNDArray ndArray, ai.djl.ndarray.types.Shape kernelSize, ai.djl.ndarray.types.Shape stride, ai.djl.ndarray.types.Shape padding, boolean ceilMode) static PtNDArray
static PtNDArray
static ai.djl.ndarray.NDList
static PtNDArray
static PtNDArray
static PtNDArray
static ai.djl.ndarray.NDList
moduleGetParams
(PtSymbolBlock block, PtNDManager manager) static PtNDArray
static void
static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
normal
(PtNDManager manager, double mean, double std, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArray
static PtNDArray
static PtNDArray
onesLike
(PtNDArray array, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArray
static PtNDArray
static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
randint
(PtNDManager manager, long low, long high, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArray
randperm
(PtNDManager manager, long n, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArray
static PtNDArray
static PtNDArray
static void
remainderi
(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArray
static boolean
requiresGrad
(PtNDArray ndArray) static PtNDArray
static ai.djl.ndarray.NDList
rnn
(PtNDArray input, PtNDArray hx, ai.djl.ndarray.NDList params, boolean hasBiases, int numLayers, ai.djl.nn.recurrent.RNN.Activation activation, double dropRate, boolean training, boolean bidirectional, boolean batchFirst) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static void
set
(PtNDArray self, ByteBuffer data) static void
setBenchmarkCuDNN
(boolean enable) static void
setGradMode
(boolean enable) static void
setGraphExecutorOptimize
(boolean enabled) static void
setNumInteropThreads
(int threads) static void
setNumThreads
(int threads) static void
setSeed
(long seed) static void
sgdUpdate
(PtNDArray weight, PtNDArray grad, PtNDArray state, float lr, float wd, float rescaleGrad, float clipGrad, float momentum) static PtNDArray
static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static ai.djl.ndarray.NDList
static ai.djl.ndarray.NDList
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static void
startProfile
(boolean useCuda, boolean recordShape, boolean profileMemory) Calls this method to start profile the area you are interested in.static PtNDArray
stft
(PtNDArray ndArray, long nFft, long hopLength, PtNDArray window, boolean center, boolean normalize, boolean returnComplex) static void
stopProfile
(String outputFile) static PtNDArray
static void
static PtNDArray
static PtNDArray
static PtNDArray
take
(PtNDArray ndArray, PtNDArray index, PtNDManager manager) static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
static ai.djl.ndarray.NDList
static PtNDArray
static PtNDArray
static PtNDArray
static PtNDArray
uniform
(PtNDManager manager, double low, double high, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static ai.djl.ndarray.NDList
static PtNDArray
static PtNDArray
static void
writeModule
(PtSymbolBlock block, OutputStream os, boolean writeSize) static PtNDArray
static void
static PtNDArray
zerosLike
(PtNDArray array, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt)
-
Method Details
-
isGradMode
public static boolean isGradMode() -
setGradMode
public static void setGradMode(boolean enable) -
getNumInteropThreads
public static int getNumInteropThreads() -
getNumThreads
public static int getNumThreads() -
setNumInteropThreads
public static void setNumInteropThreads(int threads) -
setNumThreads
public static void setNumThreads(int threads) -
setBenchmarkCuDNN
public static void setBenchmarkCuDNN(boolean enable) -
getFeatures
-
setSeed
public static void setSeed(long seed) -
startProfile
public static void startProfile(boolean useCuda, boolean recordShape, boolean profileMemory) Calls this method to start profile the area you are interested in.Example usage
JniUtils.startProfile(false, true, true); Predictor.predict(img); JniUtils.stopProfile(outputFile)
- Parameters:
useCuda
- Enables timing of CUDA events as well using the cudaEvent API.recordShape
- If shapes recording is set, information about input dimensions will be collectedprofileMemory
- Whether to report memory usage
-
stopProfile
-
createNdFromByteBuffer
public static PtNDArray createNdFromByteBuffer(PtNDManager manager, ByteBuffer data, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.ndarray.types.SparseFormat fmt, ai.djl.Device device) -
emptyCudaCache
public static void emptyCudaCache() -
createEmptyNdArray
public static PtNDArray createEmptyNdArray(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
createZerosNdArray
public static PtNDArray createZerosNdArray(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
createOnesNdArray
public static PtNDArray createOnesNdArray(PtNDManager manager, ai.djl.ndarray.types.Shape shape, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
full
public static PtNDArray full(PtNDManager manager, ai.djl.ndarray.types.Shape shape, double fillValue, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
zerosLike
-
onesLike
-
arange
public static PtNDArray arange(PtNDManager manager, float start, float stop, float step, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
linspace
public static PtNDArray linspace(PtNDManager manager, float start, float stop, int step, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
createSparseCoo
-
to
-
toSparse
-
toDense
-
broadcast
-
slice
-
index
public static PtNDArray index(PtNDArray ndArray, long[] minIndices, long[] maxIndices, long[] stepIndices, PtNDManager manager) -
indexAdv
public static PtNDArray indexAdv(PtNDArray ndArray, ai.djl.ndarray.index.NDIndex index, PtNDManager manager) -
indexAdvPut
-
indexSet
-
set
-
gather
-
take
-
put
-
scatter
-
pick
-
where
-
booleanMask
-
booleanMaskSet
-
getItem
-
clone
-
reshape
-
stack
-
cat
-
tile
-
repeat
-
softmax
-
logSoftmax
-
argMax
-
argMax
-
topK
public static ai.djl.ndarray.NDList topK(PtNDArray ndArray, long k, long axis, boolean largest, boolean sorted) -
argMin
-
argMin
-
argSort
-
sort
-
permute
-
flip
-
transpose
-
contentEqual
-
add
-
addi
-
sub
-
subi
-
mul
-
muli
-
div
-
divi
-
remainder
-
remainderi
-
pow
-
powi
-
sign
-
signi
-
logicalAnd
-
logicalOr
-
logicalXor
-
logicalNot
-
matmul
-
bmm
-
xlogy
-
dot
-
max
-
max
-
max
-
min
-
min
-
min
-
median
-
mean
-
mean
-
rot90
-
sum
-
sum
-
cumProd
-
prod
-
prod
-
cumSum
-
oneHot
-
split
-
split
-
squeeze
-
squeeze
-
unsqueeze
-
unique
-
flatten
-
fft
-
stft
-
fft2
-
ifft2
-
real
-
complex
-
abs
-
square
-
floor
-
ceil
-
round
-
trunc
-
clip
-
exp
-
log
-
log10
-
log2
-
sin
-
cos
-
tan
-
asin
-
acos
-
atan
-
atan2
-
sqrt
-
sinh
-
cosh
-
tanh
-
sigmoid
-
all
-
any
-
none
-
eq
-
neq
-
gt
-
gte
-
lt
-
lte
-
neg
-
negi
-
isNaN
-
isInf
-
randint
public static PtNDArray randint(PtNDManager manager, long low, long high, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) -
randperm
public static PtNDArray randperm(PtNDManager manager, long n, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) -
normal
public static PtNDArray normal(PtNDManager manager, double mean, double std, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) -
uniform
public static PtNDArray uniform(PtNDManager manager, double low, double high, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) -
eye
public static PtNDArray eye(PtNDManager manager, int n, int m, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) -
hannWindow
public static PtNDArray hannWindow(PtNDManager manager, long numPoints, boolean periodic, ai.djl.Device device) -
erfinv
-
erf
-
inverse
-
interpolate
-
linear
-
embedding
-
relu
-
softPlus
-
softSign
-
leakyRelu
-
elu
-
selu
-
gelu
-
convolution
-
batchNorm
-
layerNorm
-
normalize
-
dropout
-
rnn
-
gru
-
lstm
public static ai.djl.ndarray.NDList lstm(PtNDArray input, ai.djl.ndarray.NDList hx, ai.djl.ndarray.NDList params, boolean hasBiases, int numLayers, double dropRate, boolean training, boolean bidirectional, boolean batchFirst) -
avgPool
-
maxPool
-
adaptiveMaxPool
-
adaptiveAvgPool
-
lpPool
-
getDataType
-
getDevice
-
getSparseFormat
-
getShape
-
getByteBuffer
-
deleteNDArray
public static void deleteNDArray(long handle) -
requiresGrad
-
getGradientFunctionNames
-
attachGradient
-
detachGradient
-
getGradient
-
backward
-
deleteModule
public static void deleteModule(long pointer) -
setGraphExecutorOptimize
public static void setGraphExecutorOptimize(boolean enabled) -
loadModule
public static PtSymbolBlock loadModule(PtNDManager manager, Path path, boolean mapLocation, String[] extraFileKeys, String[] extraFileValues, boolean trainParam) -
loadModule
public static PtSymbolBlock loadModule(PtNDManager manager, InputStream is, boolean mapLocation, boolean hasSize) throws IOException - Throws:
IOException
-
loadModuleHandle
public static long loadModuleHandle(InputStream is, ai.djl.Device device, boolean mapLocation, boolean hasSize) throws IOException - Throws:
IOException
-
writeModule
-
moduleGetParams
-
getMethodNames
-
enableInferenceMode
-
enableTrainingMode
-
zeroGrad
-
adamUpdate
-
sgdUpdate
-
getLayout
-
norm
-
nonZeros
-