質問: 下記のバージョンで生成したモデル・重みを指定のサーバで活用したいという要件が出てきました。 ・keras2.4.3 ・tensorflow-gpu 2.3.0 しかしながら、指定のサーバのCPUがIntel AVXに対応していないため、tensorflow1.5 以前でないと使用できないことが分かりました。 QEMU Virtual CPU version (cpu64-rhel6) 解決方法として、tensorflow1.5ベースで再学習、あるいはサーバの変更 くらいしか手段が思いつかないのですが、これ以外に何か動かす手段はあったりしますでしょうか。
回答: お使いのサーバースペック、OS、Pythonバージョン、gccバージョンの記載がないため正しい手順を明示できませんが、サーバー資源を有効活用する手段がひとつだけあります。Tensorflow v2.3.0 をサーバー上でビルドする方法です。ただ、QEMUをご利用ですので通常の手順では難しく難易度が高いかもしれません。 1.OpenJDK や CUDA、その他のライブラリをインストール 2.`Bazel 3.1.0` を公式リポジトリからCPUアーキテクチャに合うバイナリをダウンロードしてインストール あるいは `Bazel` を自力ビルド **Bazelのダウンロード用URL** 3.Tensorflow v2.3.0 をClone ``` $ git clone -b v2.3.0 https://github.com/tensorflow/tensorflow.git ``` 4.Tensorflow v2.3.0 をCUDA有効の状態でビルド ``` $ cd tensorflow $ ./configure GPUを使用するならCUDA以外の選択肢は全て N を選択 下記はサーバーのRAMが16GBでCPUが4coreの場合を想定したビルド用コマンドです。 $ sudo bazel build \ --config=monolithic \ --config=noaws \ --config=nohdfs \ --config=nonccl \ --config=v2 \ --local_ram_resources=16384 \ --local_cpu_resources=4 \ //tensorflow/tools/pip_package:build_pip_package ``` ご参考になるかどうかわかりませんが、いつも私がビルドを実施しているときのコマンドを下記にご紹介いたします。 **Tensorflowのビルドパラメータサンプル集**