Skip to content

Commit

Permalink
correct javadoc
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosuc3m committed Oct 1, 2024
1 parent 3ca0f15 commit fc3fc86
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 218 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ public class JavaWorker {
private final Tensorflow2Interface ti;

private boolean cancelRequested = false;


/**
* Method in the child process that is in charge of keeping the process open and calling the model load,
* model inference and model closing
* @param args
* args of the parent process
*/
public static void main(String[] args) {

try(Scanner scanner = new Scanner(System.in)){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,10 @@
import net.imglib2.type.numeric.real.FloatType;

/**
* A {@link RandomAccessibleInterval} builder for TensorFlow {@link Tensor} objects.
* Build ImgLib2 objects (backend of {@link io.bioimage.modelrunner.tensor.Tensor})
* from Tensorflow 2 {@link Tensor}
* A utility class that converts {@link TType} tensors into {@link SharedMemoryArray}s for
* interprocessing communication
*
* @author Carlos Garcia Lopez de Haro and Daniel Felipe Gonzalez Obando
* @author Carlos Garcia Lopez de Haro
*/
public final class ShmBuilder
{
Expand All @@ -58,17 +57,15 @@ private ShmBuilder()
{
}

/**
* Creates a {@link RandomAccessibleInterval} from a given {@link TType} tensor
*
* @param <T>
* the possible ImgLib2 datatypes of the image
* @param tensor
* The {@link TType} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the {@link TType} tensor.
* @throws IllegalArgumentException If the {@link TType} tensor type is not supported.
* @throws IOException
*/
/**
* Create a {@link SharedMemoryArray} from a {@link TType} tensor
* @param tensor
* the tensor to be passed into the other process through the shared memory
* @param memoryName
* the name of the memory region where the tensor is going to be copied
* @throws IllegalArgumentException if the data type of the tensor is not supported
* @throws IOException if there is any error creating the shared memory array
*/
public static void build(TType tensor, String memoryName) throws IllegalArgumentException, IOException
{
if (tensor instanceof TUint8)
Expand Down Expand Up @@ -97,14 +94,6 @@ else if (tensor instanceof TInt64)
}
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned byte-typed {@link TUint8} tensor.
*
* @param tensor
* The {@link TUint8} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link UnsignedByteType}.
* @throws IOException
*/
private static void buildFromTensorUByte(TUint8 tensor, String memoryName) throws IOException
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -122,14 +111,6 @@ private static void buildFromTensorUByte(TUint8 tensor, String memoryName) throw
if (PlatformDetection.isWindows()) shma.close();
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned int32-typed {@link TInt32} tensor.
*
* @param tensor
* The {@link TInt32} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link IntType}.
* @throws IOException
*/
private static void buildFromTensorInt(TInt32 tensor, String memoryName) throws IOException
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -148,14 +129,6 @@ private static void buildFromTensorInt(TInt32 tensor, String memoryName) throws
if (PlatformDetection.isWindows()) shma.close();
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned float32-typed {@link TFloat32} tensor.
*
* @param tensor
* The {@link TFloat32} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link FloatType}.
* @throws IOException
*/
private static void buildFromTensorFloat(TFloat32 tensor, String memoryName) throws IOException
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -174,14 +147,6 @@ private static void buildFromTensorFloat(TFloat32 tensor, String memoryName) thr
if (PlatformDetection.isWindows()) shma.close();
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned float64-typed {@link TFloat64} tensor.
*
* @param tensor
* The {@link TFloat64} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link DoubleType}.
* @throws IOException
*/
private static void buildFromTensorDouble(TFloat64 tensor, String memoryName) throws IOException
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -200,14 +165,6 @@ private static void buildFromTensorDouble(TFloat64 tensor, String memoryName) th
if (PlatformDetection.isWindows()) shma.close();
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned int64-typed {@link TInt64} tensor.
*
* @param tensor
* The {@link TInt64} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link LongType}.
* @throws IOException
*/
private static void buildFromTensorLong(TInt64 tensor, String memoryName) throws IOException
{
long[] arrayShape = tensor.shape().asArray();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@

import io.bioimage.modelrunner.tensor.shm.SharedMemoryArray;
import io.bioimage.modelrunner.utils.CommonUtils;
import net.imglib2.RandomAccessibleInterval;
import net.imglib2.img.Img;
import net.imglib2.type.numeric.integer.IntType;
import net.imglib2.type.numeric.integer.LongType;
import net.imglib2.type.numeric.integer.UnsignedByteType;
import net.imglib2.type.numeric.real.DoubleType;
import net.imglib2.type.numeric.real.FloatType;
import net.imglib2.util.Cast;

import java.nio.ByteBuffer;
Expand All @@ -55,10 +48,9 @@
import org.tensorflow.types.family.TType;

/**
* A TensorFlow 2 {@link Tensor} builder from {@link Img} and
* {@link io.bioimage.modelrunner.tensor.Tensor} objects.
* Utility class to build Tensorflow tensors from shm segments using {@link SharedMemoryArray}
*
* @author Carlos Garcia Lopez de Haro and Daniel Felipe Gonzalez Obando
* @author Carlos Garcia Lopez de Haro
*/
public final class TensorBuilder {

Expand All @@ -68,16 +60,13 @@ public final class TensorBuilder {
private TensorBuilder() {}

/**
* Creates {@link TType} instance with the same size and information as the
* given {@link RandomAccessibleInterval}.
* Creates {@link TType} instance from a {@link SharedMemoryArray}
*
* @param <T>
* the ImgLib2 data types the {@link RandomAccessibleInterval} can be
* @param array
* the {@link RandomAccessibleInterval} that is going to be converted into
* the {@link SharedMemoryArray} that is going to be converted into
* a {@link TType} tensor
* @return a {@link TType} tensor
* @throws IllegalArgumentException if the type of the {@link RandomAccessibleInterval}
* @return the Tensorflow {@link TType} as the one stored in the shared memory segment
* @throws IllegalArgumentException if the type of the {@link SharedMemoryArray}
* is not supported
*/
public static TType build(SharedMemoryArray array) throws IllegalArgumentException
Expand All @@ -103,17 +92,7 @@ else if (array.getOriginalDataType().equals("int64")) {
}
}

/**
* Creates a {@link TType} tensor of type {@link TUint8} from an
* {@link RandomAccessibleInterval} of type {@link UnsignedByteType}
*
* @param tensor
* The {@link RandomAccessibleInterval} to fill the tensor with.
* @return The {@link TType} tensor filled with the {@link RandomAccessibleInterval} data.
* @throws IllegalArgumentException if the input {@link RandomAccessibleInterval} type is
* not compatible
*/
public static TUint8 buildUByte(SharedMemoryArray tensor)
private static TUint8 buildUByte(SharedMemoryArray tensor)
throws IllegalArgumentException
{
long[] ogShape = tensor.getOriginalShape();
Expand All @@ -128,17 +107,7 @@ public static TUint8 buildUByte(SharedMemoryArray tensor)
return ndarray;
}

/**
* Creates a {@link TInt32} tensor of type {@link TInt32} from an
* {@link RandomAccessibleInterval} of type {@link IntType}
*
* @param tensor
* The {@link RandomAccessibleInterval} to fill the tensor with.
* @return The {@link TInt32} tensor filled with the {@link RandomAccessibleInterval} data.
* @throws IllegalArgumentException if the input {@link RandomAccessibleInterval} type is
* not compatible
*/
public static TInt32 buildInt(SharedMemoryArray tensor)
private static TInt32 buildInt(SharedMemoryArray tensor)
throws IllegalArgumentException
{
long[] ogShape = tensor.getOriginalShape();
Expand All @@ -157,16 +126,6 @@ public static TInt32 buildInt(SharedMemoryArray tensor)
return ndarray;
}

/**
* Creates a {@link TInt64} tensor of type {@link TInt64} from an
* {@link RandomAccessibleInterval} of type {@link LongType}
*
* @param tensor
* The {@link RandomAccessibleInterval} to fill the tensor with.
* @return The {@link TInt64} tensor filled with the {@link RandomAccessibleInterval} data.
* @throws IllegalArgumentException if the input {@link RandomAccessibleInterval} type is
* not compatible
*/
private static TInt64 buildLong(SharedMemoryArray tensor)
throws IllegalArgumentException
{
Expand All @@ -186,17 +145,7 @@ private static TInt64 buildLong(SharedMemoryArray tensor)
return ndarray;
}

/**
* Creates a {@link TFloat32} tensor of type {@link TFloat32} from an
* {@link RandomAccessibleInterval} of type {@link FloatType}
*
* @param tensor
* The {@link RandomAccessibleInterval} to fill the tensor with.
* @return The {@link TFloat32} tensor filled with the {@link RandomAccessibleInterval} data.
* @throws IllegalArgumentException if the input {@link RandomAccessibleInterval} type is
* not compatible
*/
public static TFloat32 buildFloat(SharedMemoryArray tensor)
private static TFloat32 buildFloat(SharedMemoryArray tensor)
throws IllegalArgumentException
{
long[] ogShape = tensor.getOriginalShape();
Expand All @@ -214,16 +163,6 @@ public static TFloat32 buildFloat(SharedMemoryArray tensor)
return ndarray;
}

/**
* Creates a {@link TFloat64} tensor of type {@link TFloat64} from an
* {@link RandomAccessibleInterval} of type {@link DoubleType}
*
* @param tensor
* The {@link RandomAccessibleInterval} to fill the tensor with.
* @return The {@link TFloat64} tensor filled with the {@link RandomAccessibleInterval} data.
* @throws IllegalArgumentException if the input {@link RandomAccessibleInterval} type is
* not compatible
*/
private static TFloat64 buildDouble(SharedMemoryArray tensor)
throws IllegalArgumentException
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ private ImgLib2Builder()
* @return The {@link RandomAccessibleInterval} built from the {@link TType} tensor.
* @throws IllegalArgumentException If the {@link TType} tensor type is not supported.
*/
public static <T extends Type<T>> RandomAccessibleInterval<T> build(TType tensor) throws IllegalArgumentException
@SuppressWarnings("unchecked")
public static <T extends Type<T>> RandomAccessibleInterval<T> build(TType tensor) throws IllegalArgumentException
{
if (tensor instanceof TUint8)
{
Expand Down Expand Up @@ -95,13 +96,6 @@ else if (tensor instanceof TInt64)
}
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned byte-typed {@link TUint8} tensor.
*
* @param tensor
* The {@link TUint8} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link UnsignedByteType}.
*/
private static RandomAccessibleInterval<UnsignedByteType> buildFromTensorUByte(TUint8 tensor)
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -118,13 +112,6 @@ private static RandomAccessibleInterval<UnsignedByteType> buildFromTensorUByte(T
return Utils.transpose(rai);
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned int32-typed {@link TInt32} tensor.
*
* @param tensor
* The {@link TInt32} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link IntType}.
*/
private static RandomAccessibleInterval<IntType> buildFromTensorInt(TInt32 tensor)
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -141,13 +128,6 @@ private static RandomAccessibleInterval<IntType> buildFromTensorInt(TInt32 tenso
return Utils.transpose(rai);
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned float32-typed {@link TFloat32} tensor.
*
* @param tensor
* The {@link TFloat32} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link FloatType}.
*/
private static RandomAccessibleInterval<FloatType> buildFromTensorFloat(TFloat32 tensor)
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -164,13 +144,6 @@ private static RandomAccessibleInterval<FloatType> buildFromTensorFloat(TFloat32
return Utils.transpose(rai);
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned float64-typed {@link TFloat64} tensor.
*
* @param tensor
* The {@link TFloat64} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link DoubleType}.
*/
private static RandomAccessibleInterval<DoubleType> buildFromTensorDouble(TFloat64 tensor)
{
long[] arrayShape = tensor.shape().asArray();
Expand All @@ -187,13 +160,6 @@ private static RandomAccessibleInterval<DoubleType> buildFromTensorDouble(TFloat
return Utils.transpose(rai);
}

/**
* Builds a {@link RandomAccessibleInterval} from a unsigned int64-typed {@link TInt64} tensor.
*
* @param tensor
* The {@link TInt64} tensor data is read from.
* @return The {@link RandomAccessibleInterval} built from the tensor, of type {@link LongType}.
*/
private static RandomAccessibleInterval<LongType> buildFromTensorLong(TInt64 tensor)
{
long[] arrayShape = tensor.shape().asArray();
Expand Down
Loading

0 comments on commit fc3fc86

Please sign in to comment.