分割されたデータセットとlabelを読み込むと
1525 ワード
まず、データの名前を統一する必要があります.つまり、データセットとlabelの接頭辞は同じです.次に、2つは異なるフォルダの下にあります.そうすれば、ファイルがvalidationであれば、アイデアを提出することができます.jpg、labelはvalidationです.pngは、ファイルの名前validationを直接切り取り、道路の力に応じて直接読み取り、パスが/data 0/data/fengeの場合validationが存在する.jpgファイル名は必ずvalidationが存在する.pngなので、違う経路を変えるだけでいいです.
もう1つのアイデアのコードは、ファイル名を並べ替えて、一致して読み取ることです.
もう1つのアイデアのコードは、ファイル名を並べ替えて、一致して読み取ることです.
import os
from PIL import Image
import tensorflow as tf
import re
import scipy.misc as misc
import numpy as np
IMAGE_SIZE = 224
train_path = r'/data0/data/fenge/Data_zoo/MIT_SceneParsing/ADEChallengeData2016/images/validation'
train_label_path=r'/data0/data/fenge/Data_zoo/MIT_SceneParsing/ADEChallengeData2016/annotations/validation_lable'
# validation_lable
# writer = tf.python_io.TFRecordWriter('fenge_test.tfrecords') # tfrecord
re_digits = re.compile(r'(\d+)')
def embedded_numbers(s):
pieces = re_digits.split(s) #
pieces[1::2] = map(int, pieces[1::2]) #
return pieces
def sort_strings_with_embedded_numbers(alist):
return sorted(alist, key=embedded_numbers)
train_label = os.listdir(train_label_path)
train= os.listdir(train_path)
train_label = sort_strings_with_embedded_numbers(train_label)
train = sort_strings_with_embedded_numbers(train)
__channels = True
image = np.array()
image = misc.imread(train_label)
if __channels and len(image.shape) < 3: # make sure images are of shape(h,w,3)
image = np.array([image for i in range(3)])
else:
resize_image = np.array(image)