Deep learning on windows

How do I use deep learning on windows 7, specifically for image recognition/object detection, what do I use to train a “model” and how do I use that “model” in visual studio with C++?

Is there anyone on this forum?

Sounds like you’re in the initial days of getting started with deep learning…

Here’s and overview that covers how deep learning works, including frameworks, models, datasets, etc.
https://www.nvidia.com/en-us/gtc/on-demand/?search=demystified

Deep neural network (DNN) models are defined as many-layers of algorithms designed to determine the linear and/or non-linear relationships between the input data provided to them and the desired outputs. Example outputs include characterizing images into classes (image classification), bounding box coordinates for specific types of things in an image (object detection), etc.

Deep Learning Frameworks are used to train DNNs, which involves feeding a large number of sample data for which the desired output is known through a DNN, assessing whether the DNN inferred the desired output, and adjusting the weights of various nodes in the DNN to improve accuracy. Each framework that is supported on Windows will provide installation instructions and may also provide some sample projects, etc. that help you confirm your environment is set up correctly. Note that most deep learning training and application development seems to be on Linux, so you may find some gaps in the support for Windows-specific configurations.

DNNs can be implemented in code as a bunch of functions or in a configuration file, depending on the format(s) supported by the framework you choose to use.

There are also many pre-trained deep neural networks models available or image classification, object detection, and other computer vision tasks. A good collection of highly optimized pre-trained models is available in the NGC Model Catalog.

Once you have a trained DNN, you can then use C++ and Visual Studio to either (1) integrate that framework into your C++ application and continue using the framework to feed new data to your DNN model or (2) use the NVIDIA TensorRT optimizing runtime for high throughput, low latency runtime performance.

The work you would do in Visual Studio also includes acquiring the new data, sending it to the model for inference, and all the business logic that handles the results you get back.

Hope this is helpful,

Will.

So what framework can i use to train a model on windows 7 without having to use python?

A quick online search shows there are (what appear to be) pretty good instructions for installing & using PyTorch, Tensorflow, Keras, and MXNet frameworks on Win7. Note that they all involve installing/using Python to some extent, in part because much of the high level implementation and most widely-used APIs for these frameworks are written in Python.

Many of the widely-used frameworks also have C++ interfaces as well:
https://www.tensorflow.org/api_docs/cc
https://pytorch.org/cppdocs/
https://mxnet.apache.org/versions/1.6/api/cpp

I need a simple and easy way to train a model with images on Windows 7 with a Titan V without using Linux or python.

I’m not aware of a simple/easy way to set up a deep learning environment on Windows, but there are several options for training models using cloud-based servers (link below) and you could then integrate your trained model/runtime into a Windows C++ application.

https://towardsdatascience.com/build-your-own-robust-deep-learning-environment-in-minutes-354cf140a5a6

Sorry this isn’t more helpful. I just don’t have a prescriptive recipe you can follow that satisfies all your constraints.

Why is digits not available on windows?

I’m not sure, but I believe DIGITS was built on Linux and has dependencies on some underlying components that are not available on Win7. Perhaps you could run the DIGITS NGC container on a Linux-based server, and then incorporate the trained model into your Windows-based C++ applications.

FWIW, MATLAB now has some very easy to use deep learning capabilities on Windows.

I might as well just give up then, thanks anyway.

It’s not quite what you asked for, but you might find this approach useful: