Ошибка во время выполнения с Keras AveragePooling2D

#python #tensorflow #keras

#python #тензорный поток #keras

Вопрос:

 import tensorflow as tf
print("Tensorflow version: ", tf.__version__)
import logging
tf.get_logger().setLevel(logging.ERROR)

import numpy as np 
from keras.models import Sequential 
from keras.layers import AveragePooling2D 

# define input image 
image = np.array([  [2, 2, 7, 3], 
                    [9, 4, 6, 1], 
                    [8, 5, 2, 4], 
                    [3, 1, 2, 6]])

image = image.reshape(1, 4, 4, 1) 

# define model containing just a single average pooling layer 
# https://keras.io/api/layers/pooling_layers/average_pooling2d/
model = Sequential( 
            [AveragePooling2D(pool_size = 2, strides = 2)]
        ) 

# generate pooled output
output = model.predict(image) 

# print output image 
output = np.squeeze(output) 
print("Average Pooling using keras:",output)  
  

Я получил следующую ошибку:

  • Ошибка значения: ввод 0 слоя sequential_14 несовместим со слоем: ожидаемый ndim=5, найденный ndim=4. Получена полная форма: [Нет, 4, 4, 1]

У вас есть какие-нибудь идеи? Спасибо.

Комментарии:

1. Работает для меня для версии Tensorflow: 2.1.0 . Вывод: Average Pooling using keras: [[4.25 4.25] [4.25 3.5 ]] . Какую версию tensorflow вы используете?

2. Спасибо за ваш быстрый ответ. Версия Tensorflow: 2.3.0

3. Теперь я понял. Я использовал JupyterLab 2.2.6, но он хорошо работает в Jupyter notebook 6.1.1 Спасибо за ваши усилия

Ответ №1:

Попробуйте изменить тип:

 image = np.array([  [2, 2, 7, 3], 
                    [9, 4, 6, 1], 
                    [8, 5, 2, 4], 
                    [3, 1, 2, 6]], dtype="float64")