TFRecord
ファイルの画像データをtf.train.shuffle_batch()
にフィードしています。私は、TFRecord
ファイルを読み込み、前処理して[[画像の配列、np.uint8
形式]、[ラベルの配列、np.uint8
形式]の形式で画像とワンホットラベルを返すload_img_file()
関数を持っています。私は作戦を作った。tf.train.shuffle_batch()ValueError:テンソルのランクを推測できません。
load_img_file_op = tf.py_func(self.load_img_file, [], [np.uint8, np.uint8])
これは、その機能をopに変換する。私は、その作品がうまくいっていることを確認しました
data = tf.Session().run(load_img_file_op)
for n in range(50): #go through images
print data[1][n] #print one-hot label
self.image_set.display_img(data[0][n]) #display image
ワンホットラベルを正常に印刷し、対応する画像を表示します。
私は
self.batch = tf.train.shuffle_batch(load_img_file_op, batch_size=self.batch_size, capacity=q_capacity, min_after_dequeue=10000)
ような何かをしようとすると、しかし、私はガイドが何一致しようとする多くのバリエーションを試してみましたが、エラー
raise ValueError("Cannot infer Tensor's rank: %s" % tl[i]) ValueError: Cannot infer Tensor's rank: Tensor("PyFunc:0", dtype=uint8)"
取得:
-
を
self.batch =
の代わりに、私はexample_batch、label_batch =
を試しました(1つではなく2つの値を取得しようとしています)images
とlabels
:- 私
load_image_file()
機能とload_img_file_op
リターン二つの別々の値を持つ真の - に
enqueue_many
を設定します。そしてtf.train.shuffle_batch_join()
tf.train.shuffle_batch()
tf.train.shuffle_batch([images, labels],...)
のようにそれらを入力するものは何も動いていないようにみえますが、私は
guideのフォーマットを以下の午前ような気がします私が見てきたさまざまなチュートリアルがあります。私は間違って何をしていますか?私のミスが馬鹿馬鹿しい、または些細なことであれば、私はお詫び申し上げます(このエラーの検索は私に関連するものを返すようには見えない)。ご協力いただきありがとうございます!
この回答を見ることができます:https://stackoverflow.com/questions/42590431/output-from-tensorflow-py-func-has-unknown-rank-shape – npf