Python and Vectorization
Last updated
Was this helpful?
Last updated
Was this helpful?
ไปฅไธ็จไธๅ python ไพๅญไพ่งฃ้ vectorization ็ๅฅฝ่
ๅ่จญๆๅ่ฆๆฑ ๏ผ่ ้ฝๆฏ 1000000 * 1 ็็ฉ้ฃ
้ๆฏไธๅ for loop ๆนๆณ
้ๅไธๅ vectorization ็ๆนๆณ
้ไบๅ้ๅ็ๆนๆณ๏ผๆฏๅฉ็จ CPU ๆ GPU ็ SIMD ๅนณ่กๆไปค
ๆไปฅๅฏไปฅ็ๅฐ vectorization ๆฏ for loop ๅฟซไธไบไธ็พๅคๅ
ๅ ๆญคไปฅๅพๅจ็ทจๅฏซ็จๅผๆ๏ผๅจๅฏไปฅไฝฟ็จ vectorization ๆๅฐฑๆ็ก้้ฟๅ ไฝฟ็จ for loop
Guideline : "Whenever possible, avoid explicit for-loops"
ๆๅๅฐ forward propogation ็ for-loops ่ฉฆ่่ฝๆ vectorization
ๅฉ็จ for-loops ๆๅๅฟ ้ ่ฆ้ๆจฃๅ
ๆๅ็ฅ้ X ๆฏไธๅ nx * m ็็ฉ้ฃ
็ถๅพๅ่จ็ฎๅบ 1 * m ็ A ็ฉ้ฃ
ๅจ python ไธญ๏ผZ ็้็ฎๅฆไธ
dZ ๅ ถๅฏฆๅฐฑๆฏ็ฉ้ฃ A ๅ็ฉ้ฃ y ็ธๆธ
ๆๅๅฐ dw1, dw2, ... ็ตๅๆ็บไธๅ nx * 1 ็ dw ็ฉ้ฃ
่ db ๅๆฏ็จ sum ็ๆนๆณไน่ตทไพๅนณๅ
็พๅจๆๅๅฐฑ่ฝ็จไธๅ vectorization ็ๆนๆณไธๆฌก่จ็ฎไธๅ gradient descent ็ๆ ๅฝข
ๆๅๅฏไปฅๅฐๆดๅ็ฉ้ฃ็ดๆฅ่ท ็ธไน๏ผๅพๅฐไธๅ 1 * m ็ ็ฉ้ฃ
็พๅจๆๅไพๅฐ gradient (backpropogation) ็ ไน้ฒ่กๅ้ๅ