2017-07-10 59 views
0

我正在使用slim將數據轉換爲TF記錄格式並查看this example,其中正在轉換MNIST數據集。使用張量流添加標籤要素slim

在行127128上,圖像png_string被分配標籤labels[j]

example = dataset_utils.image_to_tfexample(png_string, 'png'.encode(), _IMAGE_SIZE, _IMAGE_SIZE, labels[j]) 

我想補充的另一個標籤,但我看向dataset_utils文件和image_to_tfexample功能,我看到:

def image_to_tfexample(image_data, image_format, height, width, class_id): 
    return tf.train.Example(features=tf.train.Features(feature={ 
     'image/encoded': bytes_feature(image_data), 
     'image/format': bytes_feature(image_format), 
     'image/class/label': int64_feature(class_id), 
     'image/height': int64_feature(height), 
     'image/width': int64_feature(width), 
    })) 

而且好像我必須編輯這個功能添加另一個標籤(添加另一行image/class/label': int64_feature(class_id)?)

我不完全確定如何添加另一個標籤,我想訓練我的神經網絡(也許我只需要創建另一個image_to_tfexample()同樣的即時通訊?年齡,但不同的標籤)

回答

1

添加它類似於你已經宣佈了一個:

def image_to_tfexample(image_data, image_format, height, width, class_id, label): 
     return tf.train.Example(features=tf.train.Features(feature={ 
      'image/encoded': bytes_feature(image_data), 
      'image/format': bytes_feature(image_format), 
      'image/class/label': int64_feature(class_id), 
      'image/label':int64_feature(label) 
      'image/height': int64_feature(height), 
      'image/width': int64_feature(width), 
    })) 

刪除你不使用,它會不必要地增加你的tfrecords大小的功能。

+0

所以,class_id是原始標籤變量(這是標籤[j]在示例中代表的內容)。當你將標籤添加爲另一個變量時,爲什麼從「image/class/label」中刪除「class」部分?你知道這些「圖像/類/標籤」或「圖像/高度」是什麼意思作爲一個功能對象? – haxtar

+1

你的問題是如何添加一個'新標籤'到上面的'proto'。我沒有刪除任何東西,用一個新的密鑰添加了一個新功能。你可以添加你喜歡的任何東西:''Key':int64_feature(value)。在閱讀記錄時,您將使用'key'檢索值。所以鑰匙需要不同。 –