ฉันมีหน้ากากตรรกะกำลังกำหนดค่าปัญหาที่ต้องการมีประสิทธิภาพเพียงพอ smooth scrolling หน้ากากตรรกะดำเนินงานการ)กิบัติงานอยู่
มันเป็นหลายมิติหน้ากากและฉันกำลังใช้ einsum
เพื่อประสบความสำเร็จในส่วนผลที่ตามแต่ที่ปฏิบัติการก็คือไม่มีประสิทธิภาพและฉันสงสัยว่าถ้าฉันสามารถการความช่วยเหลือนิดหน่กับมัน
นี่คือบทของผมปัจจุบันทางออก:(ทั้งสอง mask, truth_value, false_value
เป็นยัยทึ่มข้อมูลกับ dtype และรูปร่างตรงกับเพื่อนปัญหาของฉัน
mask = np.random.randn(1000, 50)> 0.5
truth_value = np.random.randn(50, 10)
false_value = np.random.randn(10)
objective = np.einsum('ij,jk->ijk', mask, truth_value) + np.einsum('ij,k->ijk', ~mask, false_value)
มันมีทางที่จะทำให้เร็วขึ้น objective
ให้ mask, truth_value, false_value
?
ในขณะที่ฉันรออยู่ข้างนอคิดออกเป็นทางรวดเร็ว
objective = np.where(mask[...,np.newaxis], np.broadcast_to(truth_value, (1000, 50, 10)), np.broadcast_to(false_value, (1000, 50, 10)))
แต่มันมีเร็วทางเลือก?
einsum
ทางออก! นิดหน่อยเร็วกว่าของฉันnp.where
+np.broadcast_to
ดูจากทางออกหรอกนะ