2016-04-01 14 views
4

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

+0

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

+0

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

+0

default_value öğesini kaldırın ve deneyin. – lxkarthi

cevap

2

deneyin ayar varsayılan değer oldukça temel bir şey anlayamıyorum = [-1] * 4

+0

Teşekkür ederiz! Bu yardımcı oldu – bobw

İlgili konular