Erstellen Sie TensorFlow 2.3.1 aus dem Quellcode unter Ubuntu20.04 LTS und erstellen Sie eine gemeinsam genutzte Bibliothek in C ++

Auslöser der Dinge

Seit dem letzten Artikel ist ein Jahr vergangen, und die Informationen sind veraltet, daher habe ich sie aktualisiert. Insbesondere die Anzahl der PV steigt nicht an: Stirnrunzeln2:

Änderungsprotokoll

--2020 / 11/18: Neu veröffentlicht als Ubuntu20.04 LTS & TensorFlow 2.3.1.

PC verwendet

cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Vorbereitungen

Nachfolgende Befehle werden zeilenweise von oben ausgeführt, sofern nicht anders angegeben.

--Installation der erforderlichen Materialien

sudo apt install -y build-essential 
sudo apt install -y libffi-dev
sudo apt install -y libssl-dev 
sudo apt install -y zlib1g-dev
sudo apt install -y liblzma-dev
sudo apt install -y libbz2-dev libreadline-dev libsqlite3-dev 
sudo apt install -y git
sudo apt install -y openjdk-11-jdk
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

#Für Bash-Leute,.zshrc "bis".Wechseln Sie zu "bashrc"
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

--Installation von Python 3.9.0

pyenv install 3.9.0
pyenv global 3.9.0
python -V # 3.9.OK, wenn 0 herauskommt

--Installieren Sie virtualenv

pip install virtualenv
mkdir virtualEnv # (Irgendein)
cd virtualEnv # (Irgendein)
virtualenv py3.9.0 # 「py3.9."0" ist eine beliebige Zeichenfolge
source py3.9.0/bin/activate # 「py3.9."0" ist die obige beliebige Zeichenfolge
#Um aus der Umgebung herauszukommen, geben Sie einfach "Deaktivieren" ein.

Build-Vorbereitung

--Installieren Sie das Paket auf Python für Build

#Laden Sie die virtualenv-Umgebung, bevor Sie sie ausführen

pip install -U pip numpy wheel

pip install -U keras_preprocessing --no-deps

--Installation des Build Tool Bazel

sudo apt install curl gnupg
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update
sudo apt install -y bazel-3.1.0
sudo ln -s /usr/bin/bazel-3.1.0 /usr/bin/bazel
bazel --version  # 3.1.0

Bauen

git clone --recursive https://github.com/tensorflow/tensorflow.git
git checkout v2.3.1
./configure 
#Ja oder Nein Format ist alles Nein
# [Default...]Die Verzeichnisauswahl ist das erste Python-Verzeichnis(Diesmal virtualEnv)Überprüfen Sie dies nur sorgfältig und geben Sie andernfalls das richtige Verzeichnis an. Andernfalls drücken Sie die Eingabetaste.

#Laden Sie die virtualenv-Umgebung, bevor Sie sie ausführen
bazel build --verbose_failures --config=v2 //tensorflow:libtensorflow_cc.so
bazel build --verbose_failures --config=v2 //tensorflow:libtensorflow_framework.so

Bibliotheksvorbereitung

[Project Folder]<-Diesmal "tf"
  |-include/
  |   |- tensorflow/
  |-lib/
  |-CMakeLists.txt
  |-main.cpp
cp bazel-bin/tensorflow/libtensorflow_cc.so ~/CLionProjects/tf/lib
cp bazel-bin/tensorflow/libtensorflow_cc.so.2 ~/CLionProjects/tf/lib
cp bazel-bin/tensorflow/libtensorflow_cc.so.2.3.1 cp -r third_party ~/CLionProjects/tf/include
cp bazel-bin/tensorflow/libtensorflow_framework.so ~/CLionProjects/tf/lib
cp bazel-bin/tensorflow/libtensorflow_framework.so.2 ~/CLionProjects/tf/lib
cp bazel-bin/tensorflow/libtensorflow_framework.so.2.3.1 ~/CLionProjects/tf/lib
cp -r tensorflow/c ~/CLionProjects/tf/include/tensorflow
cp -r tensorflow/cc ~/CLionProjects/tf/include/tensorflow
cp -r tensorflow/core ~/CLionProjects/tf/include/tensorflow
cp -r third_party ~/CLionProjects/tf/include                                   
cp -r bazel-tensorflow/external/eigen_archive/Eigen ~/CLionProjects/tf/include
cp -r bazel-tensorflow/external/eigen_archive/unsupported ~/CLionProjects/tf/include
cp -r third_party ~/CLionProjects/tf/include                                   

Funktionsprüfung

CmakeLists.txt


cmake_minimum_required(VERSION 3.17)
project(tf)

set(CMAKE_CXX_STANDARD 20)

link_directories(lib) <-Nachtrag
include_directories(include) <-Nachtrag

add_executable(tf main.cpp)

target_link_libraries(tf tensorflow_cc tensorflow_framework) <-Nachtrag

main.cpp


#include <iostream>
#include "tensorflow/c/c_api.h"

int main() {
    printf("TensorFlow Ver. %s\n", TF_Version());
    return 0;
}

output


TensorFlow Ver. 2.3.1

Impressionen

Die Tatsache, dass es unter Ubuntu ausgeführt werden könnte, spielt keine Rolle, ob es sich um ein Unix-System handelt, daher sollte es unter CentOS oder MacOS möglich sein. (Ich weiß es nicht)

Referenzmaterial

"Cmake Spickzettel" https://www.qoosky.io/techs/814fda555d)

"Tensorflow von der Quelle kompilieren und installieren" https://memo.saitodev.com/home/tensorflow/build/

「tensorflow source build」 https://www.tensorflow.org/install/source

「bazel」 https://docs.bazel.build/versions/master/install-ubuntu.html

"Die Geschichte der Installation von pyenv auf Ubuntu 20.04 [Aktualisiert am 18.07.2020]" https://qiita.com/neruoneru/items/1107bcdca7fa43de673d

Recommended Posts

Erstellen Sie TensorFlow 2.3.1 aus dem Quellcode unter Ubuntu20.04 LTS und erstellen Sie eine gemeinsam genutzte Bibliothek in C ++
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
Wie installiere ich die in Ubuntu verwendete Sprache und wie erstelle ich die Umgebung?
Ich habe versucht, eine C-Sprachprogrammquelle aus cURL zu generieren
Erstellen Sie openssl, apache2.4, php7.4 aus dem Quellcode auf Ubuntu-server20.04.
Externe Veröffentlichung und Anmeldung von MySQL unter Ubuntu
Protobuf- und gRPC C ++ - Umgebungskonstruktion unter Ubuntu 18.04
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu