[toc]
1 обновление Python
Унифицированная версия федеративного обучения Python — 3.6.8, поэтому она должна быть в
1 Проверьте номер версии Python
Когда Python установлен на Linux (установленный по умолчанию), вы можете проверить номер версии Python, введя простую команду:
# python -Vå
Python÷ 2.7.5
или:
# python --version
Python 2.7.5
Видно, что версия Python, которая поставляется с системой, — 2.7.5.
2 Скачать новую версию
ВходитьСтраница загрузки Python, выберите нужную версию.
Здесь я выбираю версию 3.6.8.
# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
3 декомпрессия
После завершения загрузки разархивируйте его:
# tar -zxvf Python-3.6.8.tgz
4 Конфигурация установки
ModuleNotFoundError: нет модуля с именем «_ssl»
Решение выглядит следующим образом:
(1) Сначала войдите в каталог Python-3.6.3, который представляет собой файл каталога, в который вы установили python3.6 после распаковки.
(2) перейдите в каталог Modules, найдите файлы Setup и Setup.dist и раскомментируйте следующие строки.
Изменения в настройках:
установка vim (около 51%)
Изменения в Setup.dist
vim Setup.dist (около 50%)
(3) Скомпилируйте и установите
Войдите в распакованный каталог и установите конфигурацию:
yum install openssl openssl-devel
При выполнении ./configure, если сообщается об ошибке:
configure: error: no acceptable C compiler found in $PATH
Указывает, что соответствующий компилятор не установлен. В настоящее время вам необходимо установить/обновить gcc и другие зависимости.
# yum install make gcc gcc-c++
После завершения повторите:
# ./configure --prefix=/usr/local/python3 --enable-optimizations
5 Скомпилируйте и установите
После завершения настройки можно скомпилировать:
# make
Долго ждать... когда закончите, установите:
# make install
6 Подтвердить
После успешной установки вы можете проверить версию Python:
# python -V
Python 2.7.5
# python3 -V
Python 3.5.2
Одна из них — старая версия 2.x, а другая — новая версия 3.x.
** Примечание: ** Существует ссылка на Python3 под / usr / local / bin / который указывает на Python 3.5 в каталоге Bin.
7 Установите 3.x как версию по умолчанию
Проверьте путь Python в /usr/bin. Вы можете видеть, что python связан с python 2.7, поэтому выполнение python эквивалентно выполнению python 2.7.
# ls -al /usr/bin | grep python
-rwxr-xr-x. 1 root root 11216 12月 1 2015 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 7 8月 30 12:11 python -> python2
lrwxrwxrwx. 1 root root 9 8月 30 12:11 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 python2.7
Переименуйте исходную мягкую ссылку Python:
# mv /usr/bin/python /usr/bin/python.bak
Связать python с python3:
# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
На этом этапе снова проверьте версию Python:
# python -V
Python 3.5.2
Результат — 3.x, что указывает на то, что использовался python3.
обновить пункт
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
8 Настройте ням
После обновления Python, поскольку python по умолчанию указывает на python3, yum нельзя использовать в обычном режиме.Вам необходимо отредактировать файл конфигурации yum:
# vim /usr/bin/yum
Также изменить:
# vim /usr/libexec/urlgrabber-ext-down
Измените #!/usr/bin/python на #!/usr/bin/python2.7, сохраните и выйдите.
9 Устранение неполадок SSL
Это означает, что есть проблема с установкой ssl, или ssl не установлен, что можно обнаружить по следующему
Указывает, что ssl не установлен
Решение Перейдите в файл /usr/local/python3/python-3.6.8/modules/setup в каталоге установки Python3 и удалите комментарии к следующим четырем строкам
перекомпилировать
./configure --prefix=/usr/local/python сделать сделать установку ошибка ниже
./Modules/_ssl.c:72:25: фатальная ошибка: openssl/rsa.h: Нет такого файла или каталога: Решение:
yum установить openssl-devel ./configure --prefix=/usr/local/python3 сделать && сделать установить Ошибки нет, проверь
2 Базель установка
Адрес соединения:Woohoo. Краткое описание.
Базель версии 0.26.1.
1 Установить с помощью бинарного установщика
Бинарный установщик находится в Bazelна странице релизов GitHub.
Установщик содержит двоичные файлы Bazel 1. Есть также некоторые другие библиотеки, которые необходимо установить для работы Bazel.
2 Шаг 1: Установите необходимый пакет
Сначала установите необходимые компоненты:pkg-config
,zip
,g++
,zlib1g-dev
,unzip
,иpython
.
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
3 Шаг 2: Загрузите Базель
Версия ограничена версией 0.26.1.
Следующий,bazel-<version>-installer-linux-x86_64.sh
отГитхабизСтраница выпуска БазеляЗагрузите бинарный установщик Bazel.
Введите в терминале следующее, чтобы загрузить последнюю версию (до 08 сентября 2018 г.)
wget https://github.com/bazelbuild/bazel/releases/download/0.26.1/bazel-0.26.1-installer-linux-x86_64.sh
Файл больше 150 мегабайт, после скачивания сделаем перерыв.
4 Шаг 3: Запустите программу установки
Запустите установщик Bazel следующим образом:
// 以下是统一写法
chmod +x bazel-<version>-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user
// 以下是对应版本的写法
chmod +x bazel-0.26.1-installer-linux-x86_64.sh
./bazel-0.26.1-installer-linux-x86_64.sh --user
Должен--user
флаг для установки Bazel в$HOME/bin
каталог в системе и установить.bazelrc
дорожка$HOME/.bazelrc
. использовать это--help
команда для просмотра других параметров установки.
5 Шаг 4. Настройте среду
если вы используете--user
Приведенный выше флаг запускает установщик Bazel, исполняемый файл Bazel будет установлен в вашем$HOME/bin
в каталоге. Рекомендуется добавить этот каталог к пути по умолчанию, например:
export PATH="$PATH:$HOME/bin"
Вы также можете добавить эту команду в свой~/.bashrc
Файл.
6 Важный шаг: измените путь кеша bazel
这个命令不起作用
build --disk_cache=/export/dubaokun/tools/.bazel_cache
尝试环境变量,加入到环境变量里面/etc/profile
export TEST_TMPDIR=/export/dubaokun/tools/.bazel_cache
Поскольку я заранее не задал путь к кешу bazel, позже я внес изменения вручную.
lrwxrwxrwx 1 root root 108 Mar 30 19:51 bazel-bin -> /root/.cache/bazel/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/bin
lrwxrwxrwx 1 root root 108 Mar 30 19:51 bazel-genfiles -> /root/.cache/bazel/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/bin
lrwxrwxrwx 1 root root 97 Mar 30 19:51 bazel-out -> /root/.cache/bazel/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out
lrwxrwxrwx 1 root root 87 Mar 30 19:51 bazel-tensorflow -> /root/.cache/bazel/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow
lrwxrwxrwx 1 root root 113 Mar 30 19:51 bazel-testlogs -> /root/.cache/bazel/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/testlogs
-rw-r--r-- 1 root root 122 Mar 30 16:16 BUILD
-----
rm bazel-bin
ln -s /export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/bin/ bazel-bin
rm bazel-genfiles
ln -s /export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/bin/ bazel-genfiles
rm bazel-out
ln -s /export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out bazel-out
rm bazel-tensorflow
ln -s /export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow bazel-tensorflow
rm bazel-testlogs
ln -s /export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/execroot/org_tensorflow/bazel-out/k8-opt/testlogs
/export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/external
/export/dubaokun/tools/.bazel_cache/_bazel_root/27509bc6e2111f3da3abc402b7d8c310/external/eigen_archive/49177915a14a.tar.gz: All mirrors are down: [GET returned 404 Not Found, Read timed out]
3 Установка буфера протокола
Версия 3.8.0, конкретная версия
Адрес подключения:ву ву краткое описание.com/afraid/00 не голоден 93 квота 2…
1. Введение
Protocol Buffers (сокращенно Protobuf) — это кросс-язычный, кросс-платформенный и расширяемый инструмент сериализации с открытым исходным кодом от Google. По сравнению с популярными форматами кодирования, такими как XML и JSON, Protobuf обладает очень высокой производительностью. Поэтому формат кодирования Protobuf (суффикс файла.proto
) широко используется в разработке сетей,protocКак компилятор Protobuf, он может быть основан на файле определения Protobuf..proto
Создавайте файлы определения типов и коды операций кодеков на нескольких языках (таких как C++, Java, Go, Python и т. д.),
Эта статья в основном знакомитprotocспособы установки и использования.
2 Компиляция исходного кода и установка
Официальный исходный код:GitHub.com/Google/pro Т…
(1) Зависимости установки Как указано на официальном сайте, protoc имеет следующие зависимости: autoconf, automake, libtool, curl, make, g++, unzip, gmock где gmock зависит от libtool
(2) Скомпилируйте и установите:
git clone https://github.com/google/protobuf
./autogen.sh # 生成 configure 文件
./configure
make
make check
sudo make install
sudo ldconfig
Примечание: После завершения установки в каталоге /usr/lib будут сгенерированы три типа статических и динамических файлов библиотек с префиксами libprotobuf, libprotobuf-lite и libprotoc. Затем нам нужно выполнить ldconfig, чтобы обновить путь к библиотеке. Если вышеуказанные шаги выполнены, выполнитеprotocЕсли ошибка все еще возникает, мы можем вручную связать следующим образом
/etc/ld.so.conf.d/libprotobuf.conf
/usr/local/lib
ln -s /usr/lib/libprotobuf.so.10.0.0 /usr/lib/libprotobuf.so
3 Бинарная установка
Если вы не хотите компилировать и устанавливать, вы также можете загрузить бинарный пакет непосредственно для установки, мы можем скачать его сздесьПолучите напрямую скомпилированный двоичный файл протокола.
Например, загрузите следующие два пакета:
protoc-3.3.0-win32.zip
protoc-3.3.0-linux-x86_64.zip
Разархивируйте по пути PATH, чтобы завершить установку.
sudo unzip protoc-3.0.0-beta-3-linux-x86_64.zip
sudo chmod a+x protoc
Посмотреть справку по использованию
protoc --help
4 Пример использования
После установки protoc мы можем установить примеры из официального руководства, чтобы проверить использование.
1) написать.proto
Файл определения
syntax = "proto3"
package tutorial;
message Person {
string name = 1;
int32 id = 2;
string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
string number = 1;
PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
message AddressBook {
repeated Person person = 1;
}
- компилировать
.proto
файл для создания файлов определений и операций для нужного языка
Например, здесь мы хотим сгенерировать исходный код C++, а затем выполнить:
protoc --cpp_out=. addressbook.proto
Сгенерированные файлы: addressbook.pb.h, addressbook.pb.cc
- сгенерировать вышеуказанное
.pb.cc
файлы и файлы нашего приложения C++ для компиляции
g++ addressbook.pb.cc readinput.cpp -lprotobuf
5 протоколов использования и опций
пройти черезprotoc --help
Можно посмотреть, как использовать
Формат использования протокола:
protoc [OPTION] PROTO_FILES
-IPATH, --proto_path=PATH Specify the directory in which to search for imports.
May be specified multiple times;
If not given, the current working directory is used.
--plugin=EXECUTABLE Specifies a plugin executable to use.
Normally, protoc searches the PATH for
plugins, but you may specify additional
executables not in the path using this flag.
Additionally, EXECUTABLE may be of the form
NAME=PATH, in which case the given plugin name
is mapped to the given executable even if
the executable's own name differs.
--cpp_out=OUT_DIR Generate C++ header and source.
--csharp_out=OUT_DIR Generate C# source file.
--java_out=OUT_DIR Generate Java source file.
--javanano_out=OUT_DIR Generate Java Nano source file.
--js_out=OUT_DIR Generate JavaScript source.
--objc_out=OUT_DIR Generate Objective C header and source.
--php_out=OUT_DIR Generate PHP source file.
--python_out=OUT_DIR Generate Python source file.
--ruby_out=OUT_DIR Generate Ruby source file.
пример:
protoc -I ../../protos --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` ../../protos/route_guide.proto
protoc -I ../../protos --cpp_out=. ../../protos/route_guide.proto
4 Установка пакета
Должен быть пользователем root.
1 команда установки
sudo pip install -i pypi.tuna.tsinghua.edu.cn/simple numpy grpcio Keras-Applications Keras-Preprocessing h5py requests enum mock
sudo pip install -i pypi.mirrors.ustc.edu.cn/simple/ numpy==1.18.5 grpcio Keras-Applications Keras-Preprocessing h5py requests enum mock
2 зеркальный адрес
Зеркальный адрес, замените путь загрузки pip
-
Али Клаудmirrors.aliyun.com/leather/simple…
-
Университет науки и технологий Китаяpypi.mirrors.ustc.edu.cn/simple/
-
Университет Цинхуаpypi.tuna.tsinghua.edu.cn/simple/
-
Университет науки и технологий Китаяpypi.mirrors.ustc.edu.cn/simple/
Выполните cmd от имени администратора, затем введите следующую команду
pip install tensorflow -i pypi.tuna.tsinghua.edu.cn/simple/ pip install opencv-python -i pypi.tuna.tsinghua.edu.cn/simple/
5 Компиляция исходного кода Tensorflow
Причина, по которой я пытался скомпилировать TF из исходного кода, очень проста. Во-первых, следующее предупреждение будет появляться каждый раз, когда оно запускается, и оно кажется немного «недовольным».Во-вторых, в компьютере изначально нет графического процессора, если ускорение процессора вообще нельзя использовать, то оно слишком медленное. Поэтому я задумался о компиляции оптимизированного установочного пакета TF.
Готов к работе
1. Просмотр информации, которую можно оптимизировать
Непосредственно используйте PIP для установки обычной версии TF, а затем случайно запустите программу. Если пишет, что советов по оптимизации производительности нет, то "поздравляю", дальше делать нечего. Это уже самое быстрое состояние вашего компьютера. Если появится следующая подсказка, указывающая на то, что еще есть место для оптимизации, запишите имена этих наборов инструкций, упомянутых в предупреждении, которые будут использоваться позже.
2. Установите Базель
Bazel — это инструмент для компиляции TensorFlow. Сначала подпишитесьэта страницаподскажите, скачайте файл репо.Адрес загрузкиздесь,Следующее.Затем последовательно введите команды.
cp vbatts-bazel-epel-7.repo /etc/yum.repos.d/
yum install bazel
Некоторые другие зависимости могут быть установлены в течение этого периода, просто подождите спокойно. Когда это сделано, это выглядит следующим образом.
3.Git TensorFlow
введите команду.
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
Приведенная выше команда создаст папку с именем «tensorflow» в вашей текущей папке, где хранятся загруженные файлы. Как показано ниже.Если вам будет предложено, что команда git недействительна, непосредственноyum install git
Вот и все.
Скомпилируйте TensorFlow
1. Настроить и скомпилировать
Введите следующую команду, переключите текущий каталог на git tensorflow и запустите программу настройки.
cd tensorflow/
./configure
Вы можете видеть, что существует множество параметров конфигурации, в основном просто используйте параметры по умолчанию.
2. Начать компиляцию
введите команду.
bazel build --jobs 10 --config=opt //tensorflow/tools/pip_package:build_pip_package
===========
bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx //tensorflow/tools/pip_package:build_pip_package
Приведенная выше команда сгенерирует скрипт с именем build_pip_package. Параметры этого шага являются ключом к оптимизации, и эти инструкции по оптимизации указаны здесь. Важно отметить, что то, какие из них используются, не является фиксированным. Код здесь предлагается оптимизировать на моем VPS, это не значит, что он подходит для вашего компьютера. Например, следующая команда является директивой оптимизации, поддерживаемой другим сервером.
bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma //tensorflow/tools/pip_package:build_pip_package
Лучший способ — использовать pip для установки общедоступной версии TF, как упоминалось ранее, затем запустить ее небрежно, прочитать предупреждающее сообщение, записать информацию и настроить ее здесь соответствующим образом. В противном случае ЦП его не поддерживает, но он скомпилирован, и при его использовании может быть сообщено об ошибке. Обратите внимание, что это очень медленный процесс, наберитесь терпения. Интерфейс компиляции выглядит следующим образом.
И он может сломаться посередине. Если сеть плохая, рекомендуется начать компиляцию экрана, иначе ssh будет отключаться после компиляции в течение длительного времени, но не беспокойтесь, он все равно запустится с точки останова. Вот как выглядит перезагрузка с подсказкой «Найдена 1 цель…».При компиляции столкнулся со следующей ошибкой, в итоге поискал в интернете и сказал, что это вызвано нехваткой памяти.Это можно решить, увеличив своп расширенной памяти.
Запустите скрипт следующим образом, чтобы создать установочный пакет pip в папке /tmp/tensorflow_pkg, генерация будет очень быстрой.
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg_python3.6.8
==========
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
На этом компиляция завершена.
Установить ТензорФлоу
Перед установкой сначала удалите TF, ранее установленный с помощью pip.
pip uninstall tensorflow
Затем используйте pip для установки колеса, которое мы создали.
pip install /tmp/tensorflow_pkg/tensorflow-1.5.0rc0-cp27-cp27mu-linux_x86_64.whl
В зависимости от платформы имя пакета может отличаться. На этом установка завершена.
Тест TensorFlow
Протестируйте с тем же кодом, что и раньше, вывод будет следующим.Как видите, подсказок по оптимизации производительности больше нет. Однако, я не знаю почему, трудоемкий тест TF, составленный мной, стал длиннее. Я не знаю, проблема ли в версии. Версия 1.4.1 была установлена с помощью pip, а версия 1.5.0rc была скомпилирована мной.
6 Сопутствующая информация
-
woohoo.brief.com/afraid/1 из 314 акций…Компиляция исходного кода Centos 7 tensorflow-gpu-1.8.0
-
Чжао Сюхуэй.top/blog/2018/0…Скомпилируйте и установите TensorFlow из исходного кода CentOS.
-
Woohoo.краткое описание.com/afraid/not 943 not 0 send 1…Компиляция и установка исходного кода Tensorflow
-
tensorflow.nuggets.IM/install/INS…Установите TensorFlow из исходников
-
причудливый II.GitHub.IO/2020/11/14/…Скомпилируйте Tensorflow под CentOS
-
причудливый II.GitHub.IO/2020/11/14/…Скомпилируйте Tensorflow под CentOS