DynamicTensor

Usage

use DynamicTensor;

or

import DynamicTensor;
config param maxRank = 6
param defaultDetachedMode = true
type Tensor = dynamicTensor(?)
record dynamicTensor : serializable
type eltType = real
var meta : shared(TensorEssence(eltType))
var runtimeRank : int = -1
proc init(type eltType)
proc init(type eltType, in meta: shared(TensorEssence(eltType)))
proc init(in meta: shared(TensorEssence(?eltType)))
proc init(t: staticTensor(?rank, ?eltType), detached: bool = dynamicTensor.detachMode())
proc init(a: ndarray(?rank, ?eltType))
proc init(arr: [] ?eltType)
proc this(args ...)
proc tensorize(param rank: int) : staticTensor(rank, eltType)
proc resource(param rank: int) : shared(BaseTensorResource(eltType, rank))
proc forceRank(param rank: int) : staticTensor(rank, eltType)
proc forceRankMeta(param rank: int) : shared(BaseTensorResource(eltType, rank))
proc hardCheckRank(param rank: int) : bool
proc checkRank(param rank: int) : bool
proc to(device: locale)
proc device : locale
proc array(param rank: int) ref : ndarray(rank, eltType)
proc grad(param rank: int) ref : ndarray(rank, eltType)
proc data(param rank: int) ref : [] eltType
proc toNDArray(param rank: int) : ndarray(rank, eltType)
proc toArray(param rank: int) : [] eltType
proc detach() : dynamicTensor(eltType)
operator :(in t: dynamicTensor(?eltType), type toType) : dynamicTensor(toType)
proc type dynamicTensor.detachMode() param : bool
proc type dynamicTensor.detachMode(detachMode: bool)
proc ndarray.toTensor() : dynamicTensor(eltType)
proc staticTensor.eraseRank(detach: bool = dynamicTensor.detachMode()) : dynamicTensor(eltType)
operator :(t: staticTensor(?rank, ?eltType), type T: dynamicTensor(eltType)) : dynamicTensor(eltType)
proc zipBinOp(param opName: string, a: dynamicTensor(?eltType), b: dynamicTensor(eltType)) : dynamicTensor(eltType)
proc type dynamicTensor.loadFromNumpy(path: string) : dynamicTensor(real)
operator +(a: dynamicTensor(?eltType), b: dynamicTensor(eltType)) : dynamicTensor(eltType)
operator -(a: dynamicTensor(?eltType), b: dynamicTensor(eltType)) : dynamicTensor(eltType)
operator *(a: dynamicTensor(?eltType), b: dynamicTensor(eltType)) : dynamicTensor(eltType)
proc dynamicTensor.sum(axes: int ...?r) : dynamicTensor(eltType)
proc dynamicTensor.relu() : dynamicTensor(eltType)
proc dynamicTensor.max() : dynamicTensor(eltType)
proc dynamicTensor.exp() : dynamicTensor(eltType)
proc dynamicTensor.softmax() : dynamicTensor(eltType)
proc dynamicTensor.maxPool(poolSize: int) : dynamicTensor(eltType)
proc dynamicTensor.reshape(args ...) : dynamicTensor(eltType)
proc dynamicTensor.slice(rngs: range ...?rank) : dynamicTensor(eltType)
proc dynamicTensor.slice(dom: domain(?)) : dynamicTensor(eltType)
proc dynamicTensor.flatten() : dynamicTensor(eltType)
proc type dynamicTensor.matvecmul(m: dynamicTensor(?eltType), v: dynamicTensor(eltType)) : dynamicTensor(eltType)
proc type dynamicTensor.matvecmulFast(m: dynamicTensor(?eltType), v: dynamicTensor(eltType)) : dynamicTensor(eltType)
proc dynamicTensor.argmax() : int
proc type dynamicTensor.convolve(features: dynamicTensor(?eltType), kernel: dynamicTensor(eltType), stride: int) : dynamicTensor(eltType)
proc type dynamicTensor.convolve(features: dynamicTensor(?eltType), kernel: dynamicTensor(eltType), bias: dynamicTensor(eltType), stride: int) : dynamicTensor(eltType)
proc type dynamicTensor.arange(args ...)
proc type dynamicTensor.ones(args ...)
proc type dynamicTensor.zeros(args ...)
proc main()
proc dynamicTensor.serialize(writer: IO.fileWriter(locking = false, IO.defaultSerializer), ref serializer: IO.defaultSerializer)
proc dynamicTensor.serialize(writer: IO.fileWriter(?), ref serializer: ?srt2)  where srt2 != IO.defaultSerializer
proc dynamicTensor.write(fw: IO.fileWriter(?)) throws
proc dynamicTensor.save(path: string)
proc type dynamicTensor.multiReader(path: string)
proc type dynamicTensor.load(path: string, param precision = 64) : dynamicTensor(real)
proc type dynamicTensor.readInPlace(fr: IO.fileReader(?), param precision = 64) : dynamicTensor(real)