2017-10-06 9 views
0

Tensorflowパッケージをインストールし、IBM s390xアーキテクチャーのソースからそれを遵守しました。以下に示すように、チュートリアルで説明したように画像認識classify_image.pyサンプルがエラーをスロー:s390xでTensorflowを使用した画像認識(チュートリアルの例)

実行コマンド:

python ./classify_image.py --model_dir=/data/shared/myprojects/tensorflow/models/models-master/tutorials/image/imagenet --image_file=/data/shared/myprojects/keras/images/claude_profile.jpg 

エラーメッセージ:

File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/common_shapes.py", line 659, in _call_cpp_shape_fn_impl 
    raise ValueError(err.message) 
ValueError: Cannot reshape a tensor with 1041082757314414592 elements to shape [16777216,524288] (8796093022208 elements) for 'pool_3/_reshape' (op: 'Reshape') with input shapes: [1,22546423,22546423,2048], [2] and with input tensors computed as partial shapes: input[1] = [16777216,524288]. 

バージョン:

python 
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import tensorflow as tf 
>>> tf.VERSION 
'1.3.1' 
>>> 

エラーが発生する可能性があるのは、訓練されたモデルとしてのエンディアンの非互換性ですリトルエンディアン表記で格納され、CPUはビッグエンディアンモードで動作します。入力データのエンディアンを変更するバイトスワッピングを設定する簡単な方法はありますか?画像処理ルーチンのない他のTensorflowサンプルはOKを実行します。

答えて

0

1041082757314414592は、エンディアンの問題よりもオーバーフロー/アンダーフローのように聞こえます。例をロードしようとせずに、ゼロから実行しようとすると、問題も見えますか?

+0

開始モデルはTensorFlowディストリビューションの一部です。私はバイエルモデルのファイル名を読み込む際に、同じ実行時エラーが発生しました。classify_image_graph_def.pb : ValueError:1041082757314414592要素のテンソルを変形して、入力形状が[pool_3/_reshape '(op:' Reshape ')の[16777216,524288](8796093022208要素)になりません:[1,22546423,22546423,2048]、[ 2]、部分テンソルとして計算された入力テンソル:input [1] = [16777216,524288]。 –

+0

githubにバグを報告できますか? –

+0

ありがとうございます。私はGithub#2485の下にバグを提出しました。コミュニティサポートチームが問題を確認しています。 –

0

これは、リトルエンディアンマシンで事前に訓練されたモデルである開始モデルがBig Endian(s390x)で読み込み中に問題を抱えるために起こっているようです。また、任意のグラフ(、例えば、classify_image_graph_def.pb)は、サイズのような値を1つのフォーマットで格納します。

私が知っている限り、保存されたモデルをビッグエンディアンと互換性のあるものに変換するツールはまだありません。

今のところ、ビッグエンディアンでは、ノードを最初から訓練する必要があります。

関連する問題