Ответ на вопрос с собеседования 💼



❶ Матрица весов для 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 пиццы за правильное решение для изображения С и за интересный подход с использованием СЛАУ для подбора весов свёрточного слоя!