Loading deep learning network models for processing medical images
Methods and systems for processing medical images. One method includes, in response to startup of an application using an algorithm, creating a server process supporting a programming language associated with the algorithm and loading a plurality of deep learning models used by the algorithm into a memory of the server process to create in-memory models. The method also includes processing a first set of one or more medical images with the server process using the algorithm and at least one model selected from the in-memory models, maintaining the in-memory models in the memory of the server process after processing the first set of one or more medical images, and, in response to a request to process a second set of one or more medical images, processing the second set of one or more medical images using the algorithm and at least one of the in-memory models.
1. A computer-implemented method for medical image processing, the computer-implemented method comprising:
in response to startup of an application using an algorithm configured to process medical images:
creating a server process supporting a programming language associated with the algorithm, and
loading a plurality of models used by the algorithm into a memory of the server process to create in-memory models, wherein the plurality of models are based on the same or different deep learning frameworks;
processing a first set of one or more medical images with the server process using the algorithm and at least one model selected from the in-memory models;
outputting at least one result of the processing of the first set of one or more medical images;
maintaining the in-memory models in the memory of the server process after processing the first set of one or more medical images;
in response to a request to process a second set of one or more medical images, processing the second set of one or more medical images using the algorithm and at least one of the in-memory models;
executing the server process to process one or more additional sets of one or more medical images until explicitly terminated by the application.
2. The computer-implemented method of claim 1 , wherein creating the server process includes running the server process on a central processing unit and a graphics processing unit.
3. The computer-implemented method of claim 1 , wherein creating the server process includes running the server process on a plurality of central processing units or a plurality of graphics processing units.
4. The computer-implemented method of claim 1 , wherein the server process is a first server process and further comprising creating a second server process supporting a different programming language associated with a second algorithm, the second algorithm associated with a second plurality of models, wherein the first server process and the second server process are run on different processing nodes.
5. The computer-implemented method of claim 4 , wherein the different processing nodes includes different physical machines or different virtual machines.
6. The computer-implemented method of claim 1 , wherein the server process is a first server process and further comprising creating a second server process supporting a different programming language associated with a second algorithm, the second algorithm associated with a second plurality of models, wherein the first server process and the second server process are run on the same processing node.
7. The computer-implemented method of claim 1 , further comprising, in response to the startup of the application:
creating a second server process supporting a second programming language, and
loading a second plurality of models used by the algorithm into the memory of the server process to create second in-memory models, each model in the second plurality of models associated with the second programming language.
8. The computer-implemented method of claim 1 , wherein loading the plurality of models into the memory of the server process to create the in-memory models includes allocating a model included in the plurality of models to one of a central processing unit (CPU) associated with the server process and a graphical processing unit (GPU) associated with the server process.
9. The computer-implemented method of claim 8 , wherein allocating the model includes allocating the model based on at least one selected from a group consisting of an amount of memory needed for the model, a size of an image included in the first set of one or more medical images, a temporary amount of memory needed to process a digital image with the model, a framework used to build the model, and a user preference.
10. The computer-implemented method of claim 8 , wherein allocating the model includes allocating the model to a fraction of the GPU.
11. The computer-implemented method of claim 1 , wherein maintaining the in-memory models in the memory of the server process includes maintaining the in-memory models in the memory until termination of the server process.
12. The computer-implemented method of claim 1 , further comprising outputting at least one result of the processing of the second set of one or more medical images.
13. The computer-implemented method of claim 1 , wherein the server process is a first server process and further comprising creating a second server process supporting a programming language associated with a second algorithm, wherein the first server process is executed in parallel with the second server process.