Почему бы вам не сделать это с регулярным выражением? Согласно документации , что-то вроде этого должно работать:
import re
def anti_vowel(s):
result = re.sub(r'[AEIOU]', '', s, flags=re.IGNORECASE)
return result
Если вы часто используете эту функцию, вы можете скомпилировать регулярное выражение и использовать скомпилированную версию.
Что ж, без заполнения выходной сигнал стал бы меньше входного. Эффект сравним с эффектом уменьшения нормальной свертки.
Представьте, что у вас есть 1d-тензор с 1000 элементами и расширенное ядро свертки 1x3 с коэффициентом расширения 3. Это соответствует «общей длине ядра», равной 1 + 2free + 1 + 2free + 1 = 7. Учитывая ход из 1 выход будет 1d-тензор с 1000 + 1-7 = 994 элементов. В случае нормальной свертки с ядром 1x3 и коэффициентом шага 1 выход будет иметь 1000 + 1-3 = 998 элементов. Как видите, эффект можно рассчитать аналогично обычной свертке:)
В обеих ситуациях выходной сигнал станет меньше без заполнения. Но, как вы можете видеть, коэффициент расширения не влияет на масштабирование выходного размера, как в случае с коэффициентом шага.
Как вы думаете, почему в рамках Deeplab не выполняется заполнение? Я думаю, что в официальной реализации тензорного потока используется заполнение.
Лучший Франк