Попытка изменить мой массивный массив, чтобы получить дополнительное измерение - PullRequest
0 голосов
/ 29 июня 2019

В настоящее время я использую этот код, чтобы получить представление изображения в градациях серого и представить его в формате массива (512, 370, 1).

img_instance = cv2.imread(df.iloc[i][x_col]) / 255.
img_instance = cv2.resize(img_instance, (target_size[1], target_size[0]))
mask_instance = cv2.imread(df.iloc[i][y_col], cv2.IMREAD_GRAYSCALE) / 255.
mask_instance = cv2.resize(mask_instance, (target_size[1], target_size[0]))
print(mask_instance.shape)
mask_instance.reshape(target_size[0], target_size[1], 1)
print(mask_instance.shape)

При первом выводе я получаю (512, 370), затем (512, 370) и во втором операторе печати. Это проблема для меня, так как я пытаюсь построить модель Keras, где у меня есть слой, который выглядит как слой ниже, к которому я пытаюсь вписать экземпляр маски.

__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 512, 370, 1)  17          activation_18[0][0]

Ответы [ 2 ]

1 голос
/ 29 июня 2019
  • reshape не работает на месте!
  • форма должна быть кортежем.

.

mask_instance = mask_instance.reshape((target_size[0], target_size[1], 1))
0 голосов
/ 29 июня 2019

Кажется, что np.reshape() не добавляет измерение, но правильная функция - mask_instance = np.expand_dims(mask_instance, axis=2). Ось 2, потому что сервер работает на каналах последней модели.

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