Body: <p>I have a dataset of 3D images (volumes) with dimensions 400x250x400. For each input image I have an output of the same dimensions. I would like to train a machine learning (or deep learning) model on this data in order to predict values with new data.</p>
  
  <p>My main problems are :</p>
  
  <p>Images are very big, which leads to memory issues (tried with an NVIDIA 2080Ti and doesn't fit on memory during training)</p>
  
  <p>I need a very fast inference, because the model will be used on real time(speed is a requirment)</p>
  
  <p>I already have experience with architectures such as 3D Unet using Keras with tensorflow backend, but it didn't worked for me because of the previous reasons, even with very few layers and convolution filters.</p>
  
  <p>I know that one of the first solutions that one could imagine, is to reduce resolution of the volumes, but in my case I'm not allowed this because I would lose a lot of spatial information.</p>
  
  <p>Any ideas or suggestions ? Maybe Neural Nets are not the best solution ? If not, what could I use ?</p>
  
  <p>Thank you very much for your suggestions</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-08-20T10:08:52.993Z
Comments.Text: If you are *forced* to use 400x250x400 as input and output, then your options may be limited, as that is guaranteed 40M parameters and 40M outputs. It may help to describe more about your problem - what these represent, what the goal of training is, how you are measuring success at the task (e.g. is it a basic regression with MSE, a classification etc), what the purpose is. The hope is that you are working with a very small manifold compared to the 40M dimensions of your raw data, and can somehow take advantage of that - if not, then it is unlikely that any ML will help
Comments.UserDisplayName: Neil Slater
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-08-20T10:36:45.970Z
Comments.Text: If you require that you keep this full resolution you won't find a prediction that works in real-time. Context is important though, it may well be you could flatten each image to a 2d plane and input that data or take only a small area of the 3d model but without knowing what we're dealing with I can't suggest anything beyond you trying to shrink your input down.
Comments.UserDisplayName: Lio Elbammalf
Tags: <neural-networks><machine-learning><deep-learning><python><tensorflow>
Title: Suggestions for Deep Learning for regression on huge 3D volumes
UserDisplayName: Cezoz08
ThreadText: # Suggestions for Deep Learning for regression on huge 3D volumes
  
  (Asked by: username_0 on 2019-08-20)
  
  I have a dataset of 3D images (volumes) with dimensions 400x250x400. For each input image I have an output of the same dimensions. I would like to train a machine learning (or deep learning) model on this data in order to predict values with new data.
  
  My main problems are :
  
  Images are very big, which leads to memory issues (tried with an NVIDIA 2080Ti and doesn't fit on memory during training)
  
  I need a very fast inference, because the model will be used on real time(speed is a requirment)
  
  I already have experience with architectures such as 3D Unet using Keras with tensorflow backend, but it didn't worked for me because of the previous reasons, even with very few layers and convolution filters.
  
  I know that one of the first solutions that one could imagine, is to reduce resolution of the volumes, but in my case I'm not allowed this because I would lose a lot of spatial information.
  
  Any ideas or suggestions ? Maybe Neural Nets are not the best solution ? If not, what could I use ?
  
  Thank you very much for your suggestions
  
  **Tags:** neural-networks, machine-learning, deep-learning, python, tensorflow
  > **Comments:**
  > **username_1**: If you are *forced* to use 400x250x400 as input and output, then your options may be limited, as that is guaranteed 40M parameters and 40M outputs. It may help to describe more about your problem - what these represent, what the goal of training is, how you are measuring success at the task (e.g. is it a basic regression with MSE, a classification etc), what the purpose is. The hope is that you are working with a very small manifold compared to the 40M dimensions of your raw data, and can somehow take advantage of that - if not, then it is unlikely that any ML will help  
  > **username_2**: If you require that you keep this full resolution you won't find a prediction that works in real-time. Context is important though, it may well be you could flatten each image to a 2d plane and input that data or take only a small area of the 3d model but without knowing what we're dealing with I can't suggest anything beyond you trying to shrink your input down.  
  
  ---
  
  ## 0 answers
  
  