Как отлить вывод среднего слоя, чтобы поместить его в слой Conv2D в Керасе?

#python #tensorflow #keras #typeerror #convolution

Вопрос:

Я пытаюсь создать собственный CNN, используя функциональный API keras. Проблема с моей теоретической и практической идеей заключается в том, что, когда я пытаюсь усреднить выход трех слоев Conv2D и передать его другому Conv2D. Я получаю сообщение об ошибке, в котором говорится, что вывод среднего значения в то же tf.float время Conv2D (это первый уровень свертки VGG16, потому что я занимаюсь обучением передаче) ожидает получить tf.int32

Я получаю следующую ошибку: **TypeError: Expected int32, got 0.0 of type 'float' instead.

Примечания:

  1. Я пробовал Максимум и минимум только в качестве теста и все равно получал ту же ошибку.
  2. К сожалению, я не могу поделиться кодом из-за NDA.

Вот фрагмент кода:

 self._layer_hs_o = Average(name="heads")(  [self._layer_hs_s, self._layer_hs_m, self._layer_hs_l]) # Trying to pass the average output to the following Conv2D layer self._layer_d2c_c = Conv2D(d2c_config["filters"],   d2c_config["kernels"][0],   padding="same",  activation=d2c_config["activation"],   name="d2c_c",  kernel_initializer=d2c_config["init"],  input_shape=self._layer_hs_o.shape,  dilation_rate=d2c_config["dilations"][0]  )(self._layer_hs_o)  

В данный момент модель не может быть скомпилирована из-за этого шага. Когда я пропускаю его до обычных сверток, только он компилируется, и обучение происходит нормально. И все же мне нужно в какой-то степени использовать Средний слой.

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

1. Пожалуйста, добавьте воспроизводимый код.

2. @M. Innat К сожалению, я не могу добавить воспроизводимый код, потому что проект, над которым я работаю, требует соглашения о неразглашении. Я связан некоторыми юридическими проблемами.

3. Нет, я не хотел, чтобы ты это делал. Я просто попросил дать какой-нибудь воспроизводимый код (с некоторыми фиктивными данными). К вашему сведению, при усреднении выходных данных слоя, я думаю, вы можете изменить тип среднего слоя на int .

4. Мы не сможем вам помочь, если вы не поделитесь каким-либо кодом, который воспроизводит или показывает проблему, так как эта ошибка не имеет для меня смысла.

5. @M. Innat Я добавил фрагмент своего кода, пожалуйста, проверьте его. Заранее благодарю вас за вашу помощь.