Расширение измерения от 3D до 4D с помощью None - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь создать CNN для решения проблемы. Input_shape для первого слоя, который я предоставил, был (20, 196, 1).

enter image description here enter image description here enter image description here

Однако, когда я model.summary() получаю размеры as (None, 20, 196, 1) и my X - это список характеристик измерений (20, 196, 1). При выполнении model.fit() я получаю эту ошибку -

Ошибка при проверке ввода: ожидалось, что input_1 будет иметь 4 измерения, но получил массив с формой (20, 196, 1).

enter image description here

Может кто-нибудь указать, что я делаю неправильно? Кроме того, если я хочу увеличить размер с (20, 196, 1) до (Нет, 20, 196, 1), что мне делать?

1 Ответ

0 голосов
/ 07 марта 2020

Первая ось всегда должна соответствовать размеру партии. Например, рассмотрим случай, когда вы можете захотеть N элементов в вашем пакете. Каждый элемент состоит из входных объектов с размером (20, 196, 1). Теперь ваш пакет будет иметь размер (N, 20, 196, 1).

Опция будет размещать сэмплы на первой оси: сначала создайте список сэмплов, затем назначьте его для входные данные. Например:

# list of samples with size (20, 196, 1)
list_of_samples = [x1, x2, x3, .. xn]

# your input data would be:
input_batch = np.array(list_of_samples)

В противном случае, если ваши сэмплы xi уже являются тензорами, другая возможность состоит в том, чтобы разместить их на первой оси:

# given xi = tensor with shape (20, 196, 1), for i = 1, 2,..., N
input_batch = tf.stack([x1, x2, x3, ..., xn], axis=0)
# input_batch has now shape (N, 20, 196, 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...