Package mklab.JGNN.core.matrix
Class WrapRows
java.lang.Object
mklab.JGNN.core.Tensor
mklab.JGNN.core.Matrix
mklab.JGNN.core.matrix.WrapRows
Wraps a list of tensors into a matrix with the tensors as rows.
Does not allocate additional elements. Editing the matrix edits
the original tensors and conversely.
- Author:
- Emmanouil Krasanakis
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
protected class
-
Field Summary
Fields inherited from class mklab.JGNN.core.Tensor
vectorization
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaccessRow
(long row) Retrieves the given row as a tensor.protected void
allocate
(long size) long
Provides an estimation for the non-zero number of elements stored in the tensor, where this number is equal to the size for dense tensors, but equal to the actual number of non-zero elements for sparse tensors.double
get
(long pos) Retrieves the value of a tensor element at a given position.Retrieves an iterable that traverses (row, col) entry pairs of non zero entries.void
persist()
If supported by the subclassed tensor, invalidates calls toTensor.release()
so that memory is de-allocated only when object references expire.put
(long pos, double value) Assign a value to a tensor element.void
release()
If the subclassed tensor allows it, release all memory it takes up so that the garbage collector will eventually clean it up.setZeroCopyType
(Matrix zeroCopyType) Sets a prototype matrix from which to borrow copying operations.Retrieves positions within the tensor that may hold non-zero elements.zeroCopy
(long rows, long cols) Creates a matrix of the same class and all element set to zero, but with a given number of rows and columns.Methods inherited from class mklab.JGNN.core.Matrix
accessCol, accessColumns, accessColumns, accessColumns, accessColumns, accessDim, accessRows, accessRows, accessRows, accessRows, asTransposed, describe, determineZeroCopy, external, eye, fromDouble, get, getColName, getCols, getDimensionSize, getRowName, getRows, isMatching, matmul, matmul, onesMask, put, setColName, setDiagonal, setDimensionName, setDimensionName, setMainDiagonal, setRowName, setToASymmetricNormalization, setToSymmetricNormalization, symmetricNormalization, toDense, toNonZeroString, toSparse, toString, transform, transposed, zeroCopy, zeroCopy, zeroCopy
Methods inherited from class mklab.JGNN.core.Tensor
abs, accessSubtensor, accessSubtensor, add, add, argmax, argmin, asColumn, asRow, assertFinite, assertMatching, assertSize, assign, cast, copy, density, determineZeroCopy, dot, dot, expMinusOne, fromRange, fromRange, getDimensionName, getNonZeroElements, init, inverse, iterator, log, max, min, multiply, multiply, negative, norm, normalized, putAdd, selfAbs, selfAdd, selfAdd, selfAdd, selfExpMinusOne, selfInverse, selfLog, selfMultiply, selfMultiply, selfNegative, selfSqrt, selfSubtract, setDimensionName, setToNormalized, setToOnes, setToProbability, setToRandom, setToRandom, setToUniform, setToZero, size, sqrt, subtract, sum, toArray, toDouble, toProbability
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
WrapRows
-
WrapRows
-
-
Method Details
-
estimateNumNonZeroElements
public long estimateNumNonZeroElements()Description copied from class:Tensor
Provides an estimation for the non-zero number of elements stored in the tensor, where this number is equal to the size for dense tensors, but equal to the actual number of non-zero elements for sparse tensors. Basically, this quantity is proportional to the allocated memory.- Overrides:
estimateNumNonZeroElements
in classTensor
- Returns:
- A long number equal to or less to the tensor size.
- See Also:
-
setZeroCopyType
Sets a prototype matrix from which to borrow copying operations.- Parameters:
zeroCopyType
- AMatrix
instance from which to borrowzeroCopy(long, long)
.- Returns:
this
object
-
zeroCopy
Description copied from class:Matrix
Creates a matrix of the same class and all element set to zero, but with a given number of rows and columns. -
allocate
protected void allocate(long size) -
put
Description copied from class:Tensor
Assign a value to a tensor element. All tensor operations use this function to wrap element assignments. -
get
public double get(long pos) Description copied from class:Tensor
Retrieves the value of a tensor element at a given position. All tensor operations use this function to wrap element retrieval. -
traverseNonZeroElements
Description copied from class:Tensor
Retrieves positions within the tensor that may hold non-zero elements. This guarantees that all non-zero elements positions are traversed but some of the returned positions could hold zero elements. For example,DenseTensor
traverses all of its elements this way, whereasSparseTensor
indeed traverses only non-zero elements.- Specified by:
traverseNonZeroElements
in classTensor
- Returns:
- An iterator that traverses positions within the tensor.
-
getNonZeroEntries
Description copied from class:Matrix
Retrieves an iterable that traverses (row, col) entry pairs of non zero entries.- Specified by:
getNonZeroEntries
in classMatrix
- Returns:
- An Entry iterable.
- See Also:
-
accessRow
Description copied from class:Matrix
Retrieves the given row as a tensor. Editing the result also edits the original matrix. No new memory is allocated for matrix values. -
release
public void release()Description copied from class:Tensor
If the subclassed tensor allows it, release all memory it takes up so that the garbage collector will eventually clean it up. This memory will be released anyway by Java once there are no more references to the object. -
persist
public void persist()Description copied from class:Tensor
If supported by the subclassed tensor, invalidates calls toTensor.release()
so that memory is de-allocated only when object references expire.
-