私は、TensorFlowとlabel_image.pyの修正版を使用して、ラズベリーパイ3で画像分類プログラムを作成しようとしています。私は初めにhere.から得られMobileNetモデルを使用していループのTensorflowの 'Label_image.py'がますます遅い
、分類は約3秒かかりますが、これは(10分後に7秒以上まで)時間の経過とともに増加し、私はその理由を把握することはできませんこれは事件です。ここで
は私のループ内のコードです:
while True:
startTime = datetime.now()
t = read_tensor_from_image_file(file_name,
input_height=input_height,
input_width=input_width,
input_mean=input_mean,
input_std=input_std)
input_name = "import/" + input_layer
output_name = "import/" + output_layer
input_operation = graph.get_operation_by_name(input_name);
output_operation = graph.get_operation_by_name(output_name);
results = sess.run(output_operation.outputs[0],
{input_operation.outputs[0]: t})
results = np.squeeze(results)
top_k = results.argsort()[-5:][::-1]
labels = load_labels(label_file)
for i in top_k:
print(labels[i], results[i])
print(datetime.now() - startTime)
TensorFlowセッションはグラフのロードと一緒にループの前に開始されます。
私はPython 3.4.2とTensorFlow 1.3.0を使用しています。
同じ問題でStackOverflowで別のquestionが見つかりました。私はそこに掲載された解決策を試しましたが、 "AttributeError: 'Tensor'オブジェクトには属性 'endswith'がありません"というエラーが表示されます。
がどのように 'file_name'を定義していますか? 'label_image.py'で使われる' endswith() 'メソッドは' Tensor'変数ではなく 'str'を必要とします。 'Tensor'を' AttributeError'を説明する 'file_name'として渡している場合。 – dijksterhuis
あなたがリンクしている質問に対する答えによれば、おそらくread_tensor_from_image_fileをループで呼びたくないでしょう---グラフが呼び出されるたびにグラフは大きくなります。代わりに、グラフを一度定義してから、それをループで実行する必要があります。 –
@dijksteruis分では、 'file_name'はカメラが撮影した画像を指しています。 [ここ](https://stackoverflow.com/questions/46977868/running-label-image-py-in-a-loop)に投稿されたソリューションを試してみると、私は「AttributeError」を取得するだけです。 – pjjml