#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.
Примечания:
- Я пробовал Максимум и минимум только в качестве теста и все равно получал ту же ошибку.
- К сожалению, я не могу поделиться кодом из-за 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 Я добавил фрагмент своего кода, пожалуйста, проверьте его. Заранее благодарю вас за вашу помощь.