Eğitim örneği başına N sınıflandırma etiketlerini alan bir CNN modelim var ve veri kümemden int64s listesi olan bir etiket özelliğine sahip TFRecords oluşturmaya çalışıyorum.Listelerdeki TFRecord özelliklerini nasıl yazıyorsunuz?
Yığın oluşturma tarafında, aşağıdaki gibi bir şey kullanıyorum. Ben kodunda açıkça etiket verilerini koyduk ama belli ki her bir numune için farklı olacaktır: okuma tarafında
example = tf.train.Example(features=tf.train.Features(feature={
... # other stuff
'label': tf.train.Feature(
int64_list=tf.train.Int64List(value=[1, 2, 3, 4])}))
writer.write(example.SerializeToString())
, ben aşağıdaki gibi bir şey yapıyorum. Ben etiket sabit sayıda varsayalım (4): Bu Tensorflow raporlarını çalıştığınızda
features = tf.parse_single_example(
serialized_example,
# Defaults are not specified since both keys are required.
features={
... # other stuff
'label': tf.FixedLenFeature(
[4], dtype=tf.int64, default_value=-1)}
)
label = features['label']
: Açıkça
ValueError: Cannot reshape a tensor with 1 elements to shape [4] (4 elements)
, ben
Aşağıdaki kodda bir hata açıklanmaktadır. Değerlerin listesi için default_value argümanı şekle uygun olmalıdır. Yani, default_value = -1 yerine, yukarıdaki kod, aşağıda belirtildiği gibi default_value = [- 1] * 4 olmalıdır. Yayını hatayla bırakıyorum. – bobw
Int64s listesini girerek ancak ben şu hatayı aldım, 'TypeError: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] türüne sahiptir, ancak şunlardan biri bekleniyor: (, ) Herhangi bir öneriniz var mı diye merak ediyorum? –
Yanagiba
default_value öğesini kaldırın ve deneyin. – lxkarthi