最初に、LabelImage exampleを開始モデルver 5で試したところ、すべてが良好でした。java tensorflow api:無効なJPEGデータ、サイズ0
次に、古いモデル(ver3)で試してみましたが、両方のモデルの入力と出力が異なることがわかりました。
ver5では、入力テンソル名は「入力」で、dtype = FLOATです。
ver3では、入力テンソル名は "DecodeJpeg/contents"で、dtype = STRINGです。
私は、入力と出力の両方に新しい名前のLabelExampleの例を変更します:Tensor result = s.runner().feed("input", string_tensor_image).fetch("output")
>>s.runner().feed("DecodeJpeg/contents", image).fetch("softmax")
私は両方のテンソル印刷時に
Tensor float_tensor = s.runner().fetch(output.op().name()).run().get(0);
byte[] bytes = new byte[float_tensor.numBytes()*64];
ByteBuffer buffer = ByteBuffer.wrap(bytes);
res.writeTo(buffer);
long[] shape = {};
Tensor string_tensor = Tensor.create(DataType.STRING, shape, buffer);
return string_tensor;
はそれは良い見えた:
また、私はSTRINGタイプのための新しいイメージテンソルを作成変え
FLOAT tensor with shape [1, 224, 224, 3]
STRING tensor with shape []
をしかし、グラフに供給した後、私はこのエラーを取得します: Exception in thread "main" java.lang.IllegalArgumentException: Invalid JPEG data, size 0 [[Node: DecodeJpeg = DecodeJpeg[acceptable_fraction=1, channels=3, dct_method="", fancy_upscaling=true, ratio=1, try_recover_truncated=false, _device="/job:localhost/replica:0/task:0/cpu:0"]
私はできる限りすべてを試みましたが、結果はありません。どうすれば修正できますか? これは、当初のモデルVER3と5うたの両方である:
ver5:https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip
3版:http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz
を、いずれかが私を助けることができますか? – voxter
私はあなたの意図を誤解している場合は私を修正してください:v3に画像を供給したいのですが、それは入力パイプラインの一部として何らかのデコードをしていますか? DecodeJpegオペレーションの後に*デコードされた画像があるように思えます(プレースホルダだけでなく、どの演算にも値を与えることができますし、データがそれらの「上流」に供給されるとき)。 –