Ответ на вопрос с собеседования 💼
❶ Матрица весов для B:
вместе с паддингом (0, 2) свертка дает желаемую картинку. Ещё можно использовать свертку 5х5, заполнив все строчки нулями, кроме центральной.
❷ Матрица весов для D:
❸ Изображение C оказалось самым сложным. Тут мы добавили небольшой секрет 🤫 Его можно получить из D применением следующей свертки:
Изображения B и D легко поддались и вы нашли правильные ответы быстрее, чем за час! Изображение C было тяжелее, но зато получило самое необычное решение.
Итак, победители, к которым отправляются пиццы:
🍕 @Storks89 — первым нашел решение для изображения B
🍕 @science_boy — первым нашел решение для изображения D
🍕 @vdjakov — 2 пиццы за правильное решение для изображения С и за интересный подход с использованием СЛАУ для подбора весов свёрточного слоя!
❶ Матрица весов для B:
[1, 0, 0, 0, 1],
вместе с паддингом (0, 2) свертка дает желаемую картинку. Ещё можно использовать свертку 5х5, заполнив все строчки нулями, кроме центральной.
❷ Матрица весов для D:
[[1, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[1, 0, 0, 0, 1]]
❸ Изображение C оказалось самым сложным. Тут мы добавили небольшой секрет 🤫 Его можно получить из D применением следующей свертки:
weight = torch.tensor([
[1, 0, 1],
[0, 0, 0],
[1, 0, 1],
], dtype=torch.float32)[None, None, ...]
result = torch.nn.functional.conv2d(image_d, weight, padding=3, dilation=3)
Изображения B и D легко поддались и вы нашли правильные ответы быстрее, чем за час! Изображение C было тяжелее, но зато получило самое необычное решение.
Итак, победители, к которым отправляются пиццы:
🍕 @Storks89 — первым нашел решение для изображения B
🍕 @science_boy — первым нашел решение для изображения D
🍕 @vdjakov — 2 пиццы за правильное решение для изображения С и за интересный подход с использованием СЛАУ для подбора весов свёрточного слоя!