私はここで愚かなことをしているかもしれませんが、なぜこのエラーが出るのか分かりません。tf.train.Features TypeError:ポジショニング引数が許可されていません
このコードは動作します:
example = tf.train.Example(features=tf.train.Features(feature={
'image/height': _int64_feature(FLAGS.img_height),
'image/width': _int64_feature(FLAGS.img_width),
'image/colorspace': _bytes_feature(tf.compat.as_bytes(colorspace)),
'image/channels': _int64_feature(channels),
'image/format': _bytes_feature(tf.compat.as_bytes(image_format)),
'image/label': _bytes_feature(label_img_buffer),
'image/label_path': _bytes_feature(tf.compat.as_bytes(os.path.basename(lbl_path))),
'image/fn_0': _bytes_feature(tf.compat.as_bytes(os.path.basename(ex_paths[0]))),
'image/encoded_0': _bytes_feature(tf.compat.as_bytes(ex_image_buffers[0])),
'image/fn_1': _bytes_feature(tf.compat.as_bytes(os.path.basename(ex_paths[1]))),
'image/encoded_1': _bytes_feature(tf.compat.as_bytes(ex_image_buffers[1])),
'image/fn_2': _bytes_feature(tf.compat.as_bytes(os.path.basename(ex_paths[2]))),
'image/encoded_2': _bytes_feature(tf.compat.as_bytes(ex_image_buffers[2]))}))
return example
をしかし、このコードは動作しません(記事のタイトルに例外TypeError):
feature_dict={
'image/height': _int64_feature(FLAGS.img_height),
'image/width': _int64_feature(FLAGS.img_width),
'image/colorspace': _bytes_feature(tf.compat.as_bytes(colorspace)),
'image/channels': _int64_feature(channels),
'image/format': _bytes_feature(tf.compat.as_bytes(image_format)),
'image/label': _bytes_feature(label_img_buffer),
'image/label_path': _bytes_feature(tf.compat.as_bytes(os.path.basename(lbl_path))),
}
for idx, image in sorted(ex_image_buffers.iteritems()):
img_key = 'image/encoded_' + str(idx)
fn_key = 'image/fn_' + str(idx)
feature_dict[img_key] = _bytes_feature(tf.compat.as_bytes(image))
feature_dict[fn_key] = _bytes_feature(tf.compat.as_bytes(os.path.basename(ex_paths[idx])))
example = tf.train.Example(features=tf.train.Features(feature_dict))
return example
ex_image_buffersリストです。
私が知る限り、tf.train.Featuresは辞書を引数としてとり、最初の例と2番目の例では同じ辞書を組み立てています。 2番目のコードでは、他のコードに基づいて辞書を調整できるため、異なるフィールドをハードコーディングしないようにしたいと考えています。
アイデア?助けてくれてありがとう!
ありがとうございました。ヘルプをよろしくお願いいたします。なぜこの要件がここにあるのでしょうか? – user3325669
私はAPIを設計していないので、私は言うことができません。クラスのコンストラクタを使用していて、ドキュメンテーション(https://www.tensorflow.org/api_docs/python/tf/train/Features)は '** kwargs'のみを入力として示しています。 –
@JimParkerあなたが提供したドキュメントへのリンクは絶対に何も持っていません。ドキュメントは主にすべてのメソッドのリストであるため、これらのメソッドが何をするかを知る方法はありますか? – deadcode