Я слежу за этим руководством по CNTK, примененным к моим собственным данным.
У меня есть набор данных, состоящий из 2 изображений на одно наблюдение, и у меня есть метки поездов, хранящиеся в формате CSV, какthis:
id,appliance
1000,8
1001,1
1002,8
1003,1
Метка одинакова для обоих из двух изображений, которые я получаю за наблюдение.Если я возьму только одно из двух изображений и сохраню их в массиве, я получу массив формы (988, 128, 118), а метки csv, преобразованные в массив, будут иметь форму (988, 2), чтоможно сопоставить каждую метку с изображением.
Вопрос в том, что теперь, когда я решил взять все изображения, которые у меня есть (по 2 на наблюдение вместо одного), теперь у меня есть массив изображений (1976, 128, 118) но мой массив меток все еще (988, 2), назначение меток не будет работать из-за длины меток.Как мне решить эту проблему ??
Чтобы назначить метку, я использую эту функцию, которая назначает метку для каждого 15104 пикселя:
# Save the data files into a format compatible with CNTK text reader
def savetxt(filename, data, hasLabels=True, labels=0):
dir = os.path.dirname(filename)
if not os.path.exists(dir):
os.makedirs(dir)
print("Saving", filename )
with open(filename, 'w') as f:
print("opened....")
labels_ohe = list(map(' '.join, np.eye(11, dtype=np.uint).astype(str))) #for one hot encoding
index = 0
for row in data:
row_str = row.astype(str)
if hasLabels:
label_str = labels_ohe[int(labels[index])]
feature_str = ' '.join(row_str)
if hasLabels:
f.write('|labels {} |features {}\n'.format(label_str, feature_str))
else:
f.write('|features {}\n'.format(feature_str))
index = index + 1
Любая помощьвысоко ценитсяЗаранее спасибо.