2016-04-01 4 views
4

トレーニングサンプルごとにN個の分類ラベルが必要なCNNモデルがあり、データセットからint64のリストであるラベル機能を持​​つTFRecordsを作成しようとしています。リストであるTFRecord機能をどのように作成して取得しますか?

シャード作成側では、次のようなものを使用しています。私は、コード内で明示的にラベルデータを入れているが、明らかにそれは、各サンプルごとに異なるだろう:読み出し側の

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()) 

が、私は次のようなものをやっています。私は(4)ラベルの固定数を想定しています。私はこのTensorflowが報告しようとすると

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'] 

明らかに
ValueError: Cannot reshape a tensor with 1 elements to shape [4] (4 elements) 

を、私は

+0

以下のコメントは、コードのバグを明確にしています。値のリストの場合、default_value引き数は形状に準拠していなければなりません。したがって、default_value = -1の代わりに、上記のコードはdefault_value = [ - 1] * 4でなければなりません。私はそのバグを投稿しています。 – bobw

+0

私はあなたの例をint64s のリストを入力して入力しましたが、次のエラーがあります。 'TypeError:[0、0、0、0、0、0、0、0、0、0、0 ]のタイプがですが、(,)のいずれかになると予想されます。 ご意見がありましたら幸いですか? – Yanagiba

+0

default_valueを削除して試してください。 – lxkarthi

答えて

2

かなり根本的な何かがデフォルト値を設定してみてください理解していませんよ= [-1] * 4

+0

ありがとうございます!それが役に立った – bobw

関連する問題