Вопрос или проблема
У меня возникла ошибка, указанная ниже. Я протестировал разные размеры пакетов, разные модели и разные функции потерь, но у меня всегда возникает эта ошибка.
Эта ошибка появилась в Tensorflow 2.16, но в Tensorflow 2.15 у меня не было ошибок.
Размер измерения должен быть кратен 6, но равен 1835008 для
{{node compile_loss/loss/Reshape_1}} = Reshape[T=DT_FLOAT, Tshape=DT_INT32](Placeholder_3, compile_loss/loss/Reshape_1/shape)
с формами входных данных:
[16,128,128,7], [5]
с тензорами входных данных, вычисленными как частичные размеры:
input[1] = [?,1,1,3,2].
Пожалуйста, посмотрите ниже структуру моей модели. Модель укорочена из-за ограничения символов.
Можете ли вы посоветовать, как решить эту проблему?
Модель: “функциональная”
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Слой (тип) ┃ Форма выхода ┃ Номер параметра ┃ Связано с ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ input_layer │ (None, 128, 128, │ 0 │ - │
│ (InputLayer) │ 1) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_pad │ (None, 134, 134, │ 0 │ input_layer[0][0] │
│ (ZeroPadding2D) │ 1) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_conv (Conv2D) │ (None, 64, 64, │ 3,200 │ conv1_pad[0][0] │
│ │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_bn │ (None, 64, 64, │ 256 │ conv1_conv[0][0] │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv1_relu │ (None, 64, 64, │ 0 │ conv1_bn[0][0] │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pad │ (None, 66, 66, │ 0 │ conv1_relu[0][0] │
│ (ZeroPadding2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ pool1_pool │ (None, 32, 32, │ 0 │ pool1_pad[0][0] │
│ (MaxPooling2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_conv │ (None, 32, 32, │ 4,160 │ pool1_pool[0][0] │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_bn │ (None, 32, 32, │ 256 │ conv2_block1_1_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_1_relu │ (None, 32, 32, │ 0 │ conv2_block1_1_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_conv │ (None, 32, 32, │ 36,928 │ conv2_block1_1_r… │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_bn │ (None, 32, 32, │ 256 │ conv2_block1_2_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_2_relu │ (None, 32, 32, │ 0 │ conv2_block1_2_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_0_conv │ (None, 32, 32, │ 16,640 │ pool1_pool[0][0] │
│ (Conv2D) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_3_conv │ (None, 32, 32, │ 16,640 │ conv2_block1_2_r… │
│ (Conv2D) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_0_bn │ (None, 32, 32, │ 1,024 │ conv2_block1_0_c… │
│ (BatchNormalizatio… │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_3_bn │ (None, 32, 32, │ 1,024 │ conv2_block1_3_c… │
│ (BatchNormalizatio… │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_add │ (None, 32, 32, │ 0 │ conv2_block1_0_b… │
│ (Add) │ 256) │ │ conv2_block1_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block1_out │ (None, 32, 32, │ 0 │ conv2_block1_add… │
│ (Activation) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_conv │ (None, 32, 32, │ 16,448 │ conv2_block1_out… │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_bn │ (None, 32, 32, │ 256 │ conv2_block2_1_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_1_relu │ (None, 32, 32, │ 0 │ conv2_block2_1_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_conv │ (None, 32, 32, │ 36,928 │ conv2_block2_1_r… │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_bn │ (None, 32, 32, │ 256 │ conv2_block2_2_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_2_relu │ (None, 32, 32, │ 0 │ conv2_block2_2_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_3_conv │ (None, 32, 32, │ 16,640 │ conv2_block2_2_r… │
│ (Conv2D) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_3_bn │ (None, 32, 32, │ 1,024 │ conv2_block2_3_c… │
│ (BatchNormalizatio… │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_add │ (None, 32, 32, │ 0 │ conv2_block1_out… │
│ (Add) │ 256) │ │ conv2_block2_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block2_out │ (None, 32, 32, │ 0 │ conv2_block2_add… │
│ (Activation) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_conv │ (None, 32, 32, │ 16,448 │ conv2_block2_out… │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_bn │ (None, 32, 32, │ 256 │ conv2_block3_1_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_1_relu │ (None, 32, 32, │ 0 │ conv2_block3_1_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_conv │ (None, 32, 32, │ 36,928 │ conv2_block3_1_r… │
│ (Conv2D) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_bn │ (None, 32, 32, │ 256 │ conv2_block3_2_c… │
│ (BatchNormalizatio… │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_2_relu │ (None, 32, 32, │ 0 │ conv2_block3_2_b… │
│ (Activation) │ 64) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_3_conv │ (None, 32, 32, │ 16,640 │ conv2_block3_2_r… │
│ (Conv2D) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_3_bn │ (None, 32, 32, │ 1,024 │ conv2_block3_3_c… │
│ (BatchNormalizatio… │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_add │ (None, 32, 32, │ 0 │ conv2_block2_out… │
│ (Add) │ 256) │ │ conv2_block3_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2_block3_out │ (None, 32, 32, │ 0 │ conv2_block3_add… │
│ (Activation) │ 256) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_conv │ (None, 16, 16, │ 32,896 │ conv2_block3_out… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_bn │ (None, 16, 16, │ 512 │ conv3_block1_1_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_1_relu │ (None, 16, 16, │ 0 │ conv3_block1_1_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_conv │ (None, 16, 16, │ 147,584 │ conv3_block1_1_r… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_bn │ (None, 16, 16, │ 512 │ conv3_block1_2_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_2_relu │ (None, 16, 16, │ 0 │ conv3_block1_2_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_0_conv │ (None, 16, 16, │ 131,584 │ conv2_block3_out… │
│ (Conv2D) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_3_conv │ (None, 16, 16, │ 66,048 │ conv3_block1_2_r… │
│ (Conv2D) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_0_bn │ (None, 16, 16, │ 2,048 │ conv3_block1_0_c… │
│ (BatchNormalizatio… │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_3_bn │ (None, 16, 16, │ 2,048 │ conv3_block1_3_c… │
│ (BatchNormalizatio… │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_add │ (None, 16, 16, │ 0 │ conv3_block1_0_b… │
│ (Add) │ 512) │ │ conv3_block1_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block1_out │ (None, 16, 16, │ 0 │ conv3_block1_add… │
│ (Activation) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_conv │ (None, 16, 16, │ 65,664 │ conv3_block1_out… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_bn │ (None, 16, 16, │ 512 │ conv3_block2_1_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_1_relu │ (None, 16, 16, │ 0 │ conv3_block2_1_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_conv │ (None, 16, 16, │ 147,584 │ conv3_block2_1_r… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_bn │ (None, 16, 16, │ 512 │ conv3_block2_2_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_2_relu │ (None, 16, 16, │ 0 │ conv3_block2_2_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_3_conv │ (None, 16, 16, │ 66,048 │ conv3_block2_2_r… │
│ (Conv2D) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_3_bn │ (None, 16, 16, │ 2,048 │ conv3_block2_3_c… │
│ (BatchNormalizatio… │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_add │ (None, 16, 16, │ 0 │ conv3_block1_out… │
│ (Add) │ 512) │ │ conv3_block2_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block2_out │ (None, 16, 16, │ 0 │ conv3_block2_add… │
│ (Activation) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_conv │ (None, 16, 16, │ 65,664 │ conv3_block2_out… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_bn │ (None, 16, 16, │ 512 │ conv3_block3_1_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_1_relu │ (None, 16, 16, │ 0 │ conv3_block3_1_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_conv │ (None, 16, 16, │ 147,584 │ conv3_block3_1_r… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_bn │ (None, 16, 16, │ 512 │ conv3_block3_2_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_2_relu │ (None, 16, 16, │ 0 │ conv3_block3_2_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_3_conv │ (None, 16, 16, │ 66,048 │ conv3_block3_2_r… │
│ (Conv2D) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_3_bn │ (None, 16, 16, │ 2,048 │ conv3_block3_3_c… │
│ (BatchNormalizatio… │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_add │ (None, 16, 16, │ 0 │ conv3_block2_out… │
│ (Add) │ 512) │ │ conv3_block3_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block3_out │ (None, 16, 16, │ 0 │ conv3_block3_add… │
│ (Activation) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_conv │ (None, 16, 16, │ 65,664 │ conv3_block3_out… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_bn │ (None, 16, 16, │ 512 │ conv3_block4_1_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_1_relu │ (None, 16, 16, │ 0 │ conv3_block4_1_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_conv │ (None, 16, 16, │ 147,584 │ conv3_block4_1_r… │
│ (Conv2D) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_bn │ (None, 16, 16, │ 512 │ conv3_block4_2_c… │
│ (BatchNormalizatio… │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_2_relu │ (None, 16, 16, │ 0 │ conv3_block4_2_b… │
│ (Activation) │ 128) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_3_conv │ (None, 16, 16, │ 66,048 │ conv3_block4_2_r… │
│ (Conv2D) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_3_bn │ (None, 16, 16, │ 2,048 │ conv3_block4_3_c… │
│ (BatchNormalizatio… │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_add │ (None, 16, 16, │ 0 │ conv3_block3_out… │
│ (Add) │ 512) │ │ conv3_block4_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv3_block4_out │ (None, 16, 16, │ 0 │ conv3_block4_add… │
│ (Activation) │ 512) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_conv │ (None, 8, 8, 256) │ 131,328 │ conv3_block4_out… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_bn │ (None, 8, 8, 256) │ 1,024 │ conv4_block1_1_c… │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_1_relu │ (None, 8, 8, 256) │ 0 │ conv4_block1_1_b… │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_conv │ (None, 8, 8, 256) │ 590,080 │ conv4_block1_1_r… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_bn │ (None, 8, 8, 256) │ 1,024 │ conv4_block1_2_c… │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_2_relu │ (None, 8, 8, 256) │ 0 │ conv4_block1_2_b… │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_0_conv │ (None, 8, 8, │ 525,312 │ conv3_block4_out… │
│ (Conv2D) │ 1024) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_3_conv │ (None, 8, 8, │ 263,168 │ conv4_block1_2_r… │
│ (Conv2D) │ 1024) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_0_bn │ (None, 8, 8, │ 4,096 │ conv4_block1_0_c… │
│ (BatchNormalizatio… │ 1024) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_3_bn │ (None, 8, 8, │ 4,096 │ conv4_block1_3_c… │
│ (BatchNormalizatio… │ 1024) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_add │ (None, 8, 8, │ 0 │ conv4_block1_0_b… │
│ (Add) │ 1024) │ │ conv4_block1_3_b… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block1_out │ (None, 8, 8, │ 0 │ conv4_block1_add… │
│ (Activation) │ 1024) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_conv │ (None, 8, 8, 256) │ 262,400 │ conv4_block1_out… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_bn │ (None, 8, 8, 256) │ 1,024 │ conv4_block2_1_c… │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_1_relu │ (None, 8, 8, 256) │ 0 │ conv4_block2_1_b… │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_conv │ (None, 8, 8, 256) │ 590,080 │ conv4_block2_1_r… │
│ (Conv2D) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_bn │ (None, 8, 8, 256) │ 1,024 │ conv4_block2_2_c… │
│ (BatchNormalizatio… │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv4_block2_2_relu │ (None, 8, 8, 256) │ 0 │ conv4_block2_2_b… │
│ (Activation) │ │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ UnetSemantic_Out │ (None, 128, 128, │ 27,342 │ concatenate_4[0]… │
│ (Conv2D) │ 7) │ │ │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ KeyPoint_Out │ (None, 30) │ 983,070 │ dropout[0][0] │
│ (Dense) │ │ │ │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
Ответ или решение
Ваша проблема, судя по описанию, связана с изменением поведения TensorFlow версии 2.16 по сравнению с версией 2.15 при выполнении операции переупаковки тензоров (Reshape). Ошибка, с которой вы столкнулись, указывает на то, что размерность тензора не делится на заданное значение 6, что является необходимым условием.
Анализ Проблемы
Ваша ошибка:
Dimension size must be evenly divisible by 6 but is 1835008 for
{{node compile_loss/loss/Reshape_1}} = Reshape
указывает на то, что TensorFlow пытается изменить форму тензора, который имеет размер 1835008. Данное значение не делится на 6, что приводит к ошибке.
Динамики Тензоров
При анализе вашего кода видно, что форма тензора, который вызывает проблему — это результат выполнения определенных операций, особенно во время компиляции потерь (compile_loss). Ваша модель использует слой Dense (KeyPoint_Out) с выводом размеров [None, 30]
, и любой вектор, используемый в вычислениях должен соответствовать требованиям изменения формы.
Общая Структура Модели
Судя по вашему выводу, у вас есть модель с несколькими свёрточными слоями, после которых вызываются слоя Dense. Обратите внимание на то, что ваше основное выходное значение (KeyPoint_Out
) имеет размер 30, в то время как ваш вариант, предположительно, требует фиксированного размера, который должен быть кратным 6.
Возможные Решения
-
Проверка Форм: Убедитесь, что выходные формы всех слоев вашей модели правильно сопоставлены. Возможно, что слои, которые идут перед вашим выходным слоем, необходимо изменить, чтобы их итоговая форма могла быть корректно интерпретирована. Примените
model.summary()
для более детального отчета о форме каждого слоя. -
Операция Reshape: Пересмотрите все операции, которые происходят перед проблемным узлом Reshape. Убедитесь, что все операции с тензорами дают ожидаемый выход, который делится на 6.
-
Настройка Параметров Модели: Попробуйте изменить параметры модели; возможно, потребуется изменить количество нейронов в вашем Dense-слое или внести коррективы в архитектуру свёрточных слоев для достижения требованиям выхода.
-
Использование отбора признаков: Попробуйте использовать технику, которая изменяет выход вашего последнего слоя для получения выходных данных, которые можно правильно переупаковать. Убедитесь, что
batch_size
и другие параметры правильно учитываются. -
Обновление кодовой базы: Если вы в дальнейшем планируете работать с более поздними версиями TensorFlow, возможно, стоит попытаться протестировать модель с обеими версиями (2.15 и 2.16), чтобы изолировать изменения, которые повлияли на структуру данных.
Заключение
Рекомендуется внимательно проанализировать и проверить все слои вашей модели, изменение формы тензоров, а также выходные значения, требуемые для операций. Ваша проблема, вероятно, связана с несовпадением формы данных из-за изменений в TensorFlow 2.16. Быстрое тестирование различных конфигураций может помочь быстро обнаружить несоответствия. Удачи вам в решении данной проблемы!