Feature/azaytsev/merge to master (#2786)
* [IE CLDNN] Memory allocation optimizations (#2178) * [GNA] Safety fixes (#2193) * LSTMCell test [GNA] LSTMCell fix for GNA (#2216) * [GNA] fix scale factor calculation for unfused bias after fc (2021.1) (#2195) * [GNA] fix scale factor calculation for unfused bias after fc * change check * add test * apply requested changes * cpplint fix * apply test changes * modify model for test to match ::op:: * [LPT] Copy constant with several outputs before blob update (#2197) * [LPT] Copy constant implementation * [LPT] the same Constant ops as FQ interval boundaries * [Scripts] Fixing issue with exporting path-like env when it undef (#2164) * setupvars.sh: Added logic for exporting path env in case if it not defined * setupvars: Removed duplicated colon * Kept quotes where they were * setupvars: updated copyrights * FakeQuantize + Mul fusion (#2133) * FQ+Mul fusion transform skeleton * FQ+Mul fusion transform tests prep * Basic UT for the transform * Basic implementation of the transform * Parametrized UTs for FQMul transform * Parametrization of FQ+Mul UTs * Make sure that the shapes of constants match * Check if the mul constant matches FQ data * CentOs compilation error fix * PR feedback and adjusted tests * NHWC layout of the mul constant * UT: FQ output limits 4D * Redundant CF pass removed * Rewrite the graph in a different way * Shape checking infrastructure skeleton * Handle some negative cases * Check the rt info in the fusion test * Fuse all Mul nodes detected after FQ node * Dont cast the original FQ node * Dont throw if CF fails in new output range calculation * More UTs * Accept any type of input to FQ in the transformation * Test the fusion when all FQ inputs are non-const * Fusion test when only one output limit is const * Extend error message (#2174) * some nGraph KW fixes (#2176) * Removed redundant methods * Fixed KW for linux * Fix QueryNetwork for networks with KSO (#2202) * Added a test to reproduce QueryNetwork with KSO * Fixed QueryNetwork for networks with KSO * Added additional test * Fixed output names for case with redundant ops before result (#2209) * [IE][VPU]: Workaround to support parameter Beta for layer Swish (#2207) * Workaround to full support Swish layer. It is faster than native Swish for now. * [IE][VPU]: Remove the second call of ngraph::CommonOptimizations (#2221) * Remove the second call of ngraph::CommonOptimizations in myriad plugin * Reuse code with vpu ngraph transformations * Duplicate PR 2167 for release branch: GatherTree description was extended and outdated link fixed (#2235) * add more alrifications to description * move clarification to comment * pseudo code become more accurate * review changes * Add exposing function signatures via Cython (#2244) * [DOC] Reshape feature (#2194) * [IE][VPU][OpenCL] 2021.1 release compiler (#2189) * Statically analyzed issues. (#2261) * [IE][VPU]: Fix K propagation through Reshape (2021.1) (#2180) * Fix K propagation through Reshape * Add test cases * Revert "[IE TESTS] dynavic batch for mvn layer (#1010)" (#2256) This reverts commit2e3378c50f. * Fixed KW warning and review issues (#2262) * [IE][VPU]: update firmware 1381 (#2236) * Reverting devicePriorities to be vector and respect the order, as opposed to the incorrect (recent?) refactoring that introduced the unordered_map that effectively ignores the priorities (#2251) * update OpenCV version to 4.5.0 (#2260) * Add VPUX configuration to compile_tool (#2248) * [IE][TESTS] Fix compareRawBuffers and compareBlobData methods (#2246) Use `<=` comparison instead of `<` with thresholds. This allows to use `0` threshold for bit-exact comparison. * [IE][VPU]: KW fixes (#2186) * Some KW fixes * Fix printTo in vpu ngraph transformations * Fix for static PartialShape detection algorithm (#2177) * Fixes for Interpolate-4. (#2281) * Update get_ov_update_message.py (#2286) * Clone a specific tag for pybind11 (#2296) * [Scripts] Fix setting PYTHONPATH logic (#2305) * setupvars.sh: Added logic for exporting path env in case if it not defined * setupvars: Removed duplicated colon * install_openvino_dependencies: Updated copyrights setupvars.bat: Updated notification about incorrect Python version. Removed checking ICC2019 setupvars.sh: Removed logic with choosing higher version of installed Python. Added dynamic detecting python3 major and minor version for setting path. Add checking minimum required Python version(now 3.6) * Added python3-gi package and fixed libglib2.0-0 package location. (#2294) * [IE TESTS] CoreThreading_LoadNetwork tests were disabled for GPU plugin (#2245) (#2283) * setupvars: Updated notifications, fixed calling python in Windows case (#2318) * Updated operations specification documents (2021.1) (#2268) * Updated documentation structure and remove incorrect added files for Acosh-1, Asinh-1 and Atanh-1 * Fixed broken links * Fixed c samples build (#2278) (#2304) * Fixed c samples build fixed CVS-38816 - Failure to build samples in C * Fixed issue with gflags * Revert "[IE][VPU]: Fix K propagation through Reshape (2021.1) (#2180)" (#2322) This reverts commitd604a03ac0. * Added ONNX Resize-11 and ONNX Resize-13 to supported frameworks layers list. (#2325) * Implement `run_executable.py` to run `TimeTests` several times (#2125) (#2188) CI passed * install_NEO_OCL_driver: Updated exit codes, messages. Updated way to remove old driver on Ubuntu (#2333) * Bump cmake version to 3.13 (#2339) * install_NEO_OCL_driver: Added checking of installed packages before trying to remove them. Added quotes for echo. (#2350) * convert to doxygen comments * add doxygen doc build configurations (#2191) Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com> * [DOCS] Added an evaluate method for custom operation (#2272) * Added an evaluate method for custom operation * Fixed comments * Downgrade cmake for samples (#2372) * Downgrade cmake for samples Downgraded cmake version to default version for Ubuntu 18.04 * Updated supported python version The minimal python version in 2021.1 is 3.5 * Added notes about cmake requirements for samples and demo * Install dependency refactoring. (#2381) * Updated Transformation development doc (#2370) * Delete xfail for resolved known issue (#2385) * Fix layout links for dl streamer and c api (#2375) * fix layouts * change the dl-streamer link Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com> * Added link options for cross-compilation (#2397) * Added new GSG for macOS, made minor changes in Windows GSG (#2070) (#2405) * Added new GSG for macOS, made minor changes in Windows GSG * Update get_started_macos.md Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com> * Fixed docs build on Windows (#2383) * layouts and code comments * Replace absolute links to docs.openvinotoolkit.org by relative ones (#2439) * Replaced direct links to docs.openvinotoolkit.org with relative links * Replaced direct links to docs.openvinotoolkit.org with relative links. Added GSGs for Win and macOS * Minor fixes in GSGs * Replaced direct links to docs.openvinotoolkit.org with relative links * Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process * Fixed Notes * Removed links to OpenVINO markdown files that contain anchor - they don't work in the current implementation of the doc process * fixed link to installing-openvino-linux.md * Update the menu to align with POT doc headers (#2433) * Update the menu to align with POT doc headers It changes the menu to align with Post-training Optimization Toolkit documentation titles. * Corrected one title Run Examples => How to Run Examples * Added closing braсket (#2466) Fixed syntax error (b4b03b1) * Remove the deprecation notice (#2314) * Removed deprecation notice * Removed the note from other files * [DOCS] Update Installation Guide - GPU steps (#2308) * Initial commit * fixing lists * Update installing-openvino-linux.md * Get rid of the note * Added the scrrenshot * Update installing-openvino-linux.md * fixes * separate layout * [Docs] Update MO What's new description (#2481) * Azure CI: Add separated pipelines for Windows, Linux, Mac * Feature/azaytsev/benchmarks 2021 1 (#2501) * Initial changes for 2021.1 * Inserted Graphtool scripts, updated configurations info * Updated FAQ and minor changes to performance_benchmarks.md * Updated for 2021.1 * Updated * incorporated review comments * incorporated review comments for FAQ * fixed link * Update build-instruction.md for MacOsX (#2457) * Update build-instruction.md for MacOsX * Removed call of install_dependencies.sh from the steps * Changed layouts * Feature/azaytsev/cvs-38240 (#2469) * Updated for 2020 version, replaced Ubuntu 16.04 with Ubuntu 20.04 * Updated the release package numbers * Removed FPGA from the documentation * Updated according to the comments in the ticket CVS-37827 (#2448) * Updated according to CVS-38225 * some changes * Update docs for speech libs and demos (#2518) * Made changes to benchmarks according to review comments * Remove `--collect_results_only` (#2523) * Remove `--collect_results_only` from MemCheckTests * Remove CLI keys from README * Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions * Updated supported Intel® Core™ processors list * Fixed table formatting * [Jenkinsfile] Bump infra (#2546) * [GNA] Documentation updates for 2021.1 (#2460) * [GNA] Documentation updates for 2021.1 * Take Mike's comments into account * More fixes according to review * Fix processor generation names * update api layouts * Added new index page with overview * Changed CMake and Python versions * Fixed links * some layout changes * some layout changes * nGraph Python API tutorial (#2500) * nGraph Python API tutorial * Tweaks * Code review comments * Code review comments * some layout changes * COnverted svg images to png * layouts * update layout * Added a label for nGraph_Python_API.md * fixed links * Fixed image * First draft of nGraph documentation (#2271) * First draft of nGraph documentation * updated according to review comments * Updated * Reviewed the nGraph Transformation section, added missing images * Update nGraph_dg.md * Delete python_api.md Removed since there is already the nGraph_Python_API.md document with a comprehensive overview. Co-authored-by: Andrey Zaytsev <andrey.zaytsev@intel.com> Co-authored-by: CCR\avladimi <anastasiya.ageeva@intel.com> * Feature/azaytsev/docs 2021 1 (#2560) * Removed FPGA from the documentation * Updated according to CVS-38225 * Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions * Updated supported Intel® Core™ processors list * Added new index page with overview * Changed CMake and Python versions * Fixed links * COnverted svg images to png * Added a label for nGraph_Python_API.md * fixed links * Fixed image * Update SW requirements in build instructions and change latest release to 2021.1 (#2565) * removed links to ../IE_DG/Introduction.md * Removed links to tools overview page as removed * some changes * Remove link to Integrate_your_kernels_into_IE.md * remove openvino_docs_IE_DG_Graph_debug_capabilities from layout as it was removed * Fixed links to images (#2569) * update layouts * Added deprecation note for PassConfig class (#2593) * Post-release fixes and installation path changes * Added pip install documentation (#2465) * Added pip install documentation * Change references * tiny fixes of links * Update installing-openvino-pip.md Co-authored-by: Alina Alborova <alina.alborova@intel.com> * Update OpenVino ONNX CI check (#2599) * Update OpenVino ONNX CI * Change parallel execution to single * Enlarge timeout * Remove timeout * Add timeout to test execution * Added PIP installation and Build from Source to the layout * Fixed formatting issue, removed broken link * Renamed section EXAMPLES to RESOURCES according to review comments * add mo faq navigation by url param * Skip hanging test case of OpenVino ONNX CI (#2608) * Update OpenVino ONNX CI * Change parallel execution to single * Enlarge timeout * Remove timeout * Add timeout to test execution * Skip hanging test * Add description to skip issue * Removed DLDT description * Replaced wrong links * MInor fix for path to the cpp samples * fixes * Update ops.py * Fix style * Improve pip installation guide (#2644) * Improve pip installation guide * Updated after comments * Feature/ntyukaev/separate layout (#2629) * convert to doxygen comments * layouts and code comments * separate layout * Changed layouts * Removed FPGA from the documentation * Updated according to CVS-38225 * some changes * Made changes to benchmarks according to review comments * Added logo info to the Legal_Information, updated Ubuntu, CentOS supported versions * Updated supported Intel® Core™ processors list * Fixed table formatting * update api layouts * Added new index page with overview * Changed CMake and Python versions * Fixed links * some layout changes * some layout changes * some layout changes * COnverted svg images to png * layouts * update layout * Added a label for nGraph_Python_API.md * fixed links * Fixed image * removed links to ../IE_DG/Introduction.md * Removed links to tools overview page as removed * some changes * Remove link to Integrate_your_kernels_into_IE.md * remove openvino_docs_IE_DG_Graph_debug_capabilities from layout as it was removed * update layouts * Post-release fixes and installation path changes * Added PIP installation and Build from Source to the layout * Fixed formatting issue, removed broken link * Renamed section EXAMPLES to RESOURCES according to review comments * add mo faq navigation by url param * Removed DLDT description * Replaced wrong links * MInor fix for path to the cpp samples * fixes * Update ops.py * Fix style Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com> Co-authored-by: Tyukaev <nikolay.tyukaev@intel.com> Co-authored-by: aalborov <alina.alborova@intel.com> Co-authored-by: Rafal Blaczkowski <rafal.blaczkowski@intel.com> Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com> * Fixed CVS-35316 (#2072) (#2670) Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com> * [install_dependencies.sh] install latest cmake if current version is lower 3.13 (#2695) (#2701) * [install_dependencies.sh] install latest cmake if current version is lower 3.13 * add shellcheck for Ubuntu * install python 2.7 for Ubuntu * Removed redundant file * Exclude files that we didn't changed from merging Co-authored-by: Sergey Shlyapnikov <sergey.shlyapnikov@intel.com> Co-authored-by: Denis Orlov <denis.orlov@intel.com> Co-authored-by: Kamil Magierski <kamil.magierski@intel.com> Co-authored-by: Anna Alberska <anna.alberska@intel.com> Co-authored-by: Edward Shogulin <edward.shogulin@intel.com> Co-authored-by: Artyom Anokhov <artyom.anokhov@intel.com> Co-authored-by: Tomasz Dołbniak <tomasz.dolbniak@intel.com> Co-authored-by: Ilya Churaev <ilya.churaev@intel.com> Co-authored-by: Roman Vyunov (Intel) <roman.vyunov@intel.com> Co-authored-by: Maksim Doronin <maksim.doronin@intel.com> Co-authored-by: Svetlana Dolinina <svetlana.a.dolinina@intel.com> Co-authored-by: Evgeny Talanin <evgeny.talanin@intel.com> Co-authored-by: Evgenya Stepyreva <evgenya.stepyreva@intel.com> Co-authored-by: Maxim Kurin <maxim.kurin@intel.com> Co-authored-by: Nikolay Shchegolev <nikolay.shchegolev@intel.com> Co-authored-by: Andrew Bakalin <andrew.bakalin@intel.com> Co-authored-by: Gorokhov Dmitriy <dmitry.gorokhov@intel.com> Co-authored-by: Evgeny Latkin <evgeny.latkin@intel.com> Co-authored-by: Maxim Shevtsov <maxim.y.shevtsov@intel.com> Co-authored-by: Alexey Suhov <alexey.suhov@intel.com> Co-authored-by: Alexander Novak <sasha-novak@yandex.ru> Co-authored-by: Vladislav Vinogradov <vlad.vinogradov@intel.com> Co-authored-by: Vladislav Volkov <vladislav.volkov@intel.com> Co-authored-by: Vladimir Gavrilov <vladimir.gavrilov@intel.com> Co-authored-by: Zoe Cayetano <zoe.cayetano@intel.com> Co-authored-by: Dmitrii Denisov <dmitrii.denisov@intel.com> Co-authored-by: Irina Efode <irina.efode@intel.com> Co-authored-by: Evgeny Lazarev <evgeny.lazarev@intel.com> Co-authored-by: Mikhail Ryzhov <mikhail.ryzhov@intel.com> Co-authored-by: Vitaliy Urusovskij <vitaliy.urusovskij@intel.com> Co-authored-by: Nikolay Tyukaev <ntyukaev_lo@jenkins.inn.intel.com> Co-authored-by: Nikolay Tyukaev <nikolay.tyukaev@intel.com> Co-authored-by: Gleb Kazantaev <gleb.kazantaev@intel.com> Co-authored-by: Rafal Blaczkowski <rafal.blaczkowski@intel.com> Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com> Co-authored-by: Anastasiya Ageeva <anastasiya.ageeva@intel.com> Co-authored-by: Maksim Proshin <mvproshin@gmail.com> Co-authored-by: Alina Alborova <alina.alborova@intel.com> Co-authored-by: Maxim Vafin <maxim.vafin@intel.com> Co-authored-by: azhogov <alexander.zhogov@intel.com> Co-authored-by: Alina Kladieva <alina.kladieva@intel.com> Co-authored-by: Michał Karzyński <4430709+postrational@users.noreply.github.com> Co-authored-by: Anton Romanov <anton.romanov@intel.com>
This commit is contained in:
parent
6e5a4714ac
commit
940eb43095
|
|
@ -46,9 +46,6 @@ The open source version of Inference Engine includes the following plugins:
|
|||
| MYRIAD plugin | Intel® Movidius™ Neural Compute Stick powered by the Intel® Movidius™ Myriad™ 2, Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X |
|
||||
| Heterogeneous plugin | Heterogeneous plugin enables computing for inference on one network on several Intel® devices. |
|
||||
|
||||
Inference Engine plugin for Intel® FPGA is distributed only in a binary form,
|
||||
as a part of [Intel® Distribution of OpenVINO™].
|
||||
|
||||
## Build on Linux\* Systems
|
||||
|
||||
The software was validated on:
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ For a step-by-step walk-through creating and executing a custom layer, see [Cust
|
|||
- Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit)
|
||||
- OpenVINO™ toolkit online documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org)
|
||||
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
- [Kernel Extensivility in the Inference Engine Developer Guide](../IE_DG/Integrate_your_kernels_into_IE.md)
|
||||
- [Inference Engine Extensibility Mechanism](../IE_DG/Extensibility_DG/Intro.md)
|
||||
- [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md)
|
||||
- [Overview of OpenVINO™ Toolkit Pre-Trained Models](@ref omz_models_intel_index)
|
||||
- [Inference Engine Tutorials](https://github.com/intel-iot-devkit/inference-tutorials-generic)
|
||||
|
|
|
|||
|
|
@ -42,8 +42,6 @@ inference of a pre-trained and optimized deep learning model and a set of sample
|
|||
|
||||
## Table of Contents
|
||||
|
||||
* [Introduction to Intel® Deep Learning Deployment Toolkit](Introduction.md)
|
||||
|
||||
* [Inference Engine API Changes History](API_Changes.md)
|
||||
|
||||
* [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
|
|
@ -76,7 +74,6 @@ inference of a pre-trained and optimized deep learning model and a set of sample
|
|||
* [Supported Devices](supported_plugins/Supported_Devices.md)
|
||||
* [GPU](supported_plugins/CL_DNN.md)
|
||||
* [CPU](supported_plugins/CPU.md)
|
||||
* [FPGA](supported_plugins/FPGA.md)
|
||||
* [VPU](supported_plugins/VPU.md)
|
||||
* [MYRIAD](supported_plugins/MYRIAD.md)
|
||||
* [HDDL](supported_plugins/HDDL.md)
|
||||
|
|
@ -88,4 +85,4 @@ inference of a pre-trained and optimized deep learning model and a set of sample
|
|||
|
||||
* [Known Issues](Known_Issues_Limitations.md)
|
||||
|
||||
**Typical Next Step:** [Introduction to Intel® Deep Learning Deployment Toolkit](Introduction.md)
|
||||
**Typical Next Step:** [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ Glossary of terms used in the Inference Engine
|
|||
| :--- | :--- |
|
||||
| Batch | Number of images to analyze during one call of infer. Maximum batch size is a property of the network and it is set before loading of the network to the plugin. In NHWC, NCHW and NCDHW image data layout representation, the N refers to the number of images in the batch |
|
||||
| Blob | Memory container used for storing inputs, outputs of the network, weights and biases of the layers |
|
||||
| Device (Affinitity) | A preferred Intel(R) hardware device to run the inference (CPU, GPU, FPGA, etc.) |
|
||||
| Device (Affinitity) | A preferred Intel(R) hardware device to run the inference (CPU, GPU, etc.) |
|
||||
| Extensibility mechanism, Custom layers | The mechanism that provides you with capabilities to extend the Inference Engine and Model Optimizer so that they can work with topologies containing layers that are not yet supported |
|
||||
| <code>ICNNNetwork</code> | An Interface of the Convolutional Neural Network that Inference Engine reads from IR. Consists of topology, weights and biases |
|
||||
| <code>IExecutableNetwork</code> | An instance of the loaded network which allows the Inference Engine to request (several) infer requests and perform inference synchronously or asynchronously |
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
# Graph Debug Capabilities {#openvino_docs_IE_DG_Graph_debug_capabilities}
|
||||
|
||||
Inference Engine supports two different objects for a graph representation: the nGraph function and
|
||||
CNNNetwork. Both representations provide an API to get detailed information about the graph structure.
|
||||
|
||||
## nGraph Function
|
||||
|
||||
To receive additional messages about applied graph modifications, rebuild the nGraph library with
|
||||
the `-DNGRAPH_DEBUG_ENABLE=ON` option.
|
||||
|
||||
To visualize the nGraph function to the xDot format or to an image file, use the
|
||||
`ngraph::pass::VisualizeTree` graph transformation pass:
|
||||
|
||||
@snippet openvino/docs/snippets/Graph_debug_capabilities0.cpp part0
|
||||
|
||||
## CNNNetwork
|
||||
|
||||
To serialize the CNNNetwork to the Inference Engine Intermediate Representation (IR) format, use the
|
||||
`CNNNetwork::serialize(...)` method:
|
||||
|
||||
@snippet openvino/docs/snippets/Graph_debug_capabilities1.cpp part1
|
||||
|
||||
> **NOTE**: CNNNetwork created from the nGraph function might differ from the original nGraph
|
||||
> function because the Inference Engine applies some graph transformation.
|
||||
|
|
@ -27,7 +27,7 @@ latency penalty. So, for more real-time oriented usages, lower batch sizes (as l
|
|||
Refer to the [Benchmark App](../../inference-engine/samples/benchmark_app/README.md) sample, which allows latency vs. throughput measuring.
|
||||
|
||||
## Using Async API
|
||||
To gain better performance on accelerators, such as VPU or FPGA, the Inference Engine uses the asynchronous approach (see
|
||||
To gain better performance on accelerators, such as VPU, the Inference Engine uses the asynchronous approach (see
|
||||
[Integrating Inference Engine in Your Application (current API)](Integrate_with_customer_application_new_API.md)).
|
||||
The point is amortizing the costs of data transfers, by pipe-lining, see [Async API explained](@ref omz_demos_object_detection_demo_ssd_async_README).
|
||||
Since the pipe-lining relies on the availability of the parallel slack, running multiple inference requests in parallel is essential.
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ The OpenVINO™ Python\* package includes the following sub-packages:
|
|||
- `openvino.tools.benchmark` - Measure latency and throughput.
|
||||
|
||||
## See Also
|
||||
* [Introduction to Intel's Deep Learning Inference Engine](Introduction.md)
|
||||
* [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
|
|
|
|||
|
|
@ -49,9 +49,11 @@ You can download the [pre-trained models](@ref omz_models_intel_index) using the
|
|||
|
||||
The officially supported Linux* build environment is the following:
|
||||
|
||||
* Ubuntu* 16.04 LTS 64-bit or CentOS* 7.4 64-bit
|
||||
* GCC* 5.4.0 (for Ubuntu* 16.04) or GCC* 4.8.5 (for CentOS* 7.4)
|
||||
* CMake* version 2.8.12 or higher
|
||||
* Ubuntu* 18.04 LTS 64-bit or CentOS* 7.6 64-bit
|
||||
* GCC* 7.5.0 (for Ubuntu* 18.04) or GCC* 4.8.5 (for CentOS* 7.6)
|
||||
* CMake* version 3.10 or higher
|
||||
|
||||
> **NOTE**: For building samples from the open-source version of OpenVINO™ toolkit, see the [build instructions on GitHub](https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md).
|
||||
|
||||
To build the C or C++ sample applications for Linux, go to the `<INSTALL_DIR>/inference_engine/samples/c` or `<INSTALL_DIR>/inference_engine/samples/cpp` directory, respectively, and run the `build_samples.sh` script:
|
||||
```sh
|
||||
|
|
@ -99,7 +101,7 @@ for the debug configuration — in `<path_to_build_directory>/intel64/Debug/`.
|
|||
The recommended Windows* build environment is the following:
|
||||
* Microsoft Windows* 10
|
||||
* Microsoft Visual Studio* 2017, or 2019
|
||||
* CMake* version 2.8.12 or higher
|
||||
* CMake* version 3.10 or higher
|
||||
|
||||
> **NOTE**: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
|
||||
|
||||
|
|
@ -181,4 +183,4 @@ sample, read the sample documentation by clicking the sample name in the samples
|
|||
list above.
|
||||
|
||||
## See Also
|
||||
* [Introduction to Intel's Deep Learning Inference Engine](Introduction.md)
|
||||
* [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
|
|
|
|||
|
|
@ -14,4 +14,4 @@ The OpenVINO™ toolkit installation includes the following tools:
|
|||
|
||||
|
||||
## See Also
|
||||
* [Introduction to Deep Learning Inference Engine](Introduction.md)
|
||||
* [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ Introduction to Inference Engine {#openvino_docs_IE_DG_inference_engine_intro}
|
|||
|
||||
After you have used the Model Optimizer to create an Intermediate Representation (IR), use the Inference Engine to infer the result for a given input data.
|
||||
|
||||
Inference Engine is a set of C++ libraries providing a common API to deliver inference solutions on the platform of your choice: CPU, GPU, VPU, or FPGA. Use the Inference Engine API to read the Intermediate Representation, set the input and output formats, and execute the model on devices. While the C++ libraries is the primary implementation, C libraries and Python bindings are also available.
|
||||
Inference Engine is a set of C++ libraries providing a common API to deliver inference solutions on the platform of your choice: CPU, GPU, or VPU. Use the Inference Engine API to read the Intermediate Representation, set the input and output formats, and execute the model on devices. While the C++ libraries is the primary implementation, C libraries and Python bindings are also available.
|
||||
|
||||
For Intel® Distribution of OpenVINO™ toolkit, Inference Engine binaries are delivered within release packages.
|
||||
|
||||
|
|
@ -13,7 +13,7 @@ To learn about how to use the Inference Engine API for your application, see the
|
|||
|
||||
For complete API Reference, see the [API Reference](usergroup29.html) section.
|
||||
|
||||
Inference Engine uses a plugin architecture. Inference Engine plugin is a software component that contains complete implementation for inference on a certain Intel® hardware device: CPU, GPU, VPU, FPGA, etc. Each plugin implements the unified API and provides additional hardware-specific APIs.
|
||||
Inference Engine uses a plugin architecture. Inference Engine plugin is a software component that contains complete implementation for inference on a certain Intel® hardware device: CPU, GPU, VPU, etc. Each plugin implements the unified API and provides additional hardware-specific APIs.
|
||||
|
||||
Modules in the Inference Engine component
|
||||
---------------------------------------
|
||||
|
|
@ -53,7 +53,6 @@ For each supported target device, Inference Engine provides a plugin — a DLL/s
|
|||
| ------------- | ------------- |
|
||||
|CPU| Intel® Xeon® with Intel® AVX2 and AVX512, Intel® Core™ Processors with Intel® AVX2, Intel® Atom® Processors with Intel® SSE |
|
||||
|GPU| Intel® Processor Graphics, including Intel® HD Graphics and Intel® Iris® Graphics
|
||||
|FPGA| Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA, Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Speed Grade 2) |
|
||||
|MYRIAD| Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X|
|
||||
|GNA| Intel® Speech Enabling Developer Kit, Amazon Alexa* Premium Far-Field Developer Kit, Intel® Pentium® Silver J5005 Processor, Intel® Pentium® Silver N5000 Processor, Intel® Celeron® J4005 Processor, Intel® Celeron® J4105 Processor, Intel® Celeron® Processor N4100, Intel® Celeron® Processor N4000, Intel® Core™ i3-8121U Processor, Intel® Core™ i7-1065G7 Processor, Intel® Core™ i7-1060G7 Processor, Intel® Core™ i5-1035G4 Processor, Intel® Core™ i5-1035G7 Processor, Intel® Core™ i5-1035G1 Processor, Intel® Core™ i5-1030G7 Processor, Intel® Core™ i5-1030G4 Processor, Intel® Core™ i3-1005G1 Processor, Intel® Core™ i3-1000G1 Processor, Intel® Core™ i3-1000G4 Processor
|
||||
|HETERO|Automatic splitting of a network inference between several devices (for example if a device doesn't support certain layers|
|
||||
|
|
@ -65,7 +64,6 @@ The table below shows the plugin libraries and additional dependencies for Linux
|
|||
|--------|------------------------|-------------------------------------------------|--------------------------|--------------------------------------------------------------------------------------------------------|
|
||||
| CPU | `libMKLDNNPlugin.so` | `libinference_engine_lp_transformations.so` | `MKLDNNPlugin.dll` | `inference_engine_lp_transformations.dll` |
|
||||
| GPU | `libclDNNPlugin.so` | `libinference_engine_lp_transformations.so`, `libOpenCL.so` | `clDNNPlugin.dll` | `OpenCL.dll`, `inference_engine_lp_transformations.dll` |
|
||||
| FPGA | `libdliaPlugin.so` | `libdla_compiler_core.so`, `libdla_runtime_core.so`, `libcrypto.so`, `libalteracl.so`, `liblpsolve5525.so`, `libprotobuf.so`, `libacl_emulator_kernel_rt.so` | `dliaPlugin.dll` | `dla_compiler_core.dll`, `dla_runtime_core.dll`, `crypto.dll`, `alteracl.dll`, `lpsolve5525.dll`, `protobuf.dll`, `acl_emulator_kernel_rt.dll`
|
||||
| MYRIAD | `libmyriadPlugin.so` | `libusb.so`, `libinference_engine_lp_transformations.so` | `myriadPlugin.dll` | `usb.dll`, `inference_engine_lp_transformations.dll` |
|
||||
| HDDL | `libHDDLPlugin.so` | `libbsl.so`, `libhddlapi.so`, `libmvnc-hddl.so`, `libinference_engine_lp_transformations.so`| `HDDLPlugin.dll` | `bsl.dll`, `hddlapi.dll`, `json-c.dll`, `libcrypto-1_1-x64.dll`, `libssl-1_1-x64.dll`, `mvnc-hddl.dll`, `inference_engine_lp_transformations.dll` |
|
||||
| GNA | `libGNAPlugin.so` | `libgna.so`, `libinference_engine_lp_transformations.so` | `GNAPlugin.dll` | `gna.dll`, `inference_engine_lp_transformations.dll` |
|
||||
|
|
|
|||
|
|
@ -1,134 +0,0 @@
|
|||
# Introduction to nGraph Flow in Inference Engine {#openvino_docs_IE_DG_nGraph_Flow}
|
||||
|
||||
## New Run-Time Intermediate Representation (IR): nGraph
|
||||
|
||||
Starting from the OpenVINO™ release 2020.1, the Inference Engine integrates the
|
||||
nGraph Core.
|
||||
That implies that the Inference Engine uses a new way to represent a model in run time underneath of
|
||||
the conventional `CNNNetwork` API, which is an instance of `ngraph::Function`.
|
||||
|
||||
Besides the representation update, nGraph integration resulted in the following changes and new features:
|
||||
|
||||
1. New operations sets. When operations from the nGraph Core were combined with conventional layers
|
||||
from `CNNNetwork`, there were created a [new sets of operations called `opset1`, `opset2` and etc.](../ops/opset.md),
|
||||
which covered both interfaces except several not very important cases.
|
||||
Operations from `opset3` are generated by the Model Optimizer and are accepted in the Inference Engine.
|
||||
|
||||
2. New version approach that attaches a version to each operation rather than to the entire IR file format.
|
||||
IR is still versioned but has a different meaning. For details, see [Deep Learning Network Intermediate Representation and Operation Sets in OpenVINO™](../MO_DG/IR_and_opsets.md).
|
||||
|
||||
3. Creating models in run-time without loading IR from an xml/binary file. You can enable it by creating
|
||||
`ngraph::Function` passing it to `CNNNetwork`.
|
||||
|
||||
4. Run-time reshape capability and constant folding are implemented through the nGraph code for more operations compared to previous releases.
|
||||
As a result, more models can be reshaped. For details, see the [dedicated guide about the reshape capability](ShapeInference.md).
|
||||
|
||||
5. Loading model from ONNX format without converting it to the Inference Engine IR.
|
||||
|
||||
The conventional flow that is not based on nGraph is still available.
|
||||
The complete picture of co-existence of legacy and new flows is presented below.
|
||||
The rest of the document describes the coexistence of legacy and new flows showed in the picture below:
|
||||
|
||||

|
||||
|
||||
|
||||
## Read the Intermediate Representation to `CNNNetwork`
|
||||
|
||||
As the new operation set is introduced, the Model Optimizer generates the IR version 10 using the new operations by default.
|
||||
Each layer generated in the IR has a semantics matching to the corresponding operation from the nGraph namespaces `opset1`, `opset2` etc.
|
||||
The IR version 10 automatically triggers the nGraph flow inside the Inference Engine.
|
||||
When such IR is read in an application, the Inference Engine IR reader produces `CNNNetwork` that encapsulates the `ngraph::Function` instance underneath.
|
||||
Thus the OpenVINO IR becomes a new serialization format for the nGraph IR, and it can be deserialized reading the `CNNNetwork`.
|
||||
|
||||
> **IMPORTANT**: Conventional interfaces are used (`CNNNetwork`, the reader), so no changes required in most applications.
|
||||
|
||||
> **NOTE**: While you still can use old APIs, there is an independent process of continuous improvements in the Inference Engine API.
|
||||
> These changes are independent of nGraph integration and do not enable or disable new features.
|
||||
|
||||
Interpretation of the IR version 10 differs from the old IR version.
|
||||
Besides having a different operations set, the IR version 10 ignores the shapes and data types assigned to the ports in an XML file.
|
||||
Both shapes and types are reinferred while loading to the Inference Engine using the nGraph shape and type propagation function that is a part of each nGraph operation.
|
||||
|
||||
### Legacy IR Versions
|
||||
|
||||
Starting from the OpenVINO™ release 2021.1 you cannot read IR version 7 and lower in the Inference Engine.
|
||||
|
||||
## Build a Model in the Application
|
||||
|
||||
Alternative method to feed the Inference Engine with a model is to create the model in the run time.
|
||||
It is achieved by creation of the `ngraph::Function` construction using nGraph operation classes and optionally user-defined operations.
|
||||
For details, see [Add Custom nGraph Operations](Extensibility_DG/AddingNGraphOps.md) and [examples](nGraphTutorial.md).
|
||||
At this stage, the code is completely independent of the rest of the Inference Engine code and can be built separately.
|
||||
After you construct an instance of `ngraph::Function`, you can use it to create `CNNNetwork` by passing it to the new constructor for this class.
|
||||
|
||||
Initializing `CNNNetwork` from the nGraph Function means encapsulating the object and not converting it to a conventional representation.
|
||||
Going to low-level details, technically it is achieved by using another class for the `CNNNetwork` internals.
|
||||
The old representation that is used for former versions of IR before version 10 uses `CNNNetworkImpl`.
|
||||
The new representation that is built around nGraph uses `CNNNetworkNGraphImpl`.
|
||||
|
||||

|
||||
|
||||
## Automatic Conversion to the Old Representation
|
||||
|
||||
The old representation is still required in the cases listed below.
|
||||
When old representation is required, the conversion from the `ngraph::Function` to the old representation is called automatically.
|
||||
The following methods lead to the automatic conversion:
|
||||
|
||||
1. Using the old API, which is expected to produce an old representation. Guaranteed to be read-only. Once you call such a method, the original nGraph representation is preserved and continues to be used in the successive calls.
|
||||
|
||||
1.1. `CNNNetwork::serialize`. Dumps the old representation after automatically called conversion. Cannot be used to dump IR V10. For details, see [Graph Debug Capabilities](Graph_debug_capabilities.md).
|
||||
|
||||
2. Calling `CNNNetwork` methods that modify the model. After that nGraph representation is lost and cannot be used afterwards.
|
||||
|
||||
1.1. `CNNNetwork::addLayer`
|
||||
|
||||
1.2. CNNNetwork::setBatchSize. Still implemented through old logic for backward compatibility without using nGraph capabilities.
|
||||
For details, see [Using Shape Inference](ShapeInference.md).
|
||||
|
||||
3. Using methods that return objects inside an old representation.
|
||||
Using these methods does not mean modification of the model, but you are not limited by the API to make read-only changes.
|
||||
These methods should be used in the read-only mode with respect to a model representation.
|
||||
If the model is changed, for example attribute of some layer is changed or layers are reconnected, the modification is lost whenever any method that uses nGraph is called, including methods inside plugins like CNNNetwork::reshape.
|
||||
It is hard to predict whether the nGraph function is used in a plugin or other methods of CNNNetworks, so modifying a network using the following methods is *strongly not recommended*.
|
||||
This is an important limitation that is introduced for the old API calls listed below:
|
||||
|
||||
1.1. `Data::getInputTo`
|
||||
|
||||
1.2. `Data::getCreatorLayer`
|
||||
|
||||
1.3. `CNNNetwork::getLayerByName`
|
||||
|
||||
1.4. Iterating over `CNNLayer` objects in `CNNNetwork`: `CNNNetwork::begin`, `details::CNNNetworkIterator` class.
|
||||
|
||||
4. Using a conventional plugin that accepts the old representation only.
|
||||
|
||||
Though the conversion is always a one-way process, which means there is no method to convert back, there are important caveats.
|
||||
|
||||
In the cases [1] and [3], both representations are held underneath and you should use the old representation in the read-only mode only from the caller side.
|
||||
It is hard to track from the Inference Engine side whether the API is used in the read-only mode or for modification of the model.
|
||||
|
||||
That is why when using potentially modifying methods listed in section [3] above, you should not modify the model via those methods.
|
||||
Use a direct manipulation of the nGraph function instead.
|
||||
|
||||
## Conversion Function
|
||||
|
||||
Inference Engine implements the conversion function that is used when the nGraph function is transformed to the old `CNNNetworkImpl` representation.
|
||||
This conversion function is hidden and you cannot call it directly from the application.
|
||||
Nevertheless, it is an important component of the model transformation pipeline in the Inference Engine.
|
||||
Some issues of models may be caught during the conversion process in this function.
|
||||
Exceptions are thrown in this function, and you should know what this function does to find a root cause.
|
||||
|
||||
The conversion function performs the following steps:
|
||||
|
||||
1. Convert and decompose some operations as the first step of the nGraph function preparation for optimization.
|
||||
Reduce operation set to easily optimize it at the next stages.
|
||||
For example, decomposing of BatchNormInference happens at this stage.
|
||||
|
||||
2. Optimizing transformations that usually happen in the Model Optimizer are called here, because the nGraph function is not always read from an already optimized IR.
|
||||
|
||||
3. Changing operation set from `opsetX` to legacy layer semantics described in the [Legacy Layers Catalog](../MO_DG/prepare_model/convert_model/Legacy_IR_Layers_Catalog_Spec.md).
|
||||
The model is still represented as the nGraph function at this stage, but the operation set is completely different.
|
||||
|
||||
4. One-to-one conversion of nGraph representation to the corresponding `CNNNetworkImpl` without changing its semantics.
|
||||
You can see the result of the conversion by calling the `CNNNetwork::serialize` method, which produces legacy IR semantics, which is not nGraph-based even if it is applied to `CNNNetwork` constructed from the nGraph Function.
|
||||
It may help in debugging, see [Graph Debug Capabilities](Graph_debug_capabilities.md) to view all options for dumping new and old IR representations.
|
||||
|
|
@ -14,8 +14,8 @@ OpenVINO™ toolkit is officially supported and validated on the following platf
|
|||
|
||||
| Host | OS (64-bit) |
|
||||
| :--- | :--- |
|
||||
| Development | Ubuntu* 16.04/CentOS* 7.4/MS Windows* 10 |
|
||||
| Target | Ubuntu* 16.04/CentOS* 7.4/MS Windows* 10 |
|
||||
| Development | Ubuntu* 18.04, CentOS* 7.5, MS Windows* 10 |
|
||||
| Target | Ubuntu* 18.04, CentOS* 7.5, MS Windows* 10 |
|
||||
|
||||
The CPU Plugin supports inference on Intel® Xeon® with Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® Advanced Vector Extensions 512 (Intel® AVX-512), and AVX512_BF16, Intel® Core™
|
||||
Processors with Intel® AVX2, Intel Atom® Processors with Intel® Streaming SIMD Extensions (Intel® SSE).
|
||||
|
|
|
|||
|
|
@ -19,294 +19,4 @@ Intel will be transitioning to the next-generation programmable deep-learning so
|
|||
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
## Introducing FPGA Plugin
|
||||
|
||||
The FPGA plugin provides an opportunity for high performance scoring of neural networks on Intel® FPGA devices.
|
||||
|
||||
> **NOTE**: Before using the FPGA plugin, ensure that you have installed and configured either the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) or the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For installation and configuration details, see [FPGA installation](Supported_Devices.md).
|
||||
|
||||
## Heterogeneous Execution
|
||||
|
||||
When your topology contains layers that are not supported by the Intel® FPGA plugin, use [Heterogeneous plugin](HETERO.md) with dedicated fallback device.
|
||||
|
||||
If a network has layers that are not supported in the Intel® FPGA plugin or in a fallback plugin, you can implement a custom layer on the CPU/GPU and use the [Extensibility mechanism](../Extensibility_DG/Intro.md).
|
||||
In addition to adding custom kernels, you must still point to the CPU plugin or the GPU plugin as fallback devices for heterogeneous plugin.
|
||||
|
||||
## Supported Networks
|
||||
|
||||
The following network topologies are supported in heterogeneous mode, running on FPGA with fallback to CPU or GPU devices.
|
||||
|
||||
> **IMPORTANT**: Use only bitstreams from the current version of the OpenVINO toolkit. Bitstreams from older versions of the OpenVINO toolkit are incompatible with later versions of the OpenVINO toolkit. For example, you cannot use the `1-0-1_A10DK_FP16_Generic` bitstream, when the OpenVINO toolkit supports the `2019R2_PL2_FP16_InceptionV1_SqueezeNet_VGG_YoloV3.aocx` bitstream.
|
||||
|
||||
|
||||
| Network | Bitstreams (Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2)) | Bitstreams (Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA) |
|
||||
|:-------------------------------------|:-------------------------------------------------------------------|:---------------------------------------------------------------------------------------------|
|
||||
| AlexNet | 2020-4_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic, 2020-4_PL2_FP11_AlexNet_GoogleNet_Generic | 2020-4_RC_FP16_AlexNet_GoogleNet_Generic, 2020-4_RC_FP11_AlexNet_GoogleNet_Generic |
|
||||
| GoogleNet v1 | 2020-4_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic, 2020-4_PL2_FP11_AlexNet_GoogleNet_Generic | 2020-4_RC_FP16_AlexNet_GoogleNet_Generic, 2020-4_RC_FP11_AlexNet_GoogleNet_Generic |
|
||||
| VGG-16 | 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_InceptionV1_SqueezeNet_TinyYolo_VGG, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| VGG-19 | 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_InceptionV1_SqueezeNet_TinyYolo_VGG, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| SqueezeNet v 1.0 | 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG, 2020-4_PL2_FP11_SqueezeNet | 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3, 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3 |
|
||||
| SqueezeNet v 1.1 | 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG, 2020-4_PL2_FP11_SqueezeNet | 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3, 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3 |
|
||||
| ResNet-18 | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| ResNet-50 | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| ResNet-101 | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| ResNet-152 | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| MobileNet (Caffe) | 2020-4_PL2_FP16_MobileNet_Clamp, 2020-4_PL2_FP11_MobileNet_Clamp | 2020-4_RC_FP16_MobileNet_Clamp, 2020-4_RC_FP11_MobileNet_Clamp |
|
||||
| MobileNet (TensorFlow) | 2020-4_PL2_FP16_MobileNet_Clamp, 2020-4_PL2_FP11_MobileNet_Clamp | 2020-4_RC_FP16_MobileNet_Clamp, 2020-4_RC_FP11_MobileNet_Clamp|
|
||||
| SqueezeNet-based variant of the SSD* | 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG, 2020-4_PL2_FP11_SqueezeNet | 2020-4_RC_FP16_InceptionV1_SqueezeNet_TinyYolo_VGG, 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3 |
|
||||
| ResNet-based variant of SSD | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_ResNet_TinyYolo_VGG |
|
||||
| RMNet | 2020-4_PL2_FP16_RMNet, 2020-4_PL2_FP11_RMNet | 2020-4_RC_FP16_RMNet, 2020-4_RC_FP11_RMNet |
|
||||
| Yolo v3 | 2020-4_PL2_FP16_ResNet_YoloV3, 2020-4_PL2_FP11_YoloV3_ELU | 2020-4_RC_FP16_ResNet_YoloV3, 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3 |
|
||||
|
||||
|
||||
In addition to the list above, arbitrary topologies having big continues subgraphs consisting of layers supported by FPGA plugin are recommended to be executed on FPGA plugin.
|
||||
|
||||
## Bitstreams that are Optimal to Use with the Intel's Pre-Trained Models
|
||||
|
||||
The table below provides you with a list of Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) bitstreams that are optimal to use for the Intel's pre-trained models.
|
||||
|
||||
<details>
|
||||
<summary><strong>Click to expand/collapse the table</strong></summary>
|
||||
|
||||
| Model Name | FP11 Bitstreams | FP16 Bitstreams |
|
||||
| :--- | :--- | :--- |
|
||||
| action-recognition-0001-decoder | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| action-recognition-0001-encoder | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| age-gender-recognition-retail-0013 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| asl-recognition-0004 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| driver-action-recognition-adas-0002-decoder | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| driver-action-recognition-adas-0002-encoder | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| emotions-recognition-retail-0003 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| face-detection-0100 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| face-detection-0102 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| face-detection-0104 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| face-detection-0105 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| face-detection-0106 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| face-detection-adas-0001 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| face-detection-adas-binary-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| face-detection-retail-0004 | 2020-3_PL2_FP11_TinyYolo_SSD300.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| face-detection-retail-0005 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| face-reidentification-retail-0095 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| facial-landmarks-35-adas-0002 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| faster-rcnn-resnet101-coco-sparse-60-0001 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| gaze-estimation-adas-0002 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| handwritten-japanese-recognition-0001 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| handwritten-score-recognition-0003 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| head-pose-estimation-adas-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| human-pose-estimation-0001 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| icnet-camvid-ava-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| icnet-camvid-ava-sparse-30-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| icnet-camvid-ava-sparse-60-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| image-retrieval-0001 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| instance-segmentation-security-0010 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| instance-segmentation-security-0050 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| instance-segmentation-security-0083 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| instance-segmentation-security-1025 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| landmarks-regression-retail-0009 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| license-plate-recognition-barrier-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| pedestrian-and-vehicle-detector-adas-0001 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| pedestrian-detection-adas-0002 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| pedestrian-detection-adas-binary-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| person-attributes-recognition-crossroad-0230 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-action-recognition-0005 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-action-recognition-0006 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-action-recognition-teacher-0002 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-asl-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| person-detection-raisinghand-recognition-0001 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-retail-0002 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-detection-retail-0013 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-reidentification-retail-0031 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_ELU.aocx |
|
||||
| person-reidentification-retail-0248 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-reidentification-retail-0249 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| person-reidentification-retail-0300 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| person-vehicle-bike-detection-crossroad-0078 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_ELU.aocx |
|
||||
| person-vehicle-bike-detection-crossroad-1016 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| product-detection-0001 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| resnet18-xnor-binary-onnx-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_RMNet.aocx |
|
||||
| resnet50-binary-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| road-segmentation-adas-0001 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| semantic-segmentation-adas-0001 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| single-image-super-resolution-1032 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_RMNet.aocx |
|
||||
| single-image-super-resolution-1033 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_RMNet.aocx |
|
||||
| text-detection-0003 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| text-detection-0004 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| text-image-super-resolution-0001 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_RMNet.aocx |
|
||||
| text-recognition-0012 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| text-spotting-0002-detector | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| text-spotting-0002-recognizer-decoder | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| text-spotting-0002-recognizer-encoder | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| unet-camvid-onnx-0001 | 2020-3_PL2_FP11_InceptionV1_ResNet_VGG.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| vehicle-attributes-recognition-barrier-0039 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| vehicle-detection-adas-0002 | 2020-3_PL2_FP11_YoloV3_ELU.aocx | 2020-3_PL2_FP16_SwishExcitation.aocx |
|
||||
| vehicle-detection-adas-binary-0001 | 2020-3_PL2_FP11_AlexNet_GoogleNet_Generic.aocx | 2020-3_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic.aocx |
|
||||
| vehicle-license-plate-detection-barrier-0106 | 2020-3_PL2_FP11_MobileNet_Clamp.aocx | 2020-3_PL2_FP16_MobileNet_Clamp.aocx |
|
||||
| yolo-v2-ava-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| yolo-v2-ava-sparse-35-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| yolo-v2-ava-sparse-70-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx |
|
||||
| yolo-v2-tiny-ava-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| yolo-v2-tiny-ava-sparse-30-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
| yolo-v2-tiny-ava-sparse-60-0001 | 2020-3_PL2_FP11_SqueezeNet.aocx | 2020-3_PL2_FP16_ResNet_YoloV3.aocx |
|
||||
|
||||
</details>
|
||||
|
||||
## <a name="TranslatingArchtoBitstream"></a>Translate from Architecture to FPGA Bitstream Files
|
||||
|
||||
Various FPGA bitstreams that support CNN are available in the OpenVINO™ toolkit package for FPGA.
|
||||
|
||||
To select the correct bitstream (`.aocx`) file for an architecture, select a network (for example, Resnet-18) from the table above for either the Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Speed Grade 1), Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Speed Grade 2) or the Intel® Programmable Acceleration Card (PAC) with Intel® Arria® 10 GX FPGA and note the corresponding architecture.
|
||||
|
||||
The following table describes several parameters that might help you to select the proper bitstream for your needs:
|
||||
|
||||
| Name | Board | Precision | LRN Support | Leaky ReLU Support | PReLU Support | Clamp Support | ELU Support |
|
||||
|:------------------------------------------|:--------------------------------------------------------------------------------|:----------|:------------|:-------------------|:--------------|:--------------|:------------|
|
||||
| 2020-4_PL2_FP11_AlexNet_GoogleNet_Generic | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | true | true | true | false | false |
|
||||
| 2020-4_PL2_FP11_SqueezeNet | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | true | true | false | false |
|
||||
| 2020-4_PL2_FP11_MobileNet_Clamp | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | true | true | true | false |
|
||||
| 2020-4_PL2_FP11_InceptionV1_ResNet_VGG | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | false | false | false | false |
|
||||
| 2020-4_PL2_FP11_RMNet | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | true | true | false | true |
|
||||
| 2020-4_PL2_FP11_TinyYolo_SSD300 | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | true | true | true | false | false |
|
||||
| 2020-4_PL2_FP11_YoloV3_ELU | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | true | true | false | true |
|
||||
| 2020-4_PL2_FP11_Streaming_InternalUseOnly | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | false | false | false | false |
|
||||
| 2020-4_PL2_FP11_Streaming_Slicing_InternalUseOnly | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | false | false | false | false |
|
||||
| 2020-4_PL2_FP11_SwishExcitation | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP11 | false | false | false | false | false |
|
||||
| 2020-4_PL2_FP16_AlexNet_GoogleNet_SSD300_Generic | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | true | true | true | false | false |
|
||||
| 2020-4_PL2_FP16_ELU | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | true | true | false | true |
|
||||
| 2020-4_PL2_FP16_MobileNet_Clamp | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | true | true | true | false |
|
||||
| 2020-4_PL2_FP16_ResNet_YoloV3 | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | true | true | false | false |
|
||||
| 2020-4_PL2_FP16_RMNet | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | true | true | false | true |
|
||||
| 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | true | true | false | false |
|
||||
| 2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG | Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Speed Grade 2) | FP16 | false | false | false | false | false |
|
||||
| 2020-4_RC_FP11_AlexNet_GoogleNet_Generic | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | true | true | true | false | false |
|
||||
| 2020-4_RC_FP11_RMNet | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | false | true | true | false | true |
|
||||
| 2020-4_RC_FP11_Streaming_InternalUseOnly | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | true | false | false | false | false |
|
||||
| 2020-4_RC_FP11_Streaming_Slicing_InternalUseOnly | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | true | false | false | false | false |
|
||||
| 2020-4_RC_FP11_ELU | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | false | true | true | false | true |
|
||||
| 2020-4_RC_FP11_SwishExcitation | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | false | false | false | false | false |
|
||||
| 2020-4_RC_FP11_InceptionV1_ResNet_SqueezeNet_TinyYolo_YoloV3 | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | false | true | true | false | false |
|
||||
| 2020-4_RC_FP11_MobileNet_Clamp | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP11 | false | true | true | true | false |
|
||||
| 2020-4_RC_FP16_AlexNet_GoogleNet_Generic | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | true | true | true | false | false |
|
||||
| 2020-4_RC_FP16_InceptionV1_SqueezeNet_TinyYolo_VGG | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | true | true | false | false |
|
||||
| 2020-4_RC_FP16_RMNet | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | true | true | false | true |
|
||||
| 2020-4_RC_FP16_SwishExcitation | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | false | false | false | false |
|
||||
| 2020-4_RC_FP16_MobileNet_Clamp | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | true | true | true | false |
|
||||
| 2020-4_RC_FP16_ResNet_YoloV3 | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | true | true | false | false |
|
||||
| 2020-4_RC_FP16_InceptionV1_SqueezeNet_YoloV3 | Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA | FP16 | false | true | true | false | false |
|
||||
|
||||
## Set Environment for Running the FPGA Plugin
|
||||
|
||||
To make the FPGA plugin run directly or through the heterogeneous plugin, set up the environment:
|
||||
1. Set up environment to access Intel® FPGA RTE for OpenCL:
|
||||
```
|
||||
source /opt/altera/aocl-pro-rte/aclrte-linux64/init_opencl.sh
|
||||
```
|
||||
2. Set the following environment variable and program the board with a DLA bitstream. Programming of the board is not supported during runtime and must be done before running an application.
|
||||
|
||||
| Variable | Setting |
|
||||
| :----------------------------------| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ACL_PCIE_USE_JTAG_PROGRAMMING | Set this variable to a value of 1 to force FPGA reprogramming using JTAG |
|
||||
|
||||
## Analyzing Heterogeneous Execution
|
||||
|
||||
Besides generation of .dot files, you can use the error listening mechanism:
|
||||
|
||||
```cpp
|
||||
class FPGA_ErrorListener : public InferenceEngine::IErrorListener
|
||||
{
|
||||
public:
|
||||
virtual void onError(const char *msg) noexcept override {
|
||||
std::cout << msg;
|
||||
}
|
||||
};
|
||||
...
|
||||
FPGA_ErrorListener err_listener;
|
||||
core.SetLogCallback(err_listener); // will be used for FPGA device as well
|
||||
```
|
||||
If during network loading some layers are decided to be executed on a fallback plugin, the following message is printed:
|
||||
|
||||
```cpp
|
||||
Layer (Name: detection_out, Type: DetectionOutput) is not supported:
|
||||
custom or unknown.
|
||||
Has (3) sets of inputs, must be 1, or 2.
|
||||
Input dimensions (2) should be 4.
|
||||
```
|
||||
|
||||
## Multiple FPGA Devices Support
|
||||
|
||||
The Inference Engine FPGA plugin provides an ability to load different networks on multiple FPGA devices. For example, to load two networks AlexNet and MobileNet v2 on two different FPGA devices, follow the steps below:
|
||||
|
||||
1. Program each FGPA device with a corresponding bitstream:
|
||||
```bash
|
||||
aocl program acl0 2019R3_PV_PL1_FP16_AlexNet_GoogleNet_InceptionV1_SSD300_Generic.aocx
|
||||
```
|
||||
```bash
|
||||
aocl program acl1 2019R3_PV_PL1_FP16_MobileNet_Clamp.aocx
|
||||
```
|
||||
For more information about bitstream programming instructions, refer to [Installation Guide for Linux* with Support for FPGA](Supported_Devices.md)
|
||||
2. All FPGA devices are enumerated with unique ID starting from `0`. By default, all networks are loaded to the default
|
||||
device with ID `0`. If you want to load a network on a particular non-default device, specify the `KEY_DEVICE_ID`
|
||||
parameter for C++ and `DEVICE_ID` parameter for Python\*.
|
||||
The following code snippets demonstrates how to load the AlexNet network on the FPGA device with ID `0` and the
|
||||
MobileNet v2 network on the device with ID `1`:
|
||||
* With C++:
|
||||
```cpp
|
||||
InferenceEngine::Core core;
|
||||
|
||||
// Load AlexNet network on the first FPGA device programmed with bitstream supporting AlexNet
|
||||
auto alexnetNetwork = core.ReadNetwork("alexnet.xml");
|
||||
auto exeNetwork1 = core.LoadNetwork(alexnetNetwork, "FPGA.0");
|
||||
|
||||
// Load MobileNet network on the second FPGA device programmed with MobileNet bitstream
|
||||
auto mobilenetNetwork = core.ReadNetwork("mobilenet_v2.xml");
|
||||
auto exeNetwork2 = core.LoadNetwork(mobilenetNetwork, "FPGA", { { KEY_DEVICE_ID, "1" } });
|
||||
```
|
||||
* With Python:
|
||||
```python
|
||||
# Load AlexNet network on the first FPGA device programmed with bitstream supporting AlexNet
|
||||
net1 = IENetwork(model="alexnet.xml", weights="alexnet.bin")
|
||||
plugin.load(network=net1, config={"DEVICE_ID": "0"})
|
||||
|
||||
# Load MobileNet network on the second FPGA device programmed with MobileNet bitstream
|
||||
net2 = IENetwork(model="mobilenet_v2.xml", weights="mobilenet_v2.bin")
|
||||
plugin.load(network=net2, config={"DEVICE_ID": "1"})
|
||||
```
|
||||
Note that you have to use asynchronous infer requests to utilize several FPGA devices, otherwise the execution on devices is performed sequentially.
|
||||
|
||||
## Import and Export Network Flow
|
||||
|
||||
Since the 2019 R4 release, FPGA and HETERO plugins support the export and import flow, which allows to export a compiled network from a plugin to a binary blob by running the command below:
|
||||
|
||||
```bash
|
||||
$ ./compile_tool -m resnet.xml -DLA_ARCH_NAME 4x2x16x32_fp16_sb9408_fcd1024_actk4_poolk4_normk1_owk2_image300x300x8192_mbfr -d HETERO:FPGA,CPU
|
||||
Inference Engine:
|
||||
API version ............ 2.1
|
||||
Build .................. 6db44e09a795cb277a63275ea1395bfcb88e46ac
|
||||
Description ....... API
|
||||
Done
|
||||
```
|
||||
|
||||
Once the command is executed, the binary blob named `resnet.blob` is created at the working directory. Refer to the [Compile tool](../../../inference-engine/tools/compile_tool/README.md) documentation for more details.
|
||||
|
||||
A compiled binary blob can be later imported via `InferenceEngine::Core::Import`:
|
||||
|
||||
```cpp
|
||||
InferenceEngine::Core core;
|
||||
std::ifstream strm("resnet.blob");
|
||||
auto execNetwork = core.Import(strm);
|
||||
```
|
||||
|
||||
## How to Interpret Performance Counters
|
||||
|
||||
As a result of collecting performance counters using <code>InferenceEngine::InferRequest::GetPerformanceCounts</code> you can find out performance data about execution on FPGA, pre-processing and post-processing data and data transferring from/to FPGA card.
|
||||
|
||||
If network is sliced to two parts that are executed on CPU, you can find performance data about Intel® MKL-DNN kernels, their types, and other useful information.
|
||||
|
||||
## Limitations of the FPGA Support for CNN
|
||||
|
||||
The Inference Engine FPGA plugin has limitations on network topologies, kernel parameters, and batch size.
|
||||
|
||||
* Depending on the bitstream loaded on the target device, the FPGA performs calculations with precision rates ranging from FP11 to FP16. This might have accuracy implications. Use the [Accuracy Checker](@ref omz_tools_accuracy_checker_README) to verify the network accuracy on the validation data set.
|
||||
* Networks that have many CNN layers that are not supported on FPGA stayed in topologies between supported layers might lead to dividing of graph to many subgraphs that might lead to `CL_OUT_OF_HOST_MEMORY` error. These topologies are not FPGA friendly for this release.
|
||||
* When you use the heterogeneous plugin, the affinity and distribution of nodes by devices depends on the FPGA bitstream that you use. Some layers might not be supported by a bitstream or parameters of the layer are not supported by the bitstream.
|
||||
|
||||
## See Also
|
||||
* [Supported Devices](Supported_Devices.md)
|
||||
For documentation for the FPGA plugin available in previous releases of Intel® Distribution of OpenVINO™ toolkit with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_IE_DG_supported_plugins_FPGA.html) and lower.
|
||||
|
|
@ -6,11 +6,12 @@ The Inference Engine MYRIAD plugin is developed for inference of neural networks
|
|||
|
||||
## Installation on Linux* OS
|
||||
|
||||
For installation instructions, refer to the [Installation Guide for Linux*](../../../inference-engine/samples/benchmark_app/README.md).
|
||||
For installation instructions, refer to the [Installation Guide for Linux*](../../install_guides/installing-openvino-linux.md).
|
||||
|
||||
|
||||
## Installation on Windows* OS
|
||||
|
||||
For installation instructions, refer to the [Installation Guide for Windows*](../../../inference-engine/samples/benchmark_app/README.md).
|
||||
For installation instructions, refer to the [Installation Guide for Windows*](../../install_guides/installing-openvino-windows.md).
|
||||
|
||||
## Supported networks
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ The Inference Engine provides unique capabilities to infer deep learning models
|
|||
|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
|[GPU plugin](CL_DNN.md) |Intel® Processor Graphics, including Intel® HD Graphics and Intel® Iris® Graphics |
|
||||
|[CPU plugin](CPU.md) |Intel® Xeon® with Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® Advanced Vector Extensions 512 (Intel® AVX-512), and AVX512_BF16, Intel® Core™ Processors with Intel® AVX2, Intel® Atom® Processors with Intel® Streaming SIMD Extensions (Intel® SSE) |
|
||||
|[FPGA plugin](FPGA.md) (available in the Intel® Distribution of OpenVINO™ toolkit) |Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Speed Grade 2), Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA |
|
||||
|[VPU plugins](VPU.md) (available in the Intel® Distribution of OpenVINO™ toolkit) |Intel® Neural Compute Stick 2 powered by the Intel® Movidius™ Myriad™ X, Intel® Vision Accelerator Design with Intel® Movidius™ VPUs |
|
||||
|[GNA plugin](GNA.md) (available in the Intel® Distribution of OpenVINO™ toolkit) |Intel® Speech Enabling Developer Kit, Amazon Alexa* Premium Far-Field Developer Kit, Intel® Pentium® Silver J5005 Processor, Intel® Pentium® Silver N5000 Processor, Intel® Celeron® J4005 Processor, Intel® Celeron® J4105 Processor, Intel® Celeron® Processor N4100, Intel® Celeron® Processor N4000, Intel® Core™ i3-8121U Processor, Intel® Core™ i7-1065G7 Processor, Intel® Core™ i7-1060G7 Processor, Intel® Core™ i5-1035G4 Processor, Intel® Core™ i5-1035G7 Processor, Intel® Core™ i5-1035G1 Processor, Intel® Core™ i5-1030G7 Processor, Intel® Core™ i5-1030G4 Processor, Intel® Core™ i3-1005G1 Processor, Intel® Core™ i3-1000G1 Processor, Intel® Core™ i3-1000G4 Processor|
|
||||
|[Multi-Device plugin](MULTI.md) |Multi-Device plugin enables simultaneous inference of the same network on several Intel® devices in parallel |
|
||||
|
|
@ -53,7 +52,6 @@ For example, the CHW value at index (c,h,w) is physically located at index (c\*H
|
|||
|:-------------|:----------------------:|:----------------------:|:----------------------:|
|
||||
|CPU plugin |Supported and preferred |Supported |Supported |
|
||||
|GPU plugin |Supported |Supported and preferred |Supported\* |
|
||||
|FPGA plugin |Supported |Supported |Not supported |
|
||||
|VPU plugins |Not supported |Supported |Not supported |
|
||||
|GNA plugin |Supported |Supported |Not supported |
|
||||
<br>\* - currently, only limited set of topologies might benefit from enabling I8 model on GPU<br>
|
||||
|
|
@ -66,7 +64,6 @@ the supported models formats depends on the actual underlying devices. _Generall
|
|||
|:-------------|:--------:|:-------------:|:-------------:|:-------------:|:------------:|:-------------:|
|
||||
|CPU plugin |Supported |Not supported |Supported |Supported |Not supported |Supported |
|
||||
|GPU plugin |Supported |Supported\* |Supported\* |Supported\* |Not supported |Supported\* |
|
||||
|FPGA plugin |Supported |Supported\* |Supported |Supported |Not supported |Supported |
|
||||
|VPU plugins |Supported |Supported |Supported |Not supported |Not supported |Not supported |
|
||||
|GNA plugin |Supported |Not supported |Supported |Not supported |Supported |Supported |
|
||||
|
||||
|
|
@ -80,7 +77,6 @@ the supported input precision depends on the actual underlying devices. _Genera
|
|||
|:-------------|:--------:|:------------:|
|
||||
|CPU plugin |Supported |Not supported |
|
||||
|GPU plugin |Supported |Supported |
|
||||
|FPGA plugin |Supported |Supported |
|
||||
|VPU plugins |Supported |Supported |
|
||||
|GNA plugin |Supported |Not supported |
|
||||
For [Multi-Device](MULTI.md) and [Heterogeneous](HETERO.md) execution
|
||||
|
|
@ -92,7 +88,6 @@ the supported output precision depends on the actual underlying devices. _Gener
|
|||
|:-------------|:------------:|:------------:|:------------:|:------------:|
|
||||
|CPU plugin |Supported |Supported |Supported |Supported |
|
||||
|GPU plugin |Supported |Supported |Supported |Supported |
|
||||
|FPGA plugin |Not supported |Supported |Supported |Not supported |
|
||||
|VPU plugins |Not supported |Supported |Supported |Supported |
|
||||
|GNA plugin |Not supported |Supported |Supported |Supported |
|
||||
|
||||
|
|
@ -109,152 +104,152 @@ For setting relevant configuration, refer to the
|
|||
### Supported Layers
|
||||
The following layers are supported by the plugins and by [Shape Inference feature](../ShapeInference.md):
|
||||
|
||||
| Layers | GPU | CPU | VPU | GNA | FPGA | ShapeInfer |
|
||||
|:-------------------------------|:-------------:|:-------------:|:-------------:|:-------------:|:---------------:|:-------------:|
|
||||
| Abs | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Acos | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Acosh | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Activation-Clamp | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Activation-ELU | Supported |Supported\*\*\*| Supported | Not Supported | Supported | Supported |
|
||||
| Activation-Exp | Supported |Supported\*\*\*| Not Supported | Supported | Not Supported | Supported |
|
||||
| Activation-Leaky ReLU | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Activation-Not | Supported |Supported\*\*\*| Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Activation-PReLU | Supported |Supported\*\*\*| Supported | Not Supported | Supported | Supported |
|
||||
| Activation-ReLU | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Activation-ReLU6 | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Activation-Sigmoid/Logistic | Supported |Supported\*\*\*| Supported | Supported | Not Supported | Supported |
|
||||
| Activation-TanH | Supported |Supported\*\*\*| Supported | Supported | Not Supported | Supported |
|
||||
| ArgMax | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Asin | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Asinh | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Atan | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Atanh | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| BatchNormalization | Supported | Supported | Supported | Not Supported | Supported\* | Supported |
|
||||
| BinaryConvolution | Supported | Supported | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Broadcast | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Ceil | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Concat | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Const | Supported | Supported | Supported | Supported | Not Supported | Not Supported |
|
||||
| Convolution-Dilated | Supported | Supported | Supported | Not Supported | Supported | Supported |
|
||||
| Convolution-Dilated 3D | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Convolution-Grouped | Supported | Supported | Supported | Not Supported | Supported | Supported |
|
||||
| Convolution-Grouped 3D | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Convolution-Ordinary | Supported | Supported | Supported | Supported\* | Supported | Supported |
|
||||
| Convolution-Ordinary 3D | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Cos | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Cosh | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Crop | Supported | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| CTCGreedyDecoder | Supported\*\* | Supported\*\* | Supported\* | Not Supported | Not Supported | Supported |
|
||||
| Deconvolution | Supported | Supported | Supported | Not Supported | Supported\* | Supported |
|
||||
| Deconvolution 3D | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| DeformableConvolution | Supported | Supported | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| DepthToSpace | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| DetectionOutput | Supported | Supported\*\* | Supported\* | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-And | Supported |Supported\*\*\*| Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Add | Supported |Supported\*\*\*| Not Supported | Not Supported | Supported | Supported |
|
||||
| Eltwise-Div | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Equal | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-FloorMod | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Greater | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-GreaterEqual | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Less | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-LessEqual | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalAnd | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalOr | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalXor | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Max | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Min | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Mul | Supported |Supported\*\*\*| Supported | Supported | Not Supported | Supported |
|
||||
| Eltwise-NotEqual | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Pow | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Prod | Supported |Supported\*\*\*| Supported | Supported | Not Supported | Supported |
|
||||
| Eltwise-SquaredDiff | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Sub | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Eltwise-Sum | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Erf | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Exp | Supported | Supported | Not Supported | Supported | Not Supported | Supported |
|
||||
| FakeQuantize | Not Supported | Supported | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Fill | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Flatten | Supported | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| Floor | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| FullyConnected (Inner Product) | Supported |Supported\*\*\*| Supported | Supported | Supported | Supported |
|
||||
| Gather | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| GatherTree | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Gemm | Supported | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| GRN | Supported\*\* | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| HardSigmoid | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Interp | Supported\*\* | Supported\*\* | Supported | Not Supported | Not Supported | Supported\* |
|
||||
| Log | Supported | Supported\*\* | Supported | Supported | Not Supported | Supported |
|
||||
| LRN (Norm) | Supported | Supported | Supported | Not Supported | Supported | Supported |
|
||||
| LSTMCell | Supported | Supported | Supported | Supported | Not Supported | Not Supported |
|
||||
| GRUCell | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| RNNCell | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| LSTMSequence | Supported | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| GRUSequence | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| RNNSequence | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| LogSoftmax | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Memory | Not Supported | Supported | Not Supported | Supported | Not Supported | Supported |
|
||||
| MVN | Supported | Supported\*\* | Supported\* | Not Supported | Not Supported | Supported |
|
||||
| Neg | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| NonMaxSuppression | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Normalize | Supported | Supported\*\* | Supported\* | Not Supported | Not Supported | Supported |
|
||||
| OneHot | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Pad | Supported | Supported\*\* | Supported\* | Not Supported | Not Supported | Supported |
|
||||
| Permute | Supported | Supported | Supported | Supported\* | Not Supported | Supported |
|
||||
| Pooling(AVG,MAX) | Supported | Supported | Supported | Supported | Supported | Supported |
|
||||
| Pooling(AVG,MAX) 3D | Supported | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Power | Supported | Supported\*\* | Supported | Supported\* | Supported\* | Supported |
|
||||
| PowerFile | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| PriorBox | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| PriorBoxClustered | Supported\*\* | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Proposal | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| PSROIPooling | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Range | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Reciprocal | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceAnd | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceL1 | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceL2 | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceLogSum | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceLogSumExp | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceMax | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceMean | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceMin | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceOr | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceProd | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceSum | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ReduceSumSquare | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| RegionYolo | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| ReorgYolo | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Resample | Supported | Supported\*\* | Supported | Not Supported | Supported\* | Supported |
|
||||
| Reshape | Supported |Supported\*\*\*| Supported | Supported | Not Supported | Supported\* |
|
||||
| ReverseSequence | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| RNN | Not Supported | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| ROIPooling | Supported\* | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| ScaleShift | Supported |Supported\*\*\*| Supported\* | Supported | Supported | Supported |
|
||||
| ScatterUpdate | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Select | Supported | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| Selu | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| ShuffleChannels | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Sign | Supported | Supported\*\* | Supported | Not Supported | Not Supported | Supported |
|
||||
| Sin | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Sinh | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| SimplerNMS | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Slice | Supported |Supported\*\*\*| Supported | Supported | Supported\* | Supported |
|
||||
| SoftMax | Supported |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| Softplus | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Softsign | Supported | Supported\*\* | Not Supported | Supported | Not Supported | Supported |
|
||||
| SpaceToDepth | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| SpatialTransformer | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Split | Supported |Supported\*\*\*| Supported | Supported | Supported\* | Supported |
|
||||
| Squeeze | Supported | Supported\*\* | Supported | Supported | Not Supported | Supported |
|
||||
| StridedSlice | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Tan | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| TensorIterator | Not Supported | Supported | Supported | Supported | Not Supported | Not Supported |
|
||||
| Tile | Supported\*\* |Supported\*\*\*| Supported | Not Supported | Not Supported | Supported |
|
||||
| TopK | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported | Supported |
|
||||
| Unpooling | Supported | Not Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Unsqueeze | Supported | Supported\*\* | Supported | Supported | Not Supported | Supported |
|
||||
| Upsampling | Supported | Not Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Layers | GPU | CPU | VPU | GNA | ShapeInfer |
|
||||
|:-------------------------------|:-------------:|:-------------:|:-------------:|:-------------:|:-------------:|
|
||||
| Abs | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Acos | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Acosh | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Activation-Clamp | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Activation-ELU | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Activation-Exp | Supported |Supported\*\*\*| Not Supported | Supported | Supported |
|
||||
| Activation-Leaky ReLU | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Activation-Not | Supported |Supported\*\*\*| Not Supported | Not Supported | Supported |
|
||||
| Activation-PReLU | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Activation-ReLU | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Activation-ReLU6 | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Activation-Sigmoid/Logistic | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Activation-TanH | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| ArgMax | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Asin | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Asinh | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Atan | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Atanh | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| BatchNormalization | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| BinaryConvolution | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| Broadcast | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Ceil | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Concat | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Const | Supported | Supported | Supported | Supported | Not Supported |
|
||||
| Convolution-Dilated | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| Convolution-Dilated 3D | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Convolution-Grouped | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| Convolution-Grouped 3D | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Convolution-Ordinary | Supported | Supported | Supported | Supported\* | Supported |
|
||||
| Convolution-Ordinary 3D | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Cos | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Cosh | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Crop | Supported | Supported | Supported | Supported | Supported |
|
||||
| CTCGreedyDecoder | Supported\*\* | Supported\*\* | Supported\* | Not Supported | Supported |
|
||||
| Deconvolution | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| Deconvolution 3D | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| DeformableConvolution | Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| DepthToSpace | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| DetectionOutput | Supported | Supported\*\* | Supported\* | Not Supported | Supported |
|
||||
| Eltwise-And | Supported |Supported\*\*\*| Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Add | Supported |Supported\*\*\*| Not Supported | Not Supported | Supported |
|
||||
| Eltwise-Div | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Equal | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-FloorMod | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Greater | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-GreaterEqual | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Less | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-LessEqual | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalAnd | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalOr | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-LogicalXor | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Max | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Min | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Mul | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Eltwise-NotEqual | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Pow | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Prod | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Eltwise-SquaredDiff | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Eltwise-Sub | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Eltwise-Sum | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Erf | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Exp | Supported | Supported | Not Supported | Supported | Supported |
|
||||
| FakeQuantize | Not Supported | Supported | Not Supported | Not Supported | Supported |
|
||||
| Fill | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Flatten | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| Floor | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| FullyConnected (Inner Product) | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Gather | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| GatherTree | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Gemm | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| GRN | Supported\*\* | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| HardSigmoid | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Interp | Supported\*\* | Supported\*\* | Supported | Not Supported | Supported\* |
|
||||
| Log | Supported | Supported\*\* | Supported | Supported | Supported |
|
||||
| LRN (Norm) | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| LSTMCell | Supported | Supported | Supported | Supported | Not Supported |
|
||||
| GRUCell | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| RNNCell | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| LSTMSequence | Supported | Supported | Supported | Not Supported | Not Supported |
|
||||
| GRUSequence | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| RNNSequence | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| LogSoftmax | Supported | Supported\*\* | Not Supported | Not Supported | Not Supported |
|
||||
| Memory | Not Supported | Supported | Not Supported | Supported | Supported |
|
||||
| MVN | Supported | Supported\*\* | Supported\* | Not Supported | Supported |
|
||||
| Neg | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| NonMaxSuppression | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Normalize | Supported | Supported\*\* | Supported\* | Not Supported | Supported |
|
||||
| OneHot | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Pad | Supported | Supported\*\* | Supported\* | Not Supported | Supported |
|
||||
| Permute | Supported | Supported | Supported | Supported\* | Supported |
|
||||
| Pooling(AVG,MAX) | Supported | Supported | Supported | Supported | Supported |
|
||||
| Pooling(AVG,MAX) 3D | Supported | Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Power | Supported | Supported\*\* | Supported | Supported\* | Supported |
|
||||
| PowerFile | Not Supported | Supported\*\* | Not Supported | Not Supported | Not Supported |
|
||||
| PriorBox | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| PriorBoxClustered | Supported\*\* | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Proposal | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| PSROIPooling | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Range | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Reciprocal | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceAnd | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceL1 | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceL2 | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceLogSum | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceLogSumExp | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceMax | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceMean | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceMin | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceOr | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceProd | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceSum | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ReduceSumSquare | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| RegionYolo | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| ReorgYolo | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Resample | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Reshape | Supported |Supported\*\*\*| Supported | Supported | Supported\* |
|
||||
| ReverseSequence | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| RNN | Not Supported | Supported | Supported | Not Supported | Not Supported |
|
||||
| ROIPooling | Supported\* | Supported | Supported | Not Supported | Supported |
|
||||
| ScaleShift | Supported |Supported\*\*\*| Supported\* | Supported | Supported |
|
||||
| ScatterUpdate | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Select | Supported | Supported | Supported | Not Supported | Supported |
|
||||
| Selu | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| ShuffleChannels | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Sign | Supported | Supported\*\* | Supported | Not Supported | Supported |
|
||||
| Sin | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Sinh | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| SimplerNMS | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Slice | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| SoftMax | Supported |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| Softplus | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Softsign | Supported | Supported\*\* | Not Supported | Supported | Supported |
|
||||
| SpaceToDepth | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| SpatialTransformer | Not Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Split | Supported |Supported\*\*\*| Supported | Supported | Supported |
|
||||
| Squeeze | Supported | Supported\*\* | Supported | Supported | Supported |
|
||||
| StridedSlice | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Tan | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| TensorIterator | Not Supported | Supported | Supported | Supported | Not Supported |
|
||||
| Tile | Supported\*\* |Supported\*\*\*| Supported | Not Supported | Supported |
|
||||
| TopK | Supported | Supported\*\* | Not Supported | Not Supported | Supported |
|
||||
| Unpooling | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
| Unsqueeze | Supported | Supported\*\* | Supported | Supported | Supported |
|
||||
| Upsampling | Supported | Not Supported | Not Supported | Not Supported | Not Supported |
|
||||
|
||||
\*- support is limited to the specific parameters. Refer to "Known Layers Limitation" section for the device [from the list of supported](Supported_Devices.md).
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Inference Engine development configuration document {#openvino_docs_Inference_Engine_Development_Procedure_CONTRIBUTING}
|
||||
|
||||
To create MakeFiles use following process or run build-after-clone.sh script located in the root
|
||||
folder if you use Ubuntu 16.04.
|
||||
folder if you use Ubuntu 18.04.
|
||||
To create Visual Studio project run create_vs_proj_x64.cmd from scripts folder.
|
||||
|
||||
## Setting up the environment for development
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
* [IE TESTS]
|
||||
* [IE DOCS]
|
||||
* [IE MKLDNN]
|
||||
* [IE FPGA]
|
||||
* [IE GNA]
|
||||
* [IE CLDNN]
|
||||
* [IE MYRIAD]
|
||||
|
|
|
|||
|
|
@ -15,3 +15,10 @@ Your costs and results may vary.
|
|||
Intel technologies may require enabled hardware, software or service activation.
|
||||
|
||||
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. \*Other names and brands may be claimed as the property of others.
|
||||
|
||||
## OpenVINO™ Logo
|
||||
To build equity around the project, the OpenVINO logo was created for both Intel and community usage. The logo may only be used to represent the OpenVINO toolkit and offerings built using the OpenVINO toolkit.
|
||||
|
||||
## Logo Usage Guidelines
|
||||
The OpenVINO logo must be used in connection with truthful, non-misleading references to the OpenVINO toolkit, and for no other purpose.
|
||||
Modification of the logo or use of any separate element(s) of the logo alone is not allowed.
|
||||
|
|
|
|||
|
|
@ -15,31 +15,54 @@ Model Optimizer produces an Intermediate Representation (IR) of the network, whi
|
|||
## What's New in the Model Optimizer in this Release?
|
||||
|
||||
* Common changes:
|
||||
* Implemented generation of a compressed OpenVINO IR suitable for INT8 inference, which takes up to 4 times less disk space than an expanded one. Use the `--disable_weights_compression` Model Optimizer command-line parameter to get an expanded version.
|
||||
* Implemented an optimization transformation to replace a sub-graph with the `Erf` operation into the `GeLU` operation.
|
||||
* Implemented an optimization transformation to replace an upsamping pattern that is represented as a sequence of `Split` and `Concat` operations to a single `Interpolate` operation.
|
||||
* Fixed a number of Model Optimizer bugs to generate reshape-able IRs of many models with the command line parameter `--keep_shape_ops`.
|
||||
* Fixed a number of Model Optimizer transformations to set operations name in an IR equal to the original framework model operation name.
|
||||
* The following operations are no longer generated with `version="opset1"`: `MVN`, `ROIPooling`, `ReorgYolo`. They became a part of new `opset2` operation set and generated with `version="opset2"`. Before this fix, the operations were generated with `version="opset1"` by mistake, they were not a part of `opset1` nGraph namespace; `opset1` specification was fixed accordingly.
|
||||
|
||||
* Implemented several optimization transformations to replace sub-graphs of operations with HSwish, Mish, Swish and SoftPlus operations.
|
||||
* Model Optimizer generates IR keeping shape-calculating sub-graphs **by default**. Previously, this behavior was triggered if the "--keep_shape_ops" command line parameter was provided. The key is ignored in this release and will be deleted in the next release. To trigger the legacy behavior to generate an IR for a fixed input shape (folding ShapeOf operations and shape-calculating sub-graphs to Constant), use the "--static_shape" command line parameter. Changing model input shape using the Inference Engine API in runtime may fail for such an IR.
|
||||
* Fixed Model Optimizer conversion issues resulted in non-reshapeable IR using the Inference Engine reshape API.
|
||||
* Enabled transformations to fix non-reshapeable patterns in the original networks:
|
||||
* Hardcoded Reshape
|
||||
* In Reshape(2D)->MatMul pattern
|
||||
* Reshape->Transpose->Reshape when the pattern can be fused to the ShuffleChannels or DepthToSpace operation
|
||||
* Hardcoded Interpolate
|
||||
* In Interpolate->Concat pattern
|
||||
* Added a dedicated requirements file for TensorFlow 2.X as well as the dedicated install prerequisites scripts.
|
||||
* Replaced the SparseToDense operation with ScatterNDUpdate-4.
|
||||
* ONNX*:
|
||||
* Added support for the following operations: `MeanVarianceNormalization` if normalization is performed over spatial dimensions.
|
||||
|
||||
* Enabled an ability to specify the model output **tensor** name using the "--output" command line parameter.
|
||||
* Added support for the following operations:
|
||||
* Acosh
|
||||
* Asinh
|
||||
* Atanh
|
||||
* DepthToSpace-11, 13
|
||||
* DequantizeLinear-10 (zero_point must be constant)
|
||||
* HardSigmoid-1,6
|
||||
* QuantizeLinear-10 (zero_point must be constant)
|
||||
* ReduceL1-11, 13
|
||||
* ReduceL2-11, 13
|
||||
* Resize-11, 13 (except mode="nearest" with 5D+ input, mode="tf_crop_and_resize", and attributes exclude_outside and extrapolation_value with non-zero values)
|
||||
* ScatterND-11, 13
|
||||
* SpaceToDepth-11, 13
|
||||
* TensorFlow*:
|
||||
* Added support for the TensorFlow Object Detection models version 1.15.X.
|
||||
* Added support for the following operations: `BatchToSpaceND`, `SpaceToBatchND`, `Floor`.
|
||||
|
||||
* Added support for the following operations:
|
||||
* Acosh
|
||||
* Asinh
|
||||
* Atanh
|
||||
* CTCLoss
|
||||
* EuclideanNorm
|
||||
* ExtractImagePatches
|
||||
* FloorDiv
|
||||
* MXNet*:
|
||||
* Added support for the following operations:
|
||||
* `Reshape` with input shape values equal to -2, -3, and -4.
|
||||
* Acosh
|
||||
* Asinh
|
||||
* Atanh
|
||||
* Kaldi*:
|
||||
* Fixed bug with ParallelComponent support. Now it is fully supported with no restrictions.
|
||||
|
||||
> **NOTE:**
|
||||
> [Intel® System Studio](https://software.intel.com/en-us/system-studio) is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to [Get Started with Intel® System Studio](https://software.intel.com/en-us/articles/get-started-with-openvino-and-intel-system-studio-2019).
|
||||
|
||||
## Table of Content
|
||||
|
||||
* [Introduction to OpenVINO™ Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
|
||||
* [Preparing and Optimizing your Trained Model with Model Optimizer](prepare_model/Prepare_Trained_Model.md)
|
||||
* [Configuring Model Optimizer](prepare_model/Config_Model_Optimizer.md)
|
||||
* [Converting a Model to Intermediate Representation (IR)](prepare_model/convert_model/Converting_Model.md)
|
||||
|
|
@ -82,4 +105,4 @@ Model Optimizer produces an Intermediate Representation (IR) of the network, whi
|
|||
|
||||
* [Known Issues](Known_Issues_Limitations.md)
|
||||
|
||||
**Typical Next Step:** [Introduction to Intel® Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
**Typical Next Step:** [Preparing and Optimizing your Trained Model with Model Optimizer](prepare_model/Prepare_Trained_Model.md)
|
||||
|
|
|
|||
|
|
@ -615,3 +615,16 @@ You need to specify values for each input of the model. For more information, re
|
|||
#### 102. What does the message "Operation _contrib_box_nms is not supported ..." mean? <a name="question-102"></a>
|
||||
|
||||
It means that you trying to convert the topology which contains '_contrib_box_nms' operation which is not supported directly. However the sub-graph of operations including the '_contrib_box_nms' could be replaced with DetectionOutput layer if your topology is one of the gluoncv topologies. Specify '--enable_ssd_gluoncv' command line parameter for the Model Optimizer to enable this transformation.
|
||||
|
||||
\htmlonly
|
||||
|
||||
<script>
|
||||
window.addEventListener('load', function(){
|
||||
var questionID = getURLParameter('question'); /* this function is defined in openvino-layout.js */
|
||||
if (questionID) {
|
||||
window.location = window.location.pathname + '#' + encodeURI(questionID);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
\endhtmlonly
|
||||
|
|
@ -2,117 +2,96 @@
|
|||
|
||||
## Increase Performance for Deep Learning Inference
|
||||
|
||||
The [Intel® Distribution of OpenVINO™ toolkit](https://software.intel.com/en-us/openvino-toolkit) helps accelerate deep learning inference across a variety of Intel® processors and accelerators. Rather than a one-size-fits-all solution, Intel offers a powerful portfolio of scalable hardware and software solutions, powered by the Intel® Distribution of OpenVINO™ toolkit, to meet the various performance, power, and price requirements of any use case. The benchmarks below demonstrate high performance gains on several public neural networks for a streamlined, quick deployment on **Intel® CPU, VPU and FPGA** platforms. Use this data to help you decide which hardware is best for your applications and solutions, or to plan your AI workload on the Intel computing already included in your solutions.
|
||||
The [Intel® Distribution of OpenVINO™ toolkit](https://software.intel.com/en-us/openvino-toolkit) helps accelerate deep learning inference across a variety of Intel® processors and accelerators. Rather than a one-size-fits-all solution, Intel offers a powerful portfolio of scalable hardware and software solutions, powered by the Intel® Distribution of OpenVINO™ toolkit, to meet the various performance, power, and price requirements of any use case. The benchmarks below demonstrate high performance gains on several public neural networks for a streamlined, quick deployment on **Intel® CPU and VPU** platforms. Use this data to help you decide which hardware is best for your applications and solutions, or to plan your AI workload on the Intel computing already included in your solutions.
|
||||
|
||||
Measuring inference performance involves many variables and is extremely use-case and application dependent. We use the below four parameters for measurements, which are key elements to consider for a successful deep learning inference application:
|
||||
|
||||
1. **Throughput** - Measures the number of inferences delivered within a latency threshold. (for example, number of frames per second). When deploying a system with deep learning inference, select the throughput that delivers the best trade-off between latency and power for the price and performance that meets your requirements.
|
||||
1. **Throughput** - Measures the number of inferences delivered within a latency threshold. (for example, number of Frames Per Second - FPS). When deploying a system with deep learning inference, select the throughput that delivers the best trade-off between latency and power for the price and performance that meets your requirements.
|
||||
2. **Value** - While throughput is important, what is more critical in edge AI deployments is the performance efficiency or performance-per-cost. Application performance in throughput per dollar of system cost is the best measure of value.
|
||||
3. **Efficiency** - System power is a key consideration from the edge to the data center. When selecting deep learning solutions, power efficiency (throughput/watt) is a critical factor to consider. Intel designs provide excellent power efficiency for running deep learning workloads.
|
||||
4. **Total Benefit** (Most applicable for Intel® VPU Platforms) - Combining the factors of value and efficiency can be a good way to compare which hardware yields the best performance per watt and per dollar for your particular use case.
|
||||
4. **Latency** - This measures the synchronous execution of inference requests and is reported in milliseconds. Each inference request (for example: preprocess, infer, postprocess) is allowed to complete before the next is started. This performance metric is relevant in usage scenarios where a single image input needs to be acted upon as soon as possible. An example would be the healthcare sector where medical personnel only request analysis of a single ultra sound scanning image or in real-time or near real-time applications for example an industrial robot's response to actions in its environment or obstacle avoidance for autonomous vehicles.
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<!-- these CDN links and scripts are required. Add them to the <head> of your website -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;600;700;900&display=swap" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" type="text/css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-annotation/0.5.7/chartjs-plugin-annotation.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-barchart-background@1.3.0/build/Plugin.Barchart.Background.min.js"></script>
|
||||
<!-- download this file and place on your server (or include the styles inline) -->
|
||||
<link rel="stylesheet" href="ovgraphs.css" type="text/css">
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Xeon® E-2124G<a name="xeon-e"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="bert-large-uncased-whole-word-masking-squad-int8-0001-ov-2021-1-096.js" id="bert-large-uncased-whole-word-masking-squad-int8-0001-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="deeplabv3-tf-ov-2021-1-096.js" id="deeplabv3-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Xeon® Silver 4216R <a name="xeon-silver"></a>
|
||||
\htmlonly
|
||||
<script src="densenet-121-tf-ov-2021-1-096.js" id="densenet-121-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="faster-rcnn-resnet50-coco-tf-ov-2021-1-096.js" id="faster-rcnn-resnet50-coco-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="googlenet-v1-tf-ov-2021-1-096.js" id="googlenet-v1-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Xeon® Gold 5218T <a name="xeon-gold"></a>
|
||||
\htmlonly
|
||||
<script src="inception-v3-tf-ov-2021-1-096.js" id="inception-v3-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="mobilenet-ssd-cf-ov-2021-1-096.js" id="mobilenet-ssd-cf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="mobilenet-v1-1-0-224-tf-ov-2021-1-096.js" id="mobilenet-v1-1-0-224-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Xeon® Platinum 8270 <a name="xeon-platinum"></a>
|
||||
\htmlonly
|
||||
<script src="mobilenet-v2-pytorch-ov-2021-1-096.js" id="mobilenet-v2-pytorch-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="resnet-18-pytorch-ov-2021-1-096.js" id="resnet-18-pytorch-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="resnet-50-tf-ov-2021-1-096.js" id="resnet-50-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Atom™ x5-E3940 <a name="atom"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="se-resnext-50-cf-ov-2021-1-096.js" id="se-resnext-50-cf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="squeezenet1-1-cf-ov-2021-1-096.js" id="squeezenet1-1-cf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Core™ i3-8100 <a name="core-i3"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
\htmlonly
|
||||
<script src="ssd300-cf-ov-2021-1-096.js" id="ssd300-cf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
---
|
||||
\htmlonly
|
||||
<script src="yolo-v3-tf-ov-2021-1-096.js" id="yolo-v3-tf-ov-2021-1-096"></script>
|
||||
\endhtmlonly
|
||||
|
||||
## Intel® Core™ i5-8500 <a name="core-i5"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## Intel® Core™ i7-8700T <a name="core-i7"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## Intel® Core™ i9-10920X <a name="core-i9"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## Intel® Neural Compute Stick 2 <a name="intel-ncs2"></a>
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## Intel® Vision Accelerator Design with Intel® Movidius™ VPUs (Uzel* UI-AR8) <a name="ivad-vpu"></a>
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
|
||||
## Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
## Platform Configurations
|
||||
|
||||
Intel® Distribution of OpenVINO™ toolkit performance benchmark numbers are based on release 2020.4.
|
||||
Intel® Distribution of OpenVINO™ toolkit performance benchmark numbers are based on release 2021.1.
|
||||
|
||||
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. Performance results are based on testing as of July 8, 2020 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure.
|
||||
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. Performance results are based on testing as of September 25, 2020 and may not reflect all publicly available security updates. See configuration disclosure for details. No product can be absolutely secure.
|
||||
|
||||
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information, see [Performance Benchmark Test Disclosure](https://www.intel.com/content/www/us/en/benchmarks/benchmark.html).
|
||||
|
||||
|
|
@ -142,31 +121,31 @@ Testing by Intel done on: see test date for each HW platform below.
|
|||
| Batch size | 1 | 1 | 1 | 1 |
|
||||
| Precision | INT8 | INT8 | INT8 | INT8 |
|
||||
| Number of concurrent inference requests | 4 | 32 | 32 | 52 |
|
||||
| Test Date | July 8, 2020 | July 8, 2020 | July 8, 2020 | July 8, 2020 |
|
||||
| Test Date | September 25, 2020 | September 25, 2020 | September 25, 2020 | September 25, 2020 |
|
||||
| Power dissipation, TDP in Watt | [71](https://ark.intel.com/content/www/us/en/ark/products/134854/intel-xeon-e-2124g-processor-8m-cache-up-to-4-50-ghz.html#tab-blade-1-0-1) | [125](https://ark.intel.com/content/www/us/en/ark/products/193394/intel-xeon-silver-4216-processor-22m-cache-2-10-ghz.html#tab-blade-1-0-1) | [105](https://ark.intel.com/content/www/us/en/ark/products/193953/intel-xeon-gold-5218t-processor-22m-cache-2-10-ghz.html#tab-blade-1-0-1) | [205](https://ark.intel.com/content/www/us/en/ark/products/192482/intel-xeon-platinum-8270-processor-35-75m-cache-2-70-ghz.html#tab-blade-1-0-1) |
|
||||
| CPU Price on July 8, 2020, USD<br>Prices may vary | [213](https://ark.intel.com/content/www/us/en/ark/products/134854/intel-xeon-e-2124g-processor-8m-cache-up-to-4-50-ghz.html) | [1,002](https://ark.intel.com/content/www/us/en/ark/products/193394/intel-xeon-silver-4216-processor-22m-cache-2-10-ghz.html) | [1,349](https://ark.intel.com/content/www/us/en/ark/products/193953/intel-xeon-gold-5218t-processor-22m-cache-2-10-ghz.html) | [7,405](https://ark.intel.com/content/www/us/en/ark/products/192482/intel-xeon-platinum-8270-processor-35-75m-cache-2-70-ghz.html) |
|
||||
| CPU Price on September 29, 2020, USD<br>Prices may vary | [213](https://ark.intel.com/content/www/us/en/ark/products/134854/intel-xeon-e-2124g-processor-8m-cache-up-to-4-50-ghz.html) | [1,002](https://ark.intel.com/content/www/us/en/ark/products/193394/intel-xeon-silver-4216-processor-22m-cache-2-10-ghz.html) | [1,349](https://ark.intel.com/content/www/us/en/ark/products/193953/intel-xeon-gold-5218t-processor-22m-cache-2-10-ghz.html) | [7,405](https://ark.intel.com/content/www/us/en/ark/products/192482/intel-xeon-platinum-8270-processor-35-75m-cache-2-70-ghz.html) |
|
||||
|
||||
**CPU Inference Engines (continue)**
|
||||
|
||||
| | Intel® Core™ i5-8500 | Intel® Core™ i7-8700T | Intel® Core™ i9-10920X |
|
||||
| -------------------- | ---------------------------------- | ----------------------------------- |--------------------------------------|
|
||||
| Motherboard | ASUS* PRIME Z370-A | GIGABYTE* Z370M DS3H-CF | ASUS* PRIME X299-A II |
|
||||
| CPU | Intel® Core™ i5-8500 CPU @ 3.00GHz | Intel® Core™ i7-8700T CPU @ 2.40GHz | Intel® Core™ i9-10920X CPU @ 3.50GHz |
|
||||
| Hyper Threading | OFF | ON | ON |
|
||||
| Turbo Setting | ON | ON | ON |
|
||||
| Memory | 2 x 16 GB DDR4 2666MHz | 4 x 16 GB DDR4 2400MHz | 4 x 16 GB DDR4 2666MHz |
|
||||
| Operating System | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS |
|
||||
| Kernel Version | 5.3.0-24-generic | 5.0.0-23-generic | 5.0.0-23-generic |
|
||||
| BIOS Vendor | American Megatrends Inc.* | American Megatrends Inc.* | American Megatrends Inc.* |
|
||||
| BIOS Version | 2401 | F11 | 505 |
|
||||
| BIOS Release | July 12, 2019 | March 13, 2019 | December 17, 2019 |
|
||||
| BIOS Settings | Select optimized default settings, <br>save & exit | Select optimized default settings, <br>set OS type to "other", <br>save & exit | Default Settings |
|
||||
| Batch size | 1 | 1 | 1 |
|
||||
| Precision | INT8 | INT8 | INT8 |
|
||||
| Number of concurrent inference requests | 3 | 4 | 24 |
|
||||
| Test Date | July 8, 2020 | July 8, 2020 | July 8, 2020 |
|
||||
| Power dissipation, TDP in Watt | [65](https://ark.intel.com/content/www/us/en/ark/products/129939/intel-core-i5-8500-processor-9m-cache-up-to-4-10-ghz.html#tab-blade-1-0-1) | [35](https://ark.intel.com/content/www/us/en/ark/products/129948/intel-core-i7-8700t-processor-12m-cache-up-to-4-00-ghz.html#tab-blade-1-0-1) | [165](https://ark.intel.com/content/www/us/en/ark/products/198012/intel-core-i9-10920x-x-series-processor-19-25m-cache-3-50-ghz.html) |
|
||||
| CPU Price on July 8, 2020, USD<br>Prices may vary | [192](https://ark.intel.com/content/www/us/en/ark/products/129939/intel-core-i5-8500-processor-9m-cache-up-to-4-10-ghz.html) | [303](https://ark.intel.com/content/www/us/en/ark/products/129948/intel-core-i7-8700t-processor-12m-cache-up-to-4-00-ghz.html) | [700](https://ark.intel.com/content/www/us/en/ark/products/198012/intel-core-i9-10920x-x-series-processor-19-25m-cache-3-50-ghz.html)
|
||||
| | Intel® Core™ i5-8500 | Intel® Core™ i7-8700T | Intel® Core™ i9-10920X | 11th Gen Intel® Core™ i5-1145G7E |
|
||||
| -------------------- | ---------------------------------- | ----------------------------------- |--------------------------------------|-----------------------------------|
|
||||
| Motherboard | ASUS* PRIME Z370-A | GIGABYTE* Z370M DS3H-CF | ASUS* PRIME X299-A II | Intel Corporation<br>internal/Reference Validation Platform |
|
||||
| CPU | Intel® Core™ i5-8500 CPU @ 3.00GHz | Intel® Core™ i7-8700T CPU @ 2.40GHz | Intel® Core™ i9-10920X CPU @ 3.50GHz | 11th Gen Intel® Core™ i5-1145G7E @ 2.60GHz |
|
||||
| Hyper Threading | OFF | ON | ON | ON |
|
||||
| Turbo Setting | ON | ON | ON | ON |
|
||||
| Memory | 2 x 16 GB DDR4 2666MHz | 4 x 16 GB DDR4 2400MHz | 4 x 16 GB DDR4 2666MHz | 2 x 8 GB DDR4 3200MHz |
|
||||
| Operating System | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS |
|
||||
| Kernel Version | 5.3.0-24-generic | 5.0.0-23-generic | 5.0.0-23-generic | 5.8.0-05-generic |
|
||||
| BIOS Vendor | American Megatrends Inc.* | American Megatrends Inc.* | American Megatrends Inc.* | Intel Corporation |
|
||||
| BIOS Version | 2401 | F11 | 505 | TGLIFUI1.R00.3243.A04.2006302148 |
|
||||
| BIOS Release | July 12, 2019 | March 13, 2019 | December 17, 2019 | June 30, 2020 |
|
||||
| BIOS Settings | Select optimized default settings, <br>save & exit | Select optimized default settings, <br>set OS type to "other", <br>save & exit | Default Settings | Default Settings |
|
||||
| Batch size | 1 | 1 | 1 | 1 |
|
||||
| Precision | INT8 | INT8 | INT8 | INT8 |
|
||||
| Number of concurrent inference requests | 3 | 4 | 24 | 4 |
|
||||
| Test Date | September 25, 2020 | September 25, 2020 | September 25, 2020 | September 25, 2020 |
|
||||
| Power dissipation, TDP in Watt | [65](https://ark.intel.com/content/www/us/en/ark/products/129939/intel-core-i5-8500-processor-9m-cache-up-to-4-10-ghz.html#tab-blade-1-0-1) | [35](https://ark.intel.com/content/www/us/en/ark/products/129948/intel-core-i7-8700t-processor-12m-cache-up-to-4-00-ghz.html#tab-blade-1-0-1) | [165](https://ark.intel.com/content/www/us/en/ark/products/198012/intel-core-i9-10920x-x-series-processor-19-25m-cache-3-50-ghz.html) | [28](https://ark.intel.com/content/www/us/en/ark/products/208081/intel-core-i5-1145g7e-processor-8m-cache-up-to-4-10-ghz.html) |
|
||||
| CPU Price on September 29, 2020, USD<br>Prices may vary | [192](https://ark.intel.com/content/www/us/en/ark/products/129939/intel-core-i5-8500-processor-9m-cache-up-to-4-10-ghz.html) | [303](https://ark.intel.com/content/www/us/en/ark/products/129948/intel-core-i7-8700t-processor-12m-cache-up-to-4-00-ghz.html) | [700](https://ark.intel.com/content/www/us/en/ark/products/198012/intel-core-i9-10920x-x-series-processor-19-25m-cache-3-50-ghz.html) | [309](https://mysamples.intel.com/SAM_U_Product/ProductDetail.aspx?InputMMID=99A3D1&RequestID=0&ProductID=1213750) |
|
||||
|
||||
**CPU Inference Engines (continue)**
|
||||
|
||||
|
|
@ -186,35 +165,35 @@ Testing by Intel done on: see test date for each HW platform below.
|
|||
| Batch size | 1 | 1 |
|
||||
| Precision | INT8 | INT8 |
|
||||
| Number of concurrent inference requests | 4 | 4 |
|
||||
| Test Date | July 8, 2020 | July 8, 2020 |
|
||||
| Test Date | September 25, 2020 | September 25, 2020 |
|
||||
| Power dissipation, TDP in Watt | [9.5](https://ark.intel.com/content/www/us/en/ark/products/96485/intel-atom-x5-e3940-processor-2m-cache-up-to-1-80-ghz.html) | [65](https://ark.intel.com/content/www/us/en/ark/products/126688/intel-core-i3-8100-processor-6m-cache-3-60-ghz.html#tab-blade-1-0-1)|
|
||||
| CPU Price on July 8, 2020, USD<br>Prices may vary | [34](https://ark.intel.com/content/www/us/en/ark/products/96485/intel-atom-x5-e3940-processor-2m-cache-up-to-1-80-ghz.html) | [117](https://ark.intel.com/content/www/us/en/ark/products/126688/intel-core-i3-8100-processor-6m-cache-3-60-ghz.html) |
|
||||
| CPU Price on September 29, 2020, USD<br>Prices may vary | [34](https://ark.intel.com/content/www/us/en/ark/products/96485/intel-atom-x5-e3940-processor-2m-cache-up-to-1-80-ghz.html) | [117](https://ark.intel.com/content/www/us/en/ark/products/126688/intel-core-i3-8100-processor-6m-cache-3-60-ghz.html) |
|
||||
|
||||
|
||||
|
||||
**Accelerator Inference Engines**
|
||||
|
||||
| | Intel® Neural Compute Stick 2 | Intel® Vision Accelerator Design<br>with Intel® Movidius™ VPUs (Uzel* UI-AR8) | Intel® Vision Accelerator Design<br>with Intel® Arria® 10 FPGA - IEI/SAF3*|
|
||||
| -------------------- | ------------------------------------- | ------------------------------------- | ------------------------- |
|
||||
| VPU | 1 X Intel® Movidius™ Myriad™ X MA2485 | 8 X Intel® Movidius™ Myriad™ X MA2485 | 1 X Intel® Arria® 10 FPGA |
|
||||
| Connection | USB 2.0/3.0 | PCIe X4 | PCIe X8 |
|
||||
| Batch size | 1 | 1 | 1 |
|
||||
| Precision | FP16 | FP16 | FP11 |
|
||||
| Number of concurrent inference requests | 4 | 32 | 5 |
|
||||
| Power dissipation, TDP in Watt | 2.5 | [30](https://www.mouser.com/ProductDetail/IEI/MUSTANG-V100-MX8-R10?qs=u16ybLDytRaZtiUUvsd36w%3D%3D) | [60](https://www.mouser.com/ProductDetail/IEI/MUSTANG-F100-A10-R10?qs=sGAEpiMZZMtNlGR3Dbecs5Qs0RmP5oxxCbTJPjyRuMXthliRUwiVGw%3D%3D) |
|
||||
| CPU Price, USD<br>Prices may vary | [69](https://ark.intel.com/content/www/us/en/ark/products/140109/intel-neural-compute-stick-2.html) (from July 8, 2020) | [768](https://www.mouser.com/ProductDetail/IEI/MUSTANG-V100-MX8-R10?qs=u16ybLDytRaZtiUUvsd36w%3D%3D) (from May 15, 2020) | [1,650](https://www.bhphotovideo.com/c/product/1477989-REG/qnap_mustang_f100_a10_r10_pcie_fpga_highest_performance.html/?ap=y&ap=y&smp=y&msclkid=371b373256dd1a52beb969ecf5981bf8) (from July 8, 2020) |
|
||||
| Host Computer | Intel® Core™ i7 | Intel® Core™ i5 | Intel® Xeon® E3 |
|
||||
| Motherboard | ASUS* Z370-A II | Uzelinfo* / US-E1300 | IEI/SAF3* |
|
||||
| CPU | Intel® Core™ i7-8700 CPU @ 3.20GHz | Intel® Core™ i5-6600 CPU @ 3.30GHz | Intel® Xeon® CPU E3-1268L v5 @ 2.40GHz |
|
||||
| Hyper Threading | ON | OFF | OFF |
|
||||
| Turbo Setting | ON | ON | ON |
|
||||
| Memory | 4 x 16 GB DDR4 2666MHz | 2 x 16 GB DDR4 2400MHz | 2 x 16 GB DDR4 2666MHz |
|
||||
| Operating System | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS | Ubuntu* 16.04 LTS |
|
||||
| Kernel Version | 5.0.0-23-generic | 5.0.0-23-generic | 4.13.0-45-generic |
|
||||
| BIOS Vendor | American Megatrends Inc.* | American Megatrends Inc.* | American Megatrends Inc.* |
|
||||
| BIOS Version | 411 | 5.12 | V2RMAR15 |
|
||||
| BIOS Release | September 21, 2018 | September 21, 2018 | December 03, 2019 |
|
||||
| Test Date | July 8, 2020 | July 8, 2020 | July 8, 2020 |
|
||||
| | Intel® Neural Compute Stick 2 | Intel® Vision Accelerator Design<br>with Intel® Movidius™ VPUs (Uzel* UI-AR8) |
|
||||
| --------------------------------------- | ------------------------------------- | ------------------------------------- |
|
||||
| VPU | 1 X Intel® Movidius™ Myriad™ X MA2485 | 8 X Intel® Movidius™ Myriad™ X MA2485 |
|
||||
| Connection | USB 2.0/3.0 | PCIe X4 |
|
||||
| Batch size | 1 | 1 |
|
||||
| Precision | FP16 | FP16 |
|
||||
| Number of concurrent inference requests | 4 | 32 |
|
||||
| Power dissipation, TDP in Watt | 2.5 | [30](https://www.mouser.com/ProductDetail/IEI/MUSTANG-V100-MX8-R10?qs=u16ybLDytRaZtiUUvsd36w%3D%3D) |
|
||||
| CPU Price, USD<br>Prices may vary | [69](https://ark.intel.com/content/www/us/en/ark/products/140109/intel-neural-compute-stick-2.html) (from September 29, 2020) | [768](https://www.mouser.com/ProductDetail/IEI/MUSTANG-V100-MX8-R10?qs=u16ybLDytRaZtiUUvsd36w%3D%3D) (from May 15, 2020) |
|
||||
| Host Computer | Intel® Core™ i7 | Intel® Core™ i5 |
|
||||
| Motherboard | ASUS* Z370-A II | Uzelinfo* / US-E1300 |
|
||||
| CPU | Intel® Core™ i7-8700 CPU @ 3.20GHz | Intel® Core™ i5-6600 CPU @ 3.30GHz |
|
||||
| Hyper Threading | ON | OFF |
|
||||
| Turbo Setting | ON | ON |
|
||||
| Memory | 4 x 16 GB DDR4 2666MHz | 2 x 16 GB DDR4 2400MHz |
|
||||
| Operating System | Ubuntu* 18.04 LTS | Ubuntu* 18.04 LTS |
|
||||
| Kernel Version | 5.0.0-23-generic | 5.0.0-23-generic |
|
||||
| BIOS Vendor | American Megatrends Inc.* | American Megatrends Inc.* |
|
||||
| BIOS Version | 411 | 5.12 |
|
||||
| BIOS Release | September 21, 2018 | September 21, 2018 |
|
||||
| Test Date | September 25, 2020 | September 25, 2020 |
|
||||
|
||||
Please follow this link for more detailed configuration descriptions: [Configuration Details](https://docs.openvinotoolkit.org/resources/benchmark_files/system_configurations_2021.1.html)
|
||||
|
||||
|
|
|
|||
|
|
@ -21,17 +21,26 @@ All of the performance benchmarks were generated using the open-sourced tool wit
|
|||
The image size used in the inference depends on the network being benchmarked. The following table shows the list of input sizes for each network model.
|
||||
| **Model** | **Public Network** | **Task** | **Input Size** (Height x Width) |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|-----------------------------|-----------------------------------|
|
||||
| [faster_rcnn_resnet50_coco-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/faster_rcnn_resnet50_coco) | Faster RCNN Tf | object detection | 600x1024 |
|
||||
| [googlenet-v1-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/googlenet-v1) | GoogLeNet_ILSVRC-2012_Caffe | classification | 224x224 |
|
||||
| [googlenet-v3-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/googlenet-v3) | Inception v3 Tf | classification | 299x299 |
|
||||
| [mobilenet-ssd-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/mobilenet-ssd) | SSD (MobileNet)_COCO-2017_Caffe | object detection | 300x300 |
|
||||
| [bert-large-uncased-whole-word-masking-squad](https://github.com/opencv/open_model_zoo/tree/develop/models/intel/bert-large-uncased-whole-word-masking-squad-int8-0001) | BERT-large |question / answer |384|
|
||||
| [deeplabv3-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/deeplabv3) | DeepLab v3 Tf |semantic segmentation | 513x513 |
|
||||
| [densenet-121-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/densenet-121-tf) | Densenet-121 Tf |classification | 224x224 |
|
||||
| [facenet-20180408-102900-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/facenet-20180408-102900) | FaceNet TF | face recognition | 160x160 |
|
||||
| [faster_rcnn_resnet50_coco-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/faster_rcnn_resnet50_coco) | Faster RCNN Tf | object detection | 600x1024 |
|
||||
| [googlenet-v1-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/googlenet-v1-tf) | GoogLeNet_ILSVRC-2012 | classification | 224x224 |
|
||||
| [inception-v3-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/googlenet-v3) | Inception v3 Tf | classification | 299x299 |
|
||||
| [mobilenet-ssd-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/mobilenet-ssd) | SSD (MobileNet)_COCO-2017_Caffe | object detection | 300x300 |
|
||||
| [mobilenet-v1-1.0-224-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/mobilenet-v1-1.0-224-tf) | MobileNet v1 Tf | classification | 224x224 |
|
||||
| [mobilenet-v2-1.0-224-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/mobilenet-v2-1.0-224) | MobileNet v2 Tf | classification | 224x224 |
|
||||
| [mobilenet-v2-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/mobilenet-v2) | Mobilenet V2 Caffe | classification | 224x224 |
|
||||
| [resnet-101-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/resnet-101) | ResNet-101_ILSVRC-2012_Caffe | classification | 224x224 |
|
||||
| [resnet-50-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/resnet-50) | ResNet-50_v1_ILSVRC-2012_Caffe | classification | 224x224 |
|
||||
| [mobilenet-v2-pytorch](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/mobilenet-v2-pytorch ) | Mobilenet V2 PyTorch | classification | 224x224 |
|
||||
| [resnet-18-pytorch](https://github.com/opencv/open_model_zoo/tree/master/models/public/resnet-18-pytorch) | ResNet-18 PyTorch | classification | 224x224 |
|
||||
| [resnet-50-pytorch](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/resnet-50-pytorch) | ResNet-50 v1 PyTorch | classification | 224x224 |
|
||||
| [resnet-50-TF](https://github.com/opencv/open_model_zoo/tree/master/models/public/resnet-50-tf) | ResNet-50_v1_ILSVRC-2012 | classification | 224x224 |
|
||||
| [se-resnext-50-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/se-resnext-50) | Se-ResNext-50_ILSVRC-2012_Caffe | classification | 224x224 |
|
||||
| [squeezenet1.1-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/squeezenet1.1) | SqueezeNet_v1.1_ILSVRC-2012_Caffe | classification | 227x227 |
|
||||
| [ssd300-CF](https://github.com/opencv/open_model_zoo/tree/master/models/public/ssd300) | SSD (VGG-16)_VOC-2007_Caffe | object detection | 300x300 |
|
||||
| [yolo_v3-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/yolo-v3-tf) | TF Keras YOLO v3 Modelset | object detection | 300x300 |
|
||||
| [ssd_mobilenet_v1_coco-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssd_mobilenet_v1_coco) | ssd_mobilenet_v1_coco | object detection | 300x300 |
|
||||
| [ssdlite_mobilenet_v2-TF](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssdlite_mobilenet_v2) | ssd_mobilenet_v2 | object detection | 300x300 |
|
||||
|
||||
#### 7. Where can I purchase the specific hardware used in the benchmarking?
|
||||
Intel partners with various vendors all over the world. Visit the [Intel® AI: In Production Partners & Solutions Catalog](https://www.intel.com/content/www/us/en/internet-of-things/ai-in-production/partners-solutions-catalog.html) for a list of Equipment Makers and the [Supported Devices](../IE_DG/supported_plugins/Supported_Devices.md) documentation. You can also remotely test and run models before purchasing any hardware by using [Intel® DevCloud for the Edge](http://devcloud.intel.com/edge/).
|
||||
|
|
@ -42,9 +51,17 @@ We published a set of guidelines and recommendations to optimize your models ava
|
|||
#### 9. Why are INT8 optimized models used for benchmarking on CPUs with no VNNI support?
|
||||
The benefit of low-precision optimization using the OpenVINO™ toolkit model optimizer extends beyond processors supporting VNNI through Intel® DL Boost. The reduced bit width of INT8 compared to FP32 allows Intel® CPU to process the data faster and thus offers better throughput on any converted model agnostic of the intrinsically supported low-precision optimizations within Intel® hardware. Please refer to [INT8 vs. FP32 Comparison on Select Networks and Platforms](./performance_int8_vs_fp32.html) for comparison on boost factors for different network models and a selection of Intel® CPU architectures, including AVX-2 with Intel® Core™ i7-8700T, and AVX-512 (VNNI) with Intel® Xeon® 5218T and Intel® Xeon® 8270.
|
||||
|
||||
#### 10. Previous releases included benchmarks on googlenet-v1. Why is there no longer benchmarks on this neural network model?
|
||||
We replaced googlenet-v1 to [resnet-18-pytorch](https://github.com/opencv/open_model_zoo/blob/master/models/public/resnet-18-pytorch/resnet-18-pytorch.md) due to changes in developer usage. The public model resnet-18 is used by many developers as an Image Classification model. This pre-optimized model was also trained on the ImageNet database, similar to googlenet-v1. Both googlenet-v1 and resnet-18 will remain part of the Open Model Zoo. Developers are encouraged to utilize resnet-18-pytorch for Image Classification use cases.
|
||||
#### 10. Previous releases included benchmarks on googlenet-v1-CF (Caffe). Why is there no longer benchmarks on this neural network model?
|
||||
We replaced googlenet-v1-CF to resnet-18-pytorch due to changes in developer usage. The public model resnet-18 is used by many developers as an Image Classification model. This pre-optimized model was also trained on the ImageNet database, similar to googlenet-v1-CF. Both googlenet-v1-CF and resnet-18 will remain part of the Open Model Zoo. Developers are encouraged to utilize resnet-18-pytorch for Image Classification use cases.
|
||||
|
||||
#### 11. Why have resnet-50-CF, mobilenet-v1-1.0-224-CF, mobilenet-v2-CF and resnet-101-CF been removed?
|
||||
The CAFFE version of resnet-50, mobilenet-v1-1.0-224 and mobilenet-v2 have been replaced with their TensorFlow and PyTorch counterparts. Resnet-50-CF is replaced by resnet-50-TF, mobilenet-v1-1.0-224-CF is replaced by mobilenet-v1-1.0-224-TF and mobilenet-v2-CF is replaced by mobilenetv2-PyTorch. Resnet-50-CF an resnet-101-CF are no longer maintained at their public source repos.
|
||||
|
||||
#### 12. Where can I search for OpenVINO™ performance results based on HW-platforms?
|
||||
The web site format has changed in order to support the more common search approach of looking for the performance of a given neural network model on different HW-platforms. As opposed to review a given HW-platform's performance on different neural network models.
|
||||
|
||||
#### 13. How is Latency measured?
|
||||
Latency is measured by running the OpenVINO™ inference engine in synchronous mode. In synchronous mode each frame or image is processed through the entire set of stages (pre-processing, inference, post-processing) before the next frame or image is processed. This KPI is relevant for applications where the inference on a single image is required, for example the analysis of an ultra sound image in a medical application or the analysis of a seismic image in the oil & gas industry. Other use cases include real-time or near real-time applications like an industrial robot's response to changes in its environment and obstacle avoidance for autonomous vehicles where a quick response to the result of the inference is required.
|
||||
|
||||
\htmlonly
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ The table below illustrates the speed-up factor for the performance gain by swit
|
|||
<th>Intel® Xeon® <br>Gold <br>5218T</th>
|
||||
<th>Intel® Xeon® <br>Platinum <br>8270</th>
|
||||
<th>Intel® Core™ <br>i7-1065G7</th>
|
||||
<th>Intel® Core™ <br>i5-1145G7E</th>
|
||||
</tr>
|
||||
<tr align="left">
|
||||
<th>OpenVINO <br>benchmark <br>model name</th>
|
||||
|
|
@ -19,106 +20,110 @@ The table below illustrates the speed-up factor for the performance gain by swit
|
|||
<tr>
|
||||
<td>bert-large-<br>uncased-whole-word-<br>masking-squad-0001</td>
|
||||
<td>SQuAD</td>
|
||||
<td>1.5</td>
|
||||
<td>1.6</td>
|
||||
<td>2.5</td>
|
||||
<td>2.0</td>
|
||||
<td>N/A</td>
|
||||
<td>2.8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>brain-tumor-<br>segmentation-<br>0001-mxnet</td>
|
||||
<td>brain-tumor-<br>segmentation-<br>0001-MXNET</td>
|
||||
<td>BraTS</td>
|
||||
<td>1.5</td>
|
||||
<td>1.7</td>
|
||||
<td>1.6</td>
|
||||
<td>1.9</td>
|
||||
<td>1.8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>brain-tumor-<br>segmentation-<br>0002-cf2</td>
|
||||
<td>BraTS<br>2017</td>
|
||||
<td>1.2</td>
|
||||
<td>1.7</td>
|
||||
<td>1.4</td>
|
||||
<td>2.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>deeplabv3-tf</td>
|
||||
<td>deeplabv3-TF</td>
|
||||
<td>VOC 2012<br>Segmentation</td>
|
||||
<td>1.5</td>
|
||||
<td>1.4</td>
|
||||
<td>2.4</td>
|
||||
<td>2.6</td>
|
||||
<td>2.8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>facenet-<br>20180408-<br>102900-tf</td>
|
||||
<td>LFW</td>
|
||||
<td>2.0</td>
|
||||
<td>3.5</td>
|
||||
<td>3.5</td>
|
||||
<td>3.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>faster_rcnn_<br>resnet50_coco-tf</td>
|
||||
<td>MS COCO</td>
|
||||
<td>1.7</td>
|
||||
<td>3.4</td>
|
||||
<td>3.4</td>
|
||||
<td>3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>googlenet-v1-caffe</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.5</td>
|
||||
<td>2.9</td>
|
||||
<td>2.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>densenet-121-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.6</td>
|
||||
<td>3.2</td>
|
||||
<td>3.2</td>
|
||||
<td>3.0</td>
|
||||
<td>3.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>inception-v3-tf</td>
|
||||
<td>facenet-<br>20180408-<br>102900-TF</td>
|
||||
<td>LFW</td>
|
||||
<td>2.0</td>
|
||||
<td>3.6</td>
|
||||
<td>3.5</td>
|
||||
<td>3.2</td>
|
||||
<td>3.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>faster_rcnn_<br>resnet50_coco-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>1.7</td>
|
||||
<td>3.5</td>
|
||||
<td>3.4</td>
|
||||
<td>3.6</td>
|
||||
<td>3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>googlenet-v1-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.6</td>
|
||||
<td>3.7</td>
|
||||
<td>3.5</td>
|
||||
<td>3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>inception-v3-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.8</td>
|
||||
<td>4.0</td>
|
||||
<td>3.7</td>
|
||||
<td>3.7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-<br>ssd-caffe</td>
|
||||
<td>mobilenet-<br>ssd-CF</td>
|
||||
<td>VOC2012</td>
|
||||
<td>1.5</td>
|
||||
<td>3.0</td>
|
||||
<td>3.3</td>
|
||||
<td>3.1</td>
|
||||
<td>3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v1-1.0-<br>224-caffe</td>
|
||||
<td>mobilenet-v1-1.0-<br>224-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.5</td>
|
||||
<td>3.2</td>
|
||||
<td>3.9</td>
|
||||
<td>2.9</td>
|
||||
<td>3.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v2-1.0-<br>224-tf</td>
|
||||
<td>mobilenet-v2-1.0-<br>224-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.3</td>
|
||||
<td>2.6</td>
|
||||
<td>2.7</td>
|
||||
<td>3.8</td>
|
||||
<td>2.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v2-<br>caffe</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.3</td>
|
||||
<td>2.5</td>
|
||||
<td>3.4</td>
|
||||
<td>2.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-101-<br>caffe</td>
|
||||
<td>mobilenet-v2-<br>pytorch</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.7</td>
|
||||
<td>3.7</td>
|
||||
<td>1.4</td>
|
||||
<td>2.6</td>
|
||||
<td>3.6</td>
|
||||
<td>2.3</td>
|
||||
<td>2.4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-18-<br>pytorch</td>
|
||||
|
|
@ -127,54 +132,70 @@ The table below illustrates the speed-up factor for the performance gain by swit
|
|||
<td>3.7</td>
|
||||
<td>3.8</td>
|
||||
<td>3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-50-<br>caffe</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.6</td>
|
||||
<td>3.9</td>
|
||||
<td>3.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-50-<br>pytorch</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.6</td>
|
||||
<td>3.9</td>
|
||||
<td>3.8</td>
|
||||
<td>3.5</td>
|
||||
<td>3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>squeezenet1.1-<br>caffe</td>
|
||||
<td>resnet-50-<br>TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.8</td>
|
||||
<td>3.5</td>
|
||||
<td>3.8</td>
|
||||
<td>3.4</td>
|
||||
<td>4.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>squeezenet1.1-<br>CF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>1.6</td>
|
||||
<td>2.9</td>
|
||||
<td>3.2</td>
|
||||
<td>3.0</td>
|
||||
<td>3.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssd_mobilenet_<br>v1_coco-tf</td>
|
||||
<td>MS COCO</td>
|
||||
<td>VOC2012</td>
|
||||
<td>1.6</td>
|
||||
<td>3.0</td>
|
||||
<td>3.4</td>
|
||||
<td>3.1</td>
|
||||
<td>3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssd300-caffe</td>
|
||||
<td>ssd300-CF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>1.8</td>
|
||||
<td>3.7</td>
|
||||
<td>3.7</td>
|
||||
<td>3.6</td>
|
||||
<td>3.8</td>
|
||||
<td>4.0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssdlite_<br>mobilenet_<br>v2-tf</td>
|
||||
<td>ssdlite_<br>mobilenet_<br>v2-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>1.4</td>
|
||||
<td>2.3</td>
|
||||
<td>3.0</td>
|
||||
<td>3.1</td>
|
||||
<td>2.4</td>
|
||||
<td>2.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>yolo_v3-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>1.8</td>
|
||||
<td>3.8</td>
|
||||
<td>3.9</td>
|
||||
<td>3.7</td>
|
||||
<td>3.8</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
@ -199,60 +220,60 @@ The following table shows the absolute accuracy drop that is calculated as the d
|
|||
<td>bert-large-<br>uncased-whole-word-<br>masking-squad-0001</td>
|
||||
<td>SQuAD</td>
|
||||
<td>F1</td>
|
||||
<td>0.46</td>
|
||||
<td>0.70</td>
|
||||
<td>0.64</td>
|
||||
<td>0.65</td>
|
||||
<td>0.57</td>
|
||||
<td>0.83</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>brain-tumor-<br>segmentation-<br>0001-mxnet</td>
|
||||
<td>brain-tumor-<br>segmentation-<br>0001-MXNET</td>
|
||||
<td>BraTS</td>
|
||||
<td>Dice-index@ <br>Mean@ <br>Overall Tumor</td>
|
||||
<td>0.08</td>
|
||||
<td>0.08</td>
|
||||
<td>0.14</td>
|
||||
<td>0.9</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>brain-tumor-<br>segmentation-<br>0002-cf2</td>
|
||||
<td>BraTS<br>2017</td>
|
||||
<td>Dice-index@ <br>Mean@ <br>Overall Tumor</td>
|
||||
<td>0.16</td>
|
||||
<td>0.14</td>
|
||||
<td>0.13</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>deeplabv3-tf</td>
|
||||
<td>deeplabv3-TF</td>
|
||||
<td>VOC 2012<br>Segmentation</td>
|
||||
<td>mean_iou</td>
|
||||
<td>0.28</td>
|
||||
<td>0.71</td>
|
||||
<td>0.71</td>
|
||||
<td>0.73</td>
|
||||
<td>0.73</td>
|
||||
<td>1.11</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>facenet-<br>20180408-<br>102900-tf</td>
|
||||
<td>densenet-121-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.74</td>
|
||||
<td>0.74</td>
|
||||
<td>0.76</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>facenet-<br>20180408-<br>102900-TF</td>
|
||||
<td>LFW</td>
|
||||
<td>pairwise_<br>accuracy<br>_subsets</td>
|
||||
<td>0.02</td>
|
||||
<td>0.05</td>
|
||||
<td>0.05</td>
|
||||
<td>0.02</td>
|
||||
<td>0.02</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>faster_rcnn_<br>resnet50_coco-tf</td>
|
||||
<td>faster_rcnn_<br>resnet50_coco-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>coco_<br>precision</td>
|
||||
<td>0.21</td>
|
||||
<td>0.20</td>
|
||||
<td>0.21</td>
|
||||
<td>0.20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>googlenet-v1-caffe</td>
|
||||
<td>googlenet-v1-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.24</td>
|
||||
<td>0.19</td>
|
||||
<td>0.20</td>
|
||||
<td>0.03</td>
|
||||
<td>0.03</td>
|
||||
<td>0.01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>inception-v3-tf</td>
|
||||
<td>inception-v3-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.03</td>
|
||||
|
|
@ -260,7 +281,7 @@ The following table shows the absolute accuracy drop that is calculated as the d
|
|||
<td>0.01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-<br>ssd-caffe</td>
|
||||
<td>mobilenet-<br>ssd-CF</td>
|
||||
<td>VOC2012</td>
|
||||
<td>mAP</td>
|
||||
<td>0.35</td>
|
||||
|
|
@ -268,15 +289,15 @@ The following table shows the absolute accuracy drop that is calculated as the d
|
|||
<td>0.34</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v1-1.0-<br>224-caffe</td>
|
||||
<td>mobilenet-v1-1.0-<br>224-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.19</td>
|
||||
<td>0.18</td>
|
||||
<td>0.18</td>
|
||||
<td>0.27</td>
|
||||
<td>0.20</td>
|
||||
<td>0.20</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v2-1.0-<br>224-tf</td>
|
||||
<td>mobilenet-v2-1.0-<br>224-TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.45</td>
|
||||
|
|
@ -284,20 +305,12 @@ The following table shows the absolute accuracy drop that is calculated as the d
|
|||
<td>0.94</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mobilenet-v2-<br>caffe</td>
|
||||
<td>mobilenet-v2-<br>PYTORCH</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.24</td>
|
||||
<td>1.45</td>
|
||||
<td>1.45</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-101-<br>caffe</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.00</td>
|
||||
<td>0.02</td>
|
||||
<td>0.02</td>
|
||||
<td>0.35</td>
|
||||
<td>0.63</td>
|
||||
<td>0.63</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-18-<br>pytorch</td>
|
||||
|
|
@ -308,52 +321,60 @@ The following table shows the absolute accuracy drop that is calculated as the d
|
|||
<td>0.25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-50-<br>caffe</td>
|
||||
<td>resnet-50-<br>PYTORCH</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.16</td>
|
||||
<td>0.12</td>
|
||||
<td>0.12</td>
|
||||
<td>0.18</td>
|
||||
<td>0.19</td>
|
||||
<td>0.19</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>resnet-50-<br>pytorch</td>
|
||||
<td>resnet-50-<br>TF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.20</td>
|
||||
<td>0.17</td>
|
||||
<td>0.17</td>
|
||||
<td>0.15</td>
|
||||
<td>0.15</td>
|
||||
<td>0.10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>squeezenet1.1-<br>caffe</td>
|
||||
<td>squeezenet1.1-<br>CF</td>
|
||||
<td>ImageNet</td>
|
||||
<td>acc@top-1</td>
|
||||
<td>0.66</td>
|
||||
<td>0.64</td>
|
||||
<td>0.66</td>
|
||||
<td>0.64</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssd_mobilenet_<br>v1_coco-tf</td>
|
||||
<td>MS COCO</td>
|
||||
<td>VOC2012</td>
|
||||
<td>COCO mAp</td>
|
||||
<td>0.24</td>
|
||||
<td>3.07</td>
|
||||
<td>0.24</td>
|
||||
<td>3.07</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssd300-caffe</td>
|
||||
<td>ssd300-CF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>COCO mAp</td>
|
||||
<td>0.06</td>
|
||||
<td>0.05</td>
|
||||
<td>0.06</td>
|
||||
<td>0.05</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ssdlite_<br>mobilenet_<br>v2-tf</td>
|
||||
<td>ssdlite_<br>mobilenet_<br>v2-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>COCO mAp</td>
|
||||
<td>0.14</td>
|
||||
<td>0.14</td>
|
||||
<td>0.47</td>
|
||||
<td>0.47</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>yolo_v3-TF</td>
|
||||
<td>MS COCO</td>
|
||||
<td>COCO mAp</td>
|
||||
<td>0.20</td>
|
||||
<td>0.20</td>
|
||||
<td>0.36</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,10 @@
|
|||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" title="OpenVINO Home" url="../index.html"/>
|
||||
<tab type="user" title="GETTING STARTED" url="../index.html"/>
|
||||
<tab type="user" title="HOW TOs" url="../openvino_docs_how_tos_how_to_links.html"/>
|
||||
<tab type="user" title="GUIDES" url="../openvino_docs_IE_DG_Introduction.html"/>
|
||||
<tab type="user" title="RESOURCES" url="../openvino_docs_resources_introduction.html"/>
|
||||
<tab type="user" title="PERFORMANCE BENCHMARKS" url="../openvino_docs_performance_benchmarks.html"/>
|
||||
<tab type="usergroup" title="API REFERENCES" url="../usergroup14.html">
|
||||
<tab type="user" title="Get Started" url="../index.html"/>
|
||||
<tab type="user" title="Documentation" url="../documentation.html"/>
|
||||
<tab type="user" title="Examples" url="../examples.html"/>
|
||||
<tab type="usergroup" title="API REFERENCES" url="../api_references.html">
|
||||
<!-- OpenVX -->
|
||||
<tab type="user" title="OpenVX Developer Guide" url="https://khronos.org/openvx"/>
|
||||
<!-- OpenCV -->
|
||||
|
|
@ -31,6 +29,10 @@
|
|||
<tab type="user" title="Inference Engine Python API Reference" url="../ie_python_api/annotated.html"/>
|
||||
<!-- DL Streamer -->
|
||||
<tab type="user" title="DL Streamer API Reference" url="https://openvinotoolkit.github.io/dlstreamer_gst/"/>
|
||||
<!-- nGraph C++ API -->
|
||||
<tab type="user" title="nGraph C++ API Reference" url="../ngraph_cpp_api/annotated.html"/>
|
||||
<!-- nGraph Python API -->
|
||||
<tab type="user" title="nGraph Python API Reference" url="../ngraph_python_api/files.html"/>
|
||||
</tab>
|
||||
<!-- Chinese docs -->
|
||||
<tab type="user" title="中文文件" url="https://docs.openvinotoolkit.org/cn/index.html"/>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -3,12 +3,10 @@
|
|||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" title="OpenVINO Home" url="../index.html"/>
|
||||
<tab type="user" title="GETTING STARTED" url="../index.html"/>
|
||||
<tab type="user" title="HOW TOs" url="../openvino_docs_how_tos_how_to_links.html"/>
|
||||
<tab type="user" title="GUIDES" url="../openvino_docs_IE_DG_Introduction.html"/>
|
||||
<tab type="user" title="RESOURCES" url="../openvino_docs_resources_introduction.html"/>
|
||||
<tab type="user" title="PERFORMANCE BENCHMARKS" url="../openvino_docs_performance_benchmarks.html"/>
|
||||
<tab type="usergroup" title="API REFERENCES" url="../usergroup14.html">
|
||||
<tab type="user" title="Get Started" url="../index.html"/>
|
||||
<tab type="user" title="Documentation" url="../documentation.html"/>
|
||||
<tab type="user" title="Examples" url="../examples.html"/>
|
||||
<tab type="usergroup" title="API REFERENCES" url="../api_references.html">
|
||||
<!-- OpenVX -->
|
||||
<tab type="user" title="OpenVX Developer Guide" url="https://khronos.org/openvx"/>
|
||||
<!-- OpenCV -->
|
||||
|
|
@ -29,6 +27,10 @@
|
|||
</tab>
|
||||
<!-- DL Streamer -->
|
||||
<tab type="user" title="DL Streamer API Reference" url="https://openvinotoolkit.github.io/dlstreamer_gst/"/>
|
||||
<!-- nGraph C++ API -->
|
||||
<tab type="user" title="nGraph C++ API Reference" url="../ngraph_cpp_api/annotated.html"/>
|
||||
<!-- nGraph Python API -->
|
||||
<tab type="user" title="nGraph Python API Reference" url="../ngraph_python_api/files.html"/>
|
||||
</tab>
|
||||
<!-- Chinese docs -->
|
||||
<tab type="user" title="中文文件" url="https://docs.openvinotoolkit.org/cn/index.html"/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,206 @@
|
|||
<doxygenlayout version="1.0">
|
||||
<!-- Generated by doxygen 1.8.12 -->
|
||||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" title="OpenVINO Home" url="../index.html"/>
|
||||
<tab type="user" title="Get Started" url="../index.html"/>
|
||||
<tab type="user" title="Documentation" url="../documentation.html"/>
|
||||
<tab type="user" title="Examples" url="../examples.html"/>
|
||||
<tab type="usergroup" title="API References" url="../api_references.html">
|
||||
<!-- OpenVX -->
|
||||
<tab type="user" title="OpenVX Developer Guide" url="https://khronos.org/openvx"/>
|
||||
<!-- OpenCV -->
|
||||
<tab type="user" title="OpenCV Developer Guide" url="https://docs.opencv.org/master/"/>
|
||||
<!-- IE C -->
|
||||
<tab type="usergroup" title="Inference Engine C API Reference" url="../ie_c_api/groups.html"/>
|
||||
<tab type="user" title="Inference Engine С++ API Reference" url="../annotated.html"/>
|
||||
<tab type="user" title="Inference Engine Python API Reference" url="../ie_python_api/annotated.html"/>
|
||||
<!-- DL Streamer -->
|
||||
<tab type="user" title="DL Streamer API Reference" url="https://openvinotoolkit.github.io/dlstreamer_gst/"/>
|
||||
<!-- nGraph C++ API Reference -->
|
||||
<tab type="classes" visible="yes" title="nGraph С++ API Reference">
|
||||
<tab type="classlist" visible="yes" title=""/>
|
||||
<tab type="hierarchy" visible="yes" title=""/>
|
||||
<tab type="namespacemembers" visible="yes" title="" intro=""/>
|
||||
<tab type="pages" visible="no"/>
|
||||
<tab type="files" visible="no"/>
|
||||
<tab type="filelist" visible="no"/>
|
||||
<tab type="globals" visible="no"/>
|
||||
</tab>
|
||||
<!-- nGraph Python API -->
|
||||
<tab type="user" title="nGraph Python API Reference" url="../ngraph_python_api/files.html"/>
|
||||
</tab>
|
||||
<!-- Chinese docs -->
|
||||
<tab type="user" title="中文文件" url="https://docs.openvinotoolkit.org/cn/index.html"/>
|
||||
</navindex>
|
||||
|
||||
<!-- Layout definition for a class page -->
|
||||
<class>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<inheritancegraph visible="$CLASS_GRAPH"/>
|
||||
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
|
||||
<memberdecl>
|
||||
<nestedclasses visible="yes" title=""/>
|
||||
<publictypes title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<publicslots title=""/>
|
||||
<signals title=""/>
|
||||
<publicmethods title=""/>
|
||||
<publicstaticmethods title=""/>
|
||||
<publicattributes title=""/>
|
||||
<publicstaticattributes title=""/>
|
||||
<protectedtypes title=""/>
|
||||
<protectedslots title=""/>
|
||||
<protectedmethods title=""/>
|
||||
<protectedstaticmethods title=""/>
|
||||
<protectedattributes title=""/>
|
||||
<protectedstaticattributes title=""/>
|
||||
<packagetypes title=""/>
|
||||
<packagemethods title=""/>
|
||||
<packagestaticmethods title=""/>
|
||||
<packageattributes title=""/>
|
||||
<packagestaticattributes title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
<privatetypes title=""/>
|
||||
<privateslots title=""/>
|
||||
<privatemethods title=""/>
|
||||
<privatestaticmethods title=""/>
|
||||
<privateattributes title=""/>
|
||||
<privatestaticattributes title=""/>
|
||||
<friends title=""/>
|
||||
<related title="" subtitle=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<constructors title=""/>
|
||||
<functions title=""/>
|
||||
<related title=""/>
|
||||
<variables title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
</memberdef>
|
||||
<allmemberslink visible="yes"/>
|
||||
<usedfiles visible="$SHOW_USED_FILES"/>
|
||||
<authorsection visible="yes"/>
|
||||
</class>
|
||||
|
||||
<!-- Layout definition for a namespace page -->
|
||||
<namespace>
|
||||
<briefdescription visible="yes"/>
|
||||
<memberdecl>
|
||||
<nestednamespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</namespace>
|
||||
|
||||
<!-- Layout definition for a file page -->
|
||||
<file>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<includegraph visible="$INCLUDE_GRAPH"/>
|
||||
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
|
||||
<sourcelink visible="yes"/>
|
||||
<memberdecl>
|
||||
<classes visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection/>
|
||||
</file>
|
||||
|
||||
<!-- Layout definition for a group page -->
|
||||
<group>
|
||||
<briefdescription visible="yes"/>
|
||||
<groupgraph visible="$GROUP_GRAPHS"/>
|
||||
<memberdecl>
|
||||
<nestedgroups visible="yes" title=""/>
|
||||
<dirs visible="yes" title=""/>
|
||||
<files visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<pagedocs/>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</group>
|
||||
|
||||
<!-- Layout definition for a directory page -->
|
||||
<directory>
|
||||
<briefdescription visible="yes"/>
|
||||
<directorygraph visible="yes"/>
|
||||
<memberdecl>
|
||||
<dirs visible="yes"/>
|
||||
<files visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
</directory>
|
||||
</doxygenlayout>
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
<doxygenlayout version="1.0">
|
||||
<!-- Generated by doxygen 1.8.12 -->
|
||||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" title="OpenVINO Home" url="../index.html"/>
|
||||
<tab type="user" title="Get Started" url="../index.html"/>
|
||||
<tab type="user" title="Documentation" url="../documentation.html"/>
|
||||
<tab type="user" title="Examples" url="../examples.html"/>
|
||||
<tab type="usergroup" title="API REFERENCES" url="../api_references.html">
|
||||
<!-- OpenVX -->
|
||||
<tab type="user" title="OpenVX Developer Guide" url="https://khronos.org/openvx"/>
|
||||
<!-- OpenCV -->
|
||||
<tab type="user" title="OpenCV Developer Guide" url="https://docs.opencv.org/master/"/>
|
||||
<!-- IE C -->
|
||||
<tab type="usergroup" title="Inference Engine C API Reference" url="../ie_c_api/groups.html"/>
|
||||
<tab type="user" title="Inference Engine С++ API Reference" url="../annotated.html"/>
|
||||
<tab type="user" title="Inference Engine Python API Reference" url="../ie_python_api/annotated.html"/>
|
||||
<!-- DL Streamer -->
|
||||
<tab type="user" title="DL Streamer API Reference" url="https://openvinotoolkit.github.io/dlstreamer_gst/"/>
|
||||
<tab type="user" title="nGraph С++ API Reference" url="../ngraph_cpp_api/annotated.html"/>
|
||||
<!-- nGraph Python API Reference -->
|
||||
<tab type="files" visible="yes" title="nGraph Python API Reference">
|
||||
<tab type="filelist" visible="yes" title="nGraph Python API Reference" intro=""/>
|
||||
<tab type="globals" visible="yes" title="" intro=""/>
|
||||
</tab>
|
||||
</tab>
|
||||
<!-- Chinese docs -->
|
||||
<tab type="user" title="中文文件" url="https://docs.openvinotoolkit.org/cn/index.html"/>
|
||||
</navindex>
|
||||
|
||||
<!-- Layout definition for a class page -->
|
||||
<class>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<inheritancegraph visible="$CLASS_GRAPH"/>
|
||||
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
|
||||
<memberdecl>
|
||||
<nestedclasses visible="yes" title=""/>
|
||||
<publictypes title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<publicslots title=""/>
|
||||
<signals title=""/>
|
||||
<publicmethods title=""/>
|
||||
<publicstaticmethods title=""/>
|
||||
<publicattributes title=""/>
|
||||
<publicstaticattributes title=""/>
|
||||
<protectedtypes title=""/>
|
||||
<protectedslots title=""/>
|
||||
<protectedmethods title=""/>
|
||||
<protectedstaticmethods title=""/>
|
||||
<protectedattributes title=""/>
|
||||
<protectedstaticattributes title=""/>
|
||||
<packagetypes title=""/>
|
||||
<packagemethods title=""/>
|
||||
<packagestaticmethods title=""/>
|
||||
<packageattributes title=""/>
|
||||
<packagestaticattributes title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
<privatetypes title=""/>
|
||||
<privateslots title=""/>
|
||||
<privatemethods title=""/>
|
||||
<privatestaticmethods title=""/>
|
||||
<privateattributes title=""/>
|
||||
<privatestaticattributes title=""/>
|
||||
<friends title=""/>
|
||||
<related title="" subtitle=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<constructors title=""/>
|
||||
<functions title=""/>
|
||||
<related title=""/>
|
||||
<variables title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
</memberdef>
|
||||
<allmemberslink visible="yes"/>
|
||||
<usedfiles visible="$SHOW_USED_FILES"/>
|
||||
<authorsection visible="yes"/>
|
||||
</class>
|
||||
|
||||
<!-- Layout definition for a namespace page -->
|
||||
<namespace>
|
||||
<briefdescription visible="yes"/>
|
||||
<memberdecl>
|
||||
<nestednamespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</namespace>
|
||||
|
||||
<!-- Layout definition for a file page -->
|
||||
<file>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<includegraph visible="$INCLUDE_GRAPH"/>
|
||||
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
|
||||
<sourcelink visible="yes"/>
|
||||
<memberdecl>
|
||||
<classes visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection/>
|
||||
</file>
|
||||
|
||||
<!-- Layout definition for a group page -->
|
||||
<group>
|
||||
<briefdescription visible="yes"/>
|
||||
<groupgraph visible="$GROUP_GRAPHS"/>
|
||||
<memberdecl>
|
||||
<nestedgroups visible="yes" title=""/>
|
||||
<dirs visible="yes" title=""/>
|
||||
<files visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<pagedocs/>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</group>
|
||||
|
||||
<!-- Layout definition for a directory page -->
|
||||
<directory>
|
||||
<briefdescription visible="yes"/>
|
||||
<directorygraph visible="yes"/>
|
||||
<memberdecl>
|
||||
<dirs visible="yes"/>
|
||||
<files visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
</directory>
|
||||
</doxygenlayout>
|
||||
|
|
@ -0,0 +1,302 @@
|
|||
<doxygenlayout version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<!-- Navigation index tabs for HTML output -->
|
||||
<navindex>
|
||||
<tab type="mainpage" title="OpenVINO Home" url="@ref index"/>
|
||||
|
||||
<!-- GET STARTED category -->
|
||||
<tab type="usergroup" title="GET STARTED" url="index.html">
|
||||
<!-- Install Directly -->
|
||||
<tab type="usergroup" title="Install Directly" url=""><!--automatically generated-->
|
||||
<tab type="usergroup" title="Linux" url="@ref openvino_docs_install_guides_installing_openvino_linux">
|
||||
<tab type="user" title="Install Intel® Distribution of OpenVINO™ toolkit for Linux* OS" url="@ref openvino_docs_install_guides_installing_openvino_linux"/>
|
||||
<tab type="user" title="[DEPRECATED] Install Intel® Distribution of OpenVINO™ toolkit for Linux with FPGA Support" url="@ref openvino_docs_install_guides_installing_openvino_linux_fpga"/>
|
||||
</tab>
|
||||
<tab type="usergroup" title="Windows" url="@ref openvino_docs_install_guides_installing_openvino_windows">
|
||||
<tab type="user" title="Install Intel® Distribution of OpenVINO™ toolkit for Windows* 10" url="@ref openvino_docs_install_guides_installing_openvino_windows"/>
|
||||
<tab type="user" title="[DEPRECATED] Install Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA support" url="@ref openvino_docs_install_guides_installing_openvino_windows_fpga"/>
|
||||
</tab>
|
||||
<tab type="user" title="macOS" url="@ref openvino_docs_install_guides_installing_openvino_macos"/>
|
||||
<tab type="user" title="Raspbian OS" url="@ref openvino_docs_install_guides_installing_openvino_raspbian"/>
|
||||
</tab>
|
||||
<!-- Install From Images and Repositories -->
|
||||
<tab type="usergroup" title="Install From Images and Repositories" url=""><!--automatically generated-->
|
||||
<tab type="usergroup" title="Docker" url="@ref openvino_docs_install_guides_installing_openvino_docker_linux">
|
||||
<tab type="user" title="Install Intel® Distribution of OpenVINO™ toolkit for Linux* from a Docker* Image" url="@ref openvino_docs_install_guides_installing_openvino_docker_linux"/>
|
||||
<tab type="user" title="Install Intel® Distribution of OpenVINO™ toolkit for Windows* from a Docker* Image" url="@ref openvino_docs_install_guides_installing_openvino_docker_windows"/>
|
||||
</tab>
|
||||
<tab type="user" title="APT" url="@ref openvino_docs_install_guides_installing_openvino_apt"/>
|
||||
<tab type="user" title="YUM" url="@ref openvino_docs_install_guides_installing_openvino_yum"/>
|
||||
<tab type="user" title="Anaconda Cloud" url="@ref openvino_docs_install_guides_installing_openvino_conda"/>
|
||||
<tab type="user" title="Yocto" url="@ref openvino_docs_install_guides_installing_openvino_yocto"/>
|
||||
<tab type="user" title="PyPI" url="@ref openvino_docs_install_guides_installing_openvino_pip"/>
|
||||
<tab type="user" title="Build from Source" url="https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md"/>
|
||||
</tab>
|
||||
<!-- Get Started Guides-->
|
||||
<tab type="usergroup" title="Get Started Guides" url=""><!--automatically generated-->
|
||||
<tab type="user" title="OpenVINO™ Toolkit Overview" url="@ref index"/>
|
||||
<tab type="user" title="Linux" url="@ref openvino_docs_get_started_get_started_linux"/>
|
||||
<tab type="user" title="Windows" url="@ref openvino_docs_get_started_get_started_windows"/>
|
||||
<tab type="user" title="macOS" url="@ref openvino_docs_get_started_get_started_macos"/>
|
||||
<tab type="user" title="Legal Information" url="@ref openvino_docs_Legal_Information"/>
|
||||
</tab>
|
||||
<!-- Configuration for Hardware -->
|
||||
<tab type="usergroup" title="Configuration for Hardware" url=""><!--automatically generated-->
|
||||
<tab type="usergroup" title="VPUs" url="@ref openvino_docs_install_guides_movidius_setup_guide">
|
||||
<tab type="user" title="Configuration Guide for Intel® Vision Accelerator Design with Intel® Movidius™ VPUs on Linux" url="@ref openvino_docs_install_guides_installing_openvino_linux_ivad_vpu"/>
|
||||
<tab type="user" title="Intel® Movidius™ VPUs Setup Guide" url="@ref openvino_docs_install_guides_movidius_setup_guide"/>
|
||||
<tab type="user" title="Intel® Movidius™ VPUs Programming Guide" url="@ref openvino_docs_install_guides_movidius_programming_guide"/>
|
||||
</tab>
|
||||
<tab type="usergroup" title="[DEPRECATED] FPGAs" url="@ref openvino_docs_install_guides_VisionAcceleratorFPGA_Configure">
|
||||
<tab type="user" title="[DEPRECATED] Configuration Guide for Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA SG2 (IEIs Mustang-F100-A10) on Linux" url="@ref openvino_docs_install_guides_VisionAcceleratorFPGA_Configure"/>
|
||||
<tab type="user" title="[DEPRECATED] Configuration Guide for Intel® Programmable Acceleration Card with Intel® Arria® 10 FPGA GX on CentOS or Ubuntu*" url="@ref openvino_docs_install_guides_PAC_Configure"/>
|
||||
</tab>
|
||||
</tab>
|
||||
<!-- Security -->
|
||||
<tab type="usergroup" title="Security" url="@ref openvino_docs_security_guide_introduction"><!--automatically generated-->
|
||||
<tab type="user" title="Introduction" url="@ref openvino_docs_security_guide_introduction"/>
|
||||
<tab type="user" title="Using DL Workbench Securely" url="@ref openvino_docs_security_guide_workbench"/>
|
||||
<tab type="user" title="Using Encrypted Models" url="@ref openvino_docs_IE_DG_protecting_model_guide"/>
|
||||
</tab>
|
||||
</tab>
|
||||
|
||||
<!-- DOCUMENTATION category -->
|
||||
<tab type="usergroup" title="DOCUMENTATION"><!--automatically generated-->
|
||||
<!-- DLDT Documentation-->
|
||||
<xi:include href="ie_docs.xml" xpointer="xpointer(//tab[@id='converting_and_preparing_models'])"/>
|
||||
<xi:include href="ie_docs.xml" xpointer="xpointer(//tab[@id='intermediate_representaton_and_operations_sets'])"/>
|
||||
<xi:include href="ie_docs.xml" xpointer="xpointer(//tab[@id='deploying_inference'])"/>
|
||||
<!-- Workbench -->
|
||||
<xi:include href="workbench_docs.xml" xpointer="xpointer(//tab[@id='deep_learning_workbench'])"/>
|
||||
<!-- Optimization docs -->
|
||||
<xi:include href="optimization_docs.xml" xpointer="xpointer(//tab[@id='tuning_for_performance'])"/>
|
||||
<tab type="usergroup" title="Media Processing">
|
||||
<!-- DL Streamer -->
|
||||
<tab type="user" title="DL Streamer API Reference" url="https://openvinotoolkit.github.io/dlstreamer_gst/"/>
|
||||
<!-- DL Streamer Examples -->
|
||||
<tab type="usergroup" title="DL Streamer Examples" url="@ref gst_samples_README">
|
||||
</tab>
|
||||
<!-- OpenVX -->
|
||||
<tab type="user" title="OpenVX Developer Guide" url="https://software.intel.com/en-us/openvino-ovx-guide"/>
|
||||
<tab type="user" title="OpenVX API Reference" url="https://khronos.org/openvx"/>
|
||||
<!-- OpenCV -->
|
||||
<tab type="user" title="OpenCV* Developer Guide" url="https://docs.opencv.org/master/"/>
|
||||
<!-- OpenCL -->
|
||||
<tab type="user" title="OpenCL™ Developer Guide" url="https://software.intel.com/en-us/openclsdk-devguide"/>
|
||||
</tab>
|
||||
</tab>
|
||||
|
||||
<!-- RESOURCES category -->
|
||||
<tab type="usergroup" title="RESOURCES">
|
||||
<!-- Models and Demos Documentation-->
|
||||
<xi:include href="omz_docs.xml" xpointer="xpointer(//tab[@id='trained_models'])"/>
|
||||
<xi:include href="omz_docs.xml" xpointer="xpointer(//tab[@id='application_demos'])"/>
|
||||
<!-- IE Code Samples -->
|
||||
<tab type="usergroup" title="Inference Engine Code Samples" url="@ref openvino_docs_IE_DG_Samples_Overview">
|
||||
<tab type="user" title="Image Classification C++ Sample Async" url="@ref openvino_inference_engine_samples_classification_sample_async_README"/>
|
||||
<tab type="user" title="Image Classification Python* Sample Async" url="@ref openvino_inference_engine_ie_bridges_python_sample_classification_sample_async_README"/>
|
||||
<tab type="user" title="Hello Classification C++ Sample" url="@ref openvino_inference_engine_samples_hello_classification_README"/>
|
||||
<tab type="user" title="Hello Classification C Sample" url="@ref openvino_inference_engine_ie_bridges_c_samples_hello_classification_README"/>
|
||||
<tab type="user" title="Image Classification Python* Sample" url="@ref openvino_inference_engine_ie_bridges_python_sample_classification_sample_README"/>
|
||||
<tab type="user" title="Hello Reshape SSD C++ Sample" url="@ref openvino_inference_engine_samples_hello_reshape_ssd_README"/>
|
||||
<tab type="user" title="Hello NV12 Input Classification C++ Sample" url="@ref openvino_inference_engine_samples_hello_nv12_input_classification_README"/>
|
||||
<tab type="user" title="Hello NV12 Input Classification C Sample" url="@ref openvino_inference_engine_ie_bridges_c_samples_hello_nv12_input_classification_README"/>
|
||||
<tab type="user" title="Hello Query Device C++ Sample" url="@ref openvino_inference_engine_samples_hello_query_device_README"/>
|
||||
<tab type="user" title="Hello Query Device Python* Sample" url="@ref openvino_inference_engine_ie_bridges_python_sample_hello_query_device_README"/>
|
||||
<tab type="user" title="nGraph Function C++ Sample" url="@ref openvino_inference_engine_samples_ngraph_function_creation_sample_README"/>
|
||||
<tab type="user" title="Object Detection C++ Sample SSD" url="@ref openvino_inference_engine_samples_object_detection_sample_ssd_README"/>
|
||||
<tab type="user" title="Object Detection Python* Sample SSD" url="@ref openvino_inference_engine_ie_bridges_python_sample_object_detection_sample_ssd_README"/>
|
||||
<tab type="user" title="Object Detection C Sample SSD" url="@ref openvino_inference_engine_ie_bridges_c_samples_object_detection_sample_ssd_README"/>
|
||||
<tab type="user" title="Automatic Speech Recognition C++ Sample" url="@ref openvino_inference_engine_samples_speech_sample_README"/>
|
||||
<tab type="user" title="Neural Style Transfer C++ Sample" url="@ref openvino_inference_engine_samples_style_transfer_sample_README"/>
|
||||
<tab type="user" title="Neural Style Transfer Python* Sample" url="@ref openvino_inference_engine_ie_bridges_python_sample_style_transfer_sample_README"/>
|
||||
<tab type="user" title="Benchmark C++ App" url="@ref openvino_inference_engine_samples_benchmark_app_README"/>
|
||||
<tab type="user" title="Benchmark Python* App" url="@ref openvino_inference_engine_tools_benchmark_tool_README"/>
|
||||
</tab>
|
||||
|
||||
<!-- DL Streamer Examples -->
|
||||
<tab type="usergroup" title="DL Streamer Examples" url="@ref gst_samples_README">
|
||||
<tab type="usergroup" title="Command Line Samples" url="">
|
||||
<tab type="user" title="Audio Detection Sample" url="@ref gst_samples_gst_launch_audio_detect_README"/>
|
||||
<tab type="user" title="Face Detection And Classification Sample" url="@ref gst_samples_gst_launch_face_detection_and_classification_README"/>
|
||||
<tab type="user" title="Vehicle and Pedestrian Tracking Sample" url="@ref gst_samples_gst_launch_vehicle_pedestrian_tracking_README"/>
|
||||
<tab type="usergroup" title="Metadata Publishing Sample" url="@ref gst_samples_gst_launch_metapublish_README">
|
||||
<tab type="user" title="MetaPublish Listeners" url="@ref gst_samples_gst_launch_metapublish_listener"/>
|
||||
</tab>
|
||||
<tab type="user" title="gvapython Sample" url="@ref gst_samples_gst_launch_gvapython_face_detection_and_classification_README"/>
|
||||
</tab>
|
||||
<tab type="user" title="Draw Face Attributes C++ Sample" url="@ref gst_samples_cpp_draw_face_attributes_README"/>
|
||||
<tab type="user" title="Draw Face Attributes Python Sample" url="@ref gst_samples_python_draw_face_attributes_README"/>
|
||||
<tab type="user" title="Benchmark Sample" url="@ref gst_samples_benchmark_README"/>
|
||||
</tab>
|
||||
</tab>
|
||||
|
||||
<!-- Chinese docs -->
|
||||
<tab type="user" title="中文文件" url="https://docs.openvinotoolkit.org/cn/index.html"/>
|
||||
</navindex>
|
||||
|
||||
<!-- Layout definition for a class page -->
|
||||
<class>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<inheritancegraph visible="$CLASS_GRAPH"/>
|
||||
<collaborationgraph visible="$COLLABORATION_GRAPH"/>
|
||||
<memberdecl>
|
||||
<nestedclasses visible="yes" title=""/>
|
||||
<publictypes title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<publicslots title=""/>
|
||||
<signals title=""/>
|
||||
<publicmethods title=""/>
|
||||
<publicstaticmethods title=""/>
|
||||
<publicattributes title=""/>
|
||||
<publicstaticattributes title=""/>
|
||||
<protectedtypes title=""/>
|
||||
<protectedslots title=""/>
|
||||
<protectedmethods title=""/>
|
||||
<protectedstaticmethods title=""/>
|
||||
<protectedattributes title=""/>
|
||||
<protectedstaticattributes title=""/>
|
||||
<packagetypes title=""/>
|
||||
<packagemethods title=""/>
|
||||
<packagestaticmethods title=""/>
|
||||
<packageattributes title=""/>
|
||||
<packagestaticattributes title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
<privatetypes title=""/>
|
||||
<privateslots title=""/>
|
||||
<privatemethods title=""/>
|
||||
<privatestaticmethods title=""/>
|
||||
<privateattributes title=""/>
|
||||
<privatestaticattributes title=""/>
|
||||
<friends title=""/>
|
||||
<related title="" subtitle=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<services title=""/>
|
||||
<interfaces title=""/>
|
||||
<constructors title=""/>
|
||||
<functions title=""/>
|
||||
<related title=""/>
|
||||
<variables title=""/>
|
||||
<properties title=""/>
|
||||
<events title=""/>
|
||||
</memberdef>
|
||||
<allmemberslink visible="yes"/>
|
||||
<usedfiles visible="$SHOW_USED_FILES"/>
|
||||
<authorsection visible="yes"/>
|
||||
</class>
|
||||
<!-- Layout definition for a namespace page -->
|
||||
<namespace>
|
||||
<briefdescription visible="yes"/>
|
||||
<memberdecl>
|
||||
<nestednamespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</namespace>
|
||||
<!-- Layout definition for a file page -->
|
||||
<file>
|
||||
<briefdescription visible="yes"/>
|
||||
<includes visible="$SHOW_INCLUDE_FILES"/>
|
||||
<includegraph visible="$INCLUDE_GRAPH"/>
|
||||
<includedbygraph visible="$INCLUDED_BY_GRAPH"/>
|
||||
<sourcelink visible="yes"/>
|
||||
<memberdecl>
|
||||
<classes visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<constantgroups visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
</memberdef>
|
||||
<authorsection/>
|
||||
</file>
|
||||
<!-- Layout definition for a group page -->
|
||||
<group>
|
||||
<briefdescription visible="yes"/>
|
||||
<groupgraph visible="$GROUP_GRAPHS"/>
|
||||
<memberdecl>
|
||||
<nestedgroups visible="yes" title=""/>
|
||||
<dirs visible="yes" title=""/>
|
||||
<files visible="yes" title=""/>
|
||||
<namespaces visible="yes" title=""/>
|
||||
<classes visible="yes" title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
<membergroups visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
<memberdef>
|
||||
<pagedocs/>
|
||||
<inlineclasses title=""/>
|
||||
<defines title=""/>
|
||||
<typedefs title=""/>
|
||||
<enums title=""/>
|
||||
<enumvalues title=""/>
|
||||
<functions title=""/>
|
||||
<variables title=""/>
|
||||
<signals title=""/>
|
||||
<publicslots title=""/>
|
||||
<protectedslots title=""/>
|
||||
<privateslots title=""/>
|
||||
<events title=""/>
|
||||
<properties title=""/>
|
||||
<friends title=""/>
|
||||
</memberdef>
|
||||
<authorsection visible="yes"/>
|
||||
</group>
|
||||
<!-- Layout definition for a directory page -->
|
||||
<directory>
|
||||
<briefdescription visible="yes"/>
|
||||
<directorygraph visible="yes"/>
|
||||
<memberdecl>
|
||||
<dirs visible="yes"/>
|
||||
<files visible="yes"/>
|
||||
</memberdecl>
|
||||
<detaileddescription title=""/>
|
||||
</directory>
|
||||
</doxygenlayout>
|
||||
|
|
@ -23,9 +23,15 @@ In addition, demo scripts, code samples and demo applications are provided to he
|
|||
## <a name="openvino-installation"></a>Intel® Distribution of OpenVINO™ toolkit Installation and Deployment Tools Directory Structure
|
||||
This guide assumes you completed all Intel® Distribution of OpenVINO™ toolkit installation and configuration steps. If you have not yet installed and configured the toolkit, see [Install Intel® Distribution of OpenVINO™ toolkit for Linux*](../install_guides/installing-openvino-linux.md).
|
||||
|
||||
By default, the installation directory is `/opt/intel/openvino`, but the installation gave you the option to use the directory of your choice. If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `/opt/intel` with the directory in which you installed the software.
|
||||
By default, the Intel® Distribution of OpenVINO™ is installed to the following directory, referred to as `<INSTALL_DIR>`:
|
||||
* For root or administrator: `/opt/intel/openvino_<version>/`
|
||||
* For regular users: `/home/<USER>/intel/openvino_<version>/`
|
||||
|
||||
The primary tools for deploying your models and applications are installed to the `/opt/intel/openvino/deployment_tools` directory.
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/home/<user>/intel/openvino_2021/`
|
||||
|
||||
If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `/opt/intel` or `/home/<USER>/` with the directory in which you installed the software.
|
||||
|
||||
The primary tools for deploying your models and applications are installed to the `/opt/intel/openvino_2021/deployment_tools` directory.
|
||||
<details>
|
||||
<summary><strong>Click for the Intel® Distribution of OpenVINO™ toolkit directory structure</strong></summary>
|
||||
|
||||
|
|
@ -57,7 +63,7 @@ The simplified OpenVINO™ workflow is:
|
|||
|
||||
## Use the Demo Scripts to Learn the Workflow
|
||||
|
||||
The demo scripts in `/opt/intel/openvino/deployment_tools/demo` give you a starting point to learn the OpenVINO workflow. These scripts automatically perform the workflow steps to demonstrate running inference pipelines for different scenarios. The demo steps let you see how to:
|
||||
The demo scripts in `/opt/intel/openvino_2021/deployment_tools/demo` give you a starting point to learn the OpenVINO workflow. These scripts automatically perform the workflow steps to demonstrate running inference pipelines for different scenarios. The demo steps let you see how to:
|
||||
* Compile several samples from the source files delivered as part of the OpenVINO toolkit.
|
||||
* Download trained models.
|
||||
* Perform pipeline steps and see the output on the console.
|
||||
|
|
@ -194,10 +200,10 @@ Each demo and code sample is a separate application, but they use the same behav
|
|||
* [Demo Applications](@ref omz_demos_README) - Console applications that provide robust application templates to support developers in implementing specific deep learning scenarios. They may also involve more complex processing pipelines that gather analysis from several models that run inference simultaneously. For example concurrently detecting a person in a video stream and detecting attributes such as age, gender and/or emotions.
|
||||
|
||||
Inputs you'll need to specify:
|
||||
- **A compiled OpenVINO™ code sample or demo application** that runs inferencing against a model that has been run through the Model Optimizer, resuiting in an IR, using the other inputs you provide.
|
||||
- **A compiled OpenVINO™ code sample or demo application** that runs inferencing against a model that has been run through the Model Optimizer, resulting in an IR, using the other inputs you provide.
|
||||
- **One or more models** in the Intermediate Representation format. Each model is trained for a specific task. Examples include pedestrian detection, face detection, vehicle detection, license plate recognition, head pose, and others. Different models are used for different applications. Models can be chained together to provide multiple features; for example vehicle + make/model + license plate recognition.
|
||||
- **One or more media files**. The media is typically a video file, but can be a still photo.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, GPU, FPGA, or VPU accelerator.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, GPU, or VPU accelerator.
|
||||
|
||||
### Build the Code Samples and Demo Applications
|
||||
|
||||
|
|
@ -221,7 +227,7 @@ This guide uses the Model Downloader to get pre-trained models. You can use one
|
|||
|
||||
* **List the models available in the downloader**:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/tools/model_downloader/
|
||||
cd /opt/intel/openvino_2021/deployment_tools/tools/model_downloader/
|
||||
```
|
||||
```sh
|
||||
python3 info_dumper.py --print_all
|
||||
|
|
@ -325,7 +331,7 @@ The `vehicle-license-plate-detection-barrier-0106`, `vehicle-attributes-recognit
|
|||
|
||||
3. Run the Model Optimizer script:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer
|
||||
```
|
||||
```sh
|
||||
python3 ./mo.py --input_model <model_dir>/<model_file> --data_type <model_precision> --output_dir <ir_dir>
|
||||
|
|
@ -338,7 +344,7 @@ The `vehicle-license-plate-detection-barrier-0106`, `vehicle-attributes-recognit
|
|||
The following command converts the public SqueezeNet 1.1 Caffe\* model to the FP16 IR and saves to the `~/models/public/squeezenet1.1/ir` output directory:
|
||||
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer
|
||||
```
|
||||
```sh
|
||||
python3 ./mo.py --input_model ~/models/public/squeezenet1.1/squeezenet1.1.caffemodel --data_type FP16 --output_dir ~/models/public/squeezenet1.1/ir
|
||||
|
|
@ -346,9 +352,9 @@ The following command converts the public SqueezeNet 1.1 Caffe\* model to the FP
|
|||
|
||||
After the Model Optimizer script is completed, the produced IR files (`squeezenet1.1.xml`, `squeezenet1.1.bin`) are in the specified `~/models/public/squeezenet1.1/ir` directory.
|
||||
|
||||
Copy the `squeezenet1.1.labels` file from the `/opt/intel/openvino/deployment_tools/demo/` to `<ir_dir>`. This file contains the classes that ImageNet uses. Therefore, the inference results show text instead of classification numbers:
|
||||
Copy the `squeezenet1.1.labels` file from the `/opt/intel/openvino_2021/deployment_tools/demo/` to `<ir_dir>`. This file contains the classes that ImageNet uses. Therefore, the inference results show text instead of classification numbers:
|
||||
```sh
|
||||
cp /opt/intel/openvino/deployment_tools/demo/squeezenet1.1.labels <ir_dir>
|
||||
cp /opt/intel/openvino_2021/deployment_tools/demo/squeezenet1.1.labels <ir_dir>
|
||||
```
|
||||
</details>
|
||||
|
||||
|
|
@ -359,8 +365,8 @@ Many sources are available from which you can download video media to use the co
|
|||
- https://images.google.com
|
||||
|
||||
As an alternative, the Intel® Distribution of OpenVINO™ toolkit includes two sample images that you can use for running code samples and demo applications:
|
||||
* `/opt/intel/openvino/deployment_tools/demo/car.png`
|
||||
* `/opt/intel/openvino/deployment_tools/demo/car_1.bmp`
|
||||
* `/opt/intel/openvino_2021/deployment_tools/demo/car.png`
|
||||
* `/opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp`
|
||||
|
||||
### <a name="run-image-classification"></a>Step 4: Run the Image Classification Code Sample
|
||||
|
||||
|
|
@ -370,7 +376,7 @@ To run the **Image Classification** code sample with an input image on the IR:
|
|||
|
||||
1. Set up the OpenVINO environment variables:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Go to the code samples build directory:
|
||||
```sh
|
||||
|
|
@ -383,32 +389,32 @@ To run the **Image Classification** code sample with an input image on the IR:
|
|||
<details>
|
||||
<summary><strong>Click for examples of running the Image Classification code sample on different devices</strong></summary>
|
||||
|
||||
The following commands run the Image Classification Code Sample using the `car.png` file from the `/opt/intel/openvino/deployment_tools/demo/` directory as an input image, the IR of your model from `~/models/public/squeezenet1.1/ir` and on different hardware devices:
|
||||
The following commands run the Image Classification Code Sample using the `car.png` file from the `/opt/intel/openvino_2021/deployment_tools/demo/` directory as an input image, the IR of your model from `~/models/public/squeezenet1.1/ir` and on different hardware devices:
|
||||
|
||||
**CPU:**
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d CPU
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d CPU
|
||||
```
|
||||
|
||||
**GPU:**
|
||||
|
||||
> **NOTE**: Running inference on Intel® Processor Graphics (GPU) requires additional hardware configuration steps. For details, see the Steps for Intel® Processor Graphics (GPU) section in the [installation instructions](../install_guides/installing-openvino-linux.md).
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d GPU
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d GPU
|
||||
```
|
||||
|
||||
**MYRIAD:**
|
||||
|
||||
> **NOTE**: Running inference on VPU devices (Intel® Neural Compute Stick 2) with the MYRIAD plugin requires additional hardware configuration steps. For details, see the Steps for Intel® Neural Compute Stick 2 section in the [installation instructions](../install_guides/installing-openvino-linux.md).
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d MYRIAD
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d MYRIAD
|
||||
```
|
||||
|
||||
**HDDL:**
|
||||
|
||||
> **NOTE**: Running inference on the Intel® Vision Accelerator Design with Intel® Movidius™ VPUs device with the HDDL plugin requires additional hardware configuration steps. For details, see the Steps for Intel® Vision Accelerator Design with Intel® Movidius™ VPUs section in the [installation instructions](../install_guides/installing-openvino-linux.md).
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d HDDL
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d HDDL
|
||||
```
|
||||
|
||||
When the Sample Application completes, you see the label and confidence for the top-10 categories on the display. Below is a sample output with inference results on CPU:
|
||||
|
|
@ -449,7 +455,7 @@ To run the **Security Barrier Camera Demo Application** using an input image on
|
|||
|
||||
1. Set up the OpenVINO environment variables:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Go to the demo application build directory:
|
||||
```sh
|
||||
|
|
@ -466,14 +472,14 @@ To run the **Security Barrier Camera Demo Application** using an input image on
|
|||
**CPU:**
|
||||
|
||||
```sh
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m /home/username/models/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_va /home/username/models/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -m_lpr /home/username/models/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -d CPU
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp -m /home/username/models/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_va /home/username/models/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -m_lpr /home/username/models/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -d CPU
|
||||
```
|
||||
|
||||
**GPU:**
|
||||
|
||||
> **NOTE**: Running inference on Intel® Processor Graphics (GPU) requires additional hardware configuration steps. For details, see the Steps for Intel® Processor Graphics (GPU) section in the [installation instructions](../install_guides/installing-openvino-linux.md).
|
||||
```sh
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m <path_to_model>/vehicle-license-plate-detection-barrier-0106.xml -m_va <path_to_model>/vehicle-attributes-recognition-barrier-0039.xml -m_lpr <path_to_model>/license-plate-recognition-barrier-0001.xml -d GPU
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp -m <path_to_model>/vehicle-license-plate-detection-barrier-0106.xml -m_va <path_to_model>/vehicle-attributes-recognition-barrier-0039.xml -m_lpr <path_to_model>/license-plate-recognition-barrier-0001.xml -d GPU
|
||||
```
|
||||
|
||||
**MYRIAD:**
|
||||
|
|
@ -498,7 +504,7 @@ Following are some basic guidelines for executing the OpenVINO™ workflow using
|
|||
|
||||
1. Before using the OpenVINO™ samples, always set up the environment:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Have the directory path for the following:
|
||||
- Code Sample binaries located in `~/inference_engine_cpp_samples_build/intel64/Release`
|
||||
|
|
@ -559,7 +565,7 @@ You can see all the sample application’s parameters by adding the `-h` or `--h
|
|||
Use these resources to learn more about the OpenVINO™ toolkit:
|
||||
|
||||
* [OpenVINO™ Release Notes](https://software.intel.com/en-us/articles/OpenVINO-RelNotes)
|
||||
* [Introduction to Intel® Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
* [OpenVINO™ Toolkit Overview](../index.md)
|
||||
* [Inference Engine Developer Guide](../IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
* [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
* [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md)
|
||||
|
|
|
|||
|
|
@ -24,10 +24,12 @@ In addition, demo scripts, code samples and demo applications are provided to he
|
|||
This guide assumes you completed all Intel® Distribution of OpenVINO™ toolkit installation and configuration steps. If you have not yet installed and configured the toolkit, see [Install Intel® Distribution of OpenVINO™ toolkit for macOS*](../install_guides/installing-openvino-macos.md).
|
||||
|
||||
By default, the Intel® Distribution of OpenVINO™ is installed to the following directory, referred to as `<INSTALL_DIR>`:
|
||||
* For root or administrator: `/opt/intel/openvino/`
|
||||
* For regular users: `/home/<USER>/intel/openvino/`
|
||||
* For root or administrator: `/opt/intel/openvino_<version>/`
|
||||
* For regular users: `/home/<USER>/intel/openvino_<version>/`
|
||||
|
||||
If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `/opt/intel` or `/home/<USER>/` with the directory in which you installed the software.
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/home/<user>/intel/openvino_2021/`.
|
||||
|
||||
If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `/opt/intel` or `/home/<USER>/` with the directory in which you installed the software.
|
||||
|
||||
The primary tools for deploying your models and applications are installed to the `<INSTALL_DIR>/deployment_tools` directory.
|
||||
<details>
|
||||
|
|
@ -105,7 +107,7 @@ When the script completes, you see the label and confidence for the top-10 categ
|
|||
|
||||
Top 10 results:
|
||||
|
||||
Image /opt/intel/openvino/deployment_tools/demo/car.png
|
||||
Image /opt/intel/openvino_2021/deployment_tools/demo/car.png
|
||||
|
||||
classid probability label
|
||||
------- ----------- -----
|
||||
|
|
@ -192,7 +194,7 @@ Inputs you need to specify when using a code sample or demo application:
|
|||
- **A compiled OpenVINO™ code sample or demo application** that runs inferencing against a model that has been run through the Model Optimizer, resulting in an IR, using the other inputs you provide.
|
||||
- **One or more models** in the IR format. Each model is trained for a specific task. Examples include pedestrian detection, face detection, vehicle detection, license plate recognition, head pose, and others. Different models are used for different applications. Models can be chained together to provide multiple features; for example, vehicle + make/model + license plate recognition.
|
||||
- **One or more media files**. The media is typically a video file, but can be a still photo.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, FPGA, or VPU accelerator.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, or VPU accelerator.
|
||||
|
||||
### Build the Code Samples and Demo Applications
|
||||
|
||||
|
|
@ -216,7 +218,7 @@ This guide uses the Model Downloader to get pre-trained models. You can use one
|
|||
|
||||
* **List the models available in the downloader**:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/tools/model_downloader/
|
||||
cd /opt/intel/openvino_2021/deployment_tools/tools/model_downloader/
|
||||
```
|
||||
```sh
|
||||
python3 info_dumper.py --print_all
|
||||
|
|
@ -321,7 +323,7 @@ The `vehicle-license-plate-detection-barrier-0106`, `vehicle-attributes-recognit
|
|||
|
||||
3. Run the Model Optimizer script:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer
|
||||
```
|
||||
```sh
|
||||
python3 ./mo.py --input_model <model_dir>/<model_file> --data_type <model_precision> --output_dir <ir_dir>
|
||||
|
|
@ -334,7 +336,7 @@ The `vehicle-license-plate-detection-barrier-0106`, `vehicle-attributes-recognit
|
|||
The following command converts the public SqueezeNet 1.1 Caffe\* model to the FP16 IR and saves to the `~/models/public/squeezenet1.1/ir` output directory:
|
||||
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer
|
||||
```
|
||||
```sh
|
||||
python3 ./mo.py --input_model ~/models/public/squeezenet1.1/squeezenet1.1.caffemodel --data_type FP16 --output_dir ~/models/public/squeezenet1.1/ir
|
||||
|
|
@ -342,9 +344,9 @@ The following command converts the public SqueezeNet 1.1 Caffe\* model to the FP
|
|||
|
||||
After the Model Optimizer script is completed, the produced IR files (`squeezenet1.1.xml`, `squeezenet1.1.bin`) are in the specified `~/models/public/squeezenet1.1/ir` directory.
|
||||
|
||||
Copy the `squeezenet1.1.labels` file from the `/opt/intel/openvino/deployment_tools/demo/` to `<ir_dir>`. This file contains the classes that ImageNet uses. Therefore, the inference results show text instead of classification numbers:
|
||||
Copy the `squeezenet1.1.labels` file from the `/opt/intel/openvino_2021/deployment_tools/demo/` to `<ir_dir>`. This file contains the classes that ImageNet uses. Therefore, the inference results show text instead of classification numbers:
|
||||
```sh
|
||||
cp /opt/intel/openvino/deployment_tools/demo/squeezenet1.1.labels <ir_dir>
|
||||
cp /opt/intel/openvino_2021/deployment_tools/demo/squeezenet1.1.labels <ir_dir>
|
||||
```
|
||||
</details>
|
||||
|
||||
|
|
@ -355,8 +357,8 @@ Many sources are available from which you can download video media to use the co
|
|||
- https://images.google.com
|
||||
|
||||
As an alternative, the Intel® Distribution of OpenVINO™ toolkit includes two sample images that you can use for running code samples and demo applications:
|
||||
* `/opt/intel/openvino/deployment_tools/demo/car.png`
|
||||
* `/opt/intel/openvino/deployment_tools/demo/car_1.bmp`
|
||||
* `/opt/intel/openvino_2021/deployment_tools/demo/car.png`
|
||||
* `/opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp`
|
||||
|
||||
### <a name="run-image-classification"></a>Step 4: Run the Image Classification Code Sample
|
||||
|
||||
|
|
@ -366,7 +368,7 @@ To run the **Image Classification** code sample with an input image on the IR:
|
|||
|
||||
1. Set up the OpenVINO environment variables:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Go to the code samples build directory:
|
||||
```sh
|
||||
|
|
@ -379,11 +381,11 @@ To run the **Image Classification** code sample with an input image on the IR:
|
|||
<details>
|
||||
<summary><strong>Click for examples of running the Image Classification code sample on different devices</strong></summary>
|
||||
|
||||
The following commands run the Image Classification Code Sample using the `car.png` file from the `/opt/intel/openvino/deployment_tools/demo/` directory as an input image, the IR of your model from `~/models/public/squeezenet1.1/ir` and on different hardware devices:
|
||||
The following commands run the Image Classification Code Sample using the `car.png` file from the `/opt/intel/openvino_2021/deployment_tools/demo/` directory as an input image, the IR of your model from `~/models/public/squeezenet1.1/ir` and on different hardware devices:
|
||||
|
||||
**CPU:**
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d CPU
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d CPU
|
||||
```
|
||||
|
||||
|
||||
|
|
@ -391,14 +393,14 @@ The following commands run the Image Classification Code Sample using the `car.p
|
|||
|
||||
> **NOTE**: Running inference on VPU devices (Intel® Neural Compute Stick 2) with the MYRIAD plugin requires additional hardware configuration steps. For details, see the Steps for Intel® Neural Compute Stick 2 section in the [installation instructions](../install_guides/installing-openvino-macos.md).
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d MYRIAD
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/models/public/squeezenet1.1/ir/squeezenet1.1.xml -d MYRIAD
|
||||
```
|
||||
|
||||
When the Sample Application completes, you see the label and confidence for the top-10 categories on the display. Below is a sample output with inference results on CPU:
|
||||
```sh
|
||||
Top 10 results:
|
||||
|
||||
Image /opt/intel/openvino/deployment_tools/demo/car.png
|
||||
Image /opt/intel/openvino_2021/deployment_tools/demo/car.png
|
||||
|
||||
classid probability label
|
||||
------- ----------- -----
|
||||
|
|
@ -426,7 +428,7 @@ To run the **Security Barrier Camera Demo Application** using an input image on
|
|||
|
||||
1. Set up the OpenVINO environment variables:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Go to the demo application build directory:
|
||||
```sh
|
||||
|
|
@ -443,7 +445,7 @@ To run the **Security Barrier Camera Demo Application** using an input image on
|
|||
**CPU:**
|
||||
|
||||
```sh
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino/deployment_tools/demo/car_1.bmp -m ~/models/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_va ~/models/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -m_lpr ~/models/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -d CPU
|
||||
./security_barrier_camera_demo -i /opt/intel/openvino_2021/deployment_tools/demo/car_1.bmp -m ~/models/intel/vehicle-license-plate-detection-barrier-0106/FP16/vehicle-license-plate-detection-barrier-0106.xml -m_va ~/models/intel/vehicle-attributes-recognition-barrier-0039/FP16/vehicle-attributes-recognition-barrier-0039.xml -m_lpr ~/models/intel/license-plate-recognition-barrier-0001/FP16/license-plate-recognition-barrier-0001.xml -d CPU
|
||||
```
|
||||
|
||||
**MYRIAD:**
|
||||
|
|
@ -461,7 +463,7 @@ Following are some basic guidelines for executing the OpenVINO™ workflow using
|
|||
|
||||
1. Before using the OpenVINO™ samples, always set up the environment:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Have the directory path for the following:
|
||||
- Code Sample binaries located in `~/inference_engine_cpp_samples_build/intel64/Release`
|
||||
|
|
@ -522,7 +524,7 @@ You can see all the sample application’s parameters by adding the `-h` or `--h
|
|||
Use these resources to learn more about the OpenVINO™ toolkit:
|
||||
|
||||
* [OpenVINO™ Release Notes](https://software.intel.com/en-us/articles/OpenVINO-RelNotes)
|
||||
* [Introduction to Intel® Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
* [OpenVINO™ Toolkit Overview](../index.md)
|
||||
* [Inference Engine Developer Guide](../IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
* [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
* [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ In addition, demo scripts, code samples and demo applications are provided to he
|
|||
## <a name="openvino-installation"></a>Intel® Distribution of OpenVINO™ toolkit Installation and Deployment Tools Directory Structure
|
||||
This guide assumes you completed all Intel® Distribution of OpenVINO™ toolkit installation and configuration steps. If you have not yet installed and configured the toolkit, see [Install Intel® Distribution of OpenVINO™ toolkit for Windows*](../install_guides/installing-openvino-windows.md).
|
||||
|
||||
By default, the installation directory is `C:\Program Files (x86)\IntelSWTools\openvino`, referred to as `<INSTALL_DIR>`. If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `C:\Program Files (x86)\IntelSWTools` with the directory in which you installed the software.
|
||||
By default, the installation directory is `C:\Program Files (x86)\Intel\openvino_<version>`, referred to as `<INSTALL_DIR>`. If you installed the Intel® Distribution of OpenVINO™ toolkit to a directory other than the default, replace `C:\Program Files (x86)\Intel` with the directory in which you installed the software. For simplicity, a shortcut to the latest installation is also created: `C:\Program Files (x86)\Intel\openvino_2021`.
|
||||
|
||||
The primary tools for deploying your models and applications are installed to the `<INSTALL_DIR>\deployment_tools` directory.
|
||||
<details>
|
||||
|
|
@ -106,7 +106,7 @@ When the script completes, you see the label and confidence for the top-10 categ
|
|||
|
||||
Top 10 results:
|
||||
|
||||
Image C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png
|
||||
Image C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png
|
||||
|
||||
classid probability label
|
||||
------- ----------- -----
|
||||
|
|
@ -193,7 +193,7 @@ Inputs you need to specify when using a code sample or demo application:
|
|||
- **A compiled OpenVINO™ code sample or demo application** that runs inferencing against a model that has been run through the Model Optimizer, resulting in an IR, using the other inputs you provide.
|
||||
- **One or more models** in the IR format. Each model is trained for a specific task. Examples include pedestrian detection, face detection, vehicle detection, license plate recognition, head pose, and others. Different models are used for different applications. Models can be chained together to provide multiple features; for example, vehicle + make/model + license plate recognition.
|
||||
- **One or more media files**. The media is typically a video file, but can be a still photo.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, GPU, FPGA, or VPU accelerator.
|
||||
- **One or more target device** on which you run inference. The target device can be the CPU, GPU, or VPU accelerator.
|
||||
|
||||
### Build the Code Samples and Demo Applications
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ When the Sample Application completes, you see the label and confidence for the
|
|||
```bat
|
||||
Top 10 results:
|
||||
|
||||
Image C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png
|
||||
Image C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png
|
||||
|
||||
classid probability label
|
||||
------- ----------- -----
|
||||
|
|
@ -533,7 +533,7 @@ You can see all the sample application’s parameters by adding the `-h` or `--h
|
|||
Use these resources to learn more about the OpenVINO™ toolkit:
|
||||
|
||||
* [OpenVINO™ Release Notes](https://software.intel.com/en-us/articles/OpenVINO-RelNotes)
|
||||
* [Introduction to Intel® Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
* [OpenVINO™ Toolkit Overview](../index.md)
|
||||
* [Inference Engine Developer Guide](../IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
* [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
* [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md)
|
||||
|
|
|
|||
|
|
@ -33,13 +33,6 @@ To learn about what is *custom layers* and how to work with them in the Deep Lea
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/1_iI_4Zgufw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
|
||||
## Deploying Intel® FPGAs for Deep Learning Inferencing with OpenVINO™ Toolkit
|
||||
|
||||
[](https://www.youtube.com/watch?v=7yh1c8kJn1A)
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/7yh1c8kJn1A" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
|
||||
## Computer Vision at the Edge with OpenVINO by Krishnakumar Shetti at ODSC_India
|
||||
|
||||
[](https://www.youtube.com/watch?v=RfRCrq35LXg)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:091e5320ed2179aeea5da02d26f89b510d6f7b832aa1c98ac5ced65ce55d99a0
|
||||
size 14219
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8a5e64956ea61461c3bf942cd3802c16b33188e7bef8955384d46dd08a84f4d3
|
||||
size 46658
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2f7083e9eff7158ca99990daa1a9ee33c73c09e7a2f3d6c6da316aa9be3ad1ec
|
||||
size 50327
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:00ec72e982f658698b599dd8cbcbd50996a1982c4223bce93b807fa6b0c0c825
|
||||
size 233866
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:411d78dc7fa90d6e857d1486eab7c7e7e338f1e27f21d04fadd02433d8a74f32
|
||||
size 29204
|
||||
oid sha256:304869bcbea000f6dbf46dee7900ff01aa61a75a3787969cc307f2f54d57263c
|
||||
size 32185
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:de85bd59edc66bfd37aab395bc7e2dde2988f16c7ff263153d382bfcbeb9ff2e
|
||||
size 35998
|
||||
oid sha256:e2a218afd50f8112f94c032439f69992abb54a551566ab8b4734405d6332499d
|
||||
size 32796
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b2586ce56ff1a5c0527b53dc21aa09b489c11e24fec82c6a58e2db860a772c4
|
||||
size 39720
|
||||
oid sha256:4ad93452fb1020baa7b5de0eb859bdb89e609a4ba8eb382baafb75b3194080ff
|
||||
size 47318
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3faa8b02a8477b5d764ea2d47502bc0a878087614e0516704cc1525b5b60dedb
|
||||
size 26412
|
||||
oid sha256:bfdd8e4dcc4d7acd4a1003e7a3d933f17ac05761c5b2e4ebedd23e7f8242d5db
|
||||
size 26598
|
||||
|
|
|
|||
133
docs/index.md
133
docs/index.md
|
|
@ -1,67 +1,102 @@
|
|||
# OpenVINO™ Toolkit Documentation {#index}
|
||||
# OpenVINO™ Toolkit Overview {#index}
|
||||
|
||||
## Introduction to OpenVINO™ Toolkit
|
||||
## Introduction
|
||||
|
||||
OpenVINO™ toolkit quickly deploys applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNNs), the toolkit extends computer vision (CV) workloads across Intel® hardware, maximizing performance. The OpenVINO™ toolkit includes the Deep Learning Deployment Toolkit (DLDT).
|
||||
OpenVINO™ toolkit is a comprehensive toolkit for quickly developing applications and solutions that solve a variety of tasks including emulation of human vision, automatic speech recognition, natural language processing, recommendation systems, and many others. Based on latest generations of artificial neural networks, including Convolutional Neural Networks (CNNs), recurrent and attention-based networks, the toolkit extends computer vision and non-vision workloads across Intel® hardware, maximizing performance. It accelerates applications with high-performance, AI and deep learning inference deployed from edge to cloud.
|
||||
|
||||
OpenVINO™ toolkit:
|
||||
|
||||
- Enables CNN-based deep learning inference on the edge
|
||||
- Supports heterogeneous execution across an Intel® CPU, Intel® Integrated Graphics, Intel® FPGA, Intel® Neural Compute Stick 2 and Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
- Supports heterogeneous execution across an Intel® CPU, Intel® Integrated Graphics, Intel® Neural Compute Stick 2 and Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
|
||||
- Includes optimized calls for computer vision standards, including OpenCV\* and OpenCL™
|
||||
|
||||
## Toolkit Components
|
||||
## OpenVINO™ Toolkit Workflow
|
||||
|
||||
OpenVINO™ toolkit includes the following components:
|
||||
The following diagram illustrates the typical OpenVINO™ workflow (click to see the full-size image):
|
||||

|
||||
|
||||
- Deep Learning Deployment Toolkit (DLDT)
|
||||
- [Deep Learning Model Optimizer](MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) - A cross-platform command-line tool for importing models and
|
||||
preparing them for optimal execution with the Inference Engine. The Model Optimizer imports, converts, and optimizes models, which were trained in popular frameworks, such as Caffe*,
|
||||
TensorFlow*, MXNet*, Kaldi*, and ONNX*.
|
||||
- [nGraph](nGraph_DG/nGraph_dg.md) - A unified API for graph representation and manipulation engine which is used to represent a model inside Inference Engine and allows the run-time model construction without using Model Optimizer.
|
||||
- [Deep Learning Inference Engine](IE_DG/inference_engine_intro.md) - A unified API to allow high performance inference on many hardware types
|
||||
including the following:
|
||||
- Intel® CPU
|
||||
- Intel® Integrated Graphics
|
||||
- Intel® Neural Compute Stick 2
|
||||
- Intel® Vision Accelerator Design with Intel® Movidius™ vision processing unit (VPU)
|
||||
- [Samples](IE_DG/Samples_Overview.md) - A set of simple console applications demonstrating how to use the Inference Engine in your applications
|
||||
- [Tools](IE_DG/Tools_Overview.md) - A set of simple console tools to work with your models
|
||||
### Model Preparation, Conversion and Optimization
|
||||
|
||||
You can use your framework of choice to prepare and train a Deep Learning model or just download a pretrained model from the Open Model Zoo. The Open Model Zoo includes Deep Learning solutions to a variety of vision problems, including object recognition, face recognition, pose estimation, text detection, and action recognition, at a range of measured complexities.
|
||||
Several of these pretrained models are used also in the [code samples](IE_DG/Samples_Overview.md) and [application demos](@ref omz_demos_README). To download models from the Open Model Zoo, the [Model Downloader](@ref omz_tools_downloader_README) tool is used.
|
||||
|
||||
One of the core component of the OpenVINO™ toolkit is the [Model Optimizer](MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) a cross-platform command-line
|
||||
tool that converts a trained neural network from its source framework to an open-source, nGraph-compatible [Intermediate Representation (IR)](MO_DG/IR_and_opsets.md) for use in inference operations. The Model Optimizer imports models trained in popular frameworks such as Caffe*, TensorFlow*, MXNet*, Kaldi*, and ONNX* and performs a few optimizations to remove excess layers and group operations when possible into simpler, faster graphs.
|
||||

|
||||
|
||||
If your neural network model contains layers that are not in the list of known layers for supported frameworks, you can adjust the conversion and optimization process through use of [Custom Layers](HOWTO/Custom_Layers_Guide.md).
|
||||
|
||||
Run the [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README) either against source topologies or against the output representation to evaluate the accuracy of inference. The Accuracy Checker is also part of the [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction), an integrated web-based performance analysis studio.
|
||||
|
||||
Useful documents for model optimization:
|
||||
* [Model Optimizer Developer Guide](MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
* [Intermediate Representation and Opsets](MO_DG/IR_and_opsets.md)
|
||||
* [Custom Layers Guide](HOWTO/Custom_Layers_Guide.md)
|
||||
* [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README)
|
||||
* [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction)
|
||||
* [Model Downloader](@ref omz_tools_downloader_README) utility
|
||||
* [Pretrained Models (Open Model Zoo)](@ref omz_models_public_index)
|
||||
|
||||
### Running and Tuning Inference
|
||||
The other core component of OpenVINO™ is the [Inference Engine](IE_DG/Deep_Learning_Inference_Engine_DevGuide.md), which manages the loading and compiling of the optimized neural network model, runs inference operations on input data, and outputs the results. Inference Engine can execute synchronously or asynchronously, and its plugin architecture manages the appropriate compilations for execution on multiple Intel® devices, including both workhorse CPUs and specialized graphics and video processing platforms (see below, Packaging and Deployment).
|
||||
|
||||
You can use OpenVINO™ Tuning Utilities with the Inference Engine to trial and test inference on your model. The Benchmark utility uses an input model to run iterative tests for throughput or latency measures, and the [Cross Check Utility](../inference-engine/tools/cross_check_tool/README.md) compares performance of differently configured inferences. The [Post-Training Optimization Tool](@ref pot_README) integrates a suite of quantization- and calibration-based tools to further streamline performance.
|
||||
|
||||
For a full browser-based studio integrating these other key tuning utilities, try the [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction).
|
||||

|
||||
|
||||
OpenVINO™ toolkit includes a set of [inference code samples](IE_DG/Samples_Overview.md) and [application demos](@ref omz_demos_README) showing how inference is run and output processed for use in retail environments, classrooms, smart camera applications, and other solutions.
|
||||
|
||||
OpenVINO also makes use of open-Source and Intel™ tools for traditional graphics processing and performance management. Intel® Media SDK supports accelerated rich-media processing, including transcoding. OpenVINO™ optimizes calls to the rich OpenCV and OpenVX libraries for processing computer vision workloads. And the new DL Streamer integration further accelerates video pipelining and performance.
|
||||
|
||||
Useful documents for inference tuning:
|
||||
* [Inference Engine Developer Guide](IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
* [Inference Engine API References](./api_references.html)
|
||||
* [Inference Code Samples](IE_DG/Samples_Overview.md)
|
||||
* [Application Demos](@ref omz_demos_README)
|
||||
* [Post-Training Optimization Tool Guide](@ref pot_README)
|
||||
* [Deep Learning Workbench Guide](@ref workbench_docs_Workbench_DG_Introduction)
|
||||
* [Intel Media SDK](https://github.com/Intel-Media-SDK/MediaSDK)
|
||||
* [DL Streamer Samples](@ref gst_samples_README)
|
||||
* [OpenCV](https://docs.opencv.org/master/)
|
||||
* [OpenVX](https://software.intel.com/en-us/openvino-ovx-guide)
|
||||
|
||||
### Packaging and Deployment
|
||||
The Intel Distribution of OpenVINO™ toolkit outputs optimized inference runtimes for the following devices:
|
||||
* Intel® CPUs
|
||||
* Intel® Processor Graphics
|
||||
* Intel® Neural Compute Stick 2
|
||||
* Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
|
||||
The Inference Engine's plug-in architecture can be extended to meet other specialized needs. [Deployment Manager](./install_guides/deployment-manager-tool.md) is a Python* command-line tool that assembles the tuned model, IR files, your application, and required dependencies into a runtime package for your target device. It outputs packages for CPU, GPU, and VPU on Linux* and Windows*, and Neural Compute Stick-optimized packages with Linux.
|
||||
|
||||
* [Inference Engine Integration Workflow](IE_DG/Integrate_with_customer_application_new_API.md)
|
||||
* [Inference Engine API References](./api_references.html)
|
||||
* [Inference Engine Plug-in Developer Guide](./ie_plugin_api/index.html)
|
||||
* [Deployment Manager Guide](./install_guides/deployment-manager-tool.md)
|
||||
|
||||
|
||||
## OpenVINO™ Toolkit Components
|
||||
|
||||
Intel® Distribution of OpenVINO™ toolkit includes the following components:
|
||||
|
||||
- [Deep Learning Model Optimizer](MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) - A cross-platform command-line tool for importing models and preparing them for optimal execution with the Inference Engine. The Model Optimizer imports, converts, and optimizes models, which were trained in popular frameworks, such as Caffe*, TensorFlow*, MXNet*, Kaldi*, and ONNX*.
|
||||
- [Deep Learning Inference Engine](IE_DG/inference_engine_intro.md) - A unified API to allow high performance inference on many hardware types including Intel® CPU, Intel® Integrated Graphics, Intel® Neural Compute Stick 2, Intel® Vision Accelerator Design with Intel® Movidius™ vision processing unit (VPU).
|
||||
- [Inference Engine Samples](IE_DG/Samples_Overview.md) - A set of simple console applications demonstrating how to use the Inference Engine in your applications.
|
||||
- [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) - A web-based graphical environment that allows you to easily use various sophisticated OpenVINO™ toolkit components.
|
||||
- [Post-Training Optimization tool](@ref pot_README) - A tool to calibrate a model and then execute it in the INT8 precision.
|
||||
- Additional Tools - A set of tools to work with your models including [Benchmark App](../inference-engine/tools/benchmark_tool/README.md), [Cross Check Tool](../inference-engine/tools/cross_check_tool/README.md), [Compile tool](../inference-engine/tools/compile_tool/README.md).
|
||||
- [Open Model Zoo](@ref omz_models_intel_index)
|
||||
- [Demos](@ref omz_demos_README) - Console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use cases
|
||||
- [Tools](IE_DG/Tools_Overview.md) - Additional tools to download models and check accuracy
|
||||
- [Documentation for Pretrained Models](@ref omz_models_intel_index) - Documentation for pretrained models is available in the [Open Model Zoo repository](https://github.com/opencv/open_model_zoo)
|
||||
- [Post-Training Optimization tool](@ref pot_README) - A tool to calibrate a model and then execute it in the INT8 precision
|
||||
- [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) - A web-based graphical environment that allows you to easily use various sophisticated OpenVINO™ toolkit components
|
||||
- [Demos](@ref omz_demos_README) - Console applications that provide robust application templates to help you implement specific deep learning scenarios.
|
||||
- Additional Tools - A set of tools to work with your models including [Accuracy Checker Utility](@ref omz_tools_accuracy_checker_README) and [Model Downloader](@ref omz_tools_downloader_README).
|
||||
- [Documentation for Pretrained Models](@ref omz_models_intel_index) - Documentation for pretrained models that are available in the [Open Model Zoo repository](https://github.com/opencv/open_model_zoo).
|
||||
- Deep Learning Streamer (DL Streamer) – Streaming analytics framework, based on GStreamer, for constructing graphs of media analytics components. DL Streamer can be installed by the Intel® Distribution of OpenVINO™ toolkit installer. Its open source version is available on [GitHub](https://github.com/opencv/gst-video-analytics). For the DL Streamer documentation, see:
|
||||
- [DL Streamer Samples](IE_DG/Tools_Overview.md)
|
||||
- [DL Streamer Samples](@ref gst_samples_README)
|
||||
- [API Reference](https://openvinotoolkit.github.io/dlstreamer_gst/)
|
||||
- [Elements](https://github.com/opencv/gst-video-analytics/wiki/Elements)
|
||||
- [Tutorial](https://github.com/opencv/gst-video-analytics/wiki/DL%20Streamer%20Tutorial)
|
||||
- [OpenCV](https://docs.opencv.org/master/) - OpenCV* community version compiled for Intel® hardware
|
||||
- Drivers and runtimes for OpenCL™ version 2.1
|
||||
- [Intel® Media SDK](https://software.intel.com/en-us/media-sdk)
|
||||
- [Intel® Media SDK](https://software.intel.com/en-us/media-sdk) (in Intel® Distribution of OpenVINO™ toolkit for Linux only)
|
||||
|
||||
## Documentation Set Contents
|
||||
|
||||
OpenVINO™ toolkit documentation set includes the following documents:
|
||||
|
||||
- [Install the Intel® Distribution of OpenVINO™ Toolkit for Linux*](install_guides/installing-openvino-linux.md)
|
||||
- [Install the Intel® Distribution of OpenVINO™ Toolkit for Linux with FPGA Support](install_guides/installing-openvino-linux-fpga.md)
|
||||
- [Install the Intel® Distribution of OpenVINO™ Toolkit for Windows*](install_guides/installing-openvino-windows.md)
|
||||
- [Install the Intel® Distribution of OpenVINO™ Toolkit for macOS*](install_guides/installing-openvino-macos.md)
|
||||
- [Install the Intel® Distribution of OpenVINO™ Toolkit for Raspbian*](install_guides/installing-openvino-raspbian.md)
|
||||
- [Install OpenVINO™ Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Install_Workbench)
|
||||
- [Introduction to Deep Learning Deployment Toolkit](IE_DG/Introduction.md)
|
||||
- [Model Optimizer Developer Guide](MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
- [Inference Engine Developer Guide](IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
- [Post-Training Optimization Tool](@ref pot_README)
|
||||
- [Inference Engine Samples](IE_DG/Samples_Overview.md)
|
||||
- [Demo Applications](@ref omz_demos_README)
|
||||
- [Tools](IE_DG/Tools_Overview.md)
|
||||
- [Pretrained Models](@ref omz_models_intel_index)
|
||||
- [Known Issues](IE_DG/Known_Issues_Limitations.md)
|
||||
- [Legal Information](@ref omz_demos_README)
|
||||
|
||||
> **Typical Next Step:** [Introduction to Deep Learning Deployment Toolkit](IE_DG/Introduction.md)
|
||||
OpenVINO™ Toolkit opensource version is available on [GitHub](https://github.com/openvinotoolkit/openvino). For building the Inference Engine from the source code, see the <a href="https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md">build instructions</a>.
|
||||
|
|
@ -1,239 +1,21 @@
|
|||
# Configuration Guide for Intel® Distribution of OpenVINO™ toolkit 2020.4 and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA on CentOS or Ubuntu* {#openvino_docs_install_guides_PAC_Configure}
|
||||
|
||||
> **NOTE**: For previous versions, see [Configuration Guide for OpenVINO 2020.3](https://docs.openvinotoolkit.org/2020.3/_docs_install_guides_PAC_Configure.html), [Configuration Guide for OpenVINO 2020.2](https://docs.openvinotoolkit.org/2020.2/_docs_install_guides_PAC_Configure.html), [Configuration Guide for OpenVINO 2019R1/2019R2/2019R3](https://docs.openvinotoolkit.org/2019_R3.1/_docs_install_guides_PAC_Configure_2019RX.html), [Configuration Guide for OpenVINO 2018R5](https://docs.openvinotoolkit.org/2019_R1/_docs_install_guides_PAC_Configure_2018R5.html).
|
||||
## Product Change Notice
|
||||
Intel® Distribution of OpenVINO™ toolkit for Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
|
||||
|
||||
## Get Started
|
||||
<table>
|
||||
<tr>
|
||||
<td><strong>Change Notice Begins</strong></td>
|
||||
<td>July 2020</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Change Date</strong></td>
|
||||
<td>October 2020</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
The following describes the set-up of the Intel® Distribution of OpenVINO™ toolkit on CentOS* 7.4 or Ubuntu* 16.04, kernel 4.15. This is based upon a completely fresh install of the OS with developer tools included. Official Intel® documentation for the install process can be found in the following locations and it is highly recommended that these are read, especially for new users. This document serves as a guide, and in some cases, adds additional detail where necessary.
|
||||
Intel will be transitioning to the next-generation programmable deep-learning solution based on FPGAs in order to increase the level of customization possible in FPGA deep-learning. As part of this transition, future standard releases (i.e., non-LTS releases) of Intel® Distribution of OpenVINO™ toolkit will no longer include the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA.
|
||||
|
||||
[Intel® Acceleration Stack for FPGAs Quick Start Guide](https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qs-ias-v1-2-1.pdf)
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
[OpenCL™ on Intel® PAC Quick Start Guide](https://www.intel.com/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug-qs-ias-opencl-a10.pdf)
|
||||
|
||||
[Installing the Intel® Distribution of OpenVINO™ toolkit for Linux*](installing-openvino-linux.md)
|
||||
|
||||
(Optional): Install NTFS support for transferring large installers if already downloaded on another machine.
|
||||
```sh
|
||||
sudo yum -y install epel-release
|
||||
```
|
||||
```sh
|
||||
sudo yum -y install ntfs-3g
|
||||
```
|
||||
|
||||
## Install Intel® PAC and the Intel® Programmable Acceleration Card Stack
|
||||
|
||||
1. Download version 1.2.1 of the Acceleration Stack for Runtime from the [Intel FPGA Acceleration Hub](https://www.altera.com/solutions/acceleration-hub/downloads.html).
|
||||
This downloads as `a10_gx_pac_ias_1_2_1_pv_rte.tar.gz`. Let it download to `~/Downloads`.
|
||||
|
||||
2. Create a new directory to install to:
|
||||
```sh
|
||||
mkdir -p ~/tools/intelrtestack
|
||||
```
|
||||
|
||||
3. Untar and launch the installer:
|
||||
```sh
|
||||
cd ~/Downloads
|
||||
```
|
||||
```sh
|
||||
tar xf a10_gx_pac_ias_1_2_1_pv_rte.tar.gz
|
||||
```
|
||||
```sh
|
||||
cd a10_gx_pac_ias_1_2_1_pv_rte_installer
|
||||
```
|
||||
```sh
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
4. Select **Y** to install OPAE and accept license and when asked, specify `/home/<user>/tools/intelrtestack` as the absolute install path. During the installation there should be a message stating the directory already exists as it was created in the first command above. Select **Y** to install to this directory. If this message is not seen, it suggests that there was a typo when entering the install location.
|
||||
|
||||
5. Tools are installed to the following directories:
|
||||
* OpenCL™ Run-time Environment: `~/tools/intelrtestack/opencl_rte/aclrte-linux64`
|
||||
* Intel® Acceleration Stack for FPGAs: `~/tools/intelrtestack/a10_gx_pac_ias_1_2_1_pv`
|
||||
|
||||
7. Check the version of the FPGA Interface Manager firmware on the PAC board.
|
||||
```sh
|
||||
sudo fpgainfo fme
|
||||
```
|
||||
|
||||
8. If the reported FIM (`Pr Interface Id`) is not `38d782e3-b612-5343-b934-2433e348ac4c` then follow the instructions in Appendix A: Updating the FIM and BMC Firmware of the [Intel® Acceleration Stack for FPGAs Quick Start Guide](https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qs-ias-v1-2-1.pdf) to update the FIM and BMC.
|
||||
|
||||
9. Run the built in self-test to verify operation of the Acceleration Stack and Intel® PAC in a non-virtualized environment.
|
||||
```sh
|
||||
sudo sh -c "echo 20 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages"
|
||||
```
|
||||
```sh
|
||||
source ~/tools/intelrtestack/init_env.sh
|
||||
```
|
||||
```sh
|
||||
sudo fpgabist $OPAE_PLATFORM_ROOT/hw/samples/nlb_mode_3/bin/nlb_mode_3.gbs
|
||||
```
|
||||
|
||||
## Verify the Intel® Acceleration Stack for FPGAs OpenCL™ BSP
|
||||
|
||||
1. Remove any previous FCD files that may be from previous installations of hardware in the `/opt/Intel/OpenCL/Boards/` directory:
|
||||
```sh
|
||||
cd /opt/Intel/OpenCL/Boards
|
||||
sudo rm -rf *.fcd
|
||||
```
|
||||
|
||||
2. Install `lsb_release` on your system if you are using CentOS:
|
||||
```sh
|
||||
sudo yum install redhat-lsb-core
|
||||
```
|
||||
|
||||
3. Create an initialization script `~/init_openvino.sh` with the following content that can be run upon opening a new terminal or rebooting. This will source the script ran above as well as setting up the OpenCL™ environment.
|
||||
```sh
|
||||
source $HOME/tools/intelrtestack/init_env.sh
|
||||
```
|
||||
```sh
|
||||
export CL_CONTEXT_COMPILER_MODE_ALTERA=3
|
||||
```
|
||||
```sh
|
||||
export CL_CONTEXT_COMPILER_MODE_INTELFPGA=3
|
||||
```
|
||||
```sh
|
||||
export INTELFPGAOCLSDKROOT="/opt/altera/aocl-pro-rte/aclrte-linux64"
|
||||
```
|
||||
```sh
|
||||
export ALTERAOCLSDKROOT="$INTELFPGAOCLSDKROOT"
|
||||
```
|
||||
```sh
|
||||
export AOCL_BOARD_PACKAGE_ROOT="$OPAE_PLATFORM_ROOT/opencl/opencl_bsp"
|
||||
```
|
||||
```sh
|
||||
$AOCL_BOARD_PACKAGE_ROOT/linux64/libexec/setup_permissions.sh
|
||||
```
|
||||
```sh
|
||||
source $INTELFPGAOCLSDKROOT/init_opencl.sh
|
||||
```
|
||||
|
||||
4. Source the script:
|
||||
```sh
|
||||
source ~/init_openvino.sh
|
||||
```
|
||||
|
||||
5. Some of the settings made in the child scripts need a reboot to take effect. Reboot the machine and source the script again. Note that this script should be sourced each time a new terminal is opened for use with the Intel® Acceleration Stack for FPGAs and Intel® Distribution of OpenVINO™ toolkit.
|
||||
```sh
|
||||
source ~/init_openvino.sh
|
||||
```
|
||||
|
||||
6. Install the OpenCL™ driver:
|
||||
```sh
|
||||
cd ~
|
||||
```
|
||||
```sh
|
||||
sudo -E ./tools/intelrtestack/opencl_rte/aclrte-linux64/bin/aocl install
|
||||
```
|
||||
Select **Y** when asked to install the BSP. Note that the following warning can be safely ignored.
|
||||
```sh
|
||||
WARNING: install not implemented. Please refer to DCP Quick Start User Guide.
|
||||
```
|
||||
|
||||
7. Program the Intel® PAC board with a pre-compiled `.aocx` file (OpenCL™ based FPGA bitstream).
|
||||
```sh
|
||||
cd $OPAE_PLATFORM_ROOT/opencl
|
||||
```
|
||||
```sh
|
||||
aocl program acl0 hello_world.aocx
|
||||
```
|
||||
|
||||
8. Build and run the Hello World application:
|
||||
```sh
|
||||
sudo tar xf exm_opencl_hello_world_x64_linux.tgz
|
||||
```
|
||||
```sh
|
||||
sudo chmod -R a+w hello_world
|
||||
```
|
||||
```sh
|
||||
cd hello_world
|
||||
```
|
||||
```sh
|
||||
make
|
||||
```
|
||||
```sh
|
||||
cp ../hello_world.aocx ./bin
|
||||
```
|
||||
```sh
|
||||
./bin/host
|
||||
```
|
||||
|
||||
## Add Intel® Distribution of OpenVINO™ toolkit with FPGA Support to Environment Variables
|
||||
|
||||
1. To run the Intel® Distribution of OpenVINO™ toolkit, add the last four commands to the `~/init_openvino.sh` script. The previous content is shown as well.
|
||||
```sh
|
||||
source $HOME/tools/intelrtestack/init_env.sh
|
||||
export CL_CONTEXT_COMPILER_MODE_ALTERA=3
|
||||
export CL_CONTEXT_COMPILER_MODE_INTELFPGA=3
|
||||
export INTELFPGAOCLSDKROOT="/opt/altera/aocl-pro-rte/aclrte-linux64"
|
||||
export ALTERAOCLSDKROOT="$INTELFPGAOCLSDKROOT"
|
||||
export AOCL_BOARD_PACKAGE_ROOT="$OPAE_PLATFORM_ROOT/opencl/opencl_bsp"
|
||||
$AOCL_BOARD_PACKAGE_ROOT/linux64/libexec/setup_permissions.sh
|
||||
source $INTELFPGAOCLSDKROOT/init_opencl.sh
|
||||
export IE_INSTALL="/opt/intel/openvino/deployment_tools"
|
||||
source $IE_INSTALL/../bin/setupvars.sh
|
||||
export PATH="$PATH:$HOME/inference_engine_samples_build/intel64/Release"
|
||||
alias mo="python3.6 $IE_INSTALL/model_optimizer/mo.py"
|
||||
```
|
||||
For Ubuntu systems, it is recommended to use python3.5 above instead of python3.6.
|
||||
|
||||
2. Source the script
|
||||
```sh
|
||||
source ~/init_openvino.sh
|
||||
```
|
||||
|
||||
## Program a Bitstream
|
||||
|
||||
The bitstream you program should correspond to the topology you want to deploy. In this section, you program a SqueezeNet bitstream and deploy the classification sample with a SqueezeNet model.
|
||||
|
||||
> **IMPORTANT**: Only use bitstreams from the installed version of the Intel® Distribution of OpenVINO™ toolkit. Bitstreams from older versions of the Intel® Distribution of OpenVINO™ toolkit are incompatible with later versions. For example, you cannot use the `2020-3_RC_FP16_AlexNet_GoogleNet_Generic` bitstream, when the Intel® Distribution of OpenVINO™ toolkit supports the `2020-4_RC_FP16_AlexNet_GoogleNet_Generic bitstream`.
|
||||
|
||||
There are different folders for each FPGA card type which were downloaded in the Intel® Distribution of OpenVINO™ toolkit package.
|
||||
For the Intel® Programmable Acceleration Card with Intel® Arria® 10 FPGA GX, the pre-trained bitstreams are in the `/opt/intel/openvino/bitstreams/a10_dcp_bitstreams` directory. This example uses a SqueezeNet bitstream with low precision for the classification sample.
|
||||
|
||||
Program the bitstream for Intel® Programmable Acceleration Card with Intel® Arria® 10 FPGA GX.
|
||||
```sh
|
||||
aocl program acl0 /opt/intel/openvino/bitstreams/a10_dcp_bitstreams/2020-4_RC_FP11_InceptionV1_ResNet_SqueezeNet_TinyYolo_YoloV3.aocx
|
||||
```
|
||||
|
||||
## Use the Intel® Distribution of OpenVINO™ toolkit
|
||||
|
||||
1. Run inference with the Intel® Distribution of OpenVINO™ toolkit independent of the demo scripts using the SqueezeNet model that was download by the scripts. For convenience, copy the necessary files to a local directory. If the workstation has been rebooted or a new terminal is opened, source the script above first.
|
||||
```sh
|
||||
mkdir ~/openvino_test
|
||||
```
|
||||
```sh
|
||||
cd ~/openvino_test
|
||||
```
|
||||
```sh
|
||||
cp ~/openvino_models/models/public/squeezenet1.1/squeezenet1.1.* .
|
||||
```
|
||||
```sh
|
||||
cp ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.labels .
|
||||
```
|
||||
|
||||
2. Note that the `squeezenet1.1.labels` file contains the classes used by ImageNet and is included here so that the inference results show text rather than classification numbers. Convert the model with the [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md). Note that the command below uses the alias defined in the script above and is not referred to in other documentation.
|
||||
```sh
|
||||
mo --input_model squeezenet1.1.caffemodel
|
||||
```
|
||||
|
||||
3. Now run Inference on the CPU using one of the built in Inference Engine samples:
|
||||
```sh
|
||||
classification_sample_async -m squeezenet1.1.xml -i $IE_INSTALL/demo/car.png
|
||||
```
|
||||
|
||||
4. Add the `-d` option to run on FPGA:
|
||||
```sh
|
||||
classification_sample_async -m squeezenet1.1.xml -i $IE_INSTALL/demo/car.png -d HETERO:FPGA,CPU
|
||||
```
|
||||
|
||||
Congratulations, You are done with the Intel® Distribution of OpenVINO™ toolkit installation for FPGA. To learn more about how the Intel® Distribution of OpenVINO™ toolkit works, the Hello World tutorial and are other resources are provided below.
|
||||
|
||||
## Hello World Face Detection Tutorial
|
||||
|
||||
Use the [Intel® Distribution of OpenVINO™ toolkit with FPGA Hello World Face Detection Exercise](https://github.com/fritzboyle/openvino-with-fpga-hello-world-face-detection) to learn more about how the software and hardware work together.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
* Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit).
|
||||
* Intel® Distribution of OpenVINO™ toolkit documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org).
|
||||
* [Inference Engine FPGA plugin documentation](../IE_DG/supported_plugins/FPGA.md).
|
||||
For documentation for previous releases of Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_PAC_Configure.html) and lower.
|
||||
|
|
|
|||
|
|
@ -1,324 +1,21 @@
|
|||
# Configuration Guide for the Intel® Distribution of OpenVINO™ toolkit 2020.4 and the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA SG2 (IEI's Mustang-F100-A10) on Linux* {#openvino_docs_install_guides_VisionAcceleratorFPGA_Configure}
|
||||
|
||||
> **NOTE**: Intel® Arria® 10 FPGA (Mustang-F100-A10) Speed Grade 1 is not available since the OpenVINO 2020.3 release. If you use Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Mustang-F100-A10) Speed Grade 1, we recommend continuing to use the [Intel® Distribution of OpenVINO™ toolkit 2020.1](https://docs.openvinotoolkit.org/2020.1/_docs_install_guides_VisionAcceleratorFPGA_Configure.html) release.
|
||||
For previous versions, see [Configuration Guide for OpenVINO 2019R3](https://docs.openvinotoolkit.org/2019_R3.1/_docs_install_guides_VisionAcceleratorFPGA_Configure_2019R3.html), [Configuration Guide for OpenVINO 2019R1](https://docs.openvinotoolkit.org/2019_R3.1/_docs_install_guides_VisionAcceleratorFPGA_Configure_2019R1.html), [Configuration Guide for OpenVINO 2018R5](https://docs.openvinotoolkit.org/2019_R3.1/_docs_install_guides_VisionAcceleratorFPGA_Configure_2018R5.html).
|
||||
## Product Change Notice
|
||||
Intel® Distribution of OpenVINO™ toolkit for Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
|
||||
|
||||
## 1. Configure and Set Up the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA
|
||||
<table>
|
||||
<tr>
|
||||
<td><strong>Change Notice Begins</strong></td>
|
||||
<td>July 2020</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Change Date</strong></td>
|
||||
<td>October 2020</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
1. Download [Intel® Quartus® Prime Programmer and Tools Standard Edition 18.1](http://fpgasoftware.intel.com/18.1/?edition=standard&platform=linux&download_manager=direct#tabs-4). Install the Intel® Quartus® Prime Programmer and Tools Software to the `/home/<user>/intelFPGA/18.1` directory.
|
||||
Intel will be transitioning to the next-generation programmable deep-learning solution based on FPGAs in order to increase the level of customization possible in FPGA deep-learning. As part of this transition, future standard releases (i.e., non-LTS releases) of Intel® Distribution of OpenVINO™ toolkit will no longer include the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA.
|
||||
|
||||
2. Download the [fpga_install.sh](https://docs.openvinotoolkit.org/downloads/2020/2/fpga_install.sh) script to the `/home/<user>` directory.
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
a. Switch to superuser:
|
||||
```sh
|
||||
sudo su
|
||||
```
|
||||
b. Use the `fpga_install.sh` script from `/home/<user>` to install your FPGA card (default is SG2).
|
||||
```sh
|
||||
source /home/<user>/fpga_install.sh
|
||||
```
|
||||
c. To know more about the fpga_install options, invoke the script with `-h` command.
|
||||
```sh
|
||||
source /home/<user>/fpga_install.sh -h
|
||||
```
|
||||
d. Follow the `fpga_install.sh` script prompts to finish installing your FPGA card.
|
||||
|
||||
e. After reboot launch the script again with same options as in step 2.b.
|
||||
|
||||
f. The `fpga_install.sh` script creates an initialization script `/home/<user>/init_openvino.sh` that should be used to setup proper environment variables.
|
||||
|
||||
g. To test if FPGA card was installed succesfully run `aocl diagnose`:
|
||||
```sh
|
||||
aocl diagnose
|
||||
```
|
||||
You should see `DIAGNOSTIC_PASSED` before proceeding to the next steps.
|
||||
|
||||
h. If you prefer to install the FPGA card manually, follow the steps 3-17 in this section and [Steps to Flash the FPGA Card](#steps-to-flash-the-fpga-card), otherwise you can skip to "Program a Bitstream".
|
||||
|
||||
3. Check if /etc/udev/rules.d/51-usbblaster.rules file exists and content matches with 3.b, if it does skip to next step.
|
||||
|
||||
a. Switch to superuser:
|
||||
```sh
|
||||
sudo su
|
||||
```
|
||||
|
||||
b. Create a file named /etc/udev/rules.d/51-usbblaster.rules and add the following lines to it (Red Hat Enterprise 5 and above):
|
||||
```sh
|
||||
# Intel FPGA Download Cable
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"
|
||||
|
||||
# Intel FPGA Download Cable II
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666"
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"
|
||||
```
|
||||
> **CAUTION**: Do not add extra line breaks to the .rules file.
|
||||
|
||||
c. Reload udev rules without reboot:
|
||||
```sh
|
||||
udevadm control --reload-rules
|
||||
udevadm trigger
|
||||
```
|
||||
|
||||
d. You can exit superuser if you wish.
|
||||
|
||||
|
||||
4. Unpack the BSP for your Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA SG2:
|
||||
> **NOTE**: If you installed OpenVINO™ as root you will need to switch to superuser
|
||||
```sh
|
||||
cd /opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/
|
||||
sudo su
|
||||
tar -xvzf a10_1150_sg2_r4.1.tgz
|
||||
chmod -R 755 /opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams
|
||||
```
|
||||
> **NOTE**: If you do not know which version of the board you have, please refer to the product label on the fan cover side or by the product SKU: Mustang-F100-A10E-R10 => SG2
|
||||
|
||||
5. Create an initialization script `/home/<user>/init_openvino.sh` with the following content that can be run upon opening a new terminal or rebooting. This will setup your proper environment variables.
|
||||
```sh
|
||||
export IOCL_BOARD_PACKAGE_ROOT=/opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2
|
||||
export AOCL_BOARD_PACKAGE_ROOT=/opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2
|
||||
export QUARTUS_DIR=/home/<user>/intelFPGA/18.1/qprogrammer
|
||||
export QUARTUS_ROOTDIR=/home/<user>/intelFPGA/18.1/qprogrammer
|
||||
export INTELFPGAOCLSDKROOT=/opt/altera/aocl-pro-rte/aclrte-linux64
|
||||
source $INTELFPGAOCLSDKROOT/init_opencl.sh
|
||||
export PATH=$PATH:$INTELFPGAOCLSDKROOT/host/linux64/bin:$QUARTUS_ROOTDIR/bin
|
||||
export CL_CONTEXT_COMPILER_MODE_INTELFPGA=3
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
```
|
||||
|
||||
6. Source the script. (This assumes you already have installed the Intel® FPGA Runtime Environment for OpenCL Linux x86-64 Pro Edition 19.1)
|
||||
```sh
|
||||
source /home/<user>/init_openvino.sh
|
||||
```
|
||||
|
||||
7. Uninstall any previous BSP before installing the OpenCL BSP for the 2020.4 BSP. Enter **Y** when prompted to uninstall (Enter sudo credentials when prompted):
|
||||
```sh
|
||||
aocl uninstall
|
||||
```
|
||||
|
||||
8. Install the new BSP. Enter **Y** when prompted to install (Enter sudo credentials when prompted):
|
||||
```sh
|
||||
aocl install
|
||||
```
|
||||
|
||||
9. Set up the USB Blaster:
|
||||
|
||||
1. Connect the cable between the board and the host system. Use the letter codes in the diagram below for the connection points:
|
||||
|
||||
2. Connect the B end of the cable to point B on the board.
|
||||
|
||||
3. Connect the F end of the cable to point F on the FPGA download cable.
|
||||
|
||||
4. From point F end of the cable to point F on the FPGA download cable, the connection is as shown:
|
||||

|
||||
|
||||
10. Run `jtagconfig` to ensure that your Intel FPGA Download Cable driver is ready to use:
|
||||
```sh
|
||||
jtagconfig
|
||||
```
|
||||
Your output is similar to:
|
||||
```sh
|
||||
1) USB-Blaster [1-6]
|
||||
02E660DD 10AX115H1(.|E2|ES)/10AX115H2/..
|
||||
```
|
||||
or:
|
||||
```sh
|
||||
1) USB-BlasterII [3-3]
|
||||
02E660DD 10AX115H1(.|E2|ES)/10AX115H2/..
|
||||
```
|
||||
|
||||
11. Use `jtagconfig` to slow the clock. The message "No parameter named JtagClock" can be safely ignored.
|
||||
```sh
|
||||
jtagconfig --setparam 1 JtagClock 6M
|
||||
```
|
||||
|
||||
12. (OPTIONAL) Confirm the clock is set to 6M:
|
||||
```sh
|
||||
jtagconfig --getparam 1 JtagClock
|
||||
```
|
||||
You should see the following:
|
||||
```sh
|
||||
6M
|
||||
```
|
||||
|
||||
13. Go to `/opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2/bringup`, where `sg2_boardtest_2ddr_base.sof`is located:
|
||||
```sh
|
||||
cd /opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2/bringup
|
||||
```
|
||||
|
||||
14. Program the new sof file to the board:
|
||||
```sh
|
||||
quartus_pgm -c 1 -m JTAG -o "p;sg2_boardtest_2ddr_base.sof"
|
||||
```
|
||||
|
||||
15. Soft reboot:
|
||||
```sh
|
||||
reboot
|
||||
```
|
||||
|
||||
16. Source the environment variable script you made.
|
||||
```sh
|
||||
source /home/<user>/init_openvino.sh
|
||||
```
|
||||
|
||||
17. Run `aocl diagnose`:
|
||||
```sh
|
||||
aocl diagnose
|
||||
```
|
||||
Your screen displays `DIAGNOSTIC_PASSED`.
|
||||
|
||||
> **NOTE**: at this point if you do not want to flash the FPGA Card you can go to "Program a Bitstream"
|
||||
|
||||
### <a name="steps-to-flash-the-fpga-card"></a>Steps to Flash the FPGA Card
|
||||
|
||||
> **NOTE**:
|
||||
> - To avoid having to reprogram the board after a power down, a bitstream will be programmed to permanent memory on the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA. This will take about 20 minutes.
|
||||
> - The steps can be followed below in this guide to do this.
|
||||
|
||||
18. Use `jtagconfig` to slow the clock. The message "No parameter named JtagClock" can be safely ignored.
|
||||
```sh
|
||||
jtagconfig --setparam 1 JtagClock 6M
|
||||
```
|
||||
|
||||
19. Check if $QUARTUS_ROOTDIR/linux64/perl/bin exists
|
||||
```sh
|
||||
ls $QUARTUS_ROOTDIR/linux64/perl/bin
|
||||
```
|
||||
|
||||
20. If you see message "ls: cannot access /home/<user>/intelFPGA/18.1/qprogrammer/linux64/perl/bin: No such file or directory" create perl/bin directory and a symbolic link to perl
|
||||
```sh
|
||||
mkdir -p $QUARTUS_ROOTDIR/linux64/perl/bin
|
||||
ln -s /usr/bin/perl $QUARTUS_ROOTDIR/linux64/perl/bin/perl
|
||||
```
|
||||
|
||||
21. If you see message "perl" go to the next step
|
||||
|
||||
22. Go to `/opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2/bringup`, where `sg2_boardtest_2ddr_top.aocx` is located:
|
||||
```sh
|
||||
cd /opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/BSP/a10_1150_sg2/bringup
|
||||
```
|
||||
|
||||
23. Program the `sg2_boardtest_2ddr_top.aocx` file to the flash to be made permanently available even after power cycle:
|
||||
```sh
|
||||
sudo su
|
||||
aocl flash acl0 sg2_boardtest_2ddr_top.aocx
|
||||
```
|
||||
> **NOTE**: You will need the USB Blaster for this.
|
||||
|
||||
24. Hard reboot the host system including powering off.
|
||||
|
||||
25. Source the environment variable script you made.
|
||||
```sh
|
||||
source /home/<user>/init_openvino.sh
|
||||
```
|
||||
|
||||
26. Check if the host system recognizes the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA board. Confirm you can detect the PCIe card:
|
||||
```sh
|
||||
lspci | grep -i Altera
|
||||
```
|
||||
Your output is similar to:
|
||||
```sh
|
||||
01:00.0 Processing accelerators: Altera Corporation Device 2494 (rev 01)
|
||||
```
|
||||
|
||||
27. Run `aocl diagnose`:
|
||||
```sh
|
||||
aocl diagnose
|
||||
```
|
||||
You should see `DIAGNOSTIC_PASSED` before proceeding to the next steps.
|
||||
|
||||
## 2. Program a Bitstream
|
||||
|
||||
The bitstream you program should correspond to the topology you want to deploy. In this section, you program a SqueezeNet bitstream and deploy the classification sample with a SqueezeNet model that you used the Model Optimizer to convert in the steps before.
|
||||
|
||||
> **IMPORTANT**: Only use bitstreams from the installed version of the Intel® Distribution of OpenVINO™ toolkit. Bitstreams from older versions of the Intel® Distribution of OpenVINO™ toolkit are incompatible with later versions of the Intel® Distribution of OpenVINO™ toolkit. For example, you cannot use the `2019R4_PL2_FP11_AlexNet_GoogleNet_Generic` bitstream, when the Intel® Distribution of OpenVINO™ toolkit supports the `2020-2_PL2_FP11_AlexNet_GoogleNet_Generic` bitstream.
|
||||
|
||||
Depending on how many bitstreams you selected, there are different folders for each FPGA card type which were downloaded in the Intel® Distribution of OpenVINO™ toolkit package:
|
||||
|
||||
1. For the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA SG2, the pre-trained bitstreams are in `/opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/`. This example uses a SqueezeNet bitstream with low precision for the classification sample.
|
||||
|
||||
2. Source the environment variable script you made.
|
||||
```sh
|
||||
source /home/<user>/init_openvino.sh
|
||||
```
|
||||
|
||||
3. Change to your home directory:
|
||||
```sh
|
||||
cd /home/<user>
|
||||
```
|
||||
|
||||
4. Program the bitstream for the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA SG2:
|
||||
```sh
|
||||
aocl program acl0 /opt/intel/openvino/bitstreams/a10_vision_design_sg2_bitstreams/2020-4_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx
|
||||
```
|
||||
|
||||
## 3. Set up a Sample Neural Network Model for FPGA
|
||||
|
||||
> **NOTE**: The SqueezeNet Caffe* model was already downloaded and converted to an FP16 IR when you ran the Image Classification Verification Script while [installing the Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support](installing-openvino-linux-fpga.md). Read this section only if you want to convert the model manually, otherwise skip and go to the next section to run the Image Classification sample application.
|
||||
|
||||
In this section, you will create an FP16 model suitable for hardware accelerators. For more information, see the [FPGA plugin](../IE_DG/supported_plugins/FPGA.md) section in the Inference Engine Developer Guide.
|
||||
|
||||
|
||||
1. Create a directory for the FP16 SqueezeNet Model:
|
||||
```sh
|
||||
mkdir ~/squeezenet1.1_FP16
|
||||
```
|
||||
|
||||
2. Go to `~/squeezenet1.1_FP16`:
|
||||
```sh
|
||||
cd ~/squeezenet1.1_FP16
|
||||
```
|
||||
|
||||
3. Use the Model Optimizer to convert the FP16 SqueezeNet Caffe* model into an FP16 optimized Intermediate Representation (IR). The model files were downloaded when you ran the the Image Classification verification script while [installing the Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support](installing-openvino-linux-fpga.md). To convert, run the Model Optimizer script with the following arguments:
|
||||
```sh
|
||||
python3 /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --input_model ~/openvino_models/models/public/squeezenet1.1/squeezenet1.1.caffemodel --data_type FP16 --output_dir .
|
||||
```
|
||||
|
||||
4. The `squeezenet1.1.labels` file contains the classes `ImageNet` uses. This file is included so that the inference results show text instead of classification numbers. Copy `squeezenet1.1.labels` to the your optimized model location:
|
||||
```sh
|
||||
cp /opt/intel/openvino/deployment_tools/demo/squeezenet1.1.labels .
|
||||
```
|
||||
|
||||
5. Copy a sample image to the release directory. You will use this with your optimized model:
|
||||
```sh
|
||||
cp /opt/intel/openvino/deployment_tools/demo/car.png ~/inference_engine_samples_build/intel64/Release
|
||||
```
|
||||
|
||||
## 4. Run the Image Classification Sample Application
|
||||
|
||||
In this section you will run the Image Classification sample application, with the Caffe* Squeezenet1.1 model on your Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA.
|
||||
|
||||
Image Classification sample application binary file was automatically built and the FP16 model IR files are created when you ran the Image Classification Verification Script while [installing the Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support](installing-openvino-windows-fpga.md):
|
||||
* Compiled sample Application binaries are located in the `~/inference_engine_samples_build/intel64/Release` directory.
|
||||
* Generated IR files are in the `~/openvino_models/ir/public/squeezenet1.1/FP16/` directory.
|
||||
|
||||
|
||||
1. Go to the samples directory
|
||||
```sh
|
||||
cd ~/inference_engine_samples_build/intel64/Release
|
||||
```
|
||||
|
||||
2. Use an Inference Engine sample to run a sample inference on the CPU:
|
||||
```sh
|
||||
./classification_sample_async -i car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml
|
||||
```
|
||||
Note the CPU throughput in Frames Per Second (FPS). This tells you how quickly the inference is done on the hardware. Now run the inference using the FPGA.
|
||||
|
||||
3. Add the `-d` option to target the FPGA:
|
||||
```sh
|
||||
./classification_sample_async -i car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d HETERO:FPGA,CPU
|
||||
```
|
||||
The throughput on FPGA is listed and may show a lower FPS. This may be due to the initialization time. To account for that, increase the number of iterations or batch size when deploying to get a better sense of the speed the FPGA can run inference at.
|
||||
|
||||
Congratulations, you are done with the Intel® Distribution of OpenVINO™ toolkit installation for FPGA. To learn more about how the Intel® Distribution of OpenVINO™ toolkit works, the Hello World tutorial and are other resources are provided below.
|
||||
|
||||
## Hello World Face Detection Tutorial
|
||||
|
||||
Use the [Intel® Distribution of OpenVINO™ toolkit with FPGA Hello World Face Detection Exercise](https://github.com/fritzboyle/openvino-with-fpga-hello-world-face-detection) to learn more about how the software and hardware work together.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
* Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit).
|
||||
* Intel® Distribution of OpenVINO™ toolkit documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org).
|
||||
* [Inference Engine FPGA plugin documentation](../IE_DG/supported_plugins/FPGA.md).
|
||||
For documentation for previous releases of Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_VisionAcceleratorFPGA_Configure.html) and lower.
|
||||
|
|
|
|||
|
|
@ -1,113 +1,21 @@
|
|||
# Configuration Guide for the Intel® Distribution of OpenVINO™ toolkit and the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA SG2 (IEI's Mustang-F100-A10) on Windows* {#openvino_docs_install_guides_VisionAcceleratorFPGA_Configure_Windows}
|
||||
|
||||
> **NOTE**: Intel® Arria® 10 FPGA (Mustang-F100-A10) Speed Grade 1 is not available in the OpenVINO 2020.3 package.
|
||||
## Product Change Notice
|
||||
Intel® Distribution of OpenVINO™ toolkit for Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
|
||||
|
||||
## 1. Configure and Set Up the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA
|
||||
<table>
|
||||
<tr>
|
||||
<td><strong>Change Notice Begins</strong></td>
|
||||
<td>July 2020</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Change Date</strong></td>
|
||||
<td>October 2020</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
1. Download [Intel® Quartus® Prime Programmer and Tools Standard Edition 18.1](http://fpgasoftware.intel.com/18.1/?edition=standard&platform=windows&download_manager=direct#tabs-4). Install the Intel® Quartus® Prime Programmer and Tools Software to the `C:\intelFPGA\18.1` directory.
|
||||
Intel will be transitioning to the next-generation programmable deep-learning solution based on FPGAs in order to increase the level of customization possible in FPGA deep-learning. As part of this transition, future standard releases (i.e., non-LTS releases) of Intel® Distribution of OpenVINO™ toolkit will no longer include the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA.
|
||||
|
||||
2. Download [OpenSSL](http://slproweb.com/download/Win64OpenSSL_Light-1_1_1f.exe). Install the OpenSSL and add the `<install location>\bin` path to your system `PATH` variable.
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
3. Unpack the BSP for your Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA SG2:
|
||||
Extract `Intel_vision_accel_win_driver_1.2_SG2.zip` from `C:\Program Files (x86)\IntelSWTools\openvino\a10_vision_design_sg2_bitstreams\BSP` to `C:\intelFPGA\19.2\aclrte-windows64\board`
|
||||
5. Open an admin command prompt.
|
||||
6. Setup your environment variables:
|
||||
```sh
|
||||
set INTELFPGAOCLSDKROOT=C:\intelFPGA\19.2\aclrte-windows64
|
||||
set AOCL_BOARD_PACKAGE_ROOT=%INTELFPGAOCLSDKROOT%\board\a10_1150_sg2
|
||||
set IOCL_BOARD_PACKAGE_ROOT=%INTELFPGAOCLSDKROOT%\board\a10_1150_sg2
|
||||
C:\intelFPGA\19.2\aclrte-windows64\init_opencl.bat
|
||||
"C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat"
|
||||
```
|
||||
7. Uninstall any previous BSP before installing the OpenCL BSP for the 2020.3 BSP. Enter **Y** when prompted to uninstall:
|
||||
```sh
|
||||
aocl uninstall
|
||||
```
|
||||
8. Install the new BSP. Enter **Y** when prompted to install
|
||||
```sh
|
||||
aocl install
|
||||
```
|
||||
9. Run `aocl diagnose`:
|
||||
```sh
|
||||
aocl diagnose
|
||||
```
|
||||
Your screen displays `DIAGNOSTIC_PASSED`.
|
||||
|
||||
## 2. Program a Bitstream
|
||||
|
||||
The bitstream you program should correspond to the topology you want to deploy. In this section, you program a SqueezeNet bitstream and deploy the classification sample with a SqueezeNet model that you used the Model Optimizer to convert in the steps before.
|
||||
|
||||
> **IMPORTANT**: Only use bitstreams from the installed version of the Intel® Distribution of OpenVINO™ toolkit. Bitstreams from older versions of the Intel® Distribution of OpenVINO™ toolkit are incompatible with later versions of the Intel® Distribution of OpenVINO™ toolkit. For example, you cannot use the `2019R4_PL2_FP11_AlexNet_GoogleNet_Generic` bitstream, when the Intel® Distribution of OpenVINO™ toolkit supports the `2020-3_PL2_FP11_AlexNet_GoogleNet_Generic` bitstream.
|
||||
|
||||
Depending on how many bitstreams you selected, there are different folders for each FPGA card type which were downloaded in the Intel® Distribution of OpenVINO™ toolkit package:
|
||||
|
||||
1. For the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA SG2, the pre-trained bitstreams are in `C:\Program Files (x86)\IntelSWTools\openvino\a10_vision_design_sg2_bitstreams`. This example uses a SqueezeNet bitstream with low precision for the classification sample.
|
||||
|
||||
2. Program the bitstream for the Intel® Vision Accelerator Design with Intel® Arria® 10 FPGA SG2:
|
||||
```sh
|
||||
aocl program acl0 "C:\Program Files (x86)\IntelSWTools\openvino\a10_vision_design_sg2_bitstreams/2020-3_PL2_FP16_SqueezeNet_TinyYolo_VGG.aocx"
|
||||
```
|
||||
|
||||
## 3. Set up a Sample Neural Network Model for FPGA
|
||||
|
||||
> **NOTE**: The SqueezeNet Caffe* model was already downloaded and converted to an FP16 IR when you ran the Image Classification Verification Script while [installing the Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support](installing-openvino-windows-fpga.md). Read this section only if you want to convert the model manually, otherwise skip and go to the next section to run the Image Classification sample application.
|
||||
|
||||
In this section, you will prepare a sample FP16 model suitable for hardware accelerators. For more information, see the [FPGA plugin](../IE_DG/supported_plugins/FPGA.html) section in the Inference Engine Developer Guide.
|
||||
|
||||
1. Create a directory for the FP16 SqueezeNet Model:
|
||||
```sh
|
||||
mkdir %HOMEPATH%\squeezenet1.1_FP16
|
||||
```
|
||||
|
||||
2. Go to `%HOMEPATH%\squeezenet1.1_FP16`:
|
||||
```sh
|
||||
cd %HOMEPATH%\squeezenet1.1_FP16
|
||||
```
|
||||
|
||||
3. Use the Model Optimizer to convert the FP16 SqueezeNet Caffe* model into an FP16 optimized Intermediate Representation (IR). The model files were downloaded when you ran the the Image Classification verification script while [installing the Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support](installing-openvino-windows-fpga.md). To convert, run the Model Optimizer script with the following arguments:
|
||||
```sh
|
||||
python "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\mo.py" --input_model %HOMEPATH%\Documents\Intel\OpenVINO\openvino_models\models\public\squeezenet1.1\squeezenet1.1.caffemodel --data_type FP16 --output_dir .
|
||||
```
|
||||
|
||||
4. The `squeezenet1.1.labels` file contains the classes `ImageNet` uses. This file is included so that the inference results show text instead of classification numbers. Copy `squeezenet1.1.labels` to the your optimized model location:
|
||||
```sh
|
||||
xcopy "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\squeezenet1.1.labels" .
|
||||
```
|
||||
|
||||
5. Copy a sample image to the release directory. You will use this with your optimized model:
|
||||
```sh
|
||||
xcopy "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png" %HOMEPATH%\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release
|
||||
```
|
||||
|
||||
## 4. Run the Image Classification Sample Application
|
||||
|
||||
In this section you will run the Image Classification sample application, with the Caffe* Squeezenet1.1 model on your Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA.
|
||||
|
||||
Image Classification sample application binary file was automatically built and the FP16 model IR files are created when you ran the Image Classification Verification Script while [installing the Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support](installing-openvino-windows-fpga.md):
|
||||
* Compiled sample Application binaries are located in the `%HOMEPATH%\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release` folder.
|
||||
* Generated IR files are in the `%HOMEPATH%\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16` folder.
|
||||
|
||||
1. Go to the samples directory
|
||||
```sh
|
||||
cd %HOMEPATH%\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release
|
||||
```
|
||||
|
||||
2. Use an Inference Engine sample to run a sample inference on the CPU:
|
||||
```sh
|
||||
classification_sample_async -i car.png -m %HOMEPATH%\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml
|
||||
```
|
||||
Note the CPU throughput in Frames Per Second (FPS). This tells you how quickly the inference is done on the hardware. Now run the inference using the FPGA.
|
||||
|
||||
3. Add the `-d` option to target the FPGA:
|
||||
```sh
|
||||
classification_sample_async -i car.png -m %HOMEPATH%\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml -d HETERO:FPGA,CPU
|
||||
```
|
||||
The throughput on FPGA is listed and may show a lower FPS. This may be due to the initialization time. To account for that, increase the number of iterations or batch size when deploying to get a better sense of the speed the FPGA can run inference at.
|
||||
|
||||
Congratulations, you are done with the Intel® Distribution of OpenVINO™ toolkit installation for FPGA. To learn more about how the Intel® Distribution of OpenVINO™ toolkit works, try the other resources that are provided below.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
* Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit).
|
||||
* Intel® Distribution of OpenVINO™ toolkit documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org).
|
||||
* [Inference Engine FPGA plugin documentation](../IE_DG/supported_plugins/FPGA.md).
|
||||
For documentation for previous releases of Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_VisionAcceleratorFPGA_Configure_Windows.html) and lower.
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ The Deployment Manager is a Python\* command-line tool that is delivered within
|
|||
* Steps for the Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
|
||||
|
||||
> **IMPORTANT**: The operating system on the target host must be the same as the development system on which you are creating the package. For example, if the target system is Ubuntu 16.04, the deployment package must be created from the OpenVINO™ toolkit installed on Ubuntu 16.04.
|
||||
> **IMPORTANT**: The operating system on the target host must be the same as the development system on which you are creating the package. For example, if the target system is Ubuntu 18.04, the deployment package must be created from the OpenVINO™ toolkit installed on Ubuntu 18.04.
|
||||
|
||||
## Create Deployment Package Using Deployment Manager
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ This guide provides installation steps for Intel® Distribution of OpenVINO™ t
|
|||
**Operating Systems**
|
||||
|
||||
- Ubuntu* 18.04 long-term support (LTS), 64-bit
|
||||
- CentOS* 7.4, 64-bit
|
||||
- CentOS* 7.6, 64-bit
|
||||
- macOS* 10.14.x versions.
|
||||
- Windows 10*, 64-bit Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or higher) editions
|
||||
- Windows Server* 2016 or higher
|
||||
|
|
@ -30,7 +30,7 @@ This guide provides installation steps for Intel® Distribution of OpenVINO™ t
|
|||
```sh
|
||||
conda install openvino-ie4py-ubuntu18 -c intel
|
||||
```
|
||||
- CentOS* 7.4
|
||||
- CentOS* 7.6
|
||||
```sh
|
||||
conda install openvino-ie4py-centos7 -c intel
|
||||
```
|
||||
|
|
|
|||
|
|
@ -284,45 +284,12 @@ docker run --rm --net=host -v /var/tmp:/var/tmp –ipc=host -ti <image_name>
|
|||
> - Alternatively, you can start hddldaemon with the root user on host, but this approach is not recommended.
|
||||
|
||||
## Use a Docker* Image for FPGA
|
||||
### Build a Docker* Image for FPGA
|
||||
|
||||
FPGA card is not available in container by default, but it can be mounted there with the following pre-requisites:
|
||||
- FPGA device is up and ready to run inference.
|
||||
- FPGA bitstreams were pushed to the device over PCIe.
|
||||
Intel will be transitioning to the next-generation programmable deep-learning solution based on FPGAs in order to increase the level of customization possible in FPGA deep-learning. As part of this transition, future standard releases (i.e., non-LTS releases) of Intel® Distribution of OpenVINO™ toolkit will no longer include the Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA.
|
||||
|
||||
To build a Docker* image for FPGA:
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
1. Set additional environment variables in the `Dockerfile`:<br>
|
||||
```sh
|
||||
ENV CL_CONTEXT_COMPILER_MODE_INTELFPGA=3
|
||||
ENV DLA_AOCX=/opt/intel/openvino/a10_devkit_bitstreams/2-0-1_RC_FP11_Generic.aocx
|
||||
ENV PATH=/opt/altera/aocl-pro-rte/aclrte-linux64/bin:$PATH
|
||||
```
|
||||
2. Install the following UDEV rule:<br>
|
||||
```sh
|
||||
cat <<EOF > fpga.rules
|
||||
KERNEL=="acla10_ref*",GROUP="users",MODE="0660"
|
||||
EOF
|
||||
sudo cp fpga.rules /etc/udev/rules.d/
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
sudo ldconfig
|
||||
```
|
||||
Make sure that a container user is added to the "users" group with the same GID as on host.
|
||||
|
||||
### Run the Docker* container for FPGA
|
||||
|
||||
To run the built Docker* container for FPGA, use the following command:
|
||||
|
||||
```sh
|
||||
docker run --rm -it \
|
||||
--mount type=bind,source=/opt/intel/intelFPGA_pro,destination=/opt/intel/intelFPGA_pro \
|
||||
--mount type=bind,source=/opt/altera,destination=/opt/altera \
|
||||
--mount type=bind,source=/etc/OpenCL/vendors,destination=/etc/OpenCL/vendors \
|
||||
--mount type=bind,source=/opt/Intel/OpenCL/Boards,destination=/opt/Intel/OpenCL/Boards \
|
||||
--device /dev/acla10_ref0:/dev/acla10_ref0 \
|
||||
<image_name>
|
||||
```
|
||||
For instructions for previous releases with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_installing_openvino_docker_linux.html#use_a_docker_image_for_fpga) or lower.
|
||||
|
||||
## Examples
|
||||
* [ubuntu18_runtime dockerfile](https://docs.openvinotoolkit.org/downloads/ubuntu18_runtime.dockerfile) - Can be used to build OpenVINO™ runtime image containing minimal dependencies needed to use OpenVINO™ in production environment.
|
||||
|
|
|
|||
|
|
@ -1,16 +1,5 @@
|
|||
# Install Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support {#openvino_docs_install_guides_installing_openvino_linux_fpga}
|
||||
|
||||
**NOTES**:
|
||||
- [Intel® System Studio](https://software.intel.com/en-us/system-studio) is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to [Get Started with Intel® System Studio](https://software.intel.com/en-us/articles/get-started-with-openvino-and-intel-system-studio-2019).
|
||||
- The Intel® Distribution of OpenVINO™ toolkit was formerly known as the Intel® Computer Vision SDK.
|
||||
- These steps apply to Ubuntu\*, CentOS\*, and Yocto\*.
|
||||
- If you are using Intel® Distribution of OpenVINO™ toolkit on Windows\* OS, see the [Installation Guide for Windows*](installing-openvino-windows.md).
|
||||
- For the Intel Distribution of OpenVINO toolkit without FPGA
|
||||
support, see [Installation Guide for Linux*](installing-openvino-linux.md).
|
||||
- CentOS and Yocto installations will require some modifications that
|
||||
are not covered in this guide.
|
||||
- An internet connection is required to follow the steps in this guide.
|
||||
|
||||
## Product Change Notice
|
||||
Intel® Distribution of OpenVINO™ toolkit for Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
|
||||
|
||||
|
|
@ -29,323 +18,4 @@ Intel will be transitioning to the next-generation programmable deep-learning so
|
|||
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
## Introduction
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit quickly deploys applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNN), the toolkit extends computer vision (CV) workloads across Intel® hardware, maximizing performance. The Intel® Distribution of OpenVINO™ toolkit includes the Intel® Deep Learning Deployment Toolkit (Intel® DLDT).
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit for Linux\* with FPGA Support:
|
||||
|
||||
- Enables CNN-based deep learning inference on the edge
|
||||
- Supports heterogeneous execution across Intel® CPU, Intel® Integrated Graphics, Intel® FPGA, Intel® Neural Compute Stick 2
|
||||
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
|
||||
- Includes optimized calls for computer vision standards including OpenCV\* and OpenCL™
|
||||
|
||||
**Included with the Installation and installed by default:**
|
||||
|
||||
| Component | Description |
|
||||
|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [Model Optimizer](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) | This tool imports, converts, and optimizes models that were trained in popular frameworks to a format usable by Intel tools, especially the Inference Engine. <br>Popular frameworks include Caffe\*, TensorFlow\*, MXNet\*, and ONNX\*. |
|
||||
| [Inference Engine](../IE_DG/inference_engine_intro.md) | This is the engine that runs the deep learning model. It includes a set of libraries for an easy inference integration into your applications. |
|
||||
| Drivers and runtimes for OpenCL™ version 2.1 | Enables OpenCL on the GPU/CPU for Intel® processors |
|
||||
| Intel® Media SDK | Offers access to hardware accelerated video codecs and frame processing |
|
||||
| Pre-compiled FPGA bitstream samples | Pre-compiled bitstream samples for the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA, and Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA SG2. |
|
||||
| Intel® FPGA SDK for OpenCL™ software technology | The Intel® FPGA RTE for OpenCL™ provides utilities, host runtime libraries, drivers, and RTE-specific libraries and files |
|
||||
| [OpenCV](https://docs.opencv.org/master/) | OpenCV\* community version compiled for Intel® hardware |
|
||||
| [Inference Engine Code Samples](../IE_DG/Samples_Overview.md) | A set of simple console applications demonstrating how to utilize specific OpenVINO capabilities in an application and how to perform specific tasks, such as loading a model, running inference, querying specific device capabilities, and more. |
|
||||
| [Demo Applications](@ref omz_demos_README) | A set of simple console applications that provide robust application templates to help you implement specific deep learning scenarios. |
|
||||
|
||||
|
||||
## Development and Target Platform
|
||||
|
||||
The development and target platforms have the same requirements, but you can select different components during the installation, based on your intended use.
|
||||
|
||||
**Hardware**
|
||||
|
||||
* 6th to 10th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* Intel® Xeon® processor E family (formerly code named Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
|
||||
* 3rd generation Intel® Xeon® Scalable processor (formerly code named Cooper Lake)
|
||||
* Intel® Xeon® Scalable processor (formerly Skylake and Cascade Lake)
|
||||
* Intel Atom® processor with support for Intel® Streaming SIMD Extensions 4.1 (Intel® SSE4.1)
|
||||
* Intel Pentium® processor N4200/5, N3350/5, or N3450/5 with Intel® HD Graphics
|
||||
* Intel® Neural Compute Stick 2
|
||||
* Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
* Intel® Programmable Acceleration Card (PAC) with Intel® Arria® 10 GX FPGA
|
||||
* Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Mustang-F100-A10) SG2
|
||||
|
||||
> **NOTE**: With OpenVINO™ 2020.4 release, Intel® Movidius™ Neural Compute Stick is no longer supported.
|
||||
|
||||
> **NOTE**: Intel® Arria 10 FPGA (Mustang-F100-A10) SG1 is no longer supported. If you use Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA (Mustang-F100-A10) Speed Grade 1, we recommend continuing to use the [Intel® Distribution of OpenVINO™ toolkit 2020.1](https://docs.openvinotoolkit.org/2020.1/_docs_install_guides_VisionAcceleratorFPGA_Configure.html) release.
|
||||
|
||||
> **NOTE**: Intel® Arria® 10 GX FPGA Development Kit is no longer supported. For the Intel® Arria® 10 FPGA GX Development Kit configuration guide, refer to the [2019 R1.1 documentation](http://docs.openvinotoolkit.org/2019_R1.1/_docs_install_guides_GX_Configure_2019R1.html).
|
||||
|
||||
**Processor Notes:**
|
||||
|
||||
- Processor graphics are not included in all processors. See [Product Specifications](https://ark.intel.com/) for information about your processor.
|
||||
- A chipset that supports processor graphics is required for Intel® Xeon® processors.
|
||||
|
||||
**Operating Systems:**
|
||||
|
||||
- Ubuntu 18.04 or 16.04 long-term support (LTS), 64-bit: Minimum supported kernel is 4.15
|
||||
- CentOS 7.4, 64-bit
|
||||
- Yocto Project v3.0, 64-bit (for target only and requires modifications)
|
||||
|
||||
## Overview
|
||||
|
||||
This guide provides step-by-step instructions on how to install the Intel® Distribution of OpenVINO™ toolkit with FPGA Support. Links are provided for each type of compatible hardware including downloads, initialization and configuration steps. The following steps will be covered:
|
||||
|
||||
1. <a href="#install-openvino">Install the Intel® Distribution of OpenVINO™ Toolkit </a>
|
||||
2. <a href="#install-external-dependencies">Install External software dependencies</a>
|
||||
3. <a href="#configure-model-optimizer">Configure the Model Optimizer </a>
|
||||
4. <a href="#run-the-demos">Run the Verification Scripts to Verify Installation and Compile Samples</a>
|
||||
5. <a href="#install-hardware">Install your compatible hardware from the list of supported hardware</a><br>
|
||||
6. <a href="#Hello-World-Face-Detection-Tutorial">Use the Face Detection Tutorial</a>
|
||||
|
||||
## <a name="install-openvino"></a>Install the Intel® Distribution of OpenVINO™ Toolkit Core Components
|
||||
|
||||
Download the Intel® Distribution of OpenVINO™ toolkit package file from [Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support](https://software.intel.com/en-us/openvino-toolkit/choose-download).
|
||||
Select the Intel® Distribution of OpenVINO™ toolkit for Linux with FPGA Support package from the dropdown menu.
|
||||
|
||||
1. Open a command prompt terminal window.
|
||||
2. Change directories to where you downloaded the Intel Distribution of
|
||||
OpenVINO toolkit for Linux\* with FPGA Support package file.<br>
|
||||
If you downloaded the package file to the current user's `Downloads`
|
||||
directory:
|
||||
```sh
|
||||
cd ~/Downloads/
|
||||
```
|
||||
By default, the file is saved as `l_openvino_toolkit_fpga_p_<version>.tgz`.
|
||||
|
||||
3. Unpack the .tgz file:
|
||||
```sh
|
||||
tar -xvzf l_openvino_toolkit_fpga_p_<version>.tgz
|
||||
```
|
||||
The files are unpacked to the `l_openvino_toolkit_fpga_p_<version>` directory.
|
||||
|
||||
4. Go to the `l_openvino_toolkit_fpga_p_<version>` directory:
|
||||
```sh
|
||||
cd l_openvino_toolkit_fpga_p_<version>
|
||||
```
|
||||
If you have a previous version of the Intel Distribution of OpenVINO toolkit installed, rename or delete these two directories:
|
||||
- `/home/<user>/inference_engine_samples`
|
||||
- `/home/<user>/openvino_models`
|
||||
|
||||
**Installation Notes:**
|
||||
- Choose an installation option and run the related script as root.
|
||||
- You can use either a GUI installation wizard or command-line instructions (CLI).
|
||||
- Screenshots are provided for the GUI, but not for CLI. The following information also applies to CLI and will be helpful to your installation where you will be presented with the same choices and tasks.
|
||||
|
||||
5. Choose your installation option:
|
||||
- **Option 1:** GUI Installation Wizard:
|
||||
```sh
|
||||
sudo ./install_GUI.sh
|
||||
```
|
||||
- **Option 2:** Command-Line Instructions:
|
||||
```sh
|
||||
sudo ./install.sh
|
||||
```
|
||||
6. Follow the instructions on your screen. Watch for informational
|
||||
messages such as the following in case you must complete additional
|
||||
steps:
|
||||

|
||||
|
||||
7. If you select the default options, the **Installation summary** GUI screen looks like this:
|
||||

|
||||
- **Optional:** You can choose **Customize** and select only the bitstreams for your card. This will allow you to minimize
|
||||
the size of the download by several gigabytes.
|
||||
- The following bitstreams listed at the bottom of the customization screen are highlighted below. Choose the one for your FPGA:
|
||||

|
||||
- When installed as **root** the default installation directory for the Intel Distribution of OpenVINO is
|
||||
`/opt/intel/openvino_fpga_2019.<version>/`.<br>
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/opt/intel/openvino/`.
|
||||
|
||||
8. A Complete screen indicates that the core components have been installed:
|
||||

|
||||
|
||||
The first core components are installed. Continue to the next section to install additional dependencies.
|
||||
|
||||
## <a name="install-external-dependencies"></a>Install External Software Dependencies
|
||||
|
||||
These dependencies are required for:
|
||||
|
||||
- Intel-optimized build of OpenCV library
|
||||
- Deep Learning Inference Engine
|
||||
- Deep Learning Model Optimizer tools
|
||||
|
||||
1. Change to the `install_dependencies` directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/install_dependencies
|
||||
```
|
||||
2. Run a script to download and install the external software dependencies:
|
||||
```sh
|
||||
sudo -E ./install_openvino_dependencies.sh
|
||||
```
|
||||
|
||||
The dependencies are installed. Continue to the next section to configure the Model Optimizer.
|
||||
|
||||
## <a name="configure-model-optimizer"></a>Configure the Model Optimizer
|
||||
|
||||
The Model Optimizer is a Python\*-based command line tool for importing
|
||||
trained models from popular deep learning frameworks such as Caffe\*,
|
||||
TensorFlow\*, Apache MXNet\*, ONNX\* and Kaldi\*.
|
||||
|
||||
The Model Optimizer is a key component of the Intel Distribution of
|
||||
OpenVINO toolkit. You cannot perform inference on your trained model without
|
||||
running the model through the Model Optimizer. When you run a
|
||||
pre-trained model through the Model Optimizer, your output is an
|
||||
Intermediate Representation (IR) of the network. The Intermediate
|
||||
Representation is a pair of files that describe the whole model:
|
||||
|
||||
- `.xml`: Describes the network topology
|
||||
- `.bin`: Contains the weights and biases binary data
|
||||
|
||||
For more information about the Model Optimizer, refer to the [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
|
||||
|
||||
### Model Optimizer Configuration Steps
|
||||
|
||||
> **IMPORTANT**: The Internet access is required to execute the following steps successfully. If you have access to the Internet through the proxy server only, please make sure that it is configured in your environment.
|
||||
|
||||
You can choose to either configure all supported frameworks at once **OR** configure one framework at a time. Choose the option that best suits your needs. If you see error messages, make sure you installed all dependencies.
|
||||
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ to the non-default install directory, replace `/opt/intel` with the directory in which you installed the software.
|
||||
|
||||
**Option 1: Configure all supported frameworks at the same time**
|
||||
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
2. Run the script to configure the Model Optimizer for Caffe,
|
||||
TensorFlow 1.x, MXNet, Kaldi\*, and ONNX:
|
||||
```sh
|
||||
sudo ./install_prerequisites.sh
|
||||
```
|
||||
|
||||
**Option 2: Configure each framework separately**
|
||||
|
||||
Configure individual frameworks separately **ONLY** if you did not select **Option 1** above.
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
2. Run the script for your model framework. You can run more than one script:
|
||||
- For **Caffe**:
|
||||
|
||||
```sh
|
||||
sudo ./install_prerequisites_caffe.sh
|
||||
```
|
||||
- For **TensorFlow 1.x**:
|
||||
```sh
|
||||
sudo ./install_prerequisites_tf.sh
|
||||
```
|
||||
- For **TensorFlow 2.x**:
|
||||
```sh
|
||||
sudo ./install_prerequisites_tf2.sh
|
||||
```
|
||||
- For **MXNet**:
|
||||
```sh
|
||||
sudo ./install_prerequisites_mxnet.sh
|
||||
```
|
||||
- For **ONNX**:
|
||||
```sh
|
||||
sudo ./install_prerequisites_onnx.sh
|
||||
```
|
||||
- For **Kaldi**:
|
||||
```sh
|
||||
sudo ./install_prerequisites_kaldi.sh
|
||||
```
|
||||
The Model Optimizer is configured for one or more frameworks.
|
||||
|
||||
You are ready to compile the samples by <a href="#run-the-demos">running the verification scripts</a>.
|
||||
|
||||
## <a name="run-the-demos"></a>Run the Verification Scripts to Verify Installation and Compile Samples
|
||||
|
||||
To verify the installation and compile two samples, run the verification applications provided with the product on the CPU:
|
||||
|
||||
1. Go to the **Inference Engine demo** directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/demo
|
||||
```
|
||||
|
||||
2. Run the **Image Classification verification script**:
|
||||
```sh
|
||||
./demo_squeezenet_download_convert_run.sh
|
||||
```
|
||||
This verification script downloads a SqueezeNet model, uses the Model Optimizer to convert the model to the .bin and .xml Intermediate Representation (IR) files. The Inference Engine requires this model conversion so it can use the IR as input and achieve optimum performance on Intel hardware.<br>
|
||||
This verification script builds the [Image Classification Sample Async](../../inference-engine/samples/classification_sample_async/README.md) application and run it with the `car.png` image in the demo directory. When the verification script completes, you will have the label and confidence for the top-10 categories:
|
||||

|
||||
|
||||
3. Run the **Inference Pipeline verification script**:
|
||||
```sh
|
||||
./demo_security_barrier_camera.sh
|
||||
```
|
||||
This verification script builds the [Security Barrier Camera Demo](@ref omz_demos_security_barrier_camera_demo_README) application included in the package.
|
||||
|
||||
This verification script uses the `car_1.bmp` image in the demo directory to show an inference pipeline using three of the pre-trained models. The verification script uses vehicle recognition in which vehicle attributes build on each other to narrow in on a specific attribute.
|
||||
|
||||
First, an object is identified as a vehicle. This identification is used as input to the next model, which identifies specific vehicle attributes, including the license plate. Finally, the attributes identified as the license plate are used as input to the third model, which recognizes specific characters in the license plate.
|
||||
|
||||
When the verification script completes, you will see an image that displays the resulting frame with detections rendered as bounding boxes, and text:
|
||||

|
||||
|
||||
4. Close the image viewer window to complete the verification script.
|
||||
|
||||
|
||||
To learn about the verification scripts, see the `README.txt` file in `/opt/intel/openvino/deployment_tools/demo`.
|
||||
|
||||
For a description of the Intel Distribution of OpenVINO™ pre-trained object detection and object recognition models, see [Overview of OpenVINO™ Toolkit Pre-Trained Models](@ref omz_models_intel_index).
|
||||
|
||||
You have completed all required installation, configuration and build steps in this guide to use your CPU to work with your trained models. To use other hardware, see <a href="#install hardware">Install and Configure your Compatible Hardware</a> below.
|
||||
|
||||
## <a name="install-hardware"></a>Install and Configure Your Compatible Hardware
|
||||
|
||||
Install your compatible hardware from the list of supported components below.
|
||||
|
||||
> **NOTE**: Once you've completed your hardware installation, you'll return to this guide to finish installation and configuration of the Intel® Distribution of OpenVINO™ toolkit.
|
||||
|
||||
Links to install and configure compatible hardware
|
||||
- [The Intel® Programmable Acceleration Card (PAC) with Intel® Arria® 10 GX FPGA](PAC_Configure.md)
|
||||
- [The Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA SG2 (Mustang-F100-A10)](VisionAcceleratorFPGA_Configure.md)
|
||||
- [Intel® Vision Accelerator Design with Intel® Movidius™ VPUs](installing-openvino-linux-ivad-vpu.md)
|
||||
|
||||
Congratulations, you have finished the Intel® Distribution of OpenVINO™ toolkit installation for FPGA. To learn more about how the Intel® Distribution of OpenVINO™ toolkit works, the Hello World tutorial and other resources are provided below.
|
||||
|
||||
## <a name="Hello-World-Face-Detection-Tutorial"></a>Hello World Face Detection Tutorial
|
||||
|
||||
Refer to the [OpenVINO™ with FPGA Hello World Face Detection Exercise](https://github.com/intel-iot-devkit/openvino-with-fpga-hello-world-face-detection).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
PRC developers might encounter pip installation related issues during OpenVINO™ installation. To resolve the issues, you may use one of the following options at your discretion:
|
||||
* Add the download source with `-i` parameter in the `pip` command. For example:
|
||||
```
|
||||
pip install numpy.py -i https://mirrors.aliyun.com/pypi/simple/
|
||||
```
|
||||
Use the `--trusted-host` parameter if the URL above is `http` instead of `https`.
|
||||
|
||||
* Modify or create `~/.pip/pip.conf` file to change the default download source with the content below:
|
||||
```
|
||||
[global]
|
||||
index-url = http://mirrors.aliyun.com/pypi/simple/
|
||||
[install]
|
||||
trusted-host = mirrors.aliyun.com
|
||||
```
|
||||
|
||||
**Additional Resources**
|
||||
|
||||
- Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit)
|
||||
- OpenVINO™ toolkit online documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org)
|
||||
- [Inference Engine FPGA plugin documentation](../IE_DG/supported_plugins/FPGA.md)
|
||||
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
|
||||
- For more information on Sample Applications, see the [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md).
|
||||
- To learn about pre-trained models for OpenVINO™ toolkit, see the [Pre-Trained Models Overview](@ref omz_models_intel_index).
|
||||
- For information on Inference Engine Tutorials, see the [Inference Tutorials](https://github.com/intel-iot-devkit/inference-tutorials-generic)
|
||||
- For IoT Libraries & Code Samples see the [Intel® IoT Developer Kit](https://github.com/intel-iot-devkit).
|
||||
|
||||
To learn more about converting models, go to:
|
||||
|
||||
- [Convert Your Caffe* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md)
|
||||
- [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
|
||||
- [Convert Your MXNet* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md)
|
||||
- [Convert Your ONNX* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_ONNX.md)
|
||||
|
||||
|
||||
For installation instructions for the last release of Intel® Distribution of OpenVINO™ toolkit for Linux* with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_installing_openvino_linux_fpga.html).
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
> **NOTES**:
|
||||
> - These steps apply to Ubuntu\*, CentOS\*, and Yocto\*.
|
||||
> - If you are using Intel® Distribution of OpenVINO™ toolkit on Windows\* OS, see the [Installation Guide for Windows*](installing-openvino-windows.md).
|
||||
> - For the Intel Distribution of OpenVINO toolkit with FPGA support, see [Installation Guide for Linux* with FPGA support](installing-openvino-linux-fpga.md).
|
||||
> - CentOS and Yocto installations will require some modifications that are not covered in this guide.
|
||||
> - An internet connection is required to follow the steps in this guide.
|
||||
> - [Intel® System Studio](https://software.intel.com/en-us/system-studio) is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to [Get Started with Intel® System Studio](https://software.intel.com/en-us/articles/get-started-with-openvino-and-intel-system-studio-2019).
|
||||
|
|
@ -24,19 +23,18 @@ The Intel® Distribution of OpenVINO™ toolkit for Linux\*:
|
|||
|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [Model Optimizer](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) | This tool imports, converts, and optimizes models that were trained in popular frameworks to a format usable by Intel tools, especially the Inference Engine. <br>Popular frameworks include Caffe\*, TensorFlow\*, MXNet\*, and ONNX\*. |
|
||||
| [Inference Engine](../IE_DG/inference_engine_intro.md) | This is the engine that runs the deep learning model. It includes a set of libraries for an easy inference integration into your applications. |
|
||||
| Drivers and runtimes for OpenCL™ version 2.1 | Enables OpenCL on the GPU/CPU for Intel® processors |
|
||||
| Intel® Media SDK | Offers access to hardware accelerated video codecs and frame processing |
|
||||
| [OpenCV](https://docs.opencv.org/master/) | OpenCV\* community version compiled for Intel® hardware |
|
||||
| [Inference Engine Code Samples](../IE_DG/Samples_Overview.md) | A set of simple console applications demonstrating how to utilize specific OpenVINO capabilities in an application and how to perform specific tasks, such as loading a model, running inference, querying specific device capabilities, and more. |
|
||||
| [Demo Applications](@ref omz_demos_README) | A set of simple console applications that provide robust application templates to help you implement specific deep learning scenarios. |
|
||||
| [Additional Tools](../IE_DG/Tools_Overview.md) | A set of tools to work with your models |
|
||||
| Additional Tools | A set of tools to work with your models including [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README), [Post-Training Optimization Tool Guide](@ref pot_README), [Model Downloader](@ref omz_tools_downloader_README) and other |
|
||||
| [Documentation for Pre-Trained Models ](@ref omz_models_intel_index) | Documentation for the pre-trained models available in the [Open Model Zoo repo](https://github.com/opencv/open_model_zoo) |
|
||||
|
||||
## System Requirements
|
||||
|
||||
**Hardware**
|
||||
|
||||
* 6th to 10th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* 6th to 11th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* Intel® Xeon® processor E family (formerly code named Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
|
||||
* 3rd generation Intel® Xeon® Scalable processor (formerly code named Cooper Lake)
|
||||
* Intel® Xeon® Scalable processor (formerly Skylake and Cascade Lake)
|
||||
|
|
@ -55,7 +53,7 @@ The Intel® Distribution of OpenVINO™ toolkit for Linux\*:
|
|||
**Operating Systems**
|
||||
|
||||
- Ubuntu 18.04.x long-term support (LTS), 64-bit
|
||||
- CentOS 7.4, 64-bit (for target only)
|
||||
- CentOS 7.6, 64-bit (for target only)
|
||||
- Yocto Project v3.0, 64-bit (for target only and requires modifications)
|
||||
|
||||
## Overview
|
||||
|
|
@ -130,7 +128,7 @@ looks like this:
|
|||

|
||||
When installed as **root** the default installation directory for the Intel Distribution of OpenVINO is
|
||||
`/opt/intel/openvino_<version>/`.<br>
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/opt/intel/openvino/`.
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/opt/intel/openvino_2021/`.
|
||||
> **NOTE**: The Intel® Media SDK component is always installed in the `/opt/intel/mediasdk` directory regardless of the OpenVINO installation path chosen.
|
||||
|
||||
8. A Complete screen indicates that the core components have been installed:
|
||||
|
|
@ -151,7 +149,7 @@ These dependencies are required for:
|
|||
|
||||
1. Change to the `install_dependencies` directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/install_dependencies
|
||||
cd /opt/intel/openvino_2021/install_dependencies
|
||||
```
|
||||
2. Run a script to download and install the external software dependencies:
|
||||
```sh
|
||||
|
|
@ -164,7 +162,7 @@ The dependencies are installed. Continue to the next section to set your environ
|
|||
You must update several environment variables before you can compile and run OpenVINO™ applications. Run the following script to temporarily set your environment variables:
|
||||
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
|
||||
**Optional:** The OpenVINO environment variables are removed when you close the shell. As an option, you can permanently set the environment variables as follows:
|
||||
|
|
@ -176,7 +174,7 @@ vi <user_directory>/.bashrc
|
|||
|
||||
2. Add this line to the end of the file:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
|
||||
3. Save and close the file: press the **Esc** key and type `:wq`.
|
||||
|
|
@ -212,7 +210,7 @@ You can choose to either configure all supported frameworks at once **OR** confi
|
|||
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
2. Run the script to configure the Model Optimizer for Caffe,
|
||||
TensorFlow 1.x, MXNet, Kaldi\*, and ONNX:
|
||||
|
|
@ -226,7 +224,7 @@ Configure individual frameworks separately **ONLY** if you did not select **Opti
|
|||
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
2. Run the script for your model framework. You can run more than one script:
|
||||
|
||||
|
|
@ -273,7 +271,7 @@ To verify the installation and compile two samples, use the steps below to run t
|
|||
|
||||
1. Go to the **Inference Engine demo** directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/demo
|
||||
cd /opt/intel/openvino_2021/deployment_tools/demo
|
||||
```
|
||||
|
||||
2. Run the **Image Classification verification script**:
|
||||
|
|
@ -298,7 +296,7 @@ This script downloads three pre-trained model IRs, builds the [Security Barrier
|
|||
4. Close the image viewer window to complete the verification script.
|
||||
|
||||
|
||||
To learn about the verification scripts, see the `README.txt` file in `/opt/intel/openvino/deployment_tools/demo`.
|
||||
To learn about the verification scripts, see the `README.txt` file in `/opt/intel/openvino_2021/deployment_tools/demo`.
|
||||
|
||||
For a description of the Intel Distribution of OpenVINO™ pre-trained object detection and object recognition models, see [Overview of OpenVINO™ Toolkit Pre-Trained Models](@ref omz_models_intel_index).
|
||||
|
||||
|
|
@ -314,23 +312,30 @@ The steps in this section are required only if you want to enable the toolkit co
|
|||
|
||||
1. Go to the install_dependencies directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/install_dependencies/
|
||||
cd /opt/intel/openvino_2021/install_dependencies/
|
||||
```
|
||||
2. Enter the super user mode:
|
||||
```sh
|
||||
sudo -E su
|
||||
```
|
||||
3. Install the **Intel® Graphics Compute Runtime for OpenCL™** driver components required to use the GPU plugin and write custom layers for Intel® Integrated Graphics:
|
||||
3. Install the **Intel® Graphics Compute Runtime for OpenCL™** driver components required to use the GPU plugin and write custom layers for Intel® Integrated Graphics. Run the installation script:
|
||||
```sh
|
||||
./install_NEO_OCL_driver.sh
|
||||
```
|
||||
You may see the following command line output:
|
||||
|
||||
- Add OpenCL user to video group
|
||||
- Run script to install the 4.14 kernel script
|
||||
|
||||
Ignore those suggestions and continue.
|
||||
The drivers are not included in the package and the script downloads them. Make sure you have the
|
||||
internet connection for this step.
|
||||
|
||||
The script compares the driver version on the system to the current version.
|
||||
If the driver version on the system is higher or equal to the current version, the script does
|
||||
not install a new driver.
|
||||
If the version of the driver is lower than the current version, the script uninstalls the lower
|
||||
and installs the current version with your permission:
|
||||

|
||||
Higher hardware versions require a higher driver version, namely 20.35 instead of 19.41.
|
||||
If the script fails to uninstall the driver, uninstall it manually.
|
||||
During the script execution, you may see the following command line output:
|
||||
- Add OpenCL user to video group
|
||||
Ignore this suggestion and continue.
|
||||
4. **Optional** Install header files to allow compiling a new code. You can find the header files at [Khronos OpenCL™ API Headers](https://github.com/KhronosGroup/OpenCL-Headers.git).
|
||||
|
||||
## <a name="additional-NCS-steps"></a>Steps for Intel® Neural Compute Stick 2
|
||||
|
|
@ -345,7 +350,7 @@ Log out and log in for it to take effect.
|
|||
|
||||
2. To perform inference on Intel® Neural Compute Stick 2, install the USB rules as follows:
|
||||
```sh
|
||||
sudo cp /opt/intel/openvino/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/
|
||||
sudo cp /opt/intel/openvino_2021/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/
|
||||
```
|
||||
```sh
|
||||
sudo udevadm control --reload-rules
|
||||
|
|
@ -368,7 +373,7 @@ After configuration is done, you are ready to run the verification scripts with
|
|||
|
||||
1. Go to the **Inference Engine demo** directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/demo
|
||||
cd /opt/intel/openvino_2021/deployment_tools/demo
|
||||
```
|
||||
|
||||
2. Run the **Image Classification verification script**. If you have access to the Internet through the proxy server only, please make sure that it is configured in your OS environment.
|
||||
|
|
@ -398,7 +403,7 @@ To run the sample application:
|
|||
|
||||
1. Set up environment variables:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
2. Go to the samples build directory:
|
||||
```sh
|
||||
|
|
@ -409,24 +414,24 @@ cd ~/inference_engine_samples_build/intel64/Release
|
|||
|
||||
- **For CPU**:
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d CPU
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d CPU
|
||||
```
|
||||
|
||||
- **For GPU**:
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d GPU
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d GPU
|
||||
```
|
||||
|
||||
- **For MYRIAD**:
|
||||
> **NOTE**: Running inference on Intel® Neural Compute Stick 2 with the MYRIAD plugin requires performing [additional hardware configuration steps](#additional-NCS-steps).
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d MYRIAD
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d MYRIAD
|
||||
```
|
||||
|
||||
- **For HDDL**:
|
||||
> **NOTE**: Running inference on Intel® Vision Accelerator Design with Intel® Movidius™ VPUs with the HDDL plugin requires performing [additional hardware configuration steps](installing-openvino-linux-ivad-vpu.md)
|
||||
```sh
|
||||
./classification_sample_async -i /opt/intel/openvino/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d HDDL
|
||||
./classification_sample_async -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d HDDL
|
||||
```
|
||||
|
||||
For information on Sample Applications, see the [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md).
|
||||
|
|
|
|||
|
|
@ -1,22 +1,21 @@
|
|||
# Install Intel® Distribution of OpenVINO™ toolkit for macOS* {#openvino_docs_install_guides_installing_openvino_macos}
|
||||
|
||||
> **NOTES**:
|
||||
> - The Intel® Distribution of OpenVINO™ is supported on macOS\* 10.14.x versions.
|
||||
> - This installation has been validated on macOS 10.14.4.
|
||||
> - The Intel® Distribution of OpenVINO™ is supported on macOS\* 10.15.x versions.
|
||||
> - An internet connection is required to follow the steps in this guide. If you have access to the Internet through the proxy server only, please make sure that it is configured in your OS environment.
|
||||
|
||||
## Introduction
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit quickly deploys applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNN), the toolkit extends computer vision (CV) workloads across Intel® hardware, maximizing performance.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit for macOS* includes the Intel® Deep Learning Deployment Toolkit (Intel® DLDT) and OpenCV* to deploy applications for accelerated inference on Intel® CPUs.
|
||||
The Intel® Distribution of OpenVINO™ toolkit for macOS* includes the Inference Engine, OpenCV* libraries and Model Optimizer tool to deploy applications for accelerated inference on Intel® CPUs and Intel® Neural Compute Stick 2.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit for macOS*:
|
||||
|
||||
- Enables CNN-based deep learning inference on the edge
|
||||
- Enables CNN-based deep learning inference on the edge
|
||||
- Supports heterogeneous execution across Intel® CPU and Intel® Neural Compute Stick 2 with Intel® Movidius™ VPUs
|
||||
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
|
||||
- Includes optimized calls for computer vision standards including OpenCV\*
|
||||
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
|
||||
- Includes optimized calls for computer vision standards including OpenCV\*
|
||||
|
||||
**Included with the Installation**
|
||||
|
||||
|
|
@ -29,7 +28,7 @@ The following components are installed by default:
|
|||
| [OpenCV\*](https://docs.opencv.org/master/) | OpenCV\* community version compiled for Intel® hardware |
|
||||
| [Sample Applications](../IE_DG/Samples_Overview.md) | A set of simple console applications demonstrating how to use the Inference Engine in your applications. |
|
||||
| [Demos](@ref omz_demos_README) | A set of console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use-cases |
|
||||
| [Additional Tools](../IE_DG/Tools_Overview.md) | A set of tools to work with your models |
|
||||
| Additional Tools | A set of tools to work with your models including [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README), [Post-Training Optimization Tool Guide](@ref pot_README), [Model Downloader](@ref omz_tools_downloader_README) and other |
|
||||
| [Documentation for Pre-Trained Models ](@ref omz_models_intel_index) | Documentation for the pre-trained models available in the [Open Model Zoo repo](https://github.com/opencv/open_model_zoo) |
|
||||
|
||||
## Development and Target Platform
|
||||
|
|
@ -40,7 +39,7 @@ The development and target platforms have the same requirements, but you can sel
|
|||
|
||||
> **NOTE**: The current version of the Intel® Distribution of OpenVINO™ toolkit for macOS* supports inference on Intel CPUs and Intel® Neural Compute Sticks 2 only.
|
||||
|
||||
* 6th to 10th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* 6th to 11th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* Intel® Xeon® processor E family (formerly code named Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
|
||||
* 3rd generation Intel® Xeon® Scalable processor (formerly code named Cooper Lake)
|
||||
* Intel® Xeon® Scalable processor (formerly Skylake and Cascade Lake)
|
||||
|
|
@ -48,14 +47,14 @@ The development and target platforms have the same requirements, but you can sel
|
|||
|
||||
**Software Requirements**
|
||||
|
||||
- CMake 3.9 or higher
|
||||
- Python 3.5 - 3.7
|
||||
- CMake 3.10 or higher
|
||||
- Python 3.6 - 3.7
|
||||
- Apple Xcode\* Command Line Tools
|
||||
- (Optional) Apple Xcode\* IDE (not required for OpenVINO, but useful for development)
|
||||
|
||||
**Operating Systems**
|
||||
|
||||
- macOS\* 10.14.4
|
||||
- macOS\* 10.15
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -107,11 +106,11 @@ The disk image is mounted to `/Volumes/m_openvino_toolkit_p_<version>` and autom
|
|||
|
||||
- If you used **root** or **administrator** privileges to run the installer, it installs the OpenVINO toolkit to `/opt/intel/openvino_<version>/`
|
||||
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/opt/intel/openvino/`
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/opt/intel/openvino_2021/`
|
||||
|
||||
- If you used **regular user** privileges to run the installer, it installs the OpenVINO toolkit to `/home/<user>/intel/openvino_<version>/`
|
||||
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/home/<user>/intel/openvino/`
|
||||
For simplicity, a symbolic link to the latest installation is also created: `/home/<user>/intel/openvino_2021/`
|
||||
|
||||
9. If needed, click **Customize** to change the installation directory or the components you want to install:
|
||||

|
||||
|
|
@ -131,7 +130,7 @@ The disk image is mounted to `/Volumes/m_openvino_toolkit_p_<version>` and autom
|
|||
You need to update several environment variables before you can compile and run OpenVINO™ applications. Open the macOS Terminal\* or a command-line interface shell you prefer and run the following script to temporarily set your environment variables:
|
||||
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
|
||||
<strong>Optional</strong>: The OpenVINO environment variables are removed when you close the shell. You can permanently set the environment variables as follows:
|
||||
|
|
@ -144,7 +143,7 @@ You need to update several environment variables before you can compile and run
|
|||
|
||||
3. Add this line to the end of the file:
|
||||
```sh
|
||||
source /opt/intel/openvino/bin/setupvars.sh
|
||||
source /opt/intel/openvino_2021/bin/setupvars.sh
|
||||
```
|
||||
|
||||
3. Save and close the file: press the **Esc** key, type `:wq` and press the **Enter** key.
|
||||
|
|
@ -178,7 +177,7 @@ You can choose to either configure the Model Optimizer for all supported framewo
|
|||
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
|
||||
2. Run the script to configure the Model Optimizer for Caffe, TensorFlow 1.x, MXNet, Kaldi\*, and ONNX:
|
||||
|
|
@ -192,7 +191,7 @@ Configure individual frameworks separately **ONLY** if you did not select **Opti
|
|||
|
||||
1. Go to the Model Optimizer prerequisites directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites
|
||||
cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites
|
||||
```
|
||||
|
||||
2. Run the script for your model framework. You can run more than one script:
|
||||
|
|
@ -243,7 +242,7 @@ To verify the installation and compile two Inference Engine samples, run the ver
|
|||
|
||||
1. Go to the **Inference Engine demo** directory:
|
||||
```sh
|
||||
cd /opt/intel/openvino/deployment_tools/demo
|
||||
cd /opt/intel/openvino_2021/deployment_tools/demo
|
||||
```
|
||||
|
||||
2. Run the **Image Classification verification script**:
|
||||
|
|
@ -263,7 +262,7 @@ This script is complete. Continue to the next section to run the Inference Pipel
|
|||
|
||||
### Run the Inference Pipeline Verification Script
|
||||
|
||||
While still in `/opt/intel/openvino/deployment_tools/demo/`, run the Inference Pipeline verification script:
|
||||
While still in `/opt/intel/openvino_2021/deployment_tools/demo/`, run the Inference Pipeline verification script:
|
||||
```sh
|
||||
./demo_security_barrier_camera.sh
|
||||
```
|
||||
|
|
@ -299,7 +298,7 @@ Visit the Intel Distribution of OpenVINO Toolkit [Inference Tutorials for Face D
|
|||
|
||||
## Additional Resources
|
||||
|
||||
- To learn more about the verification applications, see `README.txt` in `/opt/intel/openvino/deployment_tools/demo/`.
|
||||
- To learn more about the verification applications, see `README.txt` in `/opt/intel/openvino_2021/deployment_tools/demo/`.
|
||||
|
||||
- For detailed description of the pre-trained models, go to the [Overview of OpenVINO toolkit Pre-Trained Models](@ref omz_models_intel_index) page.
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
# Install Intel® Distribution of OpenVINO™ Toolkit from PyPI Repository {#openvino_docs_install_guides_installing_openvino_pip}
|
||||
|
||||
This guide provides installation steps for the Intel® distribution of OpenVINO™ toolkit distributed through the PyPI repository.
|
||||
|
||||
## System Requirements
|
||||
|
||||
* [Python* distribution](https://www.python.org/) 3.6 or 3.7
|
||||
* Operating Systems:
|
||||
- Ubuntu* 18.04 long-term support (LTS), 64-bit
|
||||
- macOS* 10.15.x versions
|
||||
- Windows 10*, 64-bit Pro, Enterprise or Education (1607 Anniversary Update, Build 14393 or higher) editions
|
||||
- Windows Server* 2016 or higher
|
||||
|
||||
## Install the Runtime Package Using the PyPI Repository
|
||||
|
||||
1. Set up and update pip to the highest version:
|
||||
```sh
|
||||
python3 -m pip install --upgrade pip
|
||||
```
|
||||
2. Install the Intel® distribution of OpenVINO™ toolkit:
|
||||
```sh
|
||||
pip install openvino-python
|
||||
```
|
||||
|
||||
3. Add PATH to environment variables.
|
||||
- Ubuntu* 18.04 and macOS*:
|
||||
```sh
|
||||
export LD_LIBRARY_PATH=<library_dir>:${LD_LIBRARY_PATH}
|
||||
```
|
||||
- Windows* 10:
|
||||
```sh
|
||||
set PATH=<library_dir>;%PATH%
|
||||
```
|
||||
How to find `library_dir`:
|
||||
- Ubuntu\*, macOS\*:
|
||||
- Standard user:
|
||||
```sh
|
||||
echo $(python3 -m site --user-base)/lib
|
||||
```
|
||||
- Root or sudo user:
|
||||
```sh
|
||||
/usr/local/lib
|
||||
```
|
||||
- Virtual environments or custom Python installations (from sources or tarball):
|
||||
```sh
|
||||
echo $(which python3)/../../lib
|
||||
```
|
||||
- Windows\*:
|
||||
- Standard Python:
|
||||
```sh
|
||||
python -c "import os, sys; print((os.path.dirname(sys.executable))+'\Library\\bin')"
|
||||
```
|
||||
- Virtual environments or custom Python installations (from sources or tarball):
|
||||
```sh
|
||||
python -c "import os, sys; print((os.path.dirname(sys.executable))+'\..\Library\\bin')"
|
||||
```
|
||||
4. Verify that the package is installed:
|
||||
```sh
|
||||
python3 -c "import openvino"
|
||||
```
|
||||
|
||||
Now you are ready to develop and run your application.
|
||||
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Intel® Distribution of OpenVINO™ toolkit](https://software.intel.com/en-us/openvino-toolkit).
|
||||
- [OpenVINO™ toolkit online documentation](https://docs.openvinotoolkit.org).
|
||||
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
|
||||
- [Inference Engine Developer Guide](../IE_DG/Deep_Learning_Inference_Engine_DevGuide.md).
|
||||
- For more information on Sample Applications, see the [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md).
|
||||
- [Intel® Distribution of OpenVINO™ toolkit PIP home page](https://pypi.org/project/openvino-python/)
|
||||
|
||||
|
|
@ -144,7 +144,7 @@ mkdir build && cd build
|
|||
|
||||
2. Build the Object Detection Sample:
|
||||
```sh
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples/cpp
|
||||
```
|
||||
```sh
|
||||
make -j2 object_detection_sample_ssd
|
||||
|
|
|
|||
|
|
@ -1,12 +1,5 @@
|
|||
# Install Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support {#openvino_docs_install_guides_installing_openvino_windows_fpga}
|
||||
|
||||
**NOTES**:
|
||||
- These steps apply to Microsoft Windows 10*.
|
||||
- For the Intel Distribution of OpenVINO toolkit for Windows* without FPGA
|
||||
support, see [Installation Guide for Windows*](installing-openvino-windows.md).
|
||||
- An internet connection is required to follow the steps in this guide.
|
||||
- [Intel® System Studio](https://software.intel.com/en-us/system-studio) is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to [Get Started with Intel® System Studio](https://software.intel.com/en-us/articles/get-started-with-openvino-and-intel-system-studio-2019).
|
||||
|
||||
## Product Change Notice
|
||||
Intel® Distribution of OpenVINO™ toolkit for Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
|
||||
|
||||
|
|
@ -25,429 +18,4 @@ Intel will be transitioning to the next-generation programmable deep-learning so
|
|||
|
||||
Intel® Distribution of OpenVINO™ toolkit 2020.3.X LTS release will continue to support Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA and the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA. For questions about next-generation programmable deep-learning solutions based on FPGAs, please talk to your sales representative or contact us to get the latest FPGA updates.
|
||||
|
||||
## Introduction
|
||||
|
||||
> **IMPORTANT**:
|
||||
> - All steps in this guide are required, unless otherwise stated.<br>
|
||||
> - In addition to the download package, you must install dependencies and complete configuration steps.
|
||||
|
||||
Your installation is complete when these are all completed:
|
||||
|
||||
1. Install the <a href="#Install-Core-Components">Intel® Distribution of OpenVINO™ toolkit core components</a>
|
||||
|
||||
2. Install the dependencies:
|
||||
|
||||
- [Microsoft Visual Studio* with C++ **2019 or 2017** with MSBuild](http://visualstudio.microsoft.com/downloads/)
|
||||
- [CMake **2.8.12 or higher** 64-bit](https://cmake.org/download/)
|
||||
> **NOTE**: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
|
||||
- [Python **3.5**-**3.7** 64-bit](https://www.python.org/downloads/windows/)
|
||||
> **IMPORTANT**: As part of this installation, make sure you click the option to add the application to your `PATH` environment variable.
|
||||
|
||||
3. <a href="#set-the-environment-variables">Set Environment Variables</a>
|
||||
|
||||
4. <a href="#Configure_MO">Configure the Model Optimizer</a>
|
||||
|
||||
5. Run two <a href="#Using-Demo-Scripts">Verification Scripts to Verify Installation</a>
|
||||
|
||||
6. <a href="#install-hardware">Install your compatible hardware from the list of supported hardware</a><br>
|
||||
|
||||
7. <a href="#Hello-World-Face-Detection-Tutorial">Use the Face Detection Tutorial</a>
|
||||
|
||||
### About the Intel® Distribution of OpenVINO™ toolkit
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit speeds the deployment of applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNN), the toolkit extends computer vision (CV) workloads across Intel® hardware to maximize performance.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit includes the Intel® Deep Learning Deployment Toolkit (Intel® DLDT). For more information, see the online [Intel® Distribution of OpenVINO™ toolkit Overview](https://software.intel.com/en-us/OpenVINO-toolkit) page.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit for Windows\* with FPGA Support:
|
||||
|
||||
- Enables CNN-based deep learning inference on the edge
|
||||
- Supports heterogeneous execution across Intel® CPU, Intel® Integrated Graphics, Intel® FPGA, Intel® Neural Compute Stick 2
|
||||
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
|
||||
- Includes optimized calls for computer vision standards including OpenCV\* and OpenCL™
|
||||
|
||||
#### <a name="InstallPackageContents"></a>Included in the Installation Package
|
||||
|
||||
The following components are installed by default:
|
||||
|
||||
| Component | Description |
|
||||
|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [Model Optimizer](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md) | This tool imports, converts, and optimizes models that were trained in popular frameworks to a format usable by Intel tools, especially the Inference Engine. <br>Popular frameworks include Caffe\*, TensorFlow\*, MXNet\*, and ONNX\*. |
|
||||
| [Inference Engine](../IE_DG/inference_engine_intro.md) | This is the engine that runs the deep learning model. It includes a set of libraries for an easy inference integration into your applications. |
|
||||
| Pre-compiled FPGA bitstream samples | Pre-compiled bitstream samples for the Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA, and Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA SG2. |
|
||||
| Intel® FPGA SDK for OpenCL™ software technology | The Intel® FPGA RTE for OpenCL™ provides utilities, host runtime libraries, drivers, and RTE-specific libraries and files |
|
||||
| [OpenCV](https://docs.opencv.org/master/) | OpenCV\* community version compiled for Intel® hardware |
|
||||
| [Inference Engine Code Samples](../IE_DG/Samples_Overview.md) | A set of simple console applications demonstrating how to utilize specific OpenVINO capabilities in an application and how to perform specific tasks, such as loading a model, running inference, querying specific device capabilities, and more. |
|
||||
| [Demo Applications](@ref omz_demos_README) | A set of simple console applications that provide robust application templates to help you implement specific deep learning scenarios. |
|
||||
|
||||
|
||||
### System Requirements
|
||||
|
||||
The development and target platforms have the same requirements, but you can select different components during the installation, based on your intended use.
|
||||
|
||||
**Hardware**
|
||||
|
||||
* 6th to 10th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* Intel® Xeon® processor E family (formerly code named Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
|
||||
* 3rd generation Intel® Xeon® Scalable processor (formerly code named Cooper Lake)
|
||||
* Intel® Xeon® Scalable processor (formerly Skylake and Cascade Lake)
|
||||
* Intel Atom® processor with support for Intel® Streaming SIMD Extensions 4.1 (Intel® SSE4.1)
|
||||
* Intel Pentium® processor N4200/5, N3350/5, or N3450/5 with Intel® HD Graphics
|
||||
* Intel® Neural Compute Stick 2
|
||||
* Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
* Intel® Vision Accelerator Design with an Intel® Arria® 10 FPGA (Mustang-F100-A10) SG2
|
||||
|
||||
> **NOTE**: With OpenVINO™ 2020.4 release, Intel® Movidius™ Neural Compute Stick is no longer supported.
|
||||
|
||||
> **NOTE**: With OpenVINO™ 2020.4 release, Intel® Programmable Acceleration Card (PAC) with Intel® Arria® 10 GX FPGA is no longer supported on Windows.
|
||||
|
||||
**Processor Notes:**
|
||||
|
||||
- Processor graphics are not included in all processors. See [Product Specifications](https://ark.intel.com/) for information about your processor.
|
||||
- A chipset that supports processor graphics is required for Intel® Xeon® processors.
|
||||
|
||||
**Operating Systems:**
|
||||
|
||||
- Microsoft Windows 10*, 64-bit
|
||||
|
||||
**Software**
|
||||
- [Microsoft Visual Studio* with C++ **2019 or 2017** with MSBuild](http://visualstudio.microsoft.com/downloads/)
|
||||
- [CMake **2.8.12 or higher** 64-bit](https://cmake.org/download/)
|
||||
> **NOTE**: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
|
||||
- [Python **3.6.5** 64-bit](https://www.python.org/downloads/release/python-365/)
|
||||
|
||||
## Installation Steps
|
||||
|
||||
### <a name="Install-Core-Components"></a>Install the Intel® Distribution of OpenVINO™ toolkit Core Components
|
||||
|
||||
1. If you have not downloaded the Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support, [download the latest version](https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit/choose-download/windows-fpga.html). By default, the file is saved to the `Downloads` directory as `w_openvino_toolkit_fpga_p_<version>.exe`.
|
||||
Select the Intel® Distribution of OpenVINO™ toolkit for Windows with FPGA Support package from the dropdown menu.
|
||||
|
||||
2. Go to the `Downloads` folder and double-click `w_openvino_toolkit_fpga_p_<version>.exe`. A window opens to let you choose your installation directory and components. You can also select only the bitstreams for your card. This will allow you to minimize the size of the installation by several gigabytes. The default installation directory is `C:\Program Files (x86)\IntelSWTools\openvino_<version>`, for simplicity, a shortcut to the latest installation is also created: `C:\Program Files (x86)\IntelSWTools\openvino`. If you choose a different installation directory, the installer will create the directory for you. For the default options, the **Installation summary** GUI screen looks like this::
|
||||
|
||||

|
||||
|
||||
3. Click **Next**.
|
||||
|
||||
4. You are asked if you want to provide consent to gather information. Choose the option of your choice. Click **Next**.
|
||||
|
||||
5. If you are missing external dependencies, you will see a warning screen. Write down the dependencies you are missing. **You need to take no other action at this time**. After installing the Intel® Distribution of OpenVINO™ toolkit core components, install the missing dependencies.
|
||||
The screen example below indicates you are missing one dependency:
|
||||
|
||||

|
||||
|
||||
6. Click **Next**.
|
||||
|
||||
7. When the first part of installation is complete, the final screen informs you that the core components have been installed and additional steps still required:
|
||||
|
||||

|
||||
|
||||
8. Click **Finish** to close the installation wizard. A new browser window opens to the next section of the installation guide to set the environment variables. You are in the same document. The new window opens in case you ran the installation without first opening this installation guide.
|
||||
|
||||
9. If the installation indicated you must install dependencies, install them first. If there are no missing dependencies, you can go ahead and <a href="#set-the-environment-variables">set the environment variables</a>.
|
||||
|
||||
### Set the Environment Variables <a name="set-the-environment-variables"></a>
|
||||
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ to the non-default install directory, replace `C:\Program Files (x86)\IntelSWTools` with the directory in which you installed the software.
|
||||
|
||||
You must update several environment variables before you can compile and run OpenVINO™ applications. Open the Command Prompt, and run the `setupvars.bat` batch file to temporarily set your environment variables:
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\bin\
|
||||
```
|
||||
|
||||
```sh
|
||||
setupvars.bat
|
||||
```
|
||||
|
||||
<strong>(Optional)</strong>: OpenVINO toolkit environment variables are removed when you close the Command Prompt window. As an option, you can permanently set the environment variables manually.
|
||||
|
||||
The environment variables are set. Continue to the next section to configure the Model Optimizer.
|
||||
|
||||
## Configure the Model Optimizer <a name="Configure_MO"></a>
|
||||
|
||||
> **IMPORTANT**: These steps are required. You must configure the Model Optimizer for at least one framework. The Model Optimizer will fail if you do not complete the steps in this section.
|
||||
|
||||
> **NOTE**: If you see an error indicating Python is not installed when you know you installed it, your computer might not be able to find the program. For the instructions to add Python to your system environment variables, see <a href="#Update-Path">Update Your Windows Environment Variables</a>.
|
||||
|
||||
The Model Optimizer is a key component of the Intel® Distribution of OpenVINO™ toolkit. You cannot do inference on your trained model without running the model through the Model Optimizer. When you run a pre-trained model through the Model Optimizer, your output is an Intermediate Representation (IR) of the network. The IR is a pair of files that describe the whole model:
|
||||
|
||||
- `.xml`: Describes the network topology
|
||||
- `.bin`: Contains the weights and biases binary data
|
||||
|
||||
The Inference Engine reads, loads, and infers the IR files, using a common API across the CPU, GPU, or VPU hardware.
|
||||
|
||||
The Model Optimizer is a Python*-based command line tool (`mo.py`), which is located in `C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer`. Use this tool on models trained with popular deep learning frameworks such as Caffe\*, TensorFlow\*, MXNet\*, and ONNX\* to convert them to an optimized IR format that the Inference Engine can use.
|
||||
|
||||
This section explains how to use scripts to configure the Model Optimizer either for all of the supported frameworks at the same time or for individual frameworks. If you want to manually configure the Model Optimizer instead of using scripts, see the **Using Manual Configuration Process** section on the [Configuring the Model Optimizer](../MO_DG/prepare_model/Config_Model_Optimizer.md) page.
|
||||
|
||||
For more information about the Model Optimizer, see the [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
|
||||
|
||||
|
||||
### Model Optimizer Configuration Steps
|
||||
|
||||
You can configure the Model Optimizer either for all supported frameworks at once or for one framework at a time. Choose the option that best suits your needs. If you see error messages, make sure you installed all dependencies.
|
||||
|
||||
> **IMPORTANT**: The Internet access is required to execute the following steps successfully. If you have access to the Internet through the proxy server only, please make sure that it is configured in your environment.
|
||||
|
||||
> **NOTE**:
|
||||
> In the steps below:
|
||||
> - If you you want to use the Model Optimizer from another installed versions of Intel® Distribution of OpenVINO™ toolkit installed, replace `openvino` with `openvino_<version>`.
|
||||
> - If you installed the Intel® Distribution of OpenVINO™ toolkit to the non-default installation directory, replace `C:\Program Files (x86)\IntelSWTools` with the directory where you installed the software.
|
||||
|
||||
These steps use a command prompt to make sure you see error messages.
|
||||
|
||||
#### Option 1: Configure the Model Optimizer for all supported frameworks at the same time:
|
||||
|
||||
1. Open a command prompt. To do so, type `cmd` in your **Search Windows** box and then press **Enter**.
|
||||
Type commands in the opened window:
|
||||
|
||||

|
||||
|
||||
2. Go to the Model Optimizer prerequisites directory.<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
|
||||
```
|
||||
|
||||
3. Run the following batch file to configure the Model Optimizer for Caffe\*, TensorFlow\* 1.x, MXNet\*, Kaldi\*, and ONNX\*:<br>
|
||||
```sh
|
||||
install_prerequisites.bat
|
||||
```
|
||||
|
||||
#### Option 2: Configure the Model Optimizer for each framework separately:
|
||||
|
||||
1. Go to the Model Optimizer prerequisites directory:<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
|
||||
```
|
||||
|
||||
2. Run the batch file for the framework you will use with the Model Optimizer. You can use more than one:
|
||||
|
||||
* For **Caffe**:<br>
|
||||
```sh
|
||||
install_prerequisites_caffe.bat
|
||||
```
|
||||
|
||||
* For **TensorFlow 1.x**:<br>
|
||||
```sh
|
||||
install_prerequisites_tf.bat
|
||||
```
|
||||
|
||||
* For **TensorFlow 2.x**:<br>
|
||||
```sh
|
||||
install_prerequisites_tf2.bat
|
||||
```
|
||||
|
||||
* For **MXNet**:<br>
|
||||
```sh
|
||||
install_prerequisites_mxnet.bat
|
||||
```
|
||||
|
||||
* For **ONNX**:
|
||||
```sh
|
||||
install_prerequisites_onnx.bat
|
||||
```
|
||||
|
||||
* For **Kaldi**:
|
||||
```sh
|
||||
install_prerequisites_kaldi.bat
|
||||
```
|
||||
|
||||
The Model Optimizer is configured for one or more frameworks. Success is indicated by a screen similar to this:
|
||||
|
||||

|
||||
|
||||
You are ready to use two short demos to see the results of running the Intel Distribution of OpenVINO toolkit and to verify your installation was successful. The demo scripts are required since they perform additional configuration steps. Continue to the next section.
|
||||
|
||||
If you want to use a GPU or VPU, or update your Windows* environment variables, read through the <a href="#optional-steps">Optional Steps</a> section.
|
||||
|
||||
|
||||
## <a name="Using-Demo-Scripts"></a>Use Verification Scripts to Verify Your Installation
|
||||
|
||||
> **IMPORTANT**: This section is required. In addition to confirming your installation was successful, demo scripts perform other steps, such as setting up your computer to use the Inference Engine samples.
|
||||
|
||||
> **NOTE**:
|
||||
> The paths in this section assume you used the default installation directory. If you used a directory other than `C:\Program Files (x86)\IntelSWTools`, update the directory with the location where you installed the software.
|
||||
To verify the installation and compile two samples, run the verification applications provided with the product on the CPU:
|
||||
|
||||
1. Open a command prompt window.
|
||||
|
||||
2. Go to the Inference Engine demo directory:<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\
|
||||
```
|
||||
|
||||
3. Run the verification scripts by following the instructions in the next section.
|
||||
|
||||
|
||||
### <a name="run-the-image-classification-verification-script"></a>Run the Image Classification Verification Script
|
||||
|
||||
To run the script, start the `demo_squeezenet_download_convert_run.bat` file:
|
||||
```sh
|
||||
demo_squeezenet_download_convert_run.bat
|
||||
```
|
||||
|
||||
This script downloads a SqueezeNet model, uses the Model Optimizer to convert the model to the `.‍bin` and `.‍xml` Intermediate Representation (IR) files. The Inference Engine requires this model conversion so it can use the IR as input and achieve optimum performance on Intel hardware.<br>
|
||||
This verification script builds the [Image Classification Sample Async](../../inference-engine/samples/classification_sample_async/README.md) application and run it with the `car.png` image in the demo directory. For a brief description of the Intermediate Representation, see <a href="#Configure_MO">Configuring the Model Optimizer</a>.
|
||||
|
||||
When the verification script completes, you will have the label and confidence for the top-10 categories:
|
||||

|
||||
|
||||
This demo is complete. Leave the console open and continue to the next section to run the Inference Pipeline demo.
|
||||
|
||||
|
||||
### Run the Inference Pipeline Verification Script
|
||||
|
||||
To run the script, start the `demo_security_barrier_camera.bat` file while still in the console:
|
||||
```sh
|
||||
demo_security_barrier_camera.bat
|
||||
```
|
||||
|
||||
This script downloads three pre-trained model IRs, builds the [Security Barrier Camera Demo](@ref omz_demos_security_barrier_camera_demo_README) application, and runs it with the downloaded models and the `car_1.bmp` image from the `demo` directory to show an inference pipeline. The verification script uses vehicle recognition in which vehicle attributes build on each other to narrow in on a specific attribute.
|
||||
|
||||
First, an object is identified as a vehicle. This identification is used as input to the next model, which identifies specific vehicle attributes, including the license plate. Finally, the attributes identified as the license plate are used as input to the third model, which recognizes specific characters in the license plate.
|
||||
|
||||
When the demo completes, you have two windows open:
|
||||
|
||||
* A console window that displays information about the tasks performed by the demo
|
||||
* An image viewer window that displays a resulting frame with detections rendered as bounding boxes, similar to the following:
|
||||
|
||||

|
||||
|
||||
Close the image viewer window to end the demo.
|
||||
|
||||
To learn more about the verification scripts, see `README.txt` in `C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo`.
|
||||
|
||||
For detailed description of the OpenVINO™ pre-trained object detection and object recognition models, see the [Overview of OpenVINO™ toolkit Pre-Trained Models](@ref omz_models_intel_index) page.
|
||||
|
||||
In this section, you saw a preview of the Intel® Distribution of OpenVINO™ toolkit capabilities.
|
||||
|
||||
Congratulations. You have completed all the required installation, configuration, and build steps to work with your trained models using CPU.
|
||||
|
||||
If you want to use Intel® Processor graphics (GPU), Intel® Neural Compute Stick 2 or Intel® Vision Accelerator Design with Intel® Movidius™ (VPU), or add CMake* and Python* to your Windows* environment variables, read through the next section for additional steps.
|
||||
|
||||
If you want to continue and run the Image Classification Sample Application on one of the supported hardware device, see the [Run the Image Classification Sample Application](#run-the-image-classification-sample-application) section.
|
||||
|
||||
## <a name="install-hardware"></a>Install and Configure Your Compatible FPGA Hardware
|
||||
|
||||
Install your compatible hardware from the list of supported components below.
|
||||
|
||||
> **NOTE**: Once you've completed your hardware installation, you'll return to this guide to finish installation and configuration of the Intel® Distribution of OpenVINO™ toolkit.
|
||||
|
||||
Links to install and configure compatible hardware
|
||||
- [The Intel® Vision Accelerator Design with an Intel® Arria 10 FPGA SG2 (Mustang-F100-A10)](VisionAcceleratorFPGA_Configure_Windows.md)
|
||||
|
||||
Congratulations, you have finished the Intel® Distribution of OpenVINO™ toolkit installation for FPGA. To learn more about how the Intel® Distribution of OpenVINO™ toolkit works, the Hello World tutorial and other resources are provided below.
|
||||
|
||||
## <a name="optional-steps"></a>Optional Steps
|
||||
|
||||
Use the optional steps below if you want to:
|
||||
* Infer models on <a href="#Install-GPU">Intel® Processor Graphics</a>
|
||||
* Infer models on <a href="#usb-myriad">Intel® Vision Accelerator Design with Intel® Movidius™ VPUs</a>
|
||||
* <a href="#Update-Path">Add CMake* or Python* to your Windows* environment variables</a>.
|
||||
|
||||
### <a name="Install-GPU"></a>Optional: Additional Installation Steps for Intel® Processor Graphics (GPU)
|
||||
|
||||
> **NOTE**: These steps are required only if you want to use a GPU.
|
||||
|
||||
If your applications offload computation to Intel® Integrated Graphics, you must have the Intel Graphics Driver for Windows version 15.65 or higher. To see if you have this driver installed:
|
||||
|
||||
1. Type **device manager** in your **Search Windows** box. The **Device Manager** opens.
|
||||
|
||||
2. Click the drop-down arrow to view the **Display adapters**. You see the adapter that is installed in your computer:
|
||||
|
||||

|
||||
|
||||
3. Right-click the adapter name and select **Properties**.
|
||||
|
||||
4. Click the **Driver** tab to see the driver version. Make sure the version number is 15.65 or higher.
|
||||
|
||||

|
||||
|
||||
5. If your device driver version is lower than 15.65, [download and install a higher version](http://downloadcenter.intel.com/product/80939/Graphics-Drivers).
|
||||
|
||||
You are done updating your device driver and are ready to use your GPU.
|
||||
|
||||
|
||||
### <a name="hddl-myriad"></a> Optional: Additional Installation Steps for the Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
|
||||
|
||||
> **NOTE**: These steps are required only if you want to use Intel® Vision Accelerator Design with Intel® Movidius™ VPUs.
|
||||
|
||||
To perform inference on Intel® Vision Accelerator Design with Intel® Movidius™ VPUs, the following additional installation steps are required:
|
||||
|
||||
1. If your Intel® Vision Accelerator Design with Intel® Movidius™ VPUs card requires SMBUS connection to PCIe slot (Raw video data card with HW version Fab-B and before), install the SMBUS driver:
|
||||
1. Go to the `<INSTALL_DIR>\deployment_tools\inference-engine\external\hddl\SMBusDriver` directory, where `<INSTALL_DIR>` is the directory in which the Intel Distribution of OpenVINO toolkit is installed.
|
||||
2. Right click on the `hddlsmbus.inf` file and choose **Install** from the pop up menu.
|
||||
|
||||
2. Download and install <a href="https://www.microsoft.com/en-us/download/details.aspx?id=48145">Visual C++ Redistributable for Visual Studio 2017</a>
|
||||
|
||||
You are done installing your device driver and are ready to use your Intel® Vision Accelerator Design with Intel® Movidius™ VPUs.
|
||||
|
||||
See also:
|
||||
|
||||
* For advanced configuration steps for your IEI Mustang-V100-MX8 accelerator, see [Intel® Movidius™ VPUs Setup Guide for Use with Intel® Distribution of OpenVINO™ toolkit](movidius-setup-guide.md).
|
||||
|
||||
* After you've configurated your Intel® Vision Accelerator Design with Intel® Movidius™ VPUs, see [Intel® Movidius™ VPUs Programming Guide for Use with Intel® Distribution of OpenVINO™ toolkit](movidius-programming-guide.md) to learn how to distribute a model across all 8 VPUs to maximize performance.
|
||||
|
||||
After configuration is done, you are ready to run the verification scripts with the HDDL Plugin for your Intel® Vision Accelerator Design with Intel® Movidius™ VPUs.
|
||||
|
||||
1. Open a command prompt window.
|
||||
|
||||
2. Go to the Inference Engine demo directory:
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\
|
||||
```
|
||||
3. Run the Image Classification verification script. If you have access to the Internet through the proxy server only, please make sure that it is configured in your environment.
|
||||
```sh
|
||||
demo_squeezenet_download_convert_run.bat -d HDDL
|
||||
```
|
||||
4. Run the Inference Pipeline verification script:
|
||||
```sh
|
||||
demo_security_barrier_camera.bat -d HDDL
|
||||
```
|
||||
|
||||
### <a name="Update-Path"></a>Optional: Update Your Windows Environment Variables
|
||||
|
||||
> **NOTE**: These steps are only required under special circumstances, such as if you forgot to check the box during the CMake\* or Python\* installation to add the application to your Windows `PATH` environment variable.
|
||||
|
||||
Use these steps to update your Windows `PATH` if a command you execute returns an error message stating that an application cannot be found. This might happen if you do not add CMake or Python to your `PATH` environment variable during the installation.
|
||||
|
||||
1. In your **Search Windows** box, type **Edit the system environment variables** and press **Enter**. A window similar to the following displays:
|
||||

|
||||
|
||||
2. At the bottom of the screen, click **Environment Variables**.
|
||||
|
||||
3. Under **System variables**, click **Path** and then **Edit**:
|
||||

|
||||
|
||||
4. In the opened window, click **Browse**. A browse window opens:
|
||||

|
||||
|
||||
5. If you need to add CMake to the `PATH`, browse to the directory in which you installed CMake. The default directory is `C:\Program Files\CMake`.
|
||||
|
||||
6. If you need to add Python to the `PATH`, browse to the directory in which you installed Python. The default directory is `C:\Users\<USER_ID>\AppData\Local\Programs\Python\Python36\Python`.
|
||||
|
||||
7. Click **OK** repeatedly to close each screen.
|
||||
|
||||
Your `PATH` environment variable is updated.
|
||||
|
||||
## <a name="Hello-World-Face-Detection-Tutorial"></a>Hello World Face Detection Tutorial
|
||||
|
||||
Refer to the [OpenVINO™ with FPGA Hello World Face Detection Exercise](https://github.com/intel-iot-devkit/openvino-with-fpga-hello-world-face-detection).
|
||||
|
||||
**Additional Resources**
|
||||
|
||||
- Intel® Distribution of OpenVINO™ toolkit home page: [https://software.intel.com/en-us/openvino-toolkit](https://software.intel.com/en-us/openvino-toolkit).
|
||||
- OpenVINO™ toolkit online documentation: [https://docs.openvinotoolkit.org](https://docs.openvinotoolkit.org).
|
||||
- [Inference Engine FPGA plugin documentation](../IE_DG/supported_plugins/FPGA.md).
|
||||
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md).
|
||||
- For more information on Sample Applications, see the [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md).
|
||||
- To learn about pre-trained models for OpenVINO™ toolkit, see the [Pre-Trained Models Overview](@ref omz_models_intel_index).
|
||||
- For information on Inference Engine Tutorials, see the [Inference Tutorials](https://github.com/intel-iot-devkit/inference-tutorials-generic).
|
||||
- For IoT Libraries & Code Samples see the [Intel® IoT Developer Kit](https://github.com/intel-iot-devkit).
|
||||
|
||||
To learn more about converting models, go to:
|
||||
|
||||
- [Convert Your Caffe* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_Caffe.md)
|
||||
- [Convert Your TensorFlow* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_TensorFlow.md)
|
||||
- [Convert Your MXNet* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_MxNet.md)
|
||||
- [Convert Your ONNX* Model](../MO_DG/prepare_model/convert_model/Convert_Model_From_ONNX.md)
|
||||
For installation instructions for the last release of Intel® Distribution of OpenVINO™ toolkit for Windows* with FPGA Support, see documentation for the [2020.4 version](https://docs.openvinotoolkit.org/2020.4/openvino_docs_install_guides_installing_openvino_windows_fpga.html).
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
> **NOTES**:
|
||||
> - This guide applies to Microsoft Windows\* 10 64-bit. For Linux* OS information and instructions, see the [Installation Guide for Linux](installing-openvino-linux.md).
|
||||
> - For the Intel® Distribution of OpenVINO™ toolkit for Windows* 10 with FPGA
|
||||
support, see [Installation Guide for Windows* with FPGA support](installing-openvino-windows-fpga.md).
|
||||
> - [Intel® System Studio](https://software.intel.com/en-us/system-studio) is an all-in-one, cross-platform tool suite, purpose-built to simplify system bring-up and improve system and IoT device application performance on Intel® platforms. If you are using the Intel® Distribution of OpenVINO™ with Intel® System Studio, go to [Get Started with Intel® System Studio](https://software.intel.com/en-us/articles/get-started-with-openvino-and-intel-system-studio-2019).
|
||||
|
||||
## Introduction
|
||||
|
|
@ -19,9 +17,9 @@ Your installation is complete when these are all completed:
|
|||
2. Install the dependencies:
|
||||
|
||||
- [Microsoft Visual Studio* with C++ **2019 or 2017** with MSBuild](http://visualstudio.microsoft.com/downloads/)
|
||||
- [CMake **2.8.12 or higher** 64-bit](https://cmake.org/download/)
|
||||
- [CMake **3.10 or higher** 64-bit](https://cmake.org/download/)
|
||||
> **NOTE**: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
|
||||
- [Python **3.5** - **3.7** 64-bit](https://www.python.org/downloads/windows/)
|
||||
- [Python **3.6** - **3.8** 64-bit](https://www.python.org/downloads/windows/)
|
||||
> **IMPORTANT**: As part of this installation, make sure you click the option to add the application to your `PATH` environment variable.
|
||||
|
||||
3. <a href="#set-the-environment-variables">Set Environment Variables</a>
|
||||
|
|
@ -40,9 +38,9 @@ Your installation is complete when these are all completed:
|
|||
|
||||
### About the Intel® Distribution of OpenVINO™ toolkit
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit speeds the deployment of applications and solutions that emulate human vision. Based on Convolutional Neural Networks (CNN), the toolkit extends computer vision (CV) workloads across Intel® hardware to maximize performance.
|
||||
OpenVINO™ toolkit is a comprehensive toolkit for quickly developing applications and solutions that solve a variety of tasks including emulation of human vision, automatic speech recognition, natural language processing, recommendation systems, and many others. Based on latest generations of artificial neural networks, including Convolutional Neural Networks (CNNs), recurrent and attention-based networks, the toolkit extends computer vision and non-vision workloads across Intel® hardware, maximizing performance. It accelerates applications with high-performance, AI and deep learning inference deployed from edge to cloud.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit includes the Intel® Deep Learning Deployment Toolkit (Intel® DLDT). For more information, see the online [Intel® Distribution of OpenVINO™ toolkit Overview](https://software.intel.com/en-us/OpenVINO-toolkit) page.
|
||||
For more information, see the online [Intel® Distribution of OpenVINO™ toolkit Overview](https://software.intel.com/en-us/OpenVINO-toolkit) page.
|
||||
|
||||
The Intel® Distribution of OpenVINO™ toolkit for Windows\* 10 OS:
|
||||
|
||||
|
|
@ -62,14 +60,14 @@ The following components are installed by default:
|
|||
|[OpenCV\*](https://docs.opencv.org/master/) |OpenCV* community version compiled for Intel® hardware |
|
||||
|[Inference Engine Samples](../IE_DG/Samples_Overview.md) |A set of simple console applications demonstrating how to use Intel's Deep Learning Inference Engine in your applications. |
|
||||
| [Demos](@ref omz_demos_README) | A set of console applications that demonstrate how you can use the Inference Engine in your applications to solve specific use-cases |
|
||||
| [Additional Tools](../IE_DG/Tools_Overview.md) | A set of tools to work with your models |
|
||||
| Additional Tools | A set of tools to work with your models including [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README), [Post-Training Optimization Tool Guide](@ref pot_README), [Model Downloader](@ref omz_tools_downloader_README) and other |
|
||||
| [Documentation for Pre-Trained Models ](@ref omz_models_intel_index) | Documentation for the pre-trained models available in the [Open Model Zoo repo](https://github.com/opencv/open_model_zoo) |
|
||||
|
||||
### System Requirements
|
||||
|
||||
**Hardware**
|
||||
|
||||
* 6th to 10th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* 6th to 11th generation Intel® Core™ processors and Intel® Xeon® processors
|
||||
* Intel® Xeon® processor E family (formerly code named Sandy Bridge, Ivy Bridge, Haswell, and Broadwell)
|
||||
* 3rd generation Intel® Xeon® Scalable processor (formerly code named Cooper Lake)
|
||||
* Intel® Xeon® Scalable processor (formerly Skylake and Cascade Lake)
|
||||
|
|
@ -91,9 +89,9 @@ The following components are installed by default:
|
|||
|
||||
**Software**
|
||||
- [Microsoft Visual Studio* with C++ **2019 or 2017** with MSBuild](http://visualstudio.microsoft.com/downloads/)
|
||||
- [CMake **2.8.12 or higher** 64-bit](https://cmake.org/download/)
|
||||
- [CMake **3.10 or higher** 64-bit](https://cmake.org/download/)
|
||||
> **NOTE**: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
|
||||
- [Python **3.5** - **3.7** 64-bit](https://www.python.org/downloads/windows/)
|
||||
- [Python **3.6** - **3.8** 64-bit](https://www.python.org/downloads/windows/)
|
||||
|
||||
## Installation Steps
|
||||
|
||||
|
|
@ -101,7 +99,7 @@ The following components are installed by default:
|
|||
|
||||
1. If you have not downloaded the Intel® Distribution of OpenVINO™ toolkit, [download the latest version](http://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows). By default, the file is saved to the `Downloads` directory as `w_openvino_toolkit_p_<version>.exe`.
|
||||
|
||||
2. Go to the `Downloads` folder and double-click `w_openvino_toolkit_p_<version>.exe`. A window opens to let you choose your installation directory and components. The default installation directory is `C:\Program Files (x86)\IntelSWTools\openvino_<version>`, for simplicity, a shortcut to the latest installation is also created: `C:\Program Files (x86)\IntelSWTools\openvino`. If you choose a different installation directory, the installer will create the directory for you:
|
||||
2. Go to the `Downloads` folder and double-click `w_openvino_toolkit_p_<version>.exe`. A window opens to let you choose your installation directory and components. The default installation directory is `C:\Program Files (x86)\Intel\openvino_<version>`, for simplicity, a shortcut to the latest installation is also created: `C:\Program Files (x86)\Intel\openvino_2021`. If you choose a different installation directory, the installer will create the directory for you:
|
||||
|
||||

|
||||
|
||||
|
|
@ -126,11 +124,11 @@ The screen example below indicates you are missing two dependencies:
|
|||
|
||||
### Set the Environment Variables <a name="set-the-environment-variables"></a>
|
||||
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ to the non-default install directory, replace `C:\Program Files (x86)\IntelSWTools` with the directory in which you installed the software.
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ to the non-default install directory, replace `C:\Program Files (x86)\Intel` with the directory in which you installed the software.
|
||||
|
||||
You must update several environment variables before you can compile and run OpenVINO™ applications. Open the Command Prompt, and run the `setupvars.bat` batch file to temporarily set your environment variables:
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\bin\
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\bin\
|
||||
```
|
||||
|
||||
```sh
|
||||
|
|
@ -154,7 +152,7 @@ The Model Optimizer is a key component of the Intel® Distribution of OpenVINO
|
|||
|
||||
The Inference Engine reads, loads, and infers the IR files, using a common API across the CPU, GPU, or VPU hardware.
|
||||
|
||||
The Model Optimizer is a Python*-based command line tool (`mo.py`), which is located in `C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer`. Use this tool on models trained with popular deep learning frameworks such as Caffe\*, TensorFlow\*, MXNet\*, and ONNX\* to convert them to an optimized IR format that the Inference Engine can use.
|
||||
The Model Optimizer is a Python*-based command line tool (`mo.py`), which is located in `C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\model_optimizer`. Use this tool on models trained with popular deep learning frameworks such as Caffe\*, TensorFlow\*, MXNet\*, and ONNX\* to convert them to an optimized IR format that the Inference Engine can use.
|
||||
|
||||
This section explains how to use scripts to configure the Model Optimizer either for all of the supported frameworks at the same time or for individual frameworks. If you want to manually configure the Model Optimizer instead of using scripts, see the **Using Manual Configuration Process** section on the [Configuring the Model Optimizer](../MO_DG/prepare_model/Config_Model_Optimizer.md) page.
|
||||
|
||||
|
|
@ -169,8 +167,8 @@ You can configure the Model Optimizer either for all supported frameworks at onc
|
|||
|
||||
> **NOTE**:
|
||||
> In the steps below:
|
||||
> - If you you want to use the Model Optimizer from another installed versions of Intel® Distribution of OpenVINO™ toolkit installed, replace `openvino` with `openvino_<version>`.
|
||||
> - If you installed the Intel® Distribution of OpenVINO™ toolkit to the non-default installation directory, replace `C:\Program Files (x86)\IntelSWTools` with the directory where you installed the software.
|
||||
> - If you you want to use the Model Optimizer from another installed versions of Intel® Distribution of OpenVINO™ toolkit installed, replace `openvino_2021` with `openvino_<version>`, where `<version>` is the required version.
|
||||
> - If you installed the Intel® Distribution of OpenVINO™ toolkit to the non-default installation directory, replace `C:\Program Files (x86)\Intel` with the directory where you installed the software.
|
||||
|
||||
These steps use a command prompt to make sure you see error messages.
|
||||
|
||||
|
|
@ -183,7 +181,7 @@ Type commands in the opened window:
|
|||
|
||||
2. Go to the Model Optimizer prerequisites directory.<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\model_optimizer\install_prerequisites
|
||||
```
|
||||
|
||||
3. Run the following batch file to configure the Model Optimizer for Caffe\*, TensorFlow\* 1.x, MXNet\*, Kaldi\*, and ONNX\*:<br>
|
||||
|
|
@ -195,7 +193,7 @@ install_prerequisites.bat
|
|||
|
||||
1. Go to the Model Optimizer prerequisites directory:<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\model_optimizer\install_prerequisites
|
||||
```
|
||||
|
||||
2. Run the batch file for the framework you will use with the Model Optimizer. You can use more than one:
|
||||
|
|
@ -244,14 +242,14 @@ If you want to use a GPU or VPU, or update your Windows* environment variables,
|
|||
> **IMPORTANT**: This section is required. In addition to confirming your installation was successful, demo scripts perform other steps, such as setting up your computer to use the Inference Engine samples.
|
||||
|
||||
> **NOTE**:
|
||||
> The paths in this section assume you used the default installation directory. If you used a directory other than `C:\Program Files (x86)\IntelSWTools`, update the directory with the location where you installed the software.
|
||||
> The paths in this section assume you used the default installation directory. If you used a directory other than `C:\Program Files (x86)\Intel`, update the directory with the location where you installed the software.
|
||||
To verify the installation and compile two samples, run the verification applications provided with the product on the CPU:
|
||||
|
||||
1. Open a command prompt window.
|
||||
|
||||
2. Go to the Inference Engine demo directory:<br>
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\
|
||||
```
|
||||
|
||||
3. Run the verification scripts by following the instructions in the next section.
|
||||
|
|
@ -293,7 +291,7 @@ When the demo completes, you have two windows open:
|
|||
|
||||
Close the image viewer window to end the demo.
|
||||
|
||||
To learn more about the verification scripts, see `README.txt` in `C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo`.
|
||||
To learn more about the verification scripts, see `README.txt` in `C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo`.
|
||||
|
||||
For detailed description of the OpenVINO™ pre-trained object detection and object recognition models, see the [Overview of OpenVINO™ toolkit Pre-Trained Models](@ref omz_models_intel_index) page.
|
||||
|
||||
|
|
@ -360,7 +358,7 @@ After configuration is done, you are ready to run the verification scripts with
|
|||
|
||||
2. Go to the Inference Engine demo directory:
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\
|
||||
```
|
||||
3. Run the Image Classification verification script. If you have access to the Internet through the proxy server only, please make sure that it is configured in your environment.
|
||||
```sh
|
||||
|
|
@ -407,13 +405,13 @@ Image Classification sample application binary file was automatically built and
|
|||
The Image Classification sample application binary file located in the `C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build\intel64\Release\` directory.
|
||||
The Caffe* Squeezenet model IR files (`.bin` and `.xml`) are located in the in the `C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\` directory.
|
||||
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ toolkit to the non-default installation directory, replace `C:\Program Files (x86)\IntelSWTools` with the directory where you installed the software.
|
||||
> **NOTE**: If you installed the Intel® Distribution of OpenVINO™ toolkit to the non-default installation directory, replace `C:\Program Files (x86)\Intel` with the directory where you installed the software.
|
||||
|
||||
To run the sample application:
|
||||
|
||||
1. Set up environment variables:
|
||||
```sh
|
||||
cd C:\Program Files (x86)\IntelSWTools\openvino\bin\setupvars.bat
|
||||
cd C:\Program Files (x86)\Intel\openvino_2021\bin\setupvars.bat
|
||||
```
|
||||
2. Go to the samples build directory:
|
||||
```sh
|
||||
|
|
@ -424,22 +422,22 @@ cd C:\Users\<username>\Documents\Intel\OpenVINO\inference_engine_samples_build\i
|
|||
|
||||
- For CPU:
|
||||
```sh
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d CPU
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d CPU
|
||||
```
|
||||
|
||||
- For GPU:
|
||||
```sh
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d GPU
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d GPU
|
||||
```
|
||||
|
||||
- For VPU (Intel® Neural Compute Stick 2):
|
||||
```sh
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d MYRIAD
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d MYRIAD
|
||||
```
|
||||
|
||||
- For VPU (Intel® Vision Accelerator Design with Intel® Movidius™ VPUs):
|
||||
```sh
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d HDDL
|
||||
classification_sample_async.exe -i "C:\Program Files (x86)\Intel\openvino_2021\deployment_tools\demo\car.png" -m "C:\Users\<username>\Documents\Intel\OpenVINO\openvino_models\ir\public\squeezenet1.1\FP16\squeezenet1.1.xml" -d HDDL
|
||||
```
|
||||
|
||||
For information on Sample Applications, see the [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md).
|
||||
|
|
@ -465,7 +463,7 @@ To learn more about converting deep learning models, go to:
|
|||
- [Intel Distribution of OpenVINO Toolkit home page](https://software.intel.com/en-us/openvino-toolkit)
|
||||
- [Intel Distribution of OpenVINO Toolkit documentation](https://software.intel.com/en-us/openvino-toolkit/documentation/featured)
|
||||
- [OpenVINO™ Release Notes](https://software.intel.com/en-us/articles/OpenVINO-RelNotes)
|
||||
- [Introduction to Intel® Deep Learning Deployment Toolkit](../IE_DG/Introduction.md)
|
||||
- [Introduction to Inference Engine](inference_engine_intro.md)
|
||||
- [Inference Engine Developer Guide](../IE_DG/Deep_Learning_Inference_Engine_DevGuide.md)
|
||||
- [Model Optimizer Developer Guide](../MO_DG/Deep_Learning_Model_Optimizer_DevGuide.md)
|
||||
- [Inference Engine Samples Overview](../IE_DG/Samples_Overview.md)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# Create a Yocto* Image with OpenVINO™ toolkit {#openvino_docs_install_guides_installing_openvino_yocto}
|
||||
This document provides instructions for creating a Yocto* image with OpenVINO™ toolkit.
|
||||
|
||||
Instructions were validated and tested for [Yocto OpenVINO 2020.3 release](http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel).
|
||||
Instructions were validated and tested for [Yocto OpenVINO 2020.4 release](http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel).
|
||||
|
||||
## System Requirements
|
||||
Use the [Yocto Project* official documentation](https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#brief-compatible-distro) to set up and configure your host machine to be compatible with BitBake*.
|
||||
|
|
@ -60,9 +60,6 @@ CORE_IMAGE_EXTRA_INSTALL_append = " openvino-inference-engine-samples"
|
|||
# Include inference engine python API package in the target image.
|
||||
CORE_IMAGE_EXTRA_INSTALL_append = " openvino-inference-engine-python3"
|
||||
|
||||
# This adds inference engine unit tests in the target image.
|
||||
CORE_IMAGE_EXTRA_INSTALL_append = " openvino-inference-engine-ptest"
|
||||
|
||||
# Enable MYRIAD plugin
|
||||
CORE_IMAGE_EXTRA_INSTALL_append = " openvino-inference-engine-vpu-firmware"
|
||||
|
||||
|
|
@ -90,7 +87,6 @@ Verify that it returns the list of packages below:
|
|||
openvino-inference-engine
|
||||
openvino-inference-engine-dbg
|
||||
openvino-inference-engine-dev
|
||||
openvino-inference-engine-ptest
|
||||
openvino-inference-engine-python3
|
||||
openvino-inference-engine-samples
|
||||
openvino-inference-engine-src
|
||||
|
|
|
|||
|
|
@ -22,6 +22,10 @@ Below you can find examples on to how build `ngraph::Function` from the `opset3`
|
|||
|
||||
@snippet example_ngraph_utils.cpp ngraph_utils:advanced_function
|
||||
|
||||
To wrap it into a CNNNetwork, use:
|
||||
```cpp
|
||||
CNNNetwork net (ng_function);
|
||||
```
|
||||
## See Also
|
||||
|
||||
* [Available Operation Sets](../ops/opset.md)
|
||||
|
|
|
|||
|
|
@ -368,6 +368,9 @@ Another example shows how multiple matcher passes can be united into single Grap
|
|||
|
||||
@snippet src/template_pattern_transformation.cpp matcher_pass:manager2
|
||||
|
||||
> **Note:** nGraph used to have the `pass::PassConfig` class for transformation pipeline manipulation.
|
||||
This mechanism is now obsolete and the `pass::PassConfig` class will be removed in future release.
|
||||
|
||||
## How to debug transformations <a name="how_to_debug_transformations"></a>
|
||||
|
||||
The most popular tool for transformations debugging is the `ngraph::pass::VisualizeTree` transformation, which visualizes ngraph::Function.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Using nGraph's Python API
|
||||
# Using nGraph's Python API {#openvino_docs_nGraph_DG_PythonAPI}
|
||||
|
||||
nGraph is the OpenVINO™ graph manipulation library, used to represent neural network models in the form of a computational graph. With nGraph Python APIs, you can create, inspect, and modify computational graphs.
|
||||
|
||||
|
|
|
|||
|
|
@ -492,4 +492,4 @@ class InterpolateCalculation:
|
|||
</port>
|
||||
</output>
|
||||
</layer>
|
||||
```
|
||||
```
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
## Samples
|
||||
|
||||
- [Inference Engine Samples](../IE_DG/Samples_Overview.md)
|
||||
- [DL Streamer Samples](../IE_DG/Tools_Overview.md)
|
||||
- [DL Streamer Samples](@ref gst_samples_README)
|
||||
|
||||
## Demos
|
||||
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
## Additional Tools
|
||||
|
||||
- [Tools for models calibration and accuracy measurement](../IE_DG/Tools_Overview.md)
|
||||
- A set of tools to work with your models including [Accuracy Checker utility](@ref omz_tools_accuracy_checker_README), [Post-Training Optimization Tool Guide](@ref pot_README), [Model Downloader](@ref omz_tools_downloader_README) and other
|
||||
|
||||
## Pre-Trained Models
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""ngraph module namespace, exposing factory functions for all ops and other classes."""
|
||||
"""! ngraph module namespace, exposing factory functions for all ops and other classes."""
|
||||
# noqa: F401
|
||||
|
||||
from pkg_resources import get_distribution, DistributionNotFound
|
||||
|
|
|
|||
|
|
@ -13,16 +13,16 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""ngraph exceptions hierarchy. All exceptions are descendants of NgraphError."""
|
||||
"""! ngraph exceptions hierarchy. All exceptions are descendants of NgraphError."""
|
||||
|
||||
|
||||
class NgraphError(Exception):
|
||||
"""Base class for Ngraph exceptions."""
|
||||
"""! Base class for Ngraph exceptions."""
|
||||
|
||||
|
||||
class UserInputError(NgraphError):
|
||||
"""User provided unexpected input."""
|
||||
"""! User provided unexpected input."""
|
||||
|
||||
|
||||
class NgraphTypeError(NgraphError, TypeError):
|
||||
"""Type mismatch error."""
|
||||
"""! Type mismatch error."""
|
||||
|
|
|
|||
|
|
@ -13,14 +13,14 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""nGraph helper functions."""
|
||||
"""! nGraph helper functions."""
|
||||
|
||||
from ngraph.impl import Function
|
||||
from openvino.inference_engine import IENetwork
|
||||
|
||||
|
||||
def function_from_cnn(cnn_network: IENetwork) -> Function:
|
||||
"""Get nGraph function from Inference Engine CNN network."""
|
||||
"""! Get nGraph function from Inference Engine CNN network."""
|
||||
capsule = cnn_network._get_function_capsule()
|
||||
ng_function = Function.from_capsule(capsule)
|
||||
return ng_function
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -14,7 +14,7 @@
|
|||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
|
||||
"""Factory functions for all ngraph ops."""
|
||||
"""! Factory functions for all ngraph ops."""
|
||||
from typing import Callable, Iterable, List, Optional, Set, Union
|
||||
|
||||
import numpy as np
|
||||
|
|
@ -66,16 +66,16 @@ def batch_to_space(
|
|||
crops_end: NodeInput,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Perform BatchToSpace operation on the input tensor.
|
||||
"""! Perform BatchToSpace operation on the input tensor.
|
||||
|
||||
BatchToSpace permutes data from the batch dimension of the data tensor into spatial dimensions.
|
||||
|
||||
:param data: Node producing the data tensor.
|
||||
:param block_shape: The sizes of the block of values to be moved.
|
||||
:param crops_begin: Specifies the amount to crop from the beginning along each axis of `data`.
|
||||
:param crops_end: Specifies the amount to crop from the end along each axis of `data`.
|
||||
:param name: Optional output node name.
|
||||
:return: The new node performing a BatchToSpace operation.
|
||||
@param data: Node producing the data tensor.
|
||||
@param block_shape: The sizes of the block of values to be moved.
|
||||
@param crops_begin: Specifies the amount to crop from the beginning along each axis of `data`.
|
||||
@param crops_end: Specifies the amount to crop from the end along each axis of `data`.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a BatchToSpace operation.
|
||||
"""
|
||||
return _get_node_factory_opset2().create(
|
||||
"BatchToSpace", as_nodes(data, block_shape, crops_begin, crops_end)
|
||||
|
|
@ -84,18 +84,18 @@ def batch_to_space(
|
|||
|
||||
@unary_op
|
||||
def gelu(node: NodeInput, name: Optional[str] = None) -> Node:
|
||||
r"""Perform Gaussian Error Linear Unit operation element-wise on data from input node.
|
||||
r"""! Perform Gaussian Error Linear Unit operation element-wise on data from input node.
|
||||
|
||||
Computes GELU function:
|
||||
|
||||
.. math:: f(x) = 0.5\cdot x\cdot(1 + erf( \dfrac{x}{\sqrt{2}})
|
||||
\f[ f(x) = 0.5\cdot x\cdot(1 + erf( \dfrac{x}{\sqrt{2}}) \f]
|
||||
|
||||
For more information refer to:
|
||||
`Gaussian Error Linear Unit (GELU) <https://arxiv.org/pdf/1606.08415.pdf>`_
|
||||
|
||||
:param node: Input tensor. One of: input node, array or scalar.
|
||||
:param name: Optional output node name.
|
||||
:return: The new node performing a GELU operation on its input data element-wise.
|
||||
@param node: Input tensor. One of: input node, array or scalar.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a GELU operation on its input data element-wise.
|
||||
"""
|
||||
return _get_node_factory_opset2().create("Gelu", [node])
|
||||
|
||||
|
|
@ -108,19 +108,19 @@ def mvn(
|
|||
eps: float = 1e-9,
|
||||
name: str = None,
|
||||
) -> Node:
|
||||
r"""Perform Mean Variance Normalization operation on data from input node.
|
||||
r"""! Perform Mean Variance Normalization operation on data from input node.
|
||||
|
||||
Computes MVN on the input tensor :code:`data` (called `X`) using formula:
|
||||
Computes MVN on the input tensor `data` (called `X`) using formula:
|
||||
|
||||
.. math:: Y = \dfrac{X-EX}{\sqrt{E(X-EX)^2}}
|
||||
\f[ Y = \dfrac{X-EX}{\sqrt{E(X-EX)^2}} \f]
|
||||
|
||||
:param data: The node with data tensor.
|
||||
:param across_channels: Denotes if mean values are shared across channels.
|
||||
:param normalize_variance: Denotes whether to perform variance normalization.
|
||||
:param eps: The number added to the variance to avoid division by zero
|
||||
@param data: The node with data tensor.
|
||||
@param across_channels: Denotes if mean values are shared across channels.
|
||||
@param normalize_variance: Denotes whether to perform variance normalization.
|
||||
@param eps: The number added to the variance to avoid division by zero
|
||||
when normalizing the value. Scalar value.
|
||||
:param name: Optional output node name.
|
||||
:return: The new node performing a MVN operation on input tensor.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a MVN operation on input tensor.
|
||||
"""
|
||||
return _get_node_factory_opset2().create(
|
||||
"MVN",
|
||||
|
|
@ -131,12 +131,12 @@ def mvn(
|
|||
|
||||
@nameable_op
|
||||
def reorg_yolo(input: Node, stride: List[int], name: Optional[str] = None) -> Node:
|
||||
"""Return a node which produces the ReorgYolo operation.
|
||||
"""! Return a node which produces the ReorgYolo operation.
|
||||
|
||||
:param input: Input data
|
||||
:param stride: Stride to reorganize input by
|
||||
:param name: Optional name for output node.
|
||||
:return: ReorgYolo node
|
||||
@param input: Input data
|
||||
@param stride: Stride to reorganize input by
|
||||
@param name: Optional name for output node.
|
||||
@return ReorgYolo node
|
||||
"""
|
||||
return _get_node_factory_opset2().create("ReorgYolo", [input], {"stride": stride})
|
||||
|
||||
|
|
@ -150,14 +150,14 @@ def roi_pooling(
|
|||
method: str,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which produces an ROIPooling operation.
|
||||
"""! Return a node which produces an ROIPooling operation.
|
||||
|
||||
:param input: Input feature map {N, C, ...}
|
||||
:param coords: Coordinates of bounding boxes
|
||||
:param output_size: Height/Width of ROI output features (shape)
|
||||
:param spatial_scale: Ratio of input feature map over input image size (float)
|
||||
:param method: Method of pooling - string: "max" or "bilinear"
|
||||
:return: ROIPooling node
|
||||
@param input: Input feature map {N, C, ...}
|
||||
@param coords: Coordinates of bounding boxes
|
||||
@param output_size: Height/Width of ROI output features (shape)
|
||||
@param spatial_scale: Ratio of input feature map over input image size (float)
|
||||
@param method: Method of pooling - string: "max" or "bilinear"
|
||||
@return ROIPooling node
|
||||
"""
|
||||
method = method.lower()
|
||||
return _get_node_factory_opset2().create(
|
||||
|
|
@ -175,18 +175,18 @@ def space_to_batch(
|
|||
pads_end: NodeInput,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Perform SpaceToBatch operation on the input tensor.
|
||||
"""! Perform SpaceToBatch operation on the input tensor.
|
||||
|
||||
SpaceToBatch permutes data tensor blocks of spatial data into batch dimension.
|
||||
The operator returns a copy of the input tensor where values from spatial blocks dimensions
|
||||
are moved in the batch dimension
|
||||
|
||||
:param data: Node producing the data tensor.
|
||||
:param block_shape: The sizes of the block of values to be moved.
|
||||
:param pads_begin: Specifies the padding for the beginning along each axis of `data`.
|
||||
:param pads_end: Specifies the padding for the ending along each axis of `data`.
|
||||
:param name: Optional output node name.
|
||||
:return: The new node performing a SpaceToBatch operation.
|
||||
@param data: Node producing the data tensor.
|
||||
@param block_shape: The sizes of the block of values to be moved.
|
||||
@param pads_begin: Specifies the padding for the beginning along each axis of `data`.
|
||||
@param pads_end: Specifies the padding for the ending along each axis of `data`.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a SpaceToBatch operation.
|
||||
"""
|
||||
return _get_node_factory_opset2().create(
|
||||
"SpaceToBatch", as_nodes(data, block_shape, pads_begin, pads_end)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
|
||||
"""Factory functions for all ngraph ops."""
|
||||
"""! Factory functions for all ngraph ops."""
|
||||
from typing import Callable, Iterable, List, Optional, Set, Union
|
||||
|
||||
import numpy as np
|
||||
|
|
@ -60,12 +60,12 @@ _get_node_factory_opset3 = partial(_get_node_factory, "opset3")
|
|||
|
||||
@nameable_op
|
||||
def assign(new_value: NodeInput, variable_id: str, name: Optional[str] = None) -> Node:
|
||||
"""Return a node which produces the Assign operation.
|
||||
"""! Return a node which produces the Assign operation.
|
||||
|
||||
:param new_value: Node producing a value to be assigned to a variable.
|
||||
:param variable_id: Id of a variable to be updated.
|
||||
:param name: Optional name for output node.
|
||||
:return: Assign node
|
||||
@param new_value: Node producing a value to be assigned to a variable.
|
||||
@param variable_id: Id of a variable to be updated.
|
||||
@param name: Optional name for output node.
|
||||
@return Assign node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"Assign",
|
||||
|
|
@ -82,16 +82,16 @@ def broadcast(
|
|||
broadcast_spec: str = "NUMPY",
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Create a node which broadcasts the input node's values along specified axes to a desired shape.
|
||||
"""! Create a node which broadcasts the input node's values along specified axes to a desired shape.
|
||||
|
||||
:param data: The node with input tensor data.
|
||||
:param target_shape: The node with a new shape we want to broadcast tensor to.
|
||||
:param axes_mapping: The node with a axis positions (0-based) in the result
|
||||
@param data: The node with input tensor data.
|
||||
@param target_shape: The node with a new shape we want to broadcast tensor to.
|
||||
@param axes_mapping: The node with a axis positions (0-based) in the result
|
||||
that are being broadcast.
|
||||
:param broadcast_spec: The type of broadcasting that specifies mapping of input tensor axes
|
||||
@param broadcast_spec: The type of broadcasting that specifies mapping of input tensor axes
|
||||
to output shape axes. Range of values: NUMPY, EXPLICIT, BIDIRECTIONAL.
|
||||
:param name: Optional new name for output node.
|
||||
:return: New node with broadcast shape.
|
||||
@param name: Optional new name for output node.
|
||||
@return New node with broadcast shape.
|
||||
"""
|
||||
inputs = as_nodes(data, target_shape)
|
||||
if broadcast_spec.upper() == "EXPLICIT":
|
||||
|
|
@ -109,15 +109,15 @@ def bucketize(
|
|||
with_right_bound: bool = True,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which produces the Bucketize operation.
|
||||
"""! Return a node which produces the Bucketize operation.
|
||||
|
||||
:param data: Input data to bucketize
|
||||
:param buckets: 1-D of sorted unique boundaries for buckets
|
||||
:param output_type: Output tensor type, "i64" or "i32", defaults to i64
|
||||
:param with_right_bound: indicates whether bucket includes the right or left
|
||||
@param data: Input data to bucketize
|
||||
@param buckets: 1-D of sorted unique boundaries for buckets
|
||||
@param output_type: Output tensor type, "i64" or "i32", defaults to i64
|
||||
@param with_right_bound: indicates whether bucket includes the right or left
|
||||
edge of interval. default true = includes right edge
|
||||
:param name: Optional name for output node.
|
||||
:return: Bucketize node
|
||||
@param name: Optional name for output node.
|
||||
@return Bucketize node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"Bucketize",
|
||||
|
|
@ -134,13 +134,13 @@ def cum_sum(
|
|||
reverse: bool = False,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Construct a cumulative summation operation.
|
||||
"""! Construct a cumulative summation operation.
|
||||
|
||||
:param arg: The tensor to be summed.
|
||||
:param axis: zero dimension tensor specifying axis position along which sum will be performed.
|
||||
:param exclusive: if set to true, the top element is not included
|
||||
:param reverse: if set to true, will perform the sums in reverse direction
|
||||
:return: New node performing the operation
|
||||
@param arg: The tensor to be summed.
|
||||
@param axis: zero dimension tensor specifying axis position along which sum will be performed.
|
||||
@param exclusive: if set to true, the top element is not included
|
||||
@param reverse: if set to true, will perform the sums in reverse direction
|
||||
@return New node performing the operation
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"CumSum", as_nodes(arg, axis), {"exclusive": exclusive, "reverse": reverse}
|
||||
|
|
@ -156,15 +156,15 @@ def embedding_bag_offsets_sum(
|
|||
per_sample_weights: Optional[NodeInput] = None,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs sums of bags of embeddings without the intermediate embeddings.
|
||||
"""! Return a node which performs sums of bags of embeddings without the intermediate embeddings.
|
||||
|
||||
:param emb_table: Tensor containing the embedding lookup table.
|
||||
:param indices: Tensor with indices.
|
||||
:param offsets: Tensor containing the starting index positions of each bag in indices.
|
||||
:param per_sample_weights: Tensor with weights for each sample.
|
||||
:param default_index: Scalar containing default index in embedding table to fill empty bags.
|
||||
:param name: Optional name for output node.
|
||||
:return: The new node which performs EmbeddingBagOffsetsSum
|
||||
@param emb_table: Tensor containing the embedding lookup table.
|
||||
@param indices: Tensor with indices.
|
||||
@param offsets: Tensor containing the starting index positions of each bag in indices.
|
||||
@param per_sample_weights: Tensor with weights for each sample.
|
||||
@param default_index: Scalar containing default index in embedding table to fill empty bags.
|
||||
@param name: Optional name for output node.
|
||||
@return The new node which performs EmbeddingBagOffsetsSum
|
||||
"""
|
||||
inputs = [emb_table, as_node(indices), as_node(offsets)]
|
||||
if per_sample_weights is not None:
|
||||
|
|
@ -183,16 +183,16 @@ def embedding_bag_packed_sum(
|
|||
per_sample_weights: Optional[NodeInput] = None,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return an EmbeddingBagPackedSum node.
|
||||
"""! Return an EmbeddingBagPackedSum node.
|
||||
|
||||
EmbeddingSegmentsSum constructs an output tensor by replacing every index in a given
|
||||
input tensor with a row (from the weights matrix) at that index
|
||||
|
||||
:param emb_table: Tensor containing the embedding lookup table.
|
||||
:param indices: Tensor with indices.
|
||||
:param per_sample_weights: Weights to be multiplied with embedding table.
|
||||
:param name: Optional name for output node.
|
||||
:return: EmbeddingBagPackedSum node
|
||||
@param emb_table: Tensor containing the embedding lookup table.
|
||||
@param indices: Tensor with indices.
|
||||
@param per_sample_weights: Weights to be multiplied with embedding table.
|
||||
@param name: Optional name for output node.
|
||||
@return EmbeddingBagPackedSum node
|
||||
"""
|
||||
inputs = [as_node(emb_table), as_node(indices)]
|
||||
if per_sample_weights is not None:
|
||||
|
|
@ -211,19 +211,19 @@ def embedding_segments_sum(
|
|||
per_sample_weights: Optional[NodeInput] = None,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return an EmbeddingSegmentsSum node.
|
||||
"""! Return an EmbeddingSegmentsSum node.
|
||||
|
||||
EmbeddingSegmentsSum constructs an output tensor by replacing every index in a given
|
||||
input tensor with a row (from the weights matrix) at that index
|
||||
|
||||
:param emb_table: Tensor containing the embedding lookup table.
|
||||
:param indices: Tensor with indices.
|
||||
:param segment_ids: Tensor with indices into the output Tensor
|
||||
:param num_segments: Tensor with number of segments.
|
||||
:param default_index: Scalar containing default index in embedding table to fill empty bags.
|
||||
:param per_sample_weights: Weights to be multiplied with embedding table.
|
||||
:param name: Optional name for output node.
|
||||
:return: EmbeddingSegmentsSum node
|
||||
@param emb_table: Tensor containing the embedding lookup table.
|
||||
@param indices: Tensor with indices.
|
||||
@param segment_ids: Tensor with indices into the output Tensor
|
||||
@param num_segments: Tensor with number of segments.
|
||||
@param default_index: Scalar containing default index in embedding table to fill empty bags.
|
||||
@param per_sample_weights: Weights to be multiplied with embedding table.
|
||||
@param name: Optional name for output node.
|
||||
@return EmbeddingSegmentsSum node
|
||||
"""
|
||||
inputs = [as_node(emb_table), as_node(indices), as_node(segment_ids)]
|
||||
if per_sample_weights is not None:
|
||||
|
|
@ -248,15 +248,15 @@ def extract_image_patches(
|
|||
auto_pad: str,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which produces the ExtractImagePatches operation.
|
||||
"""! Return a node which produces the ExtractImagePatches operation.
|
||||
|
||||
:param image: 4-D Input data to extract image patches.
|
||||
:param sizes: Patch size in the format of [size_rows, size_cols].
|
||||
:param strides: Patch movement stride in the format of [stride_rows, stride_cols]
|
||||
:param rates: Element seleciton rate for creating a patch.
|
||||
:param auto_pad: Padding type.
|
||||
:param name: Optional name for output node.
|
||||
:return: ExtractImagePatches node
|
||||
@param image: 4-D Input data to extract image patches.
|
||||
@param sizes: Patch size in the format of [size_rows, size_cols].
|
||||
@param strides: Patch movement stride in the format of [stride_rows, stride_cols]
|
||||
@param rates: Element seleciton rate for creating a patch.
|
||||
@param auto_pad: Padding type.
|
||||
@param name: Optional name for output node.
|
||||
@return ExtractImagePatches node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"ExtractImagePatches",
|
||||
|
|
@ -280,36 +280,36 @@ def gru_cell(
|
|||
linear_before_reset: bool = False,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Perform GRUCell operation on the tensor from input node.
|
||||
"""! Perform GRUCell operation on the tensor from input node.
|
||||
|
||||
GRUCell represents a single GRU Cell that computes the output
|
||||
using the formula described in the paper: https://arxiv.org/abs/1406.1078
|
||||
|
||||
Note this class represents only single *cell* and not whole *layer*.
|
||||
|
||||
:param X: The input tensor with shape: [batch_size, input_size].
|
||||
:param initial_hidden_state: The hidden state tensor at current time step with shape:
|
||||
@param X: The input tensor with shape: [batch_size, input_size].
|
||||
@param initial_hidden_state: The hidden state tensor at current time step with shape:
|
||||
[batch_size, hidden_size].
|
||||
:param W: The weights for matrix multiplication, gate order: zrh.
|
||||
@param W: The weights for matrix multiplication, gate order: zrh.
|
||||
Shape: [3*hidden_size, input_size].
|
||||
:param R: The recurrence weights for matrix multiplication.
|
||||
@param R: The recurrence weights for matrix multiplication.
|
||||
Shape: [3*hidden_size, hidden_size].
|
||||
:param B: The sum of biases (weight and recurrence).
|
||||
@param B: The sum of biases (weight and recurrence).
|
||||
For linear_before_reset set True the shape is [4*hidden_size].
|
||||
Otherwise the shape is [3*hidden_size].
|
||||
:param hidden_size: The number of hidden units for recurrent cell.
|
||||
@param hidden_size: The number of hidden units for recurrent cell.
|
||||
Specifies hidden state size.
|
||||
:param activations: The vector of activation functions used inside recurrent cell.
|
||||
:param activation_alpha: The vector of alpha parameters for activation functions in
|
||||
@param activations: The vector of activation functions used inside recurrent cell.
|
||||
@param activation_alpha: The vector of alpha parameters for activation functions in
|
||||
order respective to activation list.
|
||||
:param activation_beta: The vector of beta parameters for activation functions in order
|
||||
@param activation_beta: The vector of beta parameters for activation functions in order
|
||||
respective to activation list.
|
||||
:param clip: The value defining clipping range [-clip, clip] on input of
|
||||
@param clip: The value defining clipping range [-clip, clip] on input of
|
||||
activation functions.
|
||||
:param linear_before_reset: Flag denotes if the layer behaves according to the modification
|
||||
@param linear_before_reset: Flag denotes if the layer behaves according to the modification
|
||||
of GRUCell described in the formula in the ONNX documentation.
|
||||
:param name: Optional output node name.
|
||||
:returns: The new node performing a GRUCell operation on tensor from input node.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a GRUCell operation on tensor from input node.
|
||||
"""
|
||||
if activations is None:
|
||||
activations = ["relu", "sigmoid", "tanh"]
|
||||
|
|
@ -342,19 +342,19 @@ def non_max_suppression(
|
|||
output_type: str = "i64",
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs NonMaxSuppression.
|
||||
"""! Return a node which performs NonMaxSuppression.
|
||||
|
||||
:param boxes: Tensor with box coordinates.
|
||||
:param scores: Tensor with box scores.
|
||||
:param max_output_boxes_per_class: Tensor Specifying maximum number of boxes
|
||||
@param boxes: Tensor with box coordinates.
|
||||
@param scores: Tensor with box scores.
|
||||
@param max_output_boxes_per_class: Tensor Specifying maximum number of boxes
|
||||
to be selected per class.
|
||||
:param iou_threshold: Tensor specifying intersection over union threshold
|
||||
:param score_threshold: Tensor specifying minimum score to consider box for the processing.
|
||||
:param box_encoding: Format of boxes data encoding.
|
||||
:param sort_result_descending: Flag that specifies whenever it is necessary to sort selected
|
||||
@param iou_threshold: Tensor specifying intersection over union threshold
|
||||
@param score_threshold: Tensor specifying minimum score to consider box for the processing.
|
||||
@param box_encoding: Format of boxes data encoding.
|
||||
@param sort_result_descending: Flag that specifies whenever it is necessary to sort selected
|
||||
boxes across batches or not.
|
||||
:param output_type: Output element type.
|
||||
:return: The new node which performs NonMaxSuppression
|
||||
@param output_type: Output element type.
|
||||
@return The new node which performs NonMaxSuppression
|
||||
"""
|
||||
if max_output_boxes_per_class is None:
|
||||
max_output_boxes_per_class = make_constant_node(0, np.int64)
|
||||
|
|
@ -375,12 +375,12 @@ def non_max_suppression(
|
|||
|
||||
@nameable_op
|
||||
def non_zero(data: NodeInput, output_type: str = "i64", name: Optional[str] = None,) -> Node:
|
||||
"""Return the indices of the elements that are non-zero.
|
||||
"""! Return the indices of the elements that are non-zero.
|
||||
|
||||
:param data: Input data.
|
||||
:param output_type: Output tensor type.
|
||||
@param data: Input data.
|
||||
@param output_type: Output tensor type.
|
||||
|
||||
:return: The new node which performs NonZero
|
||||
@return The new node which performs NonZero
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"NonZero",
|
||||
|
|
@ -391,12 +391,12 @@ def non_zero(data: NodeInput, output_type: str = "i64", name: Optional[str] = No
|
|||
|
||||
@nameable_op
|
||||
def read_value(init_value: NodeInput, variable_id: str, name: Optional[str] = None) -> Node:
|
||||
"""Return a node which produces the Assign operation.
|
||||
"""! Return a node which produces the Assign operation.
|
||||
|
||||
:param init_value: Node producing a value to be returned instead of an unassigned variable.
|
||||
:param variable_id: Id of a variable to be read.
|
||||
:param name: Optional name for output node.
|
||||
:return: ReadValue node
|
||||
@param init_value: Node producing a value to be returned instead of an unassigned variable.
|
||||
@param variable_id: Id of a variable to be read.
|
||||
@param name: Optional name for output node.
|
||||
@return ReadValue node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"ReadValue",
|
||||
|
|
@ -419,31 +419,31 @@ def rnn_cell(
|
|||
clip: float = 0.0,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Perform RNNCell operation on tensor from input node.
|
||||
"""! Perform RNNCell operation on tensor from input node.
|
||||
|
||||
It follows notation and equations defined as in ONNX standard:
|
||||
https://github.com/onnx/onnx/blob/master/docs/Operators.md#RNN
|
||||
|
||||
Note this class represents only single *cell* and not whole RNN *layer*.
|
||||
|
||||
:param X: The input tensor with shape: [batch_size, input_size].
|
||||
:param initial_hidden_state: The hidden state tensor at current time step with shape:
|
||||
@param X: The input tensor with shape: [batch_size, input_size].
|
||||
@param initial_hidden_state: The hidden state tensor at current time step with shape:
|
||||
[batch_size, hidden_size].
|
||||
:param W: The weight tensor with shape: [hidden_size, input_size].
|
||||
:param R: The recurrence weight tensor with shape: [hidden_size,
|
||||
@param W: The weight tensor with shape: [hidden_size, input_size].
|
||||
@param R: The recurrence weight tensor with shape: [hidden_size,
|
||||
hidden_size].
|
||||
:param B: The bias tensor for input gate with shape: [2*hidden_size].
|
||||
:param hidden_size: The number of hidden units for recurrent cell.
|
||||
@param B: The bias tensor for input gate with shape: [2*hidden_size].
|
||||
@param hidden_size: The number of hidden units for recurrent cell.
|
||||
Specifies hidden state size.
|
||||
:param activations: The vector of activation functions used inside recurrent cell.
|
||||
:param activation_alpha: The vector of alpha parameters for activation functions in
|
||||
@param activations: The vector of activation functions used inside recurrent cell.
|
||||
@param activation_alpha: The vector of alpha parameters for activation functions in
|
||||
order respective to activation list.
|
||||
:param activation_beta: The vector of beta parameters for activation functions in order
|
||||
@param activation_beta: The vector of beta parameters for activation functions in order
|
||||
respective to activation list.
|
||||
:param clip: The value defining clipping range [-clip, clip] on input of
|
||||
@param clip: The value defining clipping range [-clip, clip] on input of
|
||||
activation functions.
|
||||
:param name: Optional output node name.
|
||||
:returns: The new node performing a RNNCell operation on tensor from input node.
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a RNNCell operation on tensor from input node.
|
||||
"""
|
||||
if activations is None:
|
||||
activations = ["sigmoid", "tanh"]
|
||||
|
|
@ -475,20 +475,20 @@ def roi_align(
|
|||
mode: str,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs ROIAlign.
|
||||
"""! Return a node which performs ROIAlign.
|
||||
|
||||
:param data: Input data.
|
||||
:param rois: RoIs (Regions of Interest) to pool over.
|
||||
:param batch_indices: Tensor with each element denoting the index of
|
||||
@param data: Input data.
|
||||
@param rois: RoIs (Regions of Interest) to pool over.
|
||||
@param batch_indices: Tensor with each element denoting the index of
|
||||
the corresponding image in the batch.
|
||||
:param pooled_h: Height of the ROI output feature map.
|
||||
:param pooled_w: Width of the ROI output feature map.
|
||||
:param sampling_ratio: Number of bins over height and width to use to calculate
|
||||
@param pooled_h: Height of the ROI output feature map.
|
||||
@param pooled_w: Width of the ROI output feature map.
|
||||
@param sampling_ratio: Number of bins over height and width to use to calculate
|
||||
each output feature map element.
|
||||
:param spatial_scale: Multiplicative spatial scale factor to translate ROI coordinates.
|
||||
:param mode: Method to perform pooling to produce output feature map elements.
|
||||
@param spatial_scale: Multiplicative spatial scale factor to translate ROI coordinates.
|
||||
@param mode: Method to perform pooling to produce output feature map elements.
|
||||
|
||||
:return: The new node which performs ROIAlign
|
||||
@return The new node which performs ROIAlign
|
||||
"""
|
||||
inputs = as_nodes(data, rois, batch_indices)
|
||||
attributes = {
|
||||
|
|
@ -509,7 +509,7 @@ def scatter_elements_update(
|
|||
axis: NodeInput,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which produces a ScatterElementsUpdate operation.
|
||||
"""! Return a node which produces a ScatterElementsUpdate operation.
|
||||
|
||||
ScatterElementsUpdate creates a copy of the first input tensor with updated elements
|
||||
specified with second and third input tensors.
|
||||
|
|
@ -521,11 +521,11 @@ def scatter_elements_update(
|
|||
corresponding entry in `indices` and the index-value for dimension not equal
|
||||
to `axis` is obtained from the index of the entry itself.
|
||||
|
||||
:param data: The input tensor to be updated.
|
||||
:param indices: The tensor with indexes which will be updated.
|
||||
:param updates: The tensor with update values.
|
||||
:param axis: The axis for scatter.
|
||||
:return: ScatterElementsUpdate node
|
||||
@param data: The input tensor to be updated.
|
||||
@param indices: The tensor with indexes which will be updated.
|
||||
@param updates: The tensor with update values.
|
||||
@param axis: The axis for scatter.
|
||||
@return ScatterElementsUpdate node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"ScatterElementsUpdate", as_nodes(data, indices, updates, axis)
|
||||
|
|
@ -536,15 +536,15 @@ def scatter_elements_update(
|
|||
def scatter_update(
|
||||
data: Node, indices: NodeInput, updates: NodeInput, axis: NodeInput, name: Optional[str] = None
|
||||
) -> Node:
|
||||
"""Return a node which produces a ScatterUpdate operation.
|
||||
"""! Return a node which produces a ScatterUpdate operation.
|
||||
|
||||
ScatterUpdate sets new values to slices from data addressed by indices.
|
||||
|
||||
:param data: The input tensor to be updated.
|
||||
:param indices: The tensor with indexes which will be updated.
|
||||
:param updates: The tensor with update values.
|
||||
:param axis: The axis at which elements will be updated.
|
||||
:return: ScatterUpdate node
|
||||
@param data: The input tensor to be updated.
|
||||
@param indices: The tensor with indexes which will be updated.
|
||||
@param updates: The tensor with update values.
|
||||
@param axis: The axis at which elements will be updated.
|
||||
@return ScatterUpdate node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"ScatterUpdate",
|
||||
|
|
@ -554,11 +554,11 @@ def scatter_update(
|
|||
|
||||
@nameable_op
|
||||
def shape_of(data: NodeInput, output_type: str = "i64", name: Optional[str] = None) -> Node:
|
||||
"""Return a node which produces a tensor containing the shape of its input data.
|
||||
"""! Return a node which produces a tensor containing the shape of its input data.
|
||||
|
||||
:param data: The tensor containing the input data.
|
||||
@param data: The tensor containing the input data.
|
||||
:para output_type: Output element type.
|
||||
:return: ShapeOf node
|
||||
@return ShapeOf node
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"ShapeOf",
|
||||
|
|
@ -569,21 +569,20 @@ def shape_of(data: NodeInput, output_type: str = "i64", name: Optional[str] = No
|
|||
|
||||
@nameable_op
|
||||
def shuffle_channels(data: Node, axis: int, groups: int, name: Optional[str] = None) -> Node:
|
||||
"""Perform permutation on data in the channel dimension of the input tensor.
|
||||
"""! Perform permutation on data in the channel dimension of the input tensor.
|
||||
|
||||
The operation is the equivalent with the following transformation of the input tensor
|
||||
:code:`data` of shape [N, C, H, W]:
|
||||
`data` of shape [N, C, H, W]:
|
||||
|
||||
:code:`data_reshaped` = reshape(:code:`data`, [N, group, C / group, H * W])
|
||||
`data_reshaped` = reshape(`data`, [N, group, C / group, H * W])
|
||||
|
||||
:code:`data_trnasposed` = transpose(:code:`data_reshaped`, [0, 2, 1, 3])
|
||||
`data_trnasposed` = transpose(`data_reshaped`, [0, 2, 1, 3])
|
||||
|
||||
:code:`output` = reshape(:code:`data_trnasposed`, [N, C, H, W])
|
||||
`output` = reshape(`data_trnasposed`, [N, C, H, W])
|
||||
|
||||
For example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
~~~~~~~~~~~~~{.py}
|
||||
Inputs: tensor of shape [1, 6, 2, 2]
|
||||
|
||||
data = [[[[ 0., 1.], [ 2., 3.]],
|
||||
|
|
@ -604,15 +603,16 @@ def shuffle_channels(data: Node, axis: int, groups: int, name: Optional[str] = N
|
|||
[[ 4., 5.], [ 6., 7.]],
|
||||
[[12., 13.], [14., 15.]],
|
||||
[[20., 21.], [22., 23.]]]]
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
:param data: The node with input tensor.
|
||||
:param axis: Channel dimension index in the data tensor.
|
||||
@param data: The node with input tensor.
|
||||
@param axis: Channel dimension index in the data tensor.
|
||||
A negative value means that the index should be calculated
|
||||
from the back of the input data shape.
|
||||
:param group:The channel dimension specified by the axis parameter
|
||||
@param group: The channel dimension specified by the axis parameter
|
||||
should be split into this number of groups.
|
||||
:param name: Optional output node name.
|
||||
:return: The new node performing a permutation on data in the channel dimension
|
||||
@param name: Optional output node name.
|
||||
@return The new node performing a permutation on data in the channel dimension
|
||||
of the input tensor.
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
|
|
@ -630,15 +630,15 @@ def topk(
|
|||
index_element_type: str = "i32",
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs TopK.
|
||||
"""! Return a node which performs TopK.
|
||||
|
||||
:param data: Input data.
|
||||
:param k: K.
|
||||
:param axis: TopK Axis.
|
||||
:param mode: Compute TopK largest ('max') or smallest ('min')
|
||||
:param sort: Order of output elements (sort by: 'none', 'index' or 'value')
|
||||
:param index_element_type: Type of output tensor with indices.
|
||||
:return: The new node which performs TopK (both indices and values)
|
||||
@param data: Input data.
|
||||
@param k: K.
|
||||
@param axis: TopK Axis.
|
||||
@param mode: Compute TopK largest ('max') or smallest ('min')
|
||||
@param sort: Order of output elements (sort by: 'none', 'index' or 'value')
|
||||
@param index_element_type: Type of output tensor with indices.
|
||||
@return The new node which performs TopK (both indices and values)
|
||||
"""
|
||||
return _get_node_factory_opset3().create(
|
||||
"TopK",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
|
||||
"""Factory functions for all ngraph ops."""
|
||||
"""! Factory functions for all ngraph ops."""
|
||||
from typing import Callable, Iterable, List, Optional, Set, Union
|
||||
|
||||
import numpy as np
|
||||
|
|
@ -70,17 +70,17 @@ def ctc_loss(
|
|||
unique: bool = False,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs CTCLoss.
|
||||
"""! Return a node which performs CTCLoss.
|
||||
|
||||
:param logits: 3-D tensor of logits.
|
||||
:param logit_length: 1-D tensor of lengths for each object from a batch.
|
||||
:param labels: 2-D tensor of labels for which likelihood is estimated using logits.
|
||||
:param label_length: 1-D tensor of length for each label sequence.
|
||||
:param blank_index: Scalar used to mark a blank index.
|
||||
:param preprocess_collapse_repeated: Flag for preprocessing labels before loss calculation.
|
||||
:param ctc_merge_repeated: Flag for merging repeated characters in a potential alignment.
|
||||
:param unique: Flag to find unique elements in a target.
|
||||
:return: The new node which performs CTCLoss
|
||||
@param logits: 3-D tensor of logits.
|
||||
@param logit_length: 1-D tensor of lengths for each object from a batch.
|
||||
@param labels: 2-D tensor of labels for which likelihood is estimated using logits.
|
||||
@param label_length: 1-D tensor of length for each label sequence.
|
||||
@param blank_index: Scalar used to mark a blank index.
|
||||
@param preprocess_collapse_repeated: Flag for preprocessing labels before loss calculation.
|
||||
@param ctc_merge_repeated: Flag for merging repeated characters in a potential alignment.
|
||||
@param unique: Flag to find unique elements in a target.
|
||||
@return The new node which performs CTCLoss
|
||||
"""
|
||||
if blank_index is not None:
|
||||
inputs = as_nodes(logits, logit_length, labels, label_length, blank_index)
|
||||
|
|
@ -108,19 +108,19 @@ def non_max_suppression(
|
|||
output_type: str = "i64",
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs NonMaxSuppression.
|
||||
"""! Return a node which performs NonMaxSuppression.
|
||||
|
||||
:param boxes: Tensor with box coordinates.
|
||||
:param scores: Tensor with box scores.
|
||||
:param max_output_boxes_per_class: Tensor Specifying maximum number of boxes
|
||||
@param boxes: Tensor with box coordinates.
|
||||
@param scores: Tensor with box scores.
|
||||
@param max_output_boxes_per_class: Tensor Specifying maximum number of boxes
|
||||
to be selected per class.
|
||||
:param iou_threshold: Tensor specifying intersection over union threshold
|
||||
:param score_threshold: Tensor specifying minimum score to consider box for the processing.
|
||||
:param box_encoding: Format of boxes data encoding.
|
||||
:param sort_result_descending: Flag that specifies whenever it is necessary to sort selected
|
||||
@param iou_threshold: Tensor specifying intersection over union threshold
|
||||
@param score_threshold: Tensor specifying minimum score to consider box for the processing.
|
||||
@param box_encoding: Format of boxes data encoding.
|
||||
@param sort_result_descending: Flag that specifies whenever it is necessary to sort selected
|
||||
boxes across batches or not.
|
||||
:param output_type: Output element type.
|
||||
:return: The new node which performs NonMaxSuppression
|
||||
@param output_type: Output element type.
|
||||
@return The new node which performs NonMaxSuppression
|
||||
"""
|
||||
if max_output_boxes_per_class is None:
|
||||
max_output_boxes_per_class = make_constant_node(0, np.int64)
|
||||
|
|
@ -141,30 +141,30 @@ def non_max_suppression(
|
|||
|
||||
@nameable_op
|
||||
def softplus(data: NodeInput, name: Optional[str] = None) -> Node:
|
||||
"""Apply SoftPlus operation on each element of input tensor.
|
||||
"""! Apply SoftPlus operation on each element of input tensor.
|
||||
|
||||
:param data: The tensor providing input data.
|
||||
:return: The new node with SoftPlus operation applied on each element.
|
||||
@param data: The tensor providing input data.
|
||||
@return The new node with SoftPlus operation applied on each element.
|
||||
"""
|
||||
return _get_node_factory_opset4().create("SoftPlus", as_nodes(data), {})
|
||||
|
||||
|
||||
@nameable_op
|
||||
def mish(data: NodeInput, name: Optional[str] = None,) -> Node:
|
||||
"""Return a node which performs Mish.
|
||||
"""! Return a node which performs Mish.
|
||||
|
||||
:param data: Tensor with input data floating point type.
|
||||
:return: The new node which performs Mish
|
||||
@param data: Tensor with input data floating point type.
|
||||
@return The new node which performs Mish
|
||||
"""
|
||||
return _get_node_factory_opset4().create("Mish", as_nodes(data), {})
|
||||
|
||||
|
||||
@nameable_op
|
||||
def hswish(data: NodeInput, name: Optional[str] = None,) -> Node:
|
||||
"""Return a node which performs HSwish (hard version of Swish).
|
||||
"""! Return a node which performs HSwish (hard version of Swish).
|
||||
|
||||
:param data: Tensor with input data floating point type.
|
||||
:return: The new node which performs HSwish
|
||||
@param data: Tensor with input data floating point type.
|
||||
@return The new node which performs HSwish
|
||||
"""
|
||||
return _get_node_factory_opset4().create("HSwish", as_nodes(data), {})
|
||||
|
||||
|
|
@ -175,10 +175,10 @@ def swish(
|
|||
beta: Optional[NodeInput] = None,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performing Swish activation function Swish(x, beta=1.0) = x * sigmoid(x * beta)).
|
||||
"""! Return a node which performing Swish activation function Swish(x, beta=1.0) = x * sigmoid(x * beta)).
|
||||
|
||||
:param data: Tensor with input data floating point type.
|
||||
:return: The new node which performs Swish
|
||||
@param data: Tensor with input data floating point type.
|
||||
@return The new node which performs Swish
|
||||
"""
|
||||
if beta is None:
|
||||
beta = make_constant_node(1.0, np.float32)
|
||||
|
|
@ -187,33 +187,33 @@ def swish(
|
|||
|
||||
@nameable_op
|
||||
def acosh(node: NodeInput, name: Optional[str] = None) -> Node:
|
||||
"""Apply hyperbolic inverse cosine function on the input node element-wise.
|
||||
"""! Apply hyperbolic inverse cosine function on the input node element-wise.
|
||||
|
||||
:param node: One of: input node, array or scalar.
|
||||
:param name: Optional new name for output node.
|
||||
:return: New node with arccosh operation applied on it.
|
||||
@param node: One of: input node, array or scalar.
|
||||
@param name: Optional new name for output node.
|
||||
@return New node with arccosh operation applied on it.
|
||||
"""
|
||||
return _get_node_factory_opset4().create("Acosh", [node])
|
||||
|
||||
|
||||
@nameable_op
|
||||
def asinh(node: NodeInput, name: Optional[str] = None) -> Node:
|
||||
"""Apply hyperbolic inverse sinus function on the input node element-wise.
|
||||
"""! Apply hyperbolic inverse sinus function on the input node element-wise.
|
||||
|
||||
:param node: One of: input node, array or scalar.
|
||||
:param name: Optional new name for output node.
|
||||
:return: New node with arcsinh operation applied on it.
|
||||
@param node: One of: input node, array or scalar.
|
||||
@param name: Optional new name for output node.
|
||||
@return New node with arcsinh operation applied on it.
|
||||
"""
|
||||
return _get_node_factory_opset4().create("Asinh", [node])
|
||||
|
||||
|
||||
@nameable_op
|
||||
def atanh(node: NodeInput, name: Optional[str] = None) -> Node:
|
||||
"""Apply hyperbolic inverse tangent function on the input node element-wise.
|
||||
"""! Apply hyperbolic inverse tangent function on the input node element-wise.
|
||||
|
||||
:param node: One of: input node, array or scalar.
|
||||
:param name: Optional new name for output node.
|
||||
:return: New node with arctanh operation applied on it.
|
||||
@param node: One of: input node, array or scalar.
|
||||
@param name: Optional new name for output node.
|
||||
@return New node with arctanh operation applied on it.
|
||||
"""
|
||||
return _get_node_factory_opset4().create("Atanh", [node])
|
||||
|
||||
|
|
@ -226,13 +226,13 @@ def proposal(
|
|||
attrs: dict,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Filter bounding boxes and outputs only those with the highest prediction confidence.
|
||||
"""! Filter bounding boxes and outputs only those with the highest prediction confidence.
|
||||
|
||||
:param class_probs: 4D input floating point tensor with class prediction scores.
|
||||
:param bbox_deltas: 4D input floating point tensor with corrected predictions of bounding boxes
|
||||
:param image_shape: The 1D input tensor with 3 or 4 elements describing image shape.
|
||||
:param attrs: The dictionary containing key, value pairs for attributes.
|
||||
:param name: Optional name for the output node.
|
||||
@param class_probs: 4D input floating point tensor with class prediction scores.
|
||||
@param bbox_deltas: 4D input floating point tensor with corrected predictions of bounding boxes
|
||||
@param image_shape: The 1D input tensor with 3 or 4 elements describing image shape.
|
||||
@param attrs: The dictionary containing key, value pairs for attributes.
|
||||
@param name: Optional name for the output node.
|
||||
* base_size The size of the anchor to which scale and ratio attributes are applied.
|
||||
Range of values: a positive unsigned integer number
|
||||
Default value: None
|
||||
|
|
@ -296,7 +296,7 @@ def proposal(
|
|||
Default value: "" (empty string)
|
||||
Required: no
|
||||
Example of attribute dictionary:
|
||||
.. code-block:: python
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~{.py}
|
||||
# just required ones
|
||||
attrs = {
|
||||
'base_size': 85,
|
||||
|
|
@ -308,8 +308,9 @@ def proposal(
|
|||
'ratio': [0.1, 1.5, 2.0, 2.5],
|
||||
'scale': [2, 3, 3, 4],
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Optional attributes which are absent from dictionary will be set with corresponding default.
|
||||
:return: Node representing Proposal operation.
|
||||
@return Node representing Proposal operation.
|
||||
"""
|
||||
requirements = [
|
||||
("base_size", True, np.unsignedinteger, is_positive_value),
|
||||
|
|
@ -339,13 +340,13 @@ def proposal(
|
|||
def reduce_l1(
|
||||
node: NodeInput, reduction_axes: NodeInput, keep_dims: bool = False, name: Optional[str] = None
|
||||
) -> Node:
|
||||
"""L1-reduction operation on input tensor, eliminating the specified reduction axes.
|
||||
"""! L1-reduction operation on input tensor, eliminating the specified reduction axes.
|
||||
|
||||
:param node: The tensor we want to mean-reduce.
|
||||
:param reduction_axes: The axes to eliminate through mean operation.
|
||||
:param keep_dims: If set to True it holds axes that are used for reduction
|
||||
:param name: Optional name for output node.
|
||||
:return: The new node performing mean-reduction operation.
|
||||
@param node: The tensor we want to mean-reduce.
|
||||
@param reduction_axes: The axes to eliminate through mean operation.
|
||||
@param keep_dims: If set to True it holds axes that are used for reduction
|
||||
@param name: Optional name for output node.
|
||||
@return The new node performing mean-reduction operation.
|
||||
"""
|
||||
return _get_node_factory_opset4().create(
|
||||
"ReduceL1", as_nodes(node, reduction_axes), {"keep_dims": keep_dims}
|
||||
|
|
@ -356,13 +357,13 @@ def reduce_l1(
|
|||
def reduce_l2(
|
||||
node: NodeInput, reduction_axes: NodeInput, keep_dims: bool = False, name: Optional[str] = None
|
||||
) -> Node:
|
||||
"""L2-reduction operation on input tensor, eliminating the specified reduction axes.
|
||||
"""! L2-reduction operation on input tensor, eliminating the specified reduction axes.
|
||||
|
||||
:param node: The tensor we want to mean-reduce.
|
||||
:param reduction_axes: The axes to eliminate through mean operation.
|
||||
:param keep_dims: If set to True it holds axes that are used for reduction
|
||||
:param name: Optional name for output node.
|
||||
:return: The new node performing mean-reduction operation.
|
||||
@param node: The tensor we want to mean-reduce.
|
||||
@param reduction_axes: The axes to eliminate through mean operation.
|
||||
@param keep_dims: If set to True it holds axes that are used for reduction
|
||||
@param name: Optional name for output node.
|
||||
@return The new node performing mean-reduction operation.
|
||||
"""
|
||||
return _get_node_factory_opset4().create(
|
||||
"ReduceL2", as_nodes(node, reduction_axes), {"keep_dims": keep_dims}
|
||||
|
|
@ -384,22 +385,22 @@ def lstm_cell(
|
|||
clip: float = 0.0,
|
||||
name: Optional[str] = None,
|
||||
) -> Node:
|
||||
"""Return a node which performs LSTMCell operation.
|
||||
"""! Return a node which performs LSTMCell operation.
|
||||
|
||||
:param X: The input tensor with shape: [batch_size, input_size].
|
||||
:param initial_hidden_state: The hidden state tensor with shape: [batch_size, hidden_size].
|
||||
:param initial_cell_state: The cell state tensor with shape: [batch_size, hidden_size].
|
||||
:param W: The weight tensor with shape: [4*hidden_size, input_size].
|
||||
:param R: The recurrence weight tensor with shape: [4*hidden_size, hidden_size].
|
||||
:param B: The bias tensor for gates with shape: [4*hidden_size].
|
||||
:param hidden_size: Specifies hidden state size.
|
||||
:param activations: The list of three activation functions for gates.
|
||||
:param activations_alpha: The list of alpha parameters for activation functions.
|
||||
:param activations_beta: The list of beta parameters for activation functions.
|
||||
:param clip: Specifies bound values [-C, C] for tensor clipping performed before activations.
|
||||
:param name: An optional name of the output node.
|
||||
@param X: The input tensor with shape: [batch_size, input_size].
|
||||
@param initial_hidden_state: The hidden state tensor with shape: [batch_size, hidden_size].
|
||||
@param initial_cell_state: The cell state tensor with shape: [batch_size, hidden_size].
|
||||
@param W: The weight tensor with shape: [4*hidden_size, input_size].
|
||||
@param R: The recurrence weight tensor with shape: [4*hidden_size, hidden_size].
|
||||
@param B: The bias tensor for gates with shape: [4*hidden_size].
|
||||
@param hidden_size: Specifies hidden state size.
|
||||
@param activations: The list of three activation functions for gates.
|
||||
@param activations_alpha: The list of alpha parameters for activation functions.
|
||||
@param activations_beta: The list of beta parameters for activation functions.
|
||||
@param clip: Specifies bound values [-C, C] for tensor clipping performed before activations.
|
||||
@param name: An optional name of the output node.
|
||||
|
||||
:return: The new node represents LSTMCell. Node outputs count: 2.
|
||||
@return The new node represents LSTMCell. Node outputs count: 2.
|
||||
"""
|
||||
if activations is None:
|
||||
activations = ["sigmoid", "tanh", "tanh"]
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ from ngraph.utils.types import (
|
|||
|
||||
|
||||
def _get_node_factory(opset_version: Optional[str] = None) -> NodeFactory:
|
||||
"""Return NodeFactory configured to create operators from specified opset version."""
|
||||
"""! Return NodeFactory configured to create operators from specified opset version."""
|
||||
if opset_version:
|
||||
return NodeFactory(opset_version)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""Generic utilities. Factor related functions out to separate files."""
|
||||
"""! Generic utilities. Factor related functions out to separate files."""
|
||||
|
|
|
|||
|
|
@ -26,16 +26,16 @@ log = logging.getLogger(__name__)
|
|||
def get_broadcast_axes(
|
||||
output_shape: TensorShape, input_shape: TensorShape, axis: int = None
|
||||
) -> AxisSet:
|
||||
"""Generate a list of broadcast axes for ngraph++ broadcast.
|
||||
"""! Generate a list of broadcast axes for ngraph++ broadcast.
|
||||
|
||||
Informally, a broadcast "adds" axes to the input tensor,
|
||||
replicating elements from the input tensor as needed to fill the new dimensions.
|
||||
Function calculate which of the output axes are added in this way.
|
||||
|
||||
:param output_shape: The new shape for the output tensor.
|
||||
:param input_shape: The shape of input tensor.
|
||||
:param axis: The axis along which we want to replicate elements.
|
||||
:return: The indices of added axes.
|
||||
@param output_shape: The new shape for the output tensor.
|
||||
@param input_shape: The shape of input tensor.
|
||||
@param axis: The axis along which we want to replicate elements.
|
||||
@return The indices of added axes.
|
||||
"""
|
||||
axes_indexes = list(range(0, len(output_shape)))
|
||||
if axis is None:
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ def _set_node_friendly_name(node: Node, **kwargs: Any) -> Node:
|
|||
|
||||
|
||||
def nameable_op(node_factory_function: Callable) -> Callable:
|
||||
"""Set the name to the ngraph operator returned by the wrapped function."""
|
||||
"""! Set the name to the ngraph operator returned by the wrapped function."""
|
||||
|
||||
@wraps(node_factory_function)
|
||||
def wrapper(*args: Any, **kwargs: Any) -> Node:
|
||||
|
|
@ -39,7 +39,7 @@ def nameable_op(node_factory_function: Callable) -> Callable:
|
|||
|
||||
|
||||
def unary_op(node_factory_function: Callable) -> Callable:
|
||||
"""Convert the first input value to a Constant Node if a numeric value is detected."""
|
||||
"""! Convert the first input value to a Constant Node if a numeric value is detected."""
|
||||
|
||||
@wraps(node_factory_function)
|
||||
def wrapper(input_value: NodeInput, *args: Any, **kwargs: Any) -> Node:
|
||||
|
|
@ -52,7 +52,7 @@ def unary_op(node_factory_function: Callable) -> Callable:
|
|||
|
||||
|
||||
def binary_op(node_factory_function: Callable) -> Callable:
|
||||
"""Convert the first two input values to Constant Nodes if numeric values are detected."""
|
||||
"""! Convert the first two input values to Constant Nodes if numeric values are detected."""
|
||||
|
||||
@wraps(node_factory_function)
|
||||
def wrapper(left: NodeInput, right: NodeInput, *args: Any, **kwargs: Any) -> Node:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
|
||||
"""Helper functions for validating user input."""
|
||||
"""! Helper functions for validating user input."""
|
||||
|
||||
import logging
|
||||
from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Type
|
||||
|
|
@ -27,7 +27,7 @@ log = logging.getLogger(__name__)
|
|||
|
||||
|
||||
def assert_list_of_ints(value_list: Iterable[int], message: str) -> None:
|
||||
"""Verify that the provided value is an iterable of integers."""
|
||||
"""! Verify that the provided value is an iterable of integers."""
|
||||
try:
|
||||
for value in value_list:
|
||||
if not isinstance(value, int):
|
||||
|
|
@ -39,16 +39,16 @@ def assert_list_of_ints(value_list: Iterable[int], message: str) -> None:
|
|||
|
||||
def _check_value(op_name, attr_key, value, val_type, cond=None):
|
||||
# type: (str, str, Any, Type, Optional[Callable[[Any], bool]]) -> bool
|
||||
"""Check whether provided value satisfies specified criteria.
|
||||
"""! Check whether provided value satisfies specified criteria.
|
||||
|
||||
:param op_name: The operator name which attributes are checked.
|
||||
:param attr_key: The attribute name.
|
||||
:param value: The value to check.
|
||||
:param val_type: Required value type.
|
||||
:param cond: The optional function running additional checks.
|
||||
@param op_name: The operator name which attributes are checked.
|
||||
@param attr_key: The attribute name.
|
||||
@param value: The value to check.
|
||||
@param val_type: Required value type.
|
||||
@param cond: The optional function running additional checks.
|
||||
|
||||
:raises UserInputError:
|
||||
:return: True if attribute satisfies all criterias. Otherwise False.
|
||||
@return True if attribute satisfies all criterias. Otherwise False.
|
||||
"""
|
||||
if not np.issubdtype(type(value), val_type):
|
||||
raise UserInputError(
|
||||
|
|
@ -67,19 +67,19 @@ def _check_value(op_name, attr_key, value, val_type, cond=None):
|
|||
|
||||
def check_valid_attribute(op_name, attr_dict, attr_key, val_type, cond=None, required=False):
|
||||
# type: (str, dict, str, Type, Optional[Callable[[Any], bool]], Optional[bool]) -> bool
|
||||
"""Check whether specified attribute satisfies given criteria.
|
||||
"""! Check whether specified attribute satisfies given criteria.
|
||||
|
||||
:param op_name: The operator name which attributes are checked.
|
||||
:param attr_dict: Dictionary containing key-value attributes to check.
|
||||
:param attr_key: Key value for validated attribute.
|
||||
:param val_type: Value type for validated attribute.
|
||||
:param cond: Any callable wich accept attribute value and returns True or False.
|
||||
:param required: Whether provided attribute key is not required. This mean it may be missing
|
||||
@param op_name: The operator name which attributes are checked.
|
||||
@param attr_dict: Dictionary containing key-value attributes to check.
|
||||
@param attr_key: Key value for validated attribute.
|
||||
@param val_type: Value type for validated attribute.
|
||||
@param cond: Any callable wich accept attribute value and returns True or False.
|
||||
@param required: Whether provided attribute key is not required. This mean it may be missing
|
||||
from provided dictionary.
|
||||
|
||||
:raises UserInputError:
|
||||
|
||||
:return: True if attribute satisfies all criterias. Otherwise False.
|
||||
@return True if attribute satisfies all criterias. Otherwise False.
|
||||
"""
|
||||
result = True
|
||||
|
||||
|
|
@ -110,11 +110,11 @@ def check_valid_attributes(
|
|||
requirements, # type: List[Tuple[str, bool, Type, Optional[Callable]]]
|
||||
):
|
||||
# type: (...) -> bool
|
||||
"""Perform attributes validation according to specified type, value criteria.
|
||||
"""! Perform attributes validation according to specified type, value criteria.
|
||||
|
||||
:param op_name: The operator name which attributes are checked.
|
||||
:param attributes: The dictionary with user provided attributes to check.
|
||||
:param requirements: The list of tuples describing attributes' requirements. The tuple should
|
||||
@param op_name: The operator name which attributes are checked.
|
||||
@param attributes: The dictionary with user provided attributes to check.
|
||||
@param requirements: The list of tuples describing attributes' requirements. The tuple should
|
||||
contain following values:
|
||||
(attr_name: str,
|
||||
is_required: bool,
|
||||
|
|
@ -122,7 +122,7 @@ def check_valid_attributes(
|
|||
value_condition: Callable)
|
||||
|
||||
:raises UserInputError:
|
||||
:return: True if all attributes satisfies criterias. Otherwise False.
|
||||
@return True if all attributes satisfies criterias. Otherwise False.
|
||||
"""
|
||||
for attr, required, val_type, cond in requirements:
|
||||
check_valid_attribute(op_name, attributes, attr, val_type, cond, required)
|
||||
|
|
@ -130,20 +130,20 @@ def check_valid_attributes(
|
|||
|
||||
|
||||
def is_positive_value(x): # type: (Any) -> bool
|
||||
"""Determine whether the specified x is positive value.
|
||||
"""! Determine whether the specified x is positive value.
|
||||
|
||||
:param x: The value to check.
|
||||
@param x: The value to check.
|
||||
|
||||
:returns: True if the specified x is positive value, False otherwise.
|
||||
@return True if the specified x is positive value, False otherwise.
|
||||
"""
|
||||
return x > 0
|
||||
|
||||
|
||||
def is_non_negative_value(x): # type: (Any) -> bool
|
||||
"""Determine whether the specified x is non-negative value.
|
||||
"""! Determine whether the specified x is non-negative value.
|
||||
|
||||
:param x: The value to check.
|
||||
@param x: The value to check.
|
||||
|
||||
:returns: True if the specified x is non-negative value, False otherwise.
|
||||
@return True if the specified x is non-negative value, False otherwise.
|
||||
"""
|
||||
return x >= 0
|
||||
|
|
|
|||
|
|
@ -9,27 +9,27 @@ DEFAULT_OPSET = "opset5"
|
|||
|
||||
|
||||
class NodeFactory(object):
|
||||
"""Factory front-end to create node objects."""
|
||||
"""! Factory front-end to create node objects."""
|
||||
|
||||
def __init__(self, opset_version: str = DEFAULT_OPSET) -> None:
|
||||
"""Create the NodeFactory object.
|
||||
"""! Create the NodeFactory object.
|
||||
|
||||
:param opset_version: The opset version the factory will use to produce ops from.
|
||||
@param opset_version: The opset version the factory will use to produce ops from.
|
||||
"""
|
||||
self.factory = _NodeFactory(opset_version)
|
||||
|
||||
def create(
|
||||
self, op_type_name: str, arguments: List[Node], attributes: Optional[Dict[str, Any]] = None
|
||||
) -> Node:
|
||||
"""Create node object from provided description.
|
||||
"""! Create node object from provided description.
|
||||
|
||||
The user does not have to provide all node's attributes, but only required ones.
|
||||
|
||||
:param op_type_name: The operator type name.
|
||||
:param arguments: The operator arguments.
|
||||
:param attributes: The operator attributes.
|
||||
@param op_type_name: The operator type name.
|
||||
@param arguments: The operator arguments.
|
||||
@param attributes: The operator attributes.
|
||||
|
||||
:returns: Node object representing requested operator with attributes set.
|
||||
@return Node object representing requested operator with attributes set.
|
||||
"""
|
||||
if attributes is None:
|
||||
attributes = {}
|
||||
|
|
@ -65,12 +65,12 @@ class NodeFactory(object):
|
|||
|
||||
@staticmethod
|
||||
def _normalize_attr_name(attr_name: str, prefix: str) -> str:
|
||||
"""Normalize attribute name.
|
||||
"""! Normalize attribute name.
|
||||
|
||||
:param attr_name: The attribute name.
|
||||
:param prefix: The prefix to attach to attribute name.
|
||||
@param attr_name: The attribute name.
|
||||
@param prefix: The prefix to attach to attribute name.
|
||||
|
||||
:returns: The modified attribute name.
|
||||
@return The modified attribute name.
|
||||
"""
|
||||
# Trim first part of the name if there is only one level of attribute hierarchy.
|
||||
if attr_name.count(".") == 1:
|
||||
|
|
@ -79,32 +79,32 @@ class NodeFactory(object):
|
|||
|
||||
@classmethod
|
||||
def _normalize_attr_name_getter(cls, attr_name: str) -> str:
|
||||
"""Normalize atr name to be suitable for getter function name.
|
||||
"""! Normalize atr name to be suitable for getter function name.
|
||||
|
||||
:param attr_name: The attribute name to normalize
|
||||
@param attr_name: The attribute name to normalize
|
||||
|
||||
:returns: The appropriate getter function name.
|
||||
@return The appropriate getter function name.
|
||||
"""
|
||||
return cls._normalize_attr_name(attr_name, "get_")
|
||||
|
||||
@classmethod
|
||||
def _normalize_attr_name_setter(cls, attr_name: str) -> str:
|
||||
"""Normalize attribute name to be suitable for setter function name.
|
||||
"""! Normalize attribute name to be suitable for setter function name.
|
||||
|
||||
:param attr_name: The attribute name to normalize
|
||||
@param attr_name: The attribute name to normalize
|
||||
|
||||
:returns: The appropriate setter function name.
|
||||
@return The appropriate setter function name.
|
||||
"""
|
||||
return cls._normalize_attr_name(attr_name, "set_")
|
||||
|
||||
@staticmethod
|
||||
def _get_node_attr_value(node: Node, attr_name: str) -> Any:
|
||||
"""Get provided node attribute value.
|
||||
"""! Get provided node attribute value.
|
||||
|
||||
:param node: The node we retrieve attribute value from.
|
||||
:param attr_name: The attribute name.
|
||||
@param node: The node we retrieve attribute value from.
|
||||
@param attr_name: The attribute name.
|
||||
|
||||
:returns: The node attribute value.
|
||||
@return The node attribute value.
|
||||
"""
|
||||
if not node._attr_cache_valid:
|
||||
node._attr_cache = node._get_attributes()
|
||||
|
|
@ -113,11 +113,11 @@ class NodeFactory(object):
|
|||
|
||||
@staticmethod
|
||||
def _set_node_attr_value(node: Node, attr_name: str, value: Any) -> None:
|
||||
"""Set the node attribute value.
|
||||
"""! Set the node attribute value.
|
||||
|
||||
:param node: The node we change attribute value for.
|
||||
:param attr_name: The attribute name.
|
||||
:param value: The new attribute value.
|
||||
@param node: The node we change attribute value for.
|
||||
@param attr_name: The attribute name.
|
||||
@param value: The new attribute value.
|
||||
"""
|
||||
node._set_attribute(attr_name, value)
|
||||
node._attr_cache[attr_name] = value
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@ from ngraph.impl import Node
|
|||
|
||||
|
||||
def get_reduction_axes(node: Node, reduction_axes: Optional[Iterable[int]]) -> Iterable[int]:
|
||||
"""Get reduction axes if it is None and convert it to set if its type is different.
|
||||
"""! Get reduction axes if it is None and convert it to set if its type is different.
|
||||
|
||||
If reduction_axes is None we default to reduce all axes.
|
||||
|
||||
:param node: The node we fill reduction axes for.
|
||||
:param reduction_axes: The collection of indices of axes to reduce. May be None.
|
||||
:return: Set filled with indices of axes we want to reduce.
|
||||
@param node: The node we fill reduction axes for.
|
||||
@param reduction_axes: The collection of indices of axes to reduce. May be None.
|
||||
@return Set filled with indices of axes we want to reduce.
|
||||
"""
|
||||
if reduction_axes is None:
|
||||
reduction_axes = set(range(len(node.shape)))
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""Helper classes for aggregating TensorIterator input/output desciptor attributes."""
|
||||
"""! Helper classes for aggregating TensorIterator input/output desciptor attributes."""
|
||||
|
||||
from typing import List
|
||||
|
||||
|
|
@ -22,14 +22,14 @@ from ngraph.impl.op import Parameter
|
|||
|
||||
|
||||
class GraphBody(object):
|
||||
"""Class containing graph parameters and results."""
|
||||
"""! Class containing graph parameters and results."""
|
||||
|
||||
def __init__(self, parameters: List[Parameter], results: List[Node],) -> None:
|
||||
self.parameters = parameters
|
||||
self.results = results
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize GraphBody as a dictionary."""
|
||||
"""! Serialize GraphBody as a dictionary."""
|
||||
return {
|
||||
"parameters": self.parameters,
|
||||
"results": self.results,
|
||||
|
|
@ -37,14 +37,14 @@ class GraphBody(object):
|
|||
|
||||
|
||||
class TensorIteratorInputDesc(object):
|
||||
"""Represents a generic input descriptor for TensorIterator operator."""
|
||||
"""! Represents a generic input descriptor for TensorIterator operator."""
|
||||
|
||||
def __init__(self, input_idx: int, body_parameter_idx: int,) -> None:
|
||||
self.input_idx = input_idx
|
||||
self.body_parameter_idx = body_parameter_idx
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorInputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorInputDesc as a dictionary."""
|
||||
return {
|
||||
"input_idx": self.input_idx,
|
||||
"body_parameter_idx": self.body_parameter_idx,
|
||||
|
|
@ -52,7 +52,7 @@ class TensorIteratorInputDesc(object):
|
|||
|
||||
|
||||
class TensorIteratorSliceInputDesc(TensorIteratorInputDesc):
|
||||
"""Represents a TensorIterator graph body input formed from slices of TensorIterator input."""
|
||||
"""! Represents a TensorIterator graph body input formed from slices of TensorIterator input."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
|
@ -72,7 +72,7 @@ class TensorIteratorSliceInputDesc(TensorIteratorInputDesc):
|
|||
self.axis = axis
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorSliceInputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorSliceInputDesc as a dictionary."""
|
||||
output = super().serialize()
|
||||
output["start"] = self.start
|
||||
output["stride"] = self.stride
|
||||
|
|
@ -83,7 +83,7 @@ class TensorIteratorSliceInputDesc(TensorIteratorInputDesc):
|
|||
|
||||
|
||||
class TensorIteratorMergedInputDesc(TensorIteratorInputDesc):
|
||||
"""Represents a TensorIterator graph body input with initial value in the first iteration.
|
||||
"""! Represents a TensorIterator graph body input with initial value in the first iteration.
|
||||
|
||||
Later on, this input value is computed inside graph body.
|
||||
"""
|
||||
|
|
@ -93,28 +93,28 @@ class TensorIteratorMergedInputDesc(TensorIteratorInputDesc):
|
|||
self.body_value_idx = body_value_idx
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorMergedInputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorMergedInputDesc as a dictionary."""
|
||||
output = super().serialize()
|
||||
output["body_value_idx"] = self.body_value_idx
|
||||
return output
|
||||
|
||||
|
||||
class TensorIteratorInvariantInputDesc(TensorIteratorInputDesc):
|
||||
"""Represents a TensorIterator graph body input that has invariant value during iteration."""
|
||||
"""! Represents a TensorIterator graph body input that has invariant value during iteration."""
|
||||
|
||||
def __init__(self, input_idx: int, body_parameter_idx: int,) -> None:
|
||||
super().__init__(input_idx, body_parameter_idx)
|
||||
|
||||
|
||||
class TensorIteratorOutputDesc(object):
|
||||
"""Represents a generic output descriptor for TensorIterator operator."""
|
||||
"""! Represents a generic output descriptor for TensorIterator operator."""
|
||||
|
||||
def __init__(self, body_value_idx: int, output_idx: int,) -> None:
|
||||
self.body_value_idx = body_value_idx
|
||||
self.output_idx = output_idx
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorOutputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorOutputDesc as a dictionary."""
|
||||
return {
|
||||
"body_value_idx": self.body_value_idx,
|
||||
"output_idx": self.output_idx,
|
||||
|
|
@ -122,21 +122,21 @@ class TensorIteratorOutputDesc(object):
|
|||
|
||||
|
||||
class TensorIteratorBodyOutputDesc(TensorIteratorOutputDesc):
|
||||
"""Represents an output from a specific iteration."""
|
||||
"""! Represents an output from a specific iteration."""
|
||||
|
||||
def __init__(self, body_value_idx: int, output_idx: int, iteration: int,) -> None:
|
||||
super().__init__(body_value_idx, output_idx)
|
||||
self.iteration = iteration
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorBodyOutputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorBodyOutputDesc as a dictionary."""
|
||||
output = super().serialize()
|
||||
output["iteration"] = self.iteration
|
||||
return output
|
||||
|
||||
|
||||
class TensorIteratorConcatOutputDesc(TensorIteratorOutputDesc):
|
||||
"""Represents an output produced by concatenation of output from each iteration."""
|
||||
"""! Represents an output produced by concatenation of output from each iteration."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
|
@ -156,7 +156,7 @@ class TensorIteratorConcatOutputDesc(TensorIteratorOutputDesc):
|
|||
self.axis = axis
|
||||
|
||||
def serialize(self) -> dict:
|
||||
"""Serialize TensorIteratorConcatOutputDesc as a dictionary."""
|
||||
"""! Serialize TensorIteratorConcatOutputDesc as a dictionary."""
|
||||
output = super().serialize()
|
||||
output["start"] = self.start
|
||||
output["stride"] = self.stride
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ******************************************************************************
|
||||
"""Functions related to converting between Python and numpy types and ngraph types."""
|
||||
"""! Functions related to converting between Python and numpy types and ngraph types."""
|
||||
|
||||
import logging
|
||||
from typing import List, Union
|
||||
|
|
@ -66,7 +66,7 @@ ngraph_to_numpy_types_str_map = [
|
|||
|
||||
|
||||
def get_element_type(data_type: NumericType) -> NgraphType:
|
||||
"""Return an ngraph element type for a Python type or numpy.dtype."""
|
||||
"""! Return an ngraph element type for a Python type or numpy.dtype."""
|
||||
if data_type is int:
|
||||
log.warning("Converting int type of undefined bitwidth to 32-bit ngraph integer.")
|
||||
return NgraphType.i32
|
||||
|
|
@ -85,7 +85,7 @@ def get_element_type(data_type: NumericType) -> NgraphType:
|
|||
|
||||
|
||||
def get_element_type_str(data_type: NumericType) -> str:
|
||||
"""Return an ngraph element type string representation for a Python type or numpy dtype."""
|
||||
"""! Return an ngraph element type string representation for a Python type or numpy dtype."""
|
||||
if data_type is int:
|
||||
log.warning("Converting int type of undefined bitwidth to 32-bit ngraph integer.")
|
||||
return "i32"
|
||||
|
|
@ -105,7 +105,7 @@ def get_element_type_str(data_type: NumericType) -> str:
|
|||
|
||||
|
||||
def get_dtype(ngraph_type: NgraphType) -> np.dtype:
|
||||
"""Return a numpy.dtype for an ngraph element type."""
|
||||
"""! Return a numpy.dtype for an ngraph element type."""
|
||||
np_type = next(
|
||||
(np_type for (ng_type, np_type) in ngraph_to_numpy_types_map if ng_type == ngraph_type),
|
||||
None,
|
||||
|
|
@ -118,14 +118,14 @@ def get_dtype(ngraph_type: NgraphType) -> np.dtype:
|
|||
|
||||
|
||||
def get_ndarray(data: NumericData) -> np.ndarray:
|
||||
"""Wrap data into a numpy ndarray."""
|
||||
"""! Wrap data into a numpy ndarray."""
|
||||
if type(data) == np.ndarray:
|
||||
return data
|
||||
return np.array(data)
|
||||
|
||||
|
||||
def get_shape(data: NumericData) -> TensorShape:
|
||||
"""Return a shape of NumericData."""
|
||||
"""! Return a shape of NumericData."""
|
||||
if type(data) == np.ndarray:
|
||||
return data.shape # type: ignore
|
||||
elif type(data) == list:
|
||||
|
|
@ -134,7 +134,7 @@ def get_shape(data: NumericData) -> TensorShape:
|
|||
|
||||
|
||||
def make_constant_node(value: NumericData, dtype: NumericType = None) -> Constant:
|
||||
"""Return an ngraph Constant node with the specified value."""
|
||||
"""! Return an ngraph Constant node with the specified value."""
|
||||
ndarray = get_ndarray(value)
|
||||
if dtype:
|
||||
element_type = get_element_type(dtype)
|
||||
|
|
@ -145,12 +145,12 @@ def make_constant_node(value: NumericData, dtype: NumericType = None) -> Constan
|
|||
|
||||
|
||||
def as_node(input_value: NodeInput) -> Node:
|
||||
"""Return input values as nodes. Scalars will be converted to Constant nodes."""
|
||||
"""! Return input values as nodes. Scalars will be converted to Constant nodes."""
|
||||
if issubclass(type(input_value), Node):
|
||||
return input_value
|
||||
return make_constant_node(input_value)
|
||||
|
||||
|
||||
def as_nodes(*input_values: NodeInput) -> List[Node]:
|
||||
"""Return input values as nodes. Scalars will be converted to Constant nodes."""
|
||||
"""! Return input values as nodes. Scalars will be converted to Constant nodes."""
|
||||
return [as_node(input_value) for input_value in input_values]
|
||||
|
|
|
|||
Loading…
Reference in New Issue