diff options
-rw-r--r-- | samples/SimpleSample.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/samples/SimpleSample.cpp b/samples/SimpleSample.cpp index ed7c0bfb08..5276d74a4d 100644 --- a/samples/SimpleSample.cpp +++ b/samples/SimpleSample.cpp @@ -2,8 +2,12 @@ // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // +#include <armnn/INetwork.hpp> +#include <armnn/IRuntime.hpp> +#include <armnn/Utils.hpp> +#include <armnn/Descriptors.hpp> + #include <iostream> -#include "armnn/ArmNN.hpp" /// A simple example of using the ArmNN SDK API. In this sample, the users single input number is multiplied by 1.0f /// using a fully connected layer with a single neuron to produce an output number that is the same as the input. @@ -15,6 +19,10 @@ int main() std::cout << "Please enter a number: " << std::endl; std::cin >> number; + // Turn on logging to standard output + // This is useful in this sample so that users can learn more about what is going on + armnn::ConfigureLogging(true, false, LogSeverity::Warning); + // Construct ArmNN network armnn::NetworkId networkIdentifier; INetworkPtr myNetwork = INetwork::Create(); @@ -47,6 +55,14 @@ int main() // Optimise ArmNN network armnn::IOptimizedNetworkPtr optNet = Optimize(*myNetwork, {Compute::CpuRef}, run->GetDeviceSpec()); + if (!optNet) + { + // This shouldn't happen for this simple sample, with reference backend. + // But in general usage Optimize could fail if the hardware at runtime cannot + // support the model that has been provided. + std::cerr << "Error: Failed to optimise the input network." << std::endl; + return 1; + } // Load graph into runtime run->LoadNetwork(networkIdentifier, std::move(optNet)); |