{"id":4150,"date":"2026-02-27T03:49:02","date_gmt":"2026-02-27T08:49:02","guid":{"rendered":"https:\/\/blogs.mathworks.com\/matlab\/?p=4150"},"modified":"2026-02-27T03:49:02","modified_gmt":"2026-02-27T08:49:02","slug":"building-an-app-for-training-deep-learning-models-with-app-designer","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/matlab\/2026\/02\/27\/building-an-app-for-training-deep-learning-models-with-app-designer\/","title":{"rendered":"Building an app for training deep learning models with App Designer"},"content":{"rendered":"<div class = rtcContent><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span style=' font-style: italic;'>Today's guest blogger is Phil Brown. Phil is a development lead on the Deep Learning Toolbox, working on app development. In this blog post he describes how to build an App Designer app for training deep neural networks to classify images. This post covers building more advanced apps with App Designer, including thinking about architecture, unit and system testing.<\/span><\/div><h2  style = 'margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>The Problem<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Deep neural networks are excellent at classifying images - whether that's pictures of <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/multilabel-image-classification-using-deep-learning.html\"><span>cute dogs<\/span><\/a><span>, images from a production line for <\/span><a href = \"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/116555-automated-visual-inspection-library-for-computer-vision-toolbox\"><span>automated quality control<\/span><\/a><span>, or <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/investigate-spectrogram-classifications-using-lime.html\"><span>sequences converted to spectrograms <\/span><\/a><span>to predict whether a machine is running smoothly.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_1.png\" width = \"217\" height = \"320\" alt = \"\" style = \"vertical-align: baseline; width: 217px; height: 320px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Learning how to use a deep neural network to classify images is often how people get started with deep learning. It's easy to understand the problem, very visual - '<\/span><span style=' font-style: italic;'>The network says this is a golden retriever because of its lustrous floppy ears!<\/span><span>' - and quick and easy to get started. You can use a pretrained neural network like <\/span><a href = \"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/64456-deep-learning-toolbox-model-for-googlenet-network\"><span>GoogleNet<\/span><\/a><span> or a <\/span><a href = \"https:\/\/www.mathworks.com\/help\/vision\/ref\/visiontransformer.html\"><span>Vision Transformer<\/span><\/a><span>. With <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/gs\/get-started-with-transfer-learning.html\"><span>transfer learning<\/span><\/a><span> (fine-tuning a neural network already trained on a large dataset on your own data), you can teach a large and powerful model to classify your labelled images, without spending hours or days building models from scratch.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We wanted to provide a way for users to get started with deep neural networks with MATLAB's Deep Learning Toolbox, using a fun app for image classification built with <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/app-designer.html\"><span>App Designer<\/span><\/a><span>. The app lets you load and visualize your data, modify existing networks or build your own using the <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/gs\/get-started-with-deep-network-designer.html\"><span>Deep Network Designer app<\/span><\/a><span>, train the network, understand network productions with interpretability, and finally generate MATLAB code for reproducing and sharing your training workflow. The Image Classifier app is <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\/image-classifier-app\"><span>available now<\/span><\/a><span> on <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\"><span>MATLAB Deep Learning GitHub<\/span><\/a><span>. This post goes into some of the considerations we had along the way.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_2.png\" width = \"816\" height = \"331\" alt = \"\" style = \"vertical-align: baseline; width: 816px; height: 331px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Working out the requirements<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>In building an image classification app, we knew we needed the standard pieces of this workflow available in Deep Learning Toolbox: import and augment image data, choose a network and adapt it to your data, configure training options, train the network, interpret the results, and share the code. Given this workflow, we also tried to work out what other requirements we were trying to meet.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We needed the app to be <\/span><span style=' font-weight: bold;'>easy to use<\/span><span>. We wanted someone new to deep learning to be able to get started quickly and easily, without needing to worry about any of the harder stuff like network architectures or minibatch sizes.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We wanted the app to make use of <\/span><span style=' font-weight: bold;'>existing cool features in MATLAB<\/span><span>, like the Deep Network Designer app. This app in Deep Learning Toolbox lets you build neural networks from scratch with a drag-and-drop interface, or choose existing networks like GoogleNet and modify them for transfer learning onto your new data. You can also use it to <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/import-pytorch-model-using-deep-network-designer.html\"><span>import networks<\/span><\/a><span> from PyTorch or TensorFlow.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We wanted to <\/span><span style=' font-weight: bold;'>showcase how users could do this themselves<\/span><span>. We've talked to a few Deep Learning Toolbox users who have built their own apps for model training, usually with <\/span><a href = \"https:\/\/www.mathworks.com\/products\/matlab\/app-designer.html\"><span>App Designer<\/span><\/a><span>. This lets them build really focused apps which exactly meet the needs of their research group or team. We were trying to demonstrate how to do that for the simple case of image classification, to provide ideas users might want to put in their own apps.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We therefore wanted users to be able to <\/span><span style=' font-weight: bold;'>edit and modify our code<\/span><span>. People might want to use ideas in their own apps, or extend this app with their own features. For example, a good project for an undergraduate learning about <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/deep-learning-visualization-methods.html\"><span>interpretability and explainable AI<\/span><\/a><span> would be to integrate a new explainability method into the app, or a research group might have their own customized deep neural networks which they want to support for transfer learning. <\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Using App Designer to build apps<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>When we build large apps with the product, like Deep Network Designer, they're authored by a team of contributors with the expectation of long lifetimes. That usually means investing heavily in architecture and testing from the start. Those constraints are important for product-scale software, but not always the right start point for something more focused. Code written this way is more for other developers.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>For the Image Classifier app, our goal was a bit different. We wanted the code to be readable, adaptable and useful as a starting point for other users building their own MATLAB apps. App Designer was a natural fit; it lets you construct the UI quickly while still writing structure code behind the scenes where needed.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_3.png\" width = \"802\" height = \"459\" alt = \"\" style = \"vertical-align: baseline; width: 802px; height: 459px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Separating model and view<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Apps often have complicated non-linear workflows, and users like to interact with them in ways we haven't foreseen as developers! This can mean lots of bugs<\/span><span style=' font-weight: bold;'> <\/span><span>if you're not careful with how the code is structured.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>For apps that ship with MATLAB or the toolbox, we think about how to structure code so we can isolate issues and make it easier to extend the app in the future. This means using splitting code up with patterns like <\/span><a href = \"https:\/\/www.mathworks.com\/company\/technical-articles\/developing-matlab-apps-using-the-model-view-controller-pattern.html\"><span>model-view-controller<\/span><\/a><span> (or other variants like 'model-view-viewmodel'). That makes it easier to make changes or bug fixes to the app, and also to write automated tests which verify the app works as you want.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_4.png\" width = \"334\" height = \"207\" alt = \"\" style = \"vertical-align: baseline; width: 334px; height: 207px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We wanted to retain the benefits of these ideas, without writing something that required extensive software engineering knowledge to modify. We chose a lightweight separation of concerns. The App Designer file handles the UI and interaction logic, while a separate <\/span><span style=' font-family: monospace;'>Model<\/span><span> class contains the core network, training and data processing functionality. This hybrid approach keeps the code understandable and easy to modify, while enabling more unit and system testing. Depending on the scale and complexity of your app, you should consider where it needs to live on the spectrum of architecture and testability.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Testing apps in MATLAB<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>Testing apps can be a challenging topic (but luckily MATLAB makes it pretty easy). So what's the point of doing it? There's two big reasons it's worth writing tests for your apps:<\/span><\/div><ul  style = 'margin: 10px 0px 20px; padding-left: 0px; font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-size: 14px; '><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span style=' font-weight: bold;'>Tests catch bugs<\/span><span>. Writing tests forces you to think about awkward edge cases ('<\/span><span style=' font-style: italic;'>So, what does happen if a user clicks Train twice quickly? The screen resolution gets halved?! That's not what I wanted...<\/span><span>'). Code which exercises different actions can verify they do the right thing.<\/span><\/li><li  style = 'margin-left: 56px; line-height: 21px; min-height: 0px; text-align: left; white-space: pre-wrap; '><span style=' font-weight: bold;'>Future-you can make changes less fearfully<\/span><span>. Without any tests, every future change to code has a risk of breaking something that used to work. Tests make you codify what you expect to work. After making a change, you can rerun the tests and either have confidence you're not causing problems... or find out why your new feature is a bad idea. <\/span><\/li><\/ul><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>As well as the standard <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/write-unit-tests.html\"><span>MATLAB unit testing framework<\/span><\/a><span>, MATLAB also has a framework for <\/span><a href = \"https:\/\/www.mathworks.com\/help\/matlab\/test-apps.html\"><span>testing apps<\/span><\/a><span>, whether those built in App Designer or programmatically with <\/span><span style=' font-family: monospace;'>uifigure<\/span><span>. This lets you write tests which directly interact with widgets in the app, as a user would. When the user tries to pick a neural network from a dropdown which is intended for sequence classification and use it for transfer learning with images, does the app show a nice error and help the user out, or does it just freeze?<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We wrote two sorts of tests for the Image Classifier app. We had a small number of <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\/image-classifier-app\/blob\/main\/test\/system\/tImageClassifierWorkflows.m\"><span>system-level tests<\/span><\/a><span>, using the app testing framework. These test out proper workflows in the real app: opening up the window, clicking to select a model and data, training a network, etc. <\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_5.png\" width = \"634\" height = \"341\" alt = \"\" style = \"vertical-align: baseline; width: 634px; height: 341px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>These tests take longer to run, because the test is performing an extended workflow with many steps (and they also hijack your screen while they're running - you get to watch MATLAB clicking around in your app) but they are also closest to how real users interact with the app, and most likely to catch bugs introduced by future changes. These sorts of tests can be more complicated to write, and sometimes you need to use some clever testing tricks. For example, importing a variable from the workspace into the app blocks MATLAB from running, which is what you want when a real user is trying to import something, but a big problem when a test is trying to do it! We put in several techniques to make system testing more reliable, including adding a specific <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\/image-classifier-app\/blob\/main\/test\/%2Bictester\/AppTester.m\"><span>AppTester class <\/span><\/a><span>which isolates some of the behavior of the app, meaning someone writing system tests can rely on the tester without having to worry about the details of what it does to the app.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We also wrote <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\/image-classifier-app\/blob\/main\/test\/unit\/tModel.m\"><span>unit-level tests<\/span><\/a><span> for the <\/span><span style=' font-family: monospace;'>Model<\/span><span> class that runs the app back-end. These tests cover more detailed behavior of this class, exercising more edge cases. They are a lot faster to run (because there's no UI), but also a bit less realistic than system-level testing.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_6.png\" width = \"478\" height = \"339\" alt = \"\" style = \"vertical-align: baseline; width: 478px; height: 339px;\"><\/img><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>For an app that we ship in the product, we might include some other tests, for example integration tests to test different parts of the workflow in isolation, like verifying an import dialog does what it's supposed to.<\/span><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Adapting the app to respond to user feedback<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>With help from our <\/span><a href = \"https:\/\/blogs.mathworks.com\/matlab\/2026\/01\/12\/mathworks-user-experience-group-a-long-history-of-focusing-on-customers\/\"><span>UX researchers<\/span><\/a><span>, we got feedback from internal people who were interested in the project. We'd show them a video or ask them to try it out, then try to find what they thought. Were we including the right amount of info and guidance for a user just getting started with deep learning? How important is it to be able to generate MATLAB code for training?<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>We heard that classifying grayscale images using pretrained networks was common and users wanted to do that straight away. We'd been planning to add that feature later, but we brought it forward after people hit bugs with trying it out and it not working. Because we had a set of tests that locked down the app behavior, we could add grayscale image classification without being afraid we'd broken everything. We also modified the transfer learning workflow to make more use of <\/span><a href = \"https:\/\/www.mathworks.com\/help\/deeplearning\/ug\/transfer-learning-with-deep-network-designer.html\"><span>transfer learning with Deep Network Designer<\/span><\/a><span>, as feedback from our UX interviews emphasized that was the most popular way for users to learn about what was happening in their network.<\/span><\/div><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><img class = \"imageNode\" src = \"http:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_7.png\" width = \"802\" height = \"556\" alt = \"\" style = \"vertical-align: baseline; width: 802px; height: 556px;\"><\/img><\/div><h2  style = 'margin: 20px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; '><span>Try it out - and extend it yourself<\/span><\/h2><div  style = 'margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: 400; text-align: left; '><span>The app, including the App Designer file and the other code, is available on <\/span><a href = \"https:\/\/github.com\/matlab-deep-learning\/image-classifier-app\"><span>MATLAB Deep Learning GitHub<\/span><\/a><span>. If you're new to deep learning and want to try it out quickly, you could also take the <\/span><a href = \"https:\/\/matlabacademy.mathworks.com\/details\/deep-learning-onramp\/deeplearning\"><span>Deep Learning Onramp<\/span><\/a><span> to get up to speed on the concepts and ideas. If you're looking to build a MATLAB app for training models, this app could be something to look at for ideas. We'd encourage people to clone the repo, make modifications and improvements to tailor the app to their specific needs, and create issues for any bugs you find.<\/span><\/div>\r\n<\/div><script type=\"text\/javascript\">var css = ''; var head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); head.appendChild(style); style.type = 'text\/css'; if (style.styleSheet){ style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); }<\/script>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/matlab\/files\/2026\/02\/BuildingAnAppForDLTrainingWithAppDesigner_2.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>Today's guest blogger is Phil Brown. Phil is a development lead on the Deep Learning Toolbox, working on app development. In this blog post he describes how to build an App Designer app for training... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/matlab\/2026\/02\/27\/building-an-app-for-training-deep-learning-models-with-app-designer\/\">read more >><\/a><\/p>","protected":false},"author":176,"featured_media":4143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[139,125],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/4150"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/users\/176"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/comments?post=4150"}],"version-history":[{"count":1,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/4150\/revisions"}],"predecessor-version":[{"id":4151,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/posts\/4150\/revisions\/4151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media\/4143"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/media?parent=4150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/categories?post=4150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/matlab\/wp-json\/wp\/v2\/tags?post=4150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}