質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Q&A

解決済

1回答

570閲覧

keras・tensorflowで生成したモデルを古いサーバで動かしたい

takenaka01

総合スコア7

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

0グッド

0クリップ

投稿2020/08/06 09:27

下記のバージョンで生成したモデル・重みを指定のサーバで活用したいという要件が出てきました。

・keras2.4.3
・tensorflow-gpu 2.3.0

しかしながら、指定のサーバのCPUがIntel AVXに対応していないため、tensorflow1.5 以前でないと使用できないことが分かりました。

QEMU Virtual CPU version (cpu64-rhel6)

解決方法として、tensorflow1.5ベースで再学習、あるいはサーバの変更 くらいしか手段が思いつかないのですが、これ以外に何か動かす手段はあったりしますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

お使いのサーバースペック、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

bash

1$ git clone -b v2.3.0 https://github.com/tensorflow/tensorflow.git

4.Tensorflow v2.3.0 をCUDA有効の状態でビルド

bash

1$ cd tensorflow 2$ ./configure 3 4 GPUを使用するならCUDA以外の選択肢は全て N を選択 5 6下記はサーバーのRAMが16GBでCPUが4coreの場合を想定したビルド用コマンドです。 7 8$ sudo bazel build \ 9--config=monolithic \ 10--config=noaws \ 11--config=nohdfs \ 12--config=nonccl \ 13--config=v2 \ 14--local_ram_resources=16384 \ 15--local_cpu_resources=4 \ 16//tensorflow/tools/pip_package:build_pip_package

ご参考になるかどうかわかりませんが、いつも私がビルドを実施しているときのコマンドを下記にご紹介いたします。
Tensorflowのビルドパラメータサンプル集

投稿2020/08/06 15:33

PINTO

総合スコア351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takenaka01

2020/08/07 17:16

ご回答ありがとうございます。情報不足で申し訳ないです。 サーバの情報ですが以下の通りです。 ・GMOクラウドVPS(CPU仮想3コア メモリ2GB) ・CentOS 7.7 ・Python 3.7 ・gcc 4.8.5 Django 3.0.3で運用されているWebサイトがあり、同サイト内の一機能として学習済みモデルを使った画像判定機能を入れようという用途です。 (同サーバ上で学習などをするつもりはありません。) ご提示頂いた手順(サーバにGPUはありませんのでCUDAの件を除く)で実施してみました。 $ sudo bazel build \ --config=monolithic \ --config=noaws \ --config=nohdfs \ --config=nonccl \ --config=v2 \ --local_ram_resources=2048 \ --local_cpu_resources=3 \ //tensorflow/tools/pip_package:build_pip_package 最後の上記手順を行った結果、以下のエラーが発生しました。 ERROR: An error occurred during the fetch of repository 'local_config_python': Traceback (most recent call last): File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 267 _create_local_python_repository(<1 more arguments>) File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 211, in _create_local_python_repository _check_python_lib(<2 more arguments>) File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 138, in _check_python_lib auto_config_fail(<1 more arguments>) File "/home/abcdefg/tensorflow/third_party/remote_config/common.bzl", line 12, in auto_config_fail fail(<1 more arguments>) Configuration Error: Invalid python library path: ERROR: Analysis of target '//tensorflow/tools/pip_package:build_pip_package' failed; build aborted: Traceback (most recent call last): File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 267 _create_local_python_repository(<1 more arguments>) File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 211, in _create_local_python_repository _check_python_lib(<2 more arguments>) File "/home/abcdefg/tensorflow/third_party/py/python_configure.bzl", line 138, in _check_python_lib auto_config_fail(<1 more arguments>) File "/home/abcdefg/tensorflow/third_party/remote_config/common.bzl", line 12, in auto_config_fail fail(<1 more arguments>) Configuration Error: Invalid python library path: Python自体はインストール済みで運用中ですので、恐らくPathの問題かなと思い調べている所ですが、もし解決策が分かるようでしたら教えた頂けないでしょうか。
PINTO

2020/08/09 21:51

Pythonを検出できていないようです。 下記のあたりの情報が必要になりそうです。 1. ./configure でどのように指定されたか(全文) 2. which python の結果 3. which python3 の結果 4. python -V 5. python3 -V
PINTO

2020/08/10 00:07

あ、今気づきましたが、RAM 2GB ですか。 かなり苦しいですね。 RAM 1GB の RaspberryPi3 でビルドを成功させていますが、 --local_cpu_resources=1 でも Out of Memory になるかもしれません。 SWAP のサイズを2GB確保してギリギリかもしれません。
takenaka01

2020/08/10 00:42

ご回答ありがとうございます。./configureでのpythonライブラリの指定が誤っていたようです。昨夜気づきました。連絡出来ておらず申し訳ないです。 ご指摘の通り、ビルド中に Out of Memoryになってしまいました。(SWAP2GBでもダメでした)そのため、昨夜からSWAP容量を4GBにして実施中で、まだしばらくかかりそうです。 これで無理なら当該環境では難しいと判断します。 方法については理解出来ましたので、当質問はクローズさせて頂きます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問