У меня есть два массива следующей формы:
x_train = np.ndarray(shape = (1383, 15104), dtype = 'int')
y_train = np.ndarray(shape = (1383, 11), dtype = 'int')
, затем у меня есть эта функция для сохранения их в файл .txt
:
# 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
тогда, когда я пытаюсьчтобы сохранить мои массивы в текстовый файл с помощью этой функции:
train_labels_GT = y_train[:,1] #Get Ground truth
print ('Writing train text file...')
data_dir = os.path.join(os.getcwd(), "Data/Out")
savetxt(os.path.join(data_dir, "train.txt"), x_train, True, y_train)
savetxt(os.path.join(data_dir, "test.txt"), x_test, True, y_test)
print("Done")
Я получаю сообщение об ошибке:
TypeError Traceback (most recent call last)
<ipython-input-12-1da41b3fea4d> in <module>
7
8
----> 9 savetxt(os.path.join(data_dir, "train.txt"), x_train, True, y_train)
10 savetxt(os.path.join(data_dir, "test.txt"), x_test, True, y_test)
11
<ipython-input-6-b3a39923d0b8> in savetxt(filename, data, hasLabels, labels)
14 row_str = row.astype(str)
15 if hasLabels:
---> 16 label_str = labels_ohe[int(labels[index])]
17
18 feature_str = ' '.join(row_str)
TypeError: only size-1 arrays can be converted to Python scalars
Почему происходит эта ошибка и как я могу ее исправить ??
Заранее спасибо