Answers.Body: <p>I do not think these are formally defined.</p>
  
  <p>The distinction is just to facilitate discussion of the NN architecture: e.g., you may have a few convolutional layers with pooling as a front-end, and a different architecture as a back-end (in a text-book architecture, just a fully-connected layer. But to get wild, maybe LSTM? To really get wild, BERT?).</p>
  
  <p>In the end (no pun intended), computers do not care if a layer is seen by humans as a front-end or a back-end.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-12-20T22:55:36.550Z
Answers.LastActivityDate: 2019-12-20T22:55:36.550Z
Answers.UserDisplayName: Andris Birkmanis
Answers.Body: <p>I think that front end refers to a high level API for a CNN framework (c++ front end, Python front end).</p>
  
  <p>The back end can be understood as a more peculiar (low level) interface to specific libraries. </p>
  
  <p>You can use different back ends but still manipulate training data and model building process the same way using the front end (use Keras with TensorFlow, caffe with Pytorch, or the other way round use Theano, tensorflow, .. . with Keras!).</p>
  
  <p>You can find some more material at the following links :</p>
  
  <ul>
  <li><a href="https://keras.io/backend/" rel="nofollow noreferrer">https://keras.io/backend/</a></li>
  <li><a href="https://project.inria.fr/deeplearning/files/2016/05/DLFrameworks.pdf" rel="nofollow noreferrer">https://project.inria.fr/deeplearning/files/2016/05/DLFrameworks.pdf</a></li>
  </ul>
  
  <p>I don't think it refers to neural network layers structure. The term shallow or deep layers are usually prefered.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-12-23T16:56:38.980Z
Answers.LastActivityDate: 2019-12-30T19:26:02.763Z
Answers.LastEditDate: 2019-12-30T19:26:02.763Z
Answers.UserDisplayName: pascal sautot
Body: <p>I found the terms <strong>front-end</strong> and <strong>back-end</strong> in the article (or blog post) <a href="https://machinelearningmastery.com/how-to-develop-a-convolutional-neural-network-from-scratch-for-mnist-handwritten-digit-classification/" rel="nofollow noreferrer">How to Develop a CNN for MNIST Handwritten Digit Classification</a>. What do they mean here? Are these terms standard in this context?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-12-19T13:50:40.203Z
Comments.Text: In this article, I don't think the author is referring to the library, though. He's just referring to the parts of the CNN architecture. Usually, convolutional and pooling layers, in a CNN, come before (so they are in the front-end) fully connected layers (back-end). This is not standard terminology, in this case.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-12-24T10:39:19.803Z
Comments.Text: I don't think it's standard terminology. It does look similar to the difference between encoder and decoder.
Comments.UserDisplayName: Bram Vanroy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-08T19:39:25.573Z
Comments.Text: After almost a year this just got upvoted. Whereas actually, I'd prefer to delete it if there weren't already answers. Anyone stumbling across this one should know that the question doesn't really make much sense. These terms are just not used. I asked this because I was totally new to neural networks at the time and saw these terms in an article I considered to be reputable (and it's a good blog site - no qualms there). But these terms never came up again, and I've been working with neural networks ever since.
Comments.UserDisplayName: Alexander Soare
Tags: <convolutional-neural-networks><terminology>
Title: What do the terms "front-end" and "back-end" refer to in this article?
UserDisplayName: Alexander Soare
ThreadText: # What do the terms "front-end" and "back-end" refer to in this article?
  
  (Asked by: username_0 on 2019-12-19)
  
  I found the terms **front-end** and **back-end** in the article (or blog post) [How to Develop a CNN for MNIST Handwritten Digit Classification](https://machinelearningmastery.com/how-to-develop-a-convolutional-neural-network-from-scratch-for-mnist-handwritten-digit-classification/). What do they mean here? Are these terms standard in this context?
  
  **Tags:** convolutional-neural-networks, terminology
  > **Comments:**
  > **username_1**: In this article, I don't think the author is referring to the library, though. He's just referring to the parts of the CNN architecture. Usually, convolutional and pooling layers, in a CNN, come before (so they are in the front-end) fully connected layers (back-end). This is not standard terminology, in this case.  
  > **username_2**: I don't think it's standard terminology. It does look similar to the difference between encoder and decoder.  
  > **username_0**: After almost a year this just got upvoted. Whereas actually, I'd prefer to delete it if there weren't already answers. Anyone stumbling across this one should know that the question doesn't really make much sense. These terms are just not used. I asked this because I was totally new to neural networks at the time and saw these terms in an article I considered to be reputable (and it's a good blog site - no qualms there). But these terms never came up again, and I've been working with neural networks ever since.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_3 on 2019-12-20. Score: 1 | Accepted answer
  
  I do not think these are formally defined.
  
  The distinction is just to facilitate discussion of the NN architecture: e.g., you may have a few convolutional layers with pooling as a front-end, and a different architecture as a back-end (in a text-book architecture, just a fully-connected layer. But to get wild, maybe LSTM? To really get wild, BERT?).
  
  In the end (no pun intended), computers do not care if a layer is seen by humans as a front-end or a back-end.
  
  
  ---
  
  ### Answer by username_4 on 2019-12-23. Score: 0
  
  I think that front end refers to a high level API for a CNN framework (c++ front end, Python front end).
  
  The back end can be understood as a more peculiar (low level) interface to specific libraries.
  
  You can use different back ends but still manipulate training data and model building process the same way using the front end (use Keras with TensorFlow, caffe with Pytorch, or the other way round use Theano, tensorflow, .. . with Keras!).
  
  You can find some more material at the following links :
  
  * <https://keras.io/backend/>
  * <https://project.inria.fr/deeplearning/files/2016/05/DLFrameworks.pdf>
  
  I don't think it refers to neural network layers structure. The term shallow or deep layers are usually prefered.
  
  
  ---
  
  