Cara vektor untuk menerapkan topeng 3 dimensi ke RGB dalam pytorch
Saya memiliki tensor HxWx3 yang mewakili gambar RGB dan tensor topeng HxWx3 (boolean) sebagai masukan. Diasumsikan bahwa untuk setiap (i, j) dalam mask tensor ada tepat satu nilai sebenarnya (yaitu salah satu dari R \ G \ B aktif). Saya ingin menerapkan topeng ke gambar untuk menghasilkan tensor HxW (atau HxWx1) V di mana V [i, j] = 'nilai R \ G \ B yang cocok menurut topeng'.
Menggunakan Masalah menerapkan binary mask ke gambar RGB dengan numpy saya dapat mencapai yang berikut:
>>> X*mask
tensor([[[ 9., 10.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 20.]],
[[ 0., 0.],
[30., 0.]]])
Tapi seperti yang dinyatakan, saya ingin HxW redup tunggal dan bukan HxWx3 sebagai hasilnya.
Ilustrasi:

Jawaban
Dengan asumsi bahwa untuk setiap i, j hanya satu nilai R / G / B yang dipertahankan, Anda dapat melakukan:
(X*mask).sum(axis=2)
Ini akan memberi Anda keluaran (HxW) yang Anda inginkan.