วิธีที่เป็นเวกเตอร์เพื่อใช้มาสก์ 3 มิติกับ RGB ใน pytorch
Aug 18 2020
ฉันมีเทนเซอร์ HxWx3 ที่แสดงภาพ RGB และเทนเซอร์ HxWx3 (บูลีน) เป็นอินพุต สันนิษฐานว่าสำหรับแต่ละ (i, j) ในเทนเซอร์มาสก์มีค่าจริงเพียงค่าเดียว (นั่นคือค่าหนึ่งของ R \ G \ B เปิดอยู่) ฉันต้องการใช้มาสก์กับรูปภาพเพื่อให้ได้ค่า HxW (หรือ HxWx1) เทนเซอร์ V โดยที่ V [i, j] = 'ค่า R \ G \ B ที่ตรงกันตามมาสก์'
การใช้ปัญหาในการใช้ไบนารีมาสก์กับภาพ RGB ด้วยตัวเลขฉันสามารถทำได้ดังต่อไปนี้:
>>> X*mask
tensor([[[ 9., 10.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 20.]],
[[ 0., 0.],
[30., 0.]]])
แต่ตามที่ระบุไว้ฉันต้องการ HxW สลัวเดียวไม่ใช่ HxWx3
ภาพประกอบ:

คำตอบ
4 Mercury Aug 18 2020 at 18:31
สมมติว่าสำหรับ i แต่ละค่า j จะคงไว้เพียงค่า R / G / B เดียวคุณสามารถทำได้:
(X*mask).sum(axis=2)
สิ่งนี้ควรให้เอาต์พุต (HxW) ที่คุณต้องการ