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 PtNDArraystatic PtNDArraystatic voidadamUpdate(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 PtNDArrayadaptiveAvgPool(PtNDArray ndArray, ai.djl.ndarray.types.Shape outputSize) static PtNDArrayadaptiveMaxPool(PtNDArray ndArray, ai.djl.ndarray.types.Shape outputSize) static PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArrayarange(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 PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic voidattachGradient(PtNDArray ndArray, boolean requiresGrad) static PtNDArrayavgPool(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 voidstatic PtNDArraybatchNorm(PtNDArray ndArray, PtNDArray gamma, PtNDArray beta, PtNDArray runningMean, PtNDArray runningVar, boolean isTraining, double momentum, double eps) static PtNDArraystatic PtNDArraybooleanMask(PtNDArray ndArray, PtNDArray indicesNd) static voidbooleanMaskSet(PtNDArray ndArray, PtNDArray value, PtNDArray indicesNd) static PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic booleancontentEqual(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArrayconvolution(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 PtNDArraystatic PtNDArraystatic PtNDArraycreateEmptyNdArray(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 PtNDArraycreateNdFromByteBuffer(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 PtNDArraycreateOnesNdArray(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 PtNDArraycreateSparseCoo(PtNDArray indices, PtNDArray values, ai.djl.ndarray.types.Shape shape) static PtNDArraycreateZerosNdArray(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 PtNDArraystatic PtNDArraystatic voiddeleteModule(long pointer) static voiddeleteNDArray(long handle) static PtNDArraydetachGradient(PtNDArray ndArray) static PtNDArraystatic PtNDArraystatic PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic voidstatic voidenableInferenceMode(PtSymbolBlock block) static voidenableTrainingMode(PtSymbolBlock block) static PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArrayeye(PtNDManager manager, int n, int m, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArrayfull(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 PtNDArraystatic PtNDArraystatic PtNDArraystatic ByteBuffergetByteBuffer(PtNDArray ndArray, boolean tryDirect) static ai.djl.ndarray.types.DataTypegetDataType(PtNDArray ndArray) static ai.djl.Devicestatic PtNDArraygetGradient(PtNDArray ndArray) static StringgetGradientFunctionNames(PtNDArray ndArray) static PtNDArraygetItem(PtNDArray ndArray, long[] indices, PtNDManager manager) static intstatic String[]getMethodNames(PtSymbolBlock block) static intstatic intstatic ai.djl.ndarray.types.Shapestatic ai.djl.ndarray.types.SparseFormatgetSparseFormat(PtNDArray ndArray) static ai.djl.ndarray.NDListgru(PtNDArray input, PtNDArray hx, ai.djl.ndarray.NDList params, boolean hasBiases, int numLayers, double dropRate, boolean training, boolean bidirectional, boolean batchFirst) static PtNDArraystatic PtNDArraystatic PtNDArrayhannWindow(PtNDManager manager, long numPoints, boolean periodic, ai.djl.Device device) static PtNDArraystatic PtNDArraystatic PtNDArrayindex(PtNDArray ndArray, long[] minIndices, long[] maxIndices, long[] stepIndices, PtNDManager manager) static PtNDArrayindexAdv(PtNDArray ndArray, ai.djl.ndarray.index.NDIndex index, PtNDManager manager) static voidindexAdvPut(PtNDArray ndArray, ai.djl.ndarray.index.NDIndex index, PtNDArray data) static voidindexSet(PtNDArray ndArray, PtNDArray value, long[] minIndices, long[] maxIndices, long[] stepIndices) static PtNDArrayinterpolate(PtNDArray ndArray, long[] size, int mode, boolean alignCorners) static PtNDArraystatic PtNDArraystatic booleanstatic PtNDArraystatic PtNDArraystatic PtNDArraylayerNorm(PtNDArray ndArray, ai.djl.ndarray.types.Shape normalizedShape, PtNDArray gamma, PtNDArray beta, double eps) static PtNDArraystatic PtNDArraystatic PtNDArraylinspace(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 PtSymbolBlockloadModule(PtNDManager manager, InputStream is, boolean mapLocation, boolean hasSize) static PtSymbolBlockloadModule(PtNDManager manager, Path path, boolean mapLocation, String[] extraFileKeys, String[] extraFileValues, boolean trainParam) static longloadModuleHandle(InputStream is, ai.djl.Device device, boolean mapLocation, boolean hasSize) static PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraylogicalAnd(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArraylogicalNot(PtNDArray ndArray) static PtNDArraystatic PtNDArraylogicalXor(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArraylogSoftmax(PtNDArray ndArray, long dim, ai.djl.ndarray.types.DataType dTpe) static PtNDArraylpPool(PtNDArray ndArray, double normType, ai.djl.ndarray.types.Shape kernelSize, ai.djl.ndarray.types.Shape stride, boolean ceilMode) static ai.djl.ndarray.NDListlstm(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 PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraymaxPool(PtNDArray ndArray, ai.djl.ndarray.types.Shape kernelSize, ai.djl.ndarray.types.Shape stride, ai.djl.ndarray.types.Shape padding, boolean ceilMode) static PtNDArraystatic PtNDArraystatic ai.djl.ndarray.NDListstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic ai.djl.ndarray.NDListmoduleGetParams(PtSymbolBlock block, PtNDManager manager) static PtNDArraystatic voidstatic PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraynormal(PtNDManager manager, double mean, double std, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArraystatic PtNDArraystatic PtNDArrayonesLike(PtNDArray array, ai.djl.ndarray.types.DataType dType, ai.djl.Device device, ai.djl.ndarray.types.SparseFormat fmt) static PtNDArraystatic PtNDArraypercentile(PtNDArray ndArray, Number percentile, long dim, boolean keepDim) static PtNDArraystatic PtNDArraystatic PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArrayrandint(PtNDManager manager, long low, long high, ai.djl.ndarray.types.Shape size, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArrayrandperm(PtNDManager manager, long n, ai.djl.ndarray.types.DataType dataType, ai.djl.Device device) static PtNDArraystatic PtNDArraystatic PtNDArraystatic voidremainderi(PtNDArray ndArray1, PtNDArray ndArray2) static PtNDArraystatic booleanrequiresGrad(PtNDArray ndArray) static PtNDArraystatic PtNDArraystatic ai.djl.ndarray.NDListrnn(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 PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic voidset(PtNDArray self, ByteBuffer data) static voidsetBenchmarkCuDNN(boolean enable) static voidsetGradMode(boolean enable) static voidsetGraphExecutorOptimize(boolean enabled) static voidsetNumInteropThreads(int threads) static voidsetNumThreads(int threads) static voidsetSeed(long seed) static voidsgdUpdate(PtNDArray weight, PtNDArray grad, PtNDArray state, float lr, float wd, float rescaleGrad, float clipGrad, float momentum) static PtNDArraystatic PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic ai.djl.ndarray.NDListstatic ai.djl.ndarray.NDListstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic voidstartProfile(boolean useCuda, boolean recordShape, boolean profileMemory) Calls this method to start profile the area you are interested in.static PtNDArraystft(PtNDArray ndArray, long nFft, long hopLength, PtNDArray window, boolean center, boolean normalize, boolean returnComplex) static voidstopProfile(String outputFile) static PtNDArraystatic voidstatic PtNDArraystatic PtNDArraystatic PtNDArraytake(PtNDArray ndArray, PtNDArray index, PtNDManager manager) static PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArraystatic ai.djl.ndarray.NDListstatic PtNDArraystatic PtNDArraystatic PtNDArraystatic PtNDArrayuniform(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.NDListstatic PtNDArraystatic PtNDArraystatic voidwriteModule(PtSymbolBlock block, OutputStream os, boolean writeSize) static PtNDArraystatic voidstatic PtNDArrayzerosLike(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
-
pad
-
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
-
percentile
-
mean
-
mean
-
rot90
-
sum
-
sum
-
cumProd
-
prod
-
prod
-
cumSum
-
diagonal
-
oneHot
-
split
-
split
-
squeeze
-
squeeze
-
unsqueeze
-
unique
-
flatten
-
fft
-
ifft
-
rfft
-
irfft
-
stft
-
fft2
-
ifft2
-
real
-
complex
-
conj
-
abs
-
square
-
floor
-
ceil
-
round
-
trunc
-
clip
-
exp
-
gammaln
-
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
-
diff
-