|
27 | 27 | import io.bioimage.modelrunner.engine.DeepLearningEngineInterface;
|
28 | 28 | import io.bioimage.modelrunner.exceptions.LoadModelException;
|
29 | 29 | import io.bioimage.modelrunner.exceptions.RunModelException;
|
| 30 | +import io.bioimage.modelrunner.numpy.DecodeNumpy; |
30 | 31 | import io.bioimage.modelrunner.pytorch.shm.ShmBuilder;
|
31 | 32 | import io.bioimage.modelrunner.pytorch.shm.TensorBuilder;
|
32 | 33 | import io.bioimage.modelrunner.pytorch.tensor.ImgLib2Builder;
|
|
36 | 37 | import io.bioimage.modelrunner.tensor.shm.SharedMemoryArray;
|
37 | 38 | import io.bioimage.modelrunner.utils.CommonUtils;
|
38 | 39 | import net.imglib2.RandomAccessibleInterval;
|
| 40 | +import net.imglib2.img.array.ArrayImgs; |
39 | 41 | import net.imglib2.type.NativeType;
|
40 | 42 | import net.imglib2.type.numeric.RealType;
|
41 | 43 | import net.imglib2.util.Cast;
|
|
71 | 73 | import ai.djl.repository.zoo.ZooModel;
|
72 | 74 | import ai.djl.training.util.ProgressBar;
|
73 | 75 | import ai.djl.translate.TranslateException;
|
| 76 | +import ai.djl.util.Platform; |
74 | 77 |
|
75 | 78 | /**
|
76 | 79 | * This class implements an interface that allows the main plugin to interact in
|
@@ -163,6 +166,8 @@ private Service getRunner() throws IOException, URISyntaxException {
|
163 | 166 | public void loadModel(String modelFolder, String modelSource)
|
164 | 167 | throws LoadModelException
|
165 | 168 | {
|
| 169 | + System.out.println("[DEBUG 1]: " + ai.djl.util.Utils.getenv("PATH")); |
| 170 | + System.out.println("[DEBUG 2]: " + Platform.fromSystem("pytorch")); |
166 | 171 | this.modelFolder = modelFolder;
|
167 | 172 | this.modelSource = modelSource;
|
168 | 173 | if (interprocessing) {
|
@@ -566,4 +571,28 @@ private static String padSpecialJavaBin(String javaBin) {
|
566 | 571 | }
|
567 | 572 | return javaBin;
|
568 | 573 | }
|
| 574 | + |
| 575 | + public static <T extends RealType<T> & NativeType<T>, R extends RealType<R> & NativeType<R>> void |
| 576 | + main(String[] args) throws IOException, URISyntaxException, LoadModelException, RunModelException { |
| 577 | + PytorchInterface pi = new PytorchInterface(false); |
| 578 | + String folder = "/home/carlos/git/deepimagej-plugin/models/DeepBacs Segmentation Boundary Model_29012025_162730"; |
| 579 | + String wt = folder + "/44a0b00b-f171-4fa2-9c39-160e610e9496.pt"; |
| 580 | + String npy = folder + "/cfdcff5e-c4e4-4baf-826f-b453751a139d_raw_test_tensor_.npy"; |
| 581 | + pi.loadModel(folder, wt); |
| 582 | + |
| 583 | + RandomAccessibleInterval<T> in = DecodeNumpy.loadNpy(npy); |
| 584 | + |
| 585 | + ArrayList<Tensor<T>> ins = new ArrayList<Tensor<T>>(); |
| 586 | + ArrayList<Tensor<R>> ous = new ArrayList<Tensor<R>>(); |
| 587 | + Tensor<T> inT = Tensor.build("ff", "bcyx", (RandomAccessibleInterval<T>) in); |
| 588 | + Tensor<R> ouT = (Tensor<R>) Tensor.build("gg", "bcyx", ArrayImgs.floats(new long[] {1, 2, 256, 256})); |
| 589 | + |
| 590 | + ins.add(inT); |
| 591 | + ous.add(ouT); |
| 592 | + |
| 593 | + pi.run(Cast.unchecked(ins), Cast.unchecked(ous)); |
| 594 | + |
| 595 | + DecodeNumpy.saveNpy(folder + "/out_yes_pre.npy", ous.get(0).getData()); |
| 596 | + |
| 597 | + } |
569 | 598 | }
|
0 commit comments