3
การหาค่าไอเก็นน้อยที่สุดของเมทริกซ์กระจัดกระจายขนาดใหญ่ช้ากว่า SciPy มากกว่า 100 เท่าใน Octave
ฉันพยายามคำนวณ eigenvector เพียงไม่กี่ (5-500) ที่สอดคล้องกับค่าลักษณะเฉพาะขนาดเล็กที่สุดของเมทริกซ์กระจัดกระจาย - สมมาตรขนาดใหญ่ (สูงสุด 30000x30000) โดยน้อยกว่า 0.1% ของค่าที่ไม่ใช่ศูนย์ ขณะนี้ฉันกำลังใช้ scipy.sparse.linalg.eigsh ในโหมด shift-invert (sigma = 0.0) ซึ่งฉันคิดว่าผ่านการโพสต์ต่างๆในหัวข้อเป็นวิธีที่ต้องการ อย่างไรก็ตามอาจใช้เวลาถึง 1 ชั่วโมงในการแก้ปัญหาในกรณีส่วนใหญ่ ในทางกลับกันฟังก์ชั่นนั้นเร็วมากถ้าฉันขอค่าลักษณะเฉพาะที่ใหญ่ที่สุด (วินาทีย่อยในระบบของฉัน) ซึ่งคาดว่าจากเอกสาร เนื่องจากฉันคุ้นเคยกับ Matlab มากขึ้นจากการทำงานฉันพยายามแก้ไขปัญหาใน Octave ซึ่งให้ผลลัพธ์แบบเดียวกันกับฉันโดยใช้ eigs (sigma = 0) ในเวลาเพียงไม่กี่วินาที (ช่วงย่อย 10 วินาที) เนื่องจากฉันต้องการทำการกวาดพารามิเตอร์ของอัลกอริธึมรวมถึงการคำนวณ eigenvector การเพิ่มเวลาแบบนั้นน่าจะเป็นเรื่องที่ดีสำหรับไพ ธ อนเช่นกัน ฉันก่อนเปลี่ยนพารามิเตอร์ (โดยเฉพาะอย่างยิ่งความอดทน) แต่นั่นไม่ได้เปลี่ยนแปลงมากใน timescales ฉันใช้ Anaconda …