Размер потерян после добавления np.array в список - PullRequest
0 голосов
/ 05 ноября 2018

Я добавляю 3000 np.arrays в список и преобразовываю список обратно в np.array. Размерность np.array равна (270000,). После всего запуска цикла и последующего процесса преобразования np.array размер результирующего массива будет: (3000,), в то время как ожидается (3000,270000). Странно то, что при остановке процесса на полпути, скажем, в 1900 массивах, наблюдаемая форма (1900, 270000), как я хочу, чтобы вывод был в конце цикла.

from scipy import misc
from os import walk
labels = []
X=[]
Y=[]
for (_, dirnames, _) in walk(mypath):
    labels.extend(dirnames)
for category, label in enumerate(labels):
#     print 'Category:',category,'\tLabel:',label
    for root, dirs, files in os.walk(os.path.abspath(join(mypath,label))):
        for file in files:
            imagePath=os.path.join(root, file)
            face = misc.imread(imagePath)
            flattenImgMatrix=misc.imresize(face,[300, 300], interp='nearest').flatten()
            X.append(flattenImgMatrix)
            Y.append([category])
arrX=np.array(X)
arrY=np.array(Y)

1 Ответ

0 голосов
/ 06 ноября 2018

Без ваших данных это невозможно решить. Тем не менее, вы можете добавить явную проверку в ваш цикл for, чтобы отладить это для себя. Это не только подтвердит, что массив имеет неправильную форму, но и предоставит некоторую полезную информацию, чтобы выделить, где это происходит:

assert flattenImgMatrix.shape == (270000,), f'Error: {file}: {flattenImgMatrix.shape}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...