ValueError: невозможно преобразовать массив размером 200 в форму (200 320 240,1) - PullRequest
0 голосов
/ 12 июля 2019

Я пытаюсь отформатировать массив для сверточной нейронной сети, и я продолжаю получать эту ошибку, когда пытаюсь изменить массив в желаемые размеры с помощью этой функции.

x_train = x_train.reshape(200, 320, 240, 1)

Каждое изображение имеетдлина 320 пикселей и ширина 240 пикселей, и их 200.В настоящее время массив форматируется следующим образом:

[[....], [.....], [.....]]

, где каждый «под» массивсоответствует данным, извлеченным из каждого изображения.Однако функция выше считывает длину массива как количество «под» массивов, а не как число членов.Как я могу объединить подмассивы в один больший массив, например,

[.....................]

, позволяющийизменить форму, чтобы вычислить ее длину на основе количества терминов?

Я уже пробовал копировать отдельные термины в массив, но это дает ту же ошибку.Я также прочитал все остальные сообщения переполнения стека, содержащие ту же ошибку.

В настоящее время это мой сценарий обработки данных.


train_size = 600
test_size = 200

batch_size = 60
num_classes = 2
epochs = 10

img_rows, img_cols = 320, 240


TrainArray = []
for file in os.listdir("C:/Users/aeshon/Desktop/Project2020/Step2/TRAIN/birds"):
    img = imread("C:/Users/aeshon/Desktop/Project2020/Step2/TRAIN/birds/" + file)
    # print("Hi"+str(count))
    new_img = img[:, :, 0]
    TrainArray.append(new_img)
for file in os.listdir("C:/Users/aeshon/Desktop/Project2020/Step2/TRAIN/animals"):
    img = imread("C:/Users/aeshon/Desktop/Project2020/Step2/TRAIN/animals/" + file)
    # print("Hi"+str(count))
    new_img = img[:, :, 0]
    TrainArray.append(new_img)
print("Train Array Synthesis Complete")
x_train = np.asarray(TrainArray)
del TrainArray
print("Array Deleted!")
count = 0
TestArray = []
for file in os.listdir("C:/Users/aeshon/Desktop/Project2020/Step2/TEST/birds"):
    img = imread("C:/Users/aeshon/Desktop/Project2020/Step2/TEST/birds/" + file)
    # print("Hi"+str(count))
    new_img = img[:, :, 0]
    TestArray.append(new_img)
for file in os.listdir("C:/Users/aeshon/Desktop/Project2020/Step2/TEST/animals"):
    img = imread("C:/Users/aeshon/Desktop/Project2020/Step2/TEST/animals/" + file)
    # print("Hi"+str(count))
    new_img = img[:, :, 0]
    TestArray.append(new_img)
print("Test Array Synthesis Complete")
x_test = np.asarray(TestArray)
#print(TestArray)
del TestArray
print("Array Deleted!")

#sys.exit()

x_train = x_train.reshape(train_size, img_rows, img_cols, 1)
x_test = x_test.reshape(test_size, img_rows, img_cols, 1)

РЕДАКТИРОВАТЬ: код ошибки

Traceback (most recent call last):
  File "C:/Users/aeshon/PycharmProjects/Object_Detector/Model2.py", line 59, in <module>
    x_test = x_test.reshape(-1, img_rows, img_cols, 1)
ValueError: cannot reshape array of size 200 into shape (320,240,1)

массив в настоящее время выглядит следующим образом (отредактировано для длины):


[[  2,  13,   0, ...,   0,  16,   0],
 [ 11,  96, 112, ...,  80,  77,  13],
 [  0, 106, 122, ...,  93,  81,   4],

...

[168, 167, 164, ..., 183, 183, 184],
[170, 168, 165, ..., 183, 183, 184],
[171, 169, 165, ..., 183, 184, 184]]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...