CentOS 6.9にTensorflowをインストールする際に大きな問題があります。
Anaconda3(もちろん、Python 3の場合は正確にPython 3.5.3)を使用してCentOSにTensorflowをインストールする方法についての指示に従ってください。 Tensorflowを除くほとんどのパッケージは正しくインストールされました。一部のパッケージをインストールするには、GCCのバージョンを4.4.7から6.3.0にアップグレードする必要がありましたが、Python画面にはまだ4.4.7が表示されます。
とにかく指示に従ってTensorflowをインストールしましたが、次のメッセージが表示されるため使用できませんImportError: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by /home/k/anaconda3/envs/h/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so)
。
だから私はGLIBCを2.14より新しいバージョンにアップグレードしようとしましたが、binutils 2.20は最新のGLIBCファイルのいずれかの設定を実行しないので、binutilsを2.25にアップグレードしました。しかし、古いLinuxバージョンのGLIBCを設定する際に別の問題が発生しました。 Linux 3.2.0が必要で、Linux 2.6があります。
これが私の制約です。
- Linuxのバージョンを変更できません。サーバーシステムであり、CentOS 6.9 Linuxを使用する必要があります。
私があなたに尋ねたい質問は次のとおりです。
明らかに、CUDA 8.0は5.3.1以降のGCCバージョンをサポートしていないので、私のGCCバージョンを6.3.0から5.0から5.2の間に変更したいと思う誘惑を受けます。と入力すると
gcc --version
GCCバージョン6.3.0が表示されますが、Python 3と入力すると表示されます[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
。私は何をすべきですか?私のプラットフォームでTensorflowを実行できるようにGLIBCをアップグレードしたいと思います。上書きする必要があるGLIBCのバージョンはGLIBC_2.14だと思いますが、これがTensorflowを実行するのに十分かどうかはわかりません。私のサーバーでTensorflowを実行できるようにGLIBCをアップグレードするのに役立ちます。
上記のタスクを実行するには、どのbinutilパッケージが必要ですか?最新のbinutilsパッケージを入手するためにdevtools-4-binutilsをダウンロードしましたが、最新のパッケージがLinux 2.6バージョンと同期していないかどうか心配です。
この方法がすべて機能しない場合は、GCCを工場バージョン4.4.7にリセットし、binutilsを2.20にリセットする方法を教えてください。自分のコンピュータに適用したすべての修正をキャンセルできる場合は、GCCバージョン5.3.1をインストールし、Tensorflowインストール用に最新のGLIBCを設定できると思います。
答え1
基本的な pip パッケージと glibc を使用して CentOS6 用にビルドする際にいくつかの基本的な問題があったため、CentOS 6 で動作するようにソースから tensorflow pip パッケージを再構築する必要がありました。これに基づいて、私が書いたメモは次のとおりです。 (参考までに私は一ヶ月前にこれをしました)
bazel-4.5-dist.zipをダウンロードし、以下の手順に従ってインストールしてください。 2017-09-04に基づいて最新バージョンのbazelを実行できません。
~$ cd ~$ wget https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zip ~$ cd /usr/src ~$ mkdir bazel-0.4.5-dist.zip ~$ cd bazel-0.4.5-dist ~# mv ~/bazel-0.4.5-dist.zip ./ ~# unzip bazel-0.4.5-dist.zip ~# ./compile.sh
devtoolset-6の代わりにdevtoolset-2を有効にするには、~/.bashrcを修正してください。 Tensorflowは最新のgccで構築されておらず、最大gcc 4までしか構築されていません。
~/.bashrcから
source /opt/rh/devtoolset-2/enable #source /opt/rh/devtoolset-6/enable
tensorflowを/usr/srcに複製します。
~$ cd /usr/src ~# git clone https://github.com/tensorflow/tensorflow
テンソルフロー構成
~$ cd tensorflow ~# ./configure
CUDAを除くすべてのサポートオプションにいいえを選択します。他のすべてはデフォルト値でなければなりません
/usr/src/tensorflow/third_party/gpus/crosstoolに移動します。 CROSSTOOL_clang.tplとCROSSTOOL_nvcc.tplを修正してください。 「Toolchain」セクションに次の行を追加します。
linker_flag : "-B/opt/rh/devtoolset-2/root/usr/bin"
テンソルフロービルド
~$ cd /usr/src/tensorflow ~# bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
pip パッケージの作成
~# bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
カスタム pip パッケージのインストール
~# sudo pip install /tmp/tensorflow_pkg/tensorflow-1.3.0-cp34-cp34m-linux_x86_64.whl