aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin May <kevin.may@arm.com>2021-04-28 16:16:22 +0100
committerKevin May <kevin.may@arm.com>2021-04-29 12:38:01 +0000
commiteb03e0fa0f6e8d133efe7d54831ad70da9431874 (patch)
tree1cc0b63450ba58a570974c7d3feba7b53cf3f8eb
parenta04a9d7c11f28c7e932435535e80223782f369f2 (diff)
downloadarmnn-eb03e0fa0f6e8d133efe7d54831ad70da9431874.tar.gz
IVGCVSW-5744 Remove Tensorflow, Caffe and Quantizer from documentation
* Remove from .md files and Doxygen * Remove from armnn/docker build * Remove Tensorflow model format from ExecuteNetworkParams * Remove Tensorflow model format from ImageTensorGenerator Signed-off-by: Kevin May <kevin.may@arm.com> Change-Id: Id6ed4a7d90366c396e8e0395d0ce43a3bcddcee6
-rw-r--r--BuildGuideAndroidNDK.md26
-rw-r--r--BuildGuideCrossCompilation.md70
-rw-r--r--README.md4
-rw-r--r--docker/x86_64/Dockerfile18
-rw-r--r--docker/x86_64/Makefile.config125
-rw-r--r--docs/01_00_software_tools.dox3
-rw-r--r--docs/01_01_parsers.dox176
-rw-r--r--docs/Doxyfile1
-rw-r--r--docs/FAQ.md6
-rw-r--r--python/pyarmnn/README.md2
-rw-r--r--src/armnn/layers/Pooling2dLayer.cpp2
-rw-r--r--src/armnnCaffeParser/README.md6
-rw-r--r--src/armnnConverter/README.md2
-rw-r--r--src/armnnTfParser/README.md6
-rw-r--r--tests/ExecuteNetwork/ExecuteNetworkParams.cpp10
-rw-r--r--tests/ImageTensorGenerator/ImageTensorGenerator.cpp8
-rw-r--r--tests/ImageTensorGenerator/README.md2
-rw-r--r--tests/ModelAccuracyTool-Armnn/README.md2
18 files changed, 22 insertions, 447 deletions
diff --git a/BuildGuideAndroidNDK.md b/BuildGuideAndroidNDK.md
index 779135485b..26728c4c92 100644
--- a/BuildGuideAndroidNDK.md
+++ b/BuildGuideAndroidNDK.md
@@ -5,7 +5,6 @@
- [Build the Boost C++ libraries](#build-the-boost-c---libraries)
- [Build the Compute Library](#build-the-compute-library)
- [Build Google's Protobuf library](#build-google-s-protobuf-library)
-- [Download TensorFlow](#download-tensorflow)
- [Build Arm NN](#build-armnn)
- [Build Standalone Sample Dynamic Backend](#build-standalone-sample-dynamic-backend)
- [Run the Arm NN unit tests on an Android device](#run-the-armnn-unit-tests-on-an-android-device)
@@ -14,10 +13,11 @@
## Introduction
These are step by step instructions for using the Android NDK to build Arm NN.
They have been tested on a clean install of Ubuntu 16.04, and should also work with other OS versions.
-The instructions show how to build the Arm NN core library and the optional TensorFlow parser.
+The instructions show how to build the Arm NN core library.
+Building protobuf is optional. We have given steps should the user wish to build it (i.e. as an Onnx dependency).
All downloaded or generated files will be saved inside the `~/armnn-devenv` directory.
-#####Note: We are currently in the process of removing boost as a dependency to Arm NN. This process is finished for everything apart from our unit tests. This means you don't need boost to build and use Arm NN but you need it to execute our unit tests. Boost will soon be removed from Arm NN entirely. We also are deprecating support for Tensorflow parsers in 21.02. This will be removed in 21.05.
+#####Note: We are currently in the process of removing boost as a dependency to Arm NN. This process is finished for everything apart from our unit tests. This means you don't need boost to build and use Arm NN but you need it to execute our unit tests. Boost will soon be removed from Arm NN entirely.
## Download the Android NDK and make a standalone toolchain
@@ -90,7 +90,7 @@ scons arch=arm64-v8a neon=1 opencl=1 embed_kernels=1 extra_cxx_flags="-fPIC" \
benchmark_tests=0 validation_tests=0 os=android -j16
```
-## Build Google's Protobuf library
+## Build Google's Protobuf library (Optional)
* Clone protobuf:
```bash
@@ -129,15 +129,6 @@ make install -j16
cd ..
```
-## Download TensorFlow
-* Clone TensorFlow source code:
-```bash
-cd ~/armnn-devenv/google/
-git clone https://github.com/tensorflow/tensorflow.git
- cd tensorflow/
- git checkout fcc4b966f1265f466e82617020af93670141b009
-```
-
## Build Arm NN
* Clone Arm NN source code:
@@ -159,13 +150,6 @@ git checkout branches/armnn_20_02
git pull
```
-* Generate TensorFlow protobuf definitions:
-```bash
-cd ~/armnn-devenv/google/tensorflow
-~/armnn-devenv/armnn/scripts/generate_tensorflow_protobuf.sh \
- $HOME/armnn-devenv/google/tf_pb $HOME/armnn-devenv/google/x86_pb_install
-```
-
* Build Arm NN:
(Requires CMake if not previously installed: `sudo apt install cmake`)
@@ -185,7 +169,6 @@ cmake .. \
-DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build \
-DBOOST_ROOT=$HOME/armnn-devenv/boost/install/ \
-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \
- -DTF_GENERATED_SOURCES=$HOME/armnn-devenv/google/tf_pb/ -DBUILD_TF_PARSER=1 \
-DPROTOBUF_ROOT=$HOME/armnn-devenv/google/arm64_pb_install/
```
@@ -236,7 +219,6 @@ make
* Push the build results to an Android device and make symbolic links for shared libraries:
Currently adb version we have used for testing is 1.0.41.
```bash
-adb push libarmnnTfParser.so /data/local/tmp/
adb push libarmnn.so /data/local/tmp/
adb push libtimelineDecoder.so /data/local/tmp/
adb push UnitTests /data/local/tmp/
diff --git a/BuildGuideCrossCompilation.md b/BuildGuideCrossCompilation.md
index 961153ceef..0f42f9e01a 100644
--- a/BuildGuideCrossCompilation.md
+++ b/BuildGuideCrossCompilation.md
@@ -3,11 +3,9 @@
- [Introduction](#introduction)
- [Cross-compiling ToolChain](#cross-compiling-toolchain)
- [Build and install Google's Protobuf library](#build-and-install-google-s-protobuf-library)
-- [Build Caffe for x86_64](#build-caffe-for-x86-64)
- [Build Boost library for arm64](#build-boost-library-for-arm64)
- [Build Compute Library](#build-compute-library)
- [Download ArmNN](#download-armnn)
-- [Build Tensorflow](#build-tensorflow)
- [Build Flatbuffer](#build-flatbuffer)
- [Build Onnx](#build-onnx)
- [Build TfLite](#build-tflite)
@@ -19,7 +17,7 @@
## Introduction
These are the step by step instructions on Cross-Compiling Arm NN under an x86_64 system to target an Arm64 system. This build flow has been tested with Ubuntu 16.04.
-The instructions assume you are using a bash shell and show how to build the Arm NN core library, Boost, Protobuf, Caffe, Tensorflow, Tflite, Flatbuffer and Compute Libraries.
+The instructions assume you are using a bash shell and show how to build the Arm NN core library, Boost, Protobuf, Tflite, Flatbuffer and Compute Libraries.
Start by creating a directory to contain all components:
'''
@@ -67,48 +65,6 @@ make install -j16
cd ..
```
-## Build Caffe for x86_64
-* Ubuntu 16.04 installation. These steps are taken from the full Caffe installation documentation at: http://caffe.berkeleyvision.org/install_apt.html
-* Install dependencies:
-```bash
-sudo apt-get install libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev
-sudo apt-get install --no-install-recommends libboost-all-dev
-sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
-sudo apt-get install libopenblas-dev
-sudo apt-get install libatlas-base-dev
-```
-* Download Caffe from: https://github.com/BVLC/caffe. We have tested using tag 1.0
-```bash
-cd $HOME/armnn-devenv
-git clone https://github.com/BVLC/caffe.git
-cd caffe
-git checkout eeebdab16155d34ff8f5f42137da7df4d1c7eab0
-cp Makefile.config.example Makefile.config
-```
-* Adjust Makefile.config as necessary for your environment, for example:
-```
-#CPU only version:
-CPU_ONLY := 1
-
-#Add hdf5 and protobuf include and library directories (Replace $HOME with explicit /home/username dir):
-INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ $(HOME)/armnn-devenv/google/x86_64_pb_install/include/
-LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/ $(HOME)/armnn-devenv/google/x86_64_pb_install/lib/
-```
-* Setup environment:
-```bash
-export PATH=$HOME/armnn-devenv/google/x86_64_pb_install/bin/:$PATH
-export LD_LIBRARY_PATH=$HOME/armnn-devenv/google/x86_64_pb_install/lib/:$LD_LIBRARY_PATH
-```
-* Compilation with Make:
-```bash
-make all
-make test
-make runtest
-# These should all run without errors
-```
-
-* caffe.pb.h and caffe.pb.cc will be needed when building Arm NN's Caffe Parser
-
## Build Boost library for arm64
* Build Boost library for arm64
Download Boost version 1.64 from http://www.boost.org/doc/libs/1_64_0/more/getting_started/unix-variants.html
@@ -153,16 +109,6 @@ git checkout branches/armnn_21_02
git pull
```
-## Build Tensorflow
-* Building Tensorflow version 2.3.1:
-```bash
-cd $HOME/armnn-devenv
-git clone https://github.com/tensorflow/tensorflow.git
-cd tensorflow/
-git checkout fcc4b966f1265f466e82617020af93670141b009
-../armnn/scripts/generate_tensorflow_protobuf.sh ../tensorflow-protobuf ../google/x86_64_pb_install
-```
-
## Build Flatbuffer
* Building Flatbuffer version 1.12.0
```bash
@@ -206,9 +152,12 @@ onnx/onnx.proto --proto_path=. --proto_path=../google/x86_64_pb_install/include
```
## Build TfLite
-* Building TfLite
+* Building TfLite (Tensorflow version 2.3.1)
```bash
cd $HOME/armnn-devenv
+git clone https://github.com/tensorflow/tensorflow.git
+cd tensorflow/
+git checkout fcc4b966f1265f466e82617020af93670141b009
mkdir tflite
cd tflite
cp ../tensorflow/tensorflow/lite/schema/schema.fbs .
@@ -231,12 +180,8 @@ CXX=aarch64-linux-gnu-g++ CC=aarch64-linux-gnu-gcc cmake .. \
-DARMCOMPUTE_BUILD_DIR=$HOME/armnn-devenv/ComputeLibrary/build/ \
-DBOOST_ROOT=$HOME/armnn-devenv/boost_arm64_install/ \
-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \
--DCAFFE_GENERATED_SOURCES=$HOME/armnn-devenv/caffe/build/src \
--DBUILD_CAFFE_PARSER=1 \
-DONNX_GENERATED_SOURCES=$HOME/armnn-devenv/onnx \
-DBUILD_ONNX_PARSER=1 \
--DTF_GENERATED_SOURCES=$HOME/armnn-devenv/tensorflow-protobuf \
--DBUILD_TF_PARSER=1 \
-DBUILD_TF_LITE_PARSER=1 \
-DTF_LITE_GENERATED_PATH=$HOME/armnn-devenv/tflite \
-DFLATBUFFERS_ROOT=$HOME/armnn-devenv/flatbuffers-arm64 \
@@ -394,14 +339,9 @@ sudo ldconfig
<br><br>
### Undefined references to google::protobuf:: functions
-* When compiling Arm NN there are multiple errors of the following type:
-```
-libarmnnCaffeParser.so: undefined reference to `google::protobuf:*
-```
* Missing or out of date protobuf compilation libraries.
Use the command 'protoc --version' to check which version of protobuf is available (version 3.12.0 is required).
Follow the instructions above to install protobuf 3.12.0
- Note this will require you to recompile Caffe for x86_64
<br><br>
### Errors on strict-aliasing rules when compiling the Compute Library
diff --git a/README.md b/README.md
index cfa981309a..4d65b8f2ce 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Arm NN SDK utilizes the Compute Library to target programmable cores, such as Co
as efficiently as possible. To target Ethos NPUs the NPU-Driver is utilized. We also welcome new contributors to provide
their [own driver and backend](src/backends/README.md). Note, Arm NN does not provide support for Cortex-M CPUs.
-The latest release supports models created with **Caffe**, **TensorFlow**, **TensorFlow Lite** (TfLite) and **ONNX**.
+The latest release supports models created with **TensorFlow Lite** (TfLite) and **ONNX**.
Arm NN analysis a given model and replaces the operations within it with implementations particularly designed for the
hardware you want to execute it on. This results in a great boost of execution speed. How much faster your neural
network can be executed depends on the operations it contains and the available hardware. Below you can see the speedup
@@ -33,7 +33,7 @@ to build for a wide variety of target platforms, from a wide variety of host env
## Getting started: Software tools overview
-Depending on what kind of framework (Tensorflow, Caffe, ONNX) you've been using to create your model there are multiple
+Depending on what kind of framework (Tensorflow Lite, ONNX) you've been using to create your model there are multiple
software tools available within Arm NN that can serve your needs.
Generally, there is a **parser** available **for each supported framework**. Each parser allows you to run models from
diff --git a/docker/x86_64/Dockerfile b/docker/x86_64/Dockerfile
index 684b5cf34b..3a17635fea 100644
--- a/docker/x86_64/Dockerfile
+++ b/docker/x86_64/Dockerfile
@@ -95,22 +95,6 @@ RUN cd $HOME/google/protobuf-3.12.0 && \
--with-protoc=$HOME/armnn-devenv/google/x86_64_pb_install/bin/protoc && \
make install -j$(nproc)
-# Build Caffe for x86_64
-# Dep Install
-RUN apt-get update && apt-get install -y \
- libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev \
- --no-install-recommends libboost-all-dev \
- libgflags-dev libgoogle-glog-dev liblmdb-dev \
- libopenblas-dev \
- libatlas-base-dev
-
-
-# Makefile update
-# To Do: Don't copy the Local Make file to docker
-# RUN cd $HOME/caffe/ && rm Makefile.config.example
-COPY Makefile.config /tmp
-RUN mv /tmp/Makefile.config $HOME/caffe/
-
# Dep Error - Bug ARMNN
RUN apt-get update && apt-get install -y \
python-numpy
@@ -200,8 +184,6 @@ RUN cd $HOME/armnn-devenv && \
-DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMNNREF=1 \
-DONNX_GENERATED_SOURCES=$HOME/armnn-devenv/onnx \
-DBUILD_ONNX_PARSER=1 \
- -DTF_GENERATED_SOURCES=$HOME/armnn-devenv/tensorflow-protobuf \
- -DBUILD_TF_PARSER=1 \
-DBUILD_TF_LITE_PARSER=1 \
-DTF_LITE_GENERATED_PATH=$HOME/armnn-devenv/tflite \
-DFLATBUFFERS_ROOT=$HOME/armnn-devenv/flatbuffers-arm64 \
diff --git a/docker/x86_64/Makefile.config b/docker/x86_64/Makefile.config
deleted file mode 100644
index 7f9b196a30..0000000000
--- a/docker/x86_64/Makefile.config
+++ /dev/null
@@ -1,125 +0,0 @@
-## Refer to http://caffe.berkeleyvision.org/installation.html
-# Contributions simplifying and improving our build system are welcome!
-
-# cuDNN acceleration switch (uncomment to build with cuDNN).
-# USE_CUDNN := 1
-
-# CPU-only switch (uncomment to build without GPU support).
-CPU_ONLY := 1
-
-# uncomment to disable IO dependencies and corresponding data layers
-# USE_OPENCV := 0
-# USE_LEVELDB := 0
-# USE_LMDB := 0
-# This code is taken from https://github.com/sh1r0/caffe-android-lib
-# USE_HDF5 := 0
-
-# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
-# You should not set this flag if you will be reading LMDBs with any
-# possibility of simultaneous read and write
-# ALLOW_LMDB_NOLOCK := 1
-
-# Uncomment if you're using OpenCV 3
-# OPENCV_VERSION := 3
-
-# To customize your choice of compiler, uncomment and set the following.
-# N.B. the default for Linux is g++ and the default for OSX is clang++
-# CUSTOM_CXX := g++
-
-# CUDA directory contains bin/ and lib/ directories that we need.
-CUDA_DIR := /usr/local/cuda
-# On Ubuntu 14.04, if cuda tools are installed via
-# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
-# CUDA_DIR := /usr
-
-# CUDA architecture setting: going with all of them.
-# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
-# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
-# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
-CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
- -gencode arch=compute_20,code=sm_21 \
- -gencode arch=compute_30,code=sm_30 \
- -gencode arch=compute_35,code=sm_35 \
- -gencode arch=compute_50,code=sm_50 \
- -gencode arch=compute_52,code=sm_52 \
- -gencode arch=compute_60,code=sm_60 \
- -gencode arch=compute_61,code=sm_61 \
- -gencode arch=compute_61,code=compute_61
-
-# BLAS choice:
-# atlas for ATLAS (default)
-# mkl for MKL
-# open for OpenBlas
-BLAS := atlas
-# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
-# Leave commented to accept the defaults for your choice of BLAS
-# (which should work)!
-# BLAS_INCLUDE := /path/to/your/blas
-# BLAS_LIB := /path/to/your/blas
-
-# Homebrew puts openblas in a directory that is not on the standard search path
-# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
-# BLAS_LIB := $(shell brew --prefix openblas)/lib
-
-# This is required only if you will compile the matlab interface.
-# MATLAB directory should contain the mex binary in /bin.
-# MATLAB_DIR := /usr/local
-# MATLAB_DIR := /Applications/MATLAB_R2012b.app
-
-# NOTE: this is required only if you will compile the python interface.
-# We need to be able to find Python.h and numpy/arrayobject.h.
-PYTHON_INCLUDE := /usr/include/python2.7 \
- /usr/lib/python2.7/dist-packages/numpy/core/include
-# Anaconda Python distribution is quite popular. Include path:
-# Verify anaconda location, sometimes it's in root.
-# ANACONDA_HOME := $(HOME)/anaconda
-# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
- # $(ANACONDA_HOME)/include/python2.7 \
- # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
-
-# Uncomment to use Python 3 (default is Python 2)
-# PYTHON_LIBRARIES := boost_python3 python3.5m
-# PYTHON_INCLUDE := /usr/include/python3.5m \
-# /usr/lib/python3.5/dist-packages/numpy/core/include
-
-# We need to be able to find libpythonX.X.so or .dylib.
-PYTHON_LIB := /usr/lib
-# PYTHON_LIB := $(ANACONDA_HOME)/lib
-
-# Homebrew installs numpy in a non standard path (keg only)
-# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
-# PYTHON_LIB += $(shell brew --prefix numpy)/lib
-
-# Uncomment to support layers written in Python (will link against Python libs)
-# WITH_PYTHON_LAYER := 1
-
-# Whatever else you find you need goes here.
-INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ \
- /root/armnn-devenv/google/x86_64_pb_install/include/
-LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/ \
- /root/armnn-devenv/google/x86_64_pb_install/lib/
-
-# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
-# INCLUDE_DIRS += $(shell brew --prefix)/include
-# LIBRARY_DIRS += $(shell brew --prefix)/lib
-
-# NCCL acceleration switch (uncomment to build with NCCL)
-# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
-# USE_NCCL := 1
-
-# Uncomment to use `pkg-config` to specify OpenCV library paths.
-# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
-# USE_PKG_CONFIG := 1
-
-# N.B. both build and distribute dirs are cleared on `make clean`
-BUILD_DIR := build
-DISTRIBUTE_DIR := distribute
-
-# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
-# DEBUG := 1
-
-# The ID of the GPU that 'make runtest' will use to run unit tests.
-TEST_GPUID := 0
-
-# enable pretty build (comment to see full commands)
-Q ?= @
diff --git a/docs/01_00_software_tools.dox b/docs/01_00_software_tools.dox
index 9398b83ad8..e560f44882 100644
--- a/docs/01_00_software_tools.dox
+++ b/docs/01_00_software_tools.dox
@@ -16,7 +16,6 @@ other helpful information in each section.
- @subpage md_python_pyarmnn_README
- @subpage serializer
- @subpage deserializer
- - @subpage md_src_armnnQuantizer_README
- @subpage md_src_armnnConverter_README
- @subpage md_tests_ImageCSVFileGenerator_README
- @subpage md_tests_ImageTensorGenerator_README
@@ -34,8 +33,6 @@ namespace armnn
@page md_python_pyarmnn_README PyArmNN
-@page md_src_armnnQuantizer_README Quantizer
-
@page md_src_armnnConverter_README Converter
@page md_tests_ModelAccuracyTool-Armnn_README ModelAccuracyTool
diff --git a/docs/01_01_parsers.dox b/docs/01_01_parsers.dox
index 6607921585..af87eba7af 100644
--- a/docs/01_01_parsers.dox
+++ b/docs/01_01_parsers.dox
@@ -10,67 +10,14 @@ namespace armnn
@tableofcontents
Execute models from different machine learning platforms efficiently with our parsers. Simply choose a parser according
-to the model you want to run e.g. If you've got a model in tensorflow format (<model_name>.pb) use our tensorflow-parser.
+to the model you want to run e.g. If you've got a model in onnx format (<model_name>.onnx) use our onnx-parser.
If you would like to run a Tensorflow Lite (TfLite) model you probably also want to take a look at our @ref delegate.
All parsers are written in C++ but it is also possible to use them in python. For more information on our python
bindings take a look into the @ref md_python_pyarmnn_README section.
-
-
-@section S4_caffe_parser Arm NN Caffe Parser
-
-`armnnCaffeParser` is a library for loading neural networks defined in Caffe protobuf files into the Arm NN runtime.
-
-Please note that certain deprecated Caffe features are not supported by the armnnCaffeParser. If you think that Arm NN
-should be able to load your model according to the list of supported layers, but you are getting strange error
-messages, then try upgrading your model to the latest format using Caffe, either by saving it to a new file or using
-the upgrade utilities in `caffe/tools`.
-
-\b NOTE: The Arm NN Caffe Parser is deprecated in Arm NN 21.02 and will be removed in 21.05.
-
-## Caffe layers supported by the Arm NN SDK
-This reference guide provides a list of Caffe layers the Arm NN SDK currently supports.
-
-### Although some other neural networks might work, Arm tests the Arm NN SDK with Caffe implementations of the following neural networks:
-
-- AlexNet.
-- Cifar10.
-- Inception-BN.
-- Resnet_50, Resnet_101 and Resnet_152.
-- VGG_CNN_S, VGG_16 and VGG_19.
-- Yolov1_tiny.
-- Lenet.
-- MobileNetv1.
-- SqueezeNet v1.0 and SqueezeNet v1.1
-
-### The Arm NN SDK supports the following machine learning layers for Caffe networks:
-
-- Argmax, excluding the top_k and out_max_val parameters.
-- BatchNorm, in inference mode.
-- Convolution, excluding Weight Filler, Bias Filler, Engine, Force nd_im2col, and Axis parameters.
-- Deconvolution, excluding the Dilation Size, Weight Filler, Bias Filler, Engine, Force nd_im2col, and Axis parameters.
-
- Caffe doesn't support depthwise convolution, the equivalent layer is implemented through the notion of groups. ArmNN supports groups this way:
- - when group=1, it is a normal conv2d
- - when group=#input_channels, we can replace it by a depthwise convolution
- - when group>1 && group<#input_channels, we need to split the input into the given number of groups, apply a separate convolution and then merge the results
-- Concat, along the channel dimension only.
-- Dropout, in inference mode.
-- Eltwise, excluding the coeff parameter.
-- Inner Product, excluding the Weight Filler, Bias Filler, Engine, and Axis parameters.
-- Input.
-- LRN, excluding the Engine parameter.
-- Pooling, excluding the Stochastic Pooling and Engine parameters.
-- ReLU.
-- Scale.
-- Softmax, excluding the Axis and Engine parameters.
-- Split.
-
-More machine learning layers will be supported in future releases.
-
-<br/><br/><br/><br/>
+<br/><br/>
@@ -229,125 +176,6 @@ Arm tested these operators with the following TensorFlow Lite neural network:
- Quantized Yolo v3 (CpuRef)
More machine learning operators will be supported in future releases.
-<br/><br/><br/><br/>
-
-
-
-
-@section S7_tf_parser ArmNN Tensorflow Parser
-
-`armnnTfParser` is a library for loading neural networks defined by TensorFlow protobuf files into the Arm NN runtime.
-
-\b NOTE: The Arm NN Tensorflow Parser is deprecated in Arm NN 21.02 and will be removed in 21.05.
-
-## TensorFlow operators that the Arm NN SDK supports
-
-This reference guide provides a list of TensorFlow operators the Arm NN SDK currently supports.
-
-The Arm NN SDK TensorFlow parser currently only supports fp32 operators.
-
-### Fully supported
-
-- avg_pool
- - See the TensorFlow [avg_pool documentation](https://www.tensorflow.org/api_docs/python/tf/nn/avg_pool) for more information.
-- bias_add
- - See the TensorFlow [bias_add documentation](https://www.tensorflow.org/api_docs/python/tf/nn/bias_add) for more information.
-- conv2d
- - See the TensorFlow [conv2d documentation](https://www.tensorflow.org/api_docs/python/tf/nn/conv2d) for more information.
-- expand_dims
- - See the TensorFlow [expand_dims documentation](https://www.tensorflow.org/api_docs/python/tf/expand_dims) for more information.
-- gather
- - See the TensorFlow [gather documentation](https://www.tensorflow.org/api_docs/python/tf/gather) for more information.
-- identity
- - See the TensorFlow [identity documentation](https://www.tensorflow.org/api_docs/python/tf/identity) for more information.
-- local_response_normalization
- - See the TensorFlow [local_response_normalization documentation](https://www.tensorflow.org/api_docs/python/tf/nn/local_response_normalization) for more information.
-- max_pool
- - See the TensorFlow [max_pool documentation](https://www.tensorflow.org/api_docs/python/tf/nn/max_pool) for more information.
-- placeholder
- - See the TensorFlow [placeholder documentation](https://www.tensorflow.org/api_docs/python/tf/placeholder) for more information.
-- reduce_mean
- - See the TensorFlow [reduce_mean documentation](https://www.tensorflow.org/api_docs/python/tf/reduce_mean) for more information.
-- relu
- - See the TensorFlow [relu documentation](https://www.tensorflow.org/api_docs/python/tf/nn/relu) for more information.
-- relu6
- - See the TensorFlow [relu6 documentation](https://www.tensorflow.org/api_docs/python/tf/nn/relu6) for more information.
-- rsqrt
- - See the TensorFlow [rsqrt documentation](https://www.tensorflow.org/api_docs/python/tf/math/rsqrt) for more information.
-- shape
- - See the TensorFlow [shape documentation](https://www.tensorflow.org/api_docs/python/tf/shape) for more information.
-- sigmoid
- - See the TensorFlow [sigmoid documentation](https://www.tensorflow.org/api_docs/python/tf/sigmoid) for more information.
-- softplus
- - See the TensorFlow [softplus documentation](https://www.tensorflow.org/api_docs/python/tf/nn/softplus) for more information.
-- squeeze
- - See the TensorFlow [squeeze documentation](https://www.tensorflow.org/api_docs/python/tf/squeeze) for more information.
-- tanh
- - See the TensorFlow [tanh documentation](https://www.tensorflow.org/api_docs/python/tf/tanh) for more information.
-- transpose
- - See the TensorFlow [transpose documentation](https://www.tensorflow.org/api_docs/python/tf/transpose) for more information.
-
-### Partially supported
-
-- add
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of scalars and 1D tensors. See the TensorFlow [add operator documentation](https://www.tensorflow.org/api_docs/python/tf/add) for more information.
-- add_n
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of scalars and 1D tensors. See the TensorFlow [add operator documentation](https://www.tensorflow.org/api_docs/python/tf/add_n) for more information.
-- concat
- - Arm NN supports concatenation along the channel dimension for data formats NHWC and NCHW.
-- constant
- - The parser does not support the optional `shape` argument. It always infers the shape of the output tensor from `value`. See the TensorFlow [constant documentation](https://www.tensorflow.org/api_docs/python/tf/constant) for further information.
-- depthwise_conv2d_native
- - The parser only supports a dilation rate of (1,1,1,1). See the TensorFlow [depthwise_conv2d_native documentation](https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d_native) for more information.
-- equal
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of 4D and 1D tensors. See the TensorFlow [equal operator documentation](https://www.tensorflow.org/api_docs/python/tf/math/equal) for more information.
-- fused_batch_norm
- - The parser does not support training outputs. See the TensorFlow [fused_batch_norm documentation](https://www.tensorflow.org/api_docs/python/tf/nn/fused_batch_norm) for more information.
-- greater
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of 4D and 1D tensors. See the TensorFlow [greater operator documentation](https://www.tensorflow.org/api_docs/python/tf/math/greater) for more information.
-- matmul
- - The parser only supports constant weights in a fully connected layer. See the TensorFlow [matmul documentation](https://www.tensorflow.org/api_docs/python/tf/matmul) for more information.
-- maximum
- where maximum is used in one of the following ways
- - max(mul(a, x), x)
- - max(mul(x, a), x)
- - max(x, mul(a, x))
- - max(x, mul(x, a)
- This is interpreted as a ActivationLayer with a LeakyRelu activation function. Any other usage of max will result in the insertion of a simple maximum layer. The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting). See the TensorFlow [maximum documentation](https://www.tensorflow.org/api_docs/python/tf/maximum) for more information.
-- minimum
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of 4D and 1D tensors. See the TensorFlow [minimum operator documentation](https://www.tensorflow.org/api_docs/python/tf/math/minimum) for more information.
-- multiply
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of scalars and 1D tensors. See the TensorFlow [multiply documentation](https://www.tensorflow.org/api_docs/python/tf/multiply) for more information.
-- pack/stack
- - See the TensorFlow [stack documentation](https://www.tensorflow.org/api_docs/python/tf/stack) for more information.
-- pad
- - Only supports tf.pad function with mode = 'CONSTANT' and constant_values = 0. See the TensorFlow [pad documentation](https://www.tensorflow.org/api_docs/python/tf/pad) for more information.
-- realdiv
- - The parser does not support all forms of [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of scalars and 1D tensors. See the TensorFlow [realdiv documentation](https://www.tensorflow.org/api_docs/python/tf/realdiv) for more information.
-- reshape
- - The parser does not support reshaping to or from 4D. See the TensorFlow [reshape documentation](https://www.tensorflow.org/api_docs/python/tf/reshape) for more information.
-- resize_images
- - The parser only supports `ResizeMethod.BILINEAR` with `align_corners=False`. See the TensorFlow [resize_images documentation](https://www.tensorflow.org/api_docs/python/tf/image/resize_images) for more information.
-- softmax
- - The parser only supports 2D inputs and does not support selecting the `softmax` dimension. See the TensorFlow [softmax documentation](https://www.tensorflow.org/api_docs/python/tf/nn/softmax) for more information.
-- split
- - Arm NN supports split along the channel dimension for data formats NHWC and NCHW.
-- strided_slice
- - See the TensorFlow [strided_slice documentation](https://www.tensorflow.org/api_docs/python/tf/strided_slice) for more information.
-- subtract
- - The parser does not support all forms of broadcasting [broadcast composition](https://www.tensorflow.org/performance/xla/broadcasting), only broadcasting of scalars and 1D tensors. See the TensorFlow [subtract documentation](https://www.tensorflow.org/api_docs/python/tf/math/subtract) for more information.
-
-
-## Tested networks
-
-Arm tests these operators with the following TensorFlow fp32 neural networks:
-- Lenet
-- mobilenet_v1_1.0_224. The Arm NN SDK only supports the non-quantized version of the network. See the [MobileNet_v1 documentation](https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md) for more information on quantized networks.
-- inception_v3. The Arm NN SDK only supports the official inception_v3 transformed model. See the TensorFlow documentation on [preparing models for mobile deployment](https://www.tensorflow.org/mobile/prepare_models) for more information on how to transform the inception_v3 network.
-- Simple MNIST. For more information check out the [tutorial](https://developer.arm.com/technologies/machine-learning-on-arm/developer-material/how-to-guides/deploying-a-tensorflow-mnist-model-on-arm-nn) on the Arm Developer portal.
-- ResNet v2 50 implementation from the [TF Slim model zoo](https://github.com/tensorflow/models/tree/master/research/slim)
-
-More machine learning operators will be supported in future releases.
**/
}
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 31f06f70a5..d405e28a86 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -827,7 +827,6 @@ INPUT = ./docs/01_00_software_tools.dox \
./python/pyarmnn/README.md \
./include/ \
./src/ \
- ./src/armnnQuantizer/README.md \
./src/armnnConverter/README.md \
./src/backends/README.md \
./src/dynamic/README.md \
diff --git a/docs/FAQ.md b/docs/FAQ.md
index 273ef92168..4070541d52 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -45,8 +45,4 @@ This problem has previously been reported to the boostorg GitHub project. The so
ArmNN fails to build on Ubuntu 20.04
---------------------------------------------------------
-The compiler version update on Ubuntu 20.04 resulted in build errors in Flat buffers 1.10.0. Update to Flatbuffers 1.12.0 to resolve this problem. In addition when building flatbuffers specify -fPIC CXX flag to allow the libraries to be used in our shared objects. Without this the the ArmNN build can fail with libflatbuffers.a(util.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN11flatbuffers9DirExistsEPKc' can not be used when making a shared object; recompile with -fPIC
-
-Caffe fails to build on Ubuntu 20.04
----------------------------------------------------------
-The default version of OpenCV on Ubuntu 20.04 is 4.2. This appears to be incomatible with Caffe. Building results in missing definitions of "CV_LOAD_IMAGE_COLOR". When building Caffe to use with ArmNN you can disable OpenCV. In the Makefile.config uncomment "# USE_OPENCV := 0".
+The compiler version update on Ubuntu 20.04 resulted in build errors in Flat buffers 1.10.0. Update to Flatbuffers 1.12.0 to resolve this problem. In addition when building flatbuffers specify -fPIC CXX flag to allow the libraries to be used in our shared objects. Without this the the ArmNN build can fail with libflatbuffers.a(util.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN11flatbuffers9DirExistsEPKc' can not be used when making a shared object; recompile with -fPIC \ No newline at end of file
diff --git a/python/pyarmnn/README.md b/python/pyarmnn/README.md
index 00c0dfa91b..56ac78bb76 100644
--- a/python/pyarmnn/README.md
+++ b/python/pyarmnn/README.md
@@ -170,7 +170,7 @@ Create a parser object and load your model file.
import pyarmnn as ann
import imageio
-# ONNX, Caffe and TF parsers also exist.
+# An ONNX parser also exists.
parser = ann.ITfLiteParser()
network = parser.CreateNetworkFromBinaryFile('./model.tflite')
```
diff --git a/src/armnn/layers/Pooling2dLayer.cpp b/src/armnn/layers/Pooling2dLayer.cpp
index dbeee840e8..0deafaacdd 100644
--- a/src/armnn/layers/Pooling2dLayer.cpp
+++ b/src/armnn/layers/Pooling2dLayer.cpp
@@ -78,7 +78,7 @@ std::vector<TensorShape> Pooling2dLayer::InferOutputShapes(const std::vector<Ten
}
// MakeS sure that border operations will start from inside the input and not the padded area.
- // This is what both Caffe and CL do...
+ // This is what CL does...
if ((size - 1)*stride >= inSize + lowPad)
{
--size;
diff --git a/src/armnnCaffeParser/README.md b/src/armnnCaffeParser/README.md
deleted file mode 100644
index 194254ce05..0000000000
--- a/src/armnnCaffeParser/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Arm NN Caffe parser
-
-`armnnCaffeParser` is a library for loading neural networks defined in Caffe protobuf files into the Arm NN runtime.
-
-For more information, a list of supported Caffe layers, and the networks that have been tested,
-please visit our [doxygen documentation](https://arm-software.github.io/armnn/latest/parsers.xhtml#S4_caffe_parser).
diff --git a/src/armnnConverter/README.md b/src/armnnConverter/README.md
index 81322bc016..6c8ab27458 100644
--- a/src/armnnConverter/README.md
+++ b/src/armnnConverter/README.md
@@ -1,5 +1,5 @@
# The ArmnnConverter
The `ArmnnConverter` is a program for converting neural networks from other formats to Arm NN format.
-Currently the program supports models in Caffe, Onnx, Tensorflow Protocol Buffers and Tensorflow Lite FlatBuffers formats.
+Currently the program supports models in Onnx and Tensorflow Lite FlatBuffers formats.
Run the program with no arguments to see command-line help.
diff --git a/src/armnnTfParser/README.md b/src/armnnTfParser/README.md
deleted file mode 100644
index 9894fa9ce7..0000000000
--- a/src/armnnTfParser/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# The Arm NN TensorFlow parser
-
-`armnnTfParser` is a library for loading neural networks defined by TensorFlow protobuf files into the Arm NN runtime.
-
-For more information, a list of supported TensorFlow layers, and the networks that have been tested,
-please visit our [doxygen documentation](https://arm-software.github.io/armnn/latest/parsers.xhtml#S7_tf_parser). \ No newline at end of file
diff --git a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp
index 8f1cb0b599..944efec17f 100644
--- a/tests/ExecuteNetwork/ExecuteNetworkParams.cpp
+++ b/tests/ExecuteNetwork/ExecuteNetworkParams.cpp
@@ -49,14 +49,6 @@ void CheckModelFormat(const std::string& modelFormat)
"built with Onnx parser support.");
#endif
}
- else if (modelFormat.find("tensorflow") != std::string::npos)
- {
-#if defined(ARMNN_TF_PARSER)
-#else
- throw armnn::InvalidArgumentException("Can't run model in onnx format without a "
- "built with Tensorflow parser support.");
-#endif
- }
else if (modelFormat.find("tflite") != std::string::npos)
{
#if defined(ARMNN_TF_LITE_PARSER)
@@ -75,7 +67,7 @@ void CheckModelFormat(const std::string& modelFormat)
else
{
throw armnn::InvalidArgumentException(fmt::format("Unknown model format: '{}'. "
- "Please include 'tensorflow', 'tflite' or 'onnx'",
+ "Please include 'tflite' or 'onnx'",
modelFormat));
}
}
diff --git a/tests/ImageTensorGenerator/ImageTensorGenerator.cpp b/tests/ImageTensorGenerator/ImageTensorGenerator.cpp
index 34dbe1e352..5417eb4055 100644
--- a/tests/ImageTensorGenerator/ImageTensorGenerator.cpp
+++ b/tests/ImageTensorGenerator/ImageTensorGenerator.cpp
@@ -164,7 +164,7 @@ public:
("f,model-format",
"Format of the intended model file that uses the images."
"Different formats have different image normalization styles."
- "Accepted values (tensorflow, tflite)",
+ "Accepted value (tflite)",
cxxopts::value<std::string>(m_ModelFormat))
("o,outfile",
"Output raw tensor file path",
@@ -235,11 +235,7 @@ public:
unsigned int GetNewHeight() {return static_cast<unsigned int>(std::stoi(m_NewHeight));}
SupportedFrontend GetModelFormat()
{
- if (m_ModelFormat == "tensorflow")
- {
- return SupportedFrontend::TensorFlow;
- }
- else if (m_ModelFormat == "tflite")
+ if (m_ModelFormat == "tflite")
{
return SupportedFrontend::TFLite;
}
diff --git a/tests/ImageTensorGenerator/README.md b/tests/ImageTensorGenerator/README.md
index b6bc3126b4..312fcddc5d 100644
--- a/tests/ImageTensorGenerator/README.md
+++ b/tests/ImageTensorGenerator/README.md
@@ -9,7 +9,7 @@ To build ModelAccuracyTool, pass the following options to Cmake:
|Cmd:|||
| ---|---|---|
| -h | --help | Display help messages |
-| -f | --model-format | Format of the intended model file that uses the images.Different formats have different image normalization styles.Accepted values (caffe, tensorflow, tflite) |
+| -f | --model-format | Format of the intended model file that uses the images.Different formats have different image normalization styles.Accepted values (tflite) |
| -i | --infile | Input image file to generate tensor from |
| -o | --outfile | Output raw tensor file path |
| -z | --output-type | The data type of the output tensors.If unset, defaults to "float" for all defined inputs. Accepted values (float, int or qasymm8)
diff --git a/tests/ModelAccuracyTool-Armnn/README.md b/tests/ModelAccuracyTool-Armnn/README.md
index 7a29bc8aa5..6383f33096 100644
--- a/tests/ModelAccuracyTool-Armnn/README.md
+++ b/tests/ModelAccuracyTool-Armnn/README.md
@@ -15,7 +15,7 @@ To build ModelAccuracyTool, pass the following options to Cmake:
| ---|---|---|
| -h | --help | Display help messages |
| -m | --model-path | Path to armnn format model file |
-| -f | --model-format | The model format. Supported values: caffe, tensorflow, tflite |
+| -f | --model-format | The model format. Supported values: tflite |
| -i | --input-name | Identifier of the input tensors in the network separated by comma |
| -o | --output-name | Identifier of the output tensors in the network separated by comma |
| -d | --data-dir | Path to directory containing the ImageNet test data |