3
のは、我々はこのようなデータサンプルをTFRecordを提出しているとしましょう:encoded_jpg
ここTFRecordデータサンプルを可変長文字列でデコードするには?
def _bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
def _float32_feature(value):
return tf.train.Feature(float_list=tf.train.FloatList(value=value))
example = tf.train.Example(features=tf.train.Features(feature={
'image/encoded': _bytes_feature(encoded_jpg),
'label': _float_list_feature(label),
}))
異なる画像のためにはかなり異なる可能性がその長さのコード化された32×32のJPG画像の生の値です。 label
は、固定長のベクトルです。
は、固定長フィールドの場合、人は常にサンプルを復号化するために、次のようなものを使用することができます。
features = tf.parse_single_example(
serialized_example,
features = {
'image/encoded': tf.FixedLenFeature([], tf.string)
'label': tf.FixedLenFeature([], tf.float32)
}
)
しかし、ここでimage/encoded
の長さは一定ではなく、前述の1はもう動作しません。
私はこれにコードを変更した場合:
features = tf.parse_single_example(
serialized_example,
features = {
'image/encoded': tf.VarLenFeature(tf.string)
'label': tf.FixedLenFeature([], tf.float32)
}
)
encoded = features['image/encoded']
image/encoded
がまばらなテンソルのようなものですが、私はこのようなものからイメージをデコードする方法がわかりません。
誰も以前に似たような経験をしていますか?どんな提案も感謝しています。
ありがとうございます!次のコード
をtfrecord読みます。これはスレッドで対処されています:https://stackoverflow.com/questions/41921746/tensorflow-varlenfeature-vs-fixedlenfeature –
ええ、それは、ありがとう! –