ฉันเพิ่งเริ่มเรียนรู้ Neural Networks สำหรับการเรียนรู้อย่างลึกซึ้งจาก cs231 ฉันพยายามใช้ Neural Network ใน Python ฉันกำลังดูที่ใช้ Tensorflow หรือ scikit-learn ข้อดีและข้อเสียของห้องสมุดเหล่านี้สำหรับแอปพลิเคชันนี้คืออะไร
ฉันเพิ่งเริ่มเรียนรู้ Neural Networks สำหรับการเรียนรู้อย่างลึกซึ้งจาก cs231 ฉันพยายามใช้ Neural Network ใน Python ฉันกำลังดูที่ใช้ Tensorflow หรือ scikit-learn ข้อดีและข้อเสียของห้องสมุดเหล่านี้สำหรับแอปพลิเคชันนี้คืออะไร
คำตอบ:
Sklearn ไม่ได้รับการสนับสนุนสำหรับ Deep Neural Networks มากนัก ระหว่างทั้งสองเนื่องจากคุณมีความสนใจในการเรียนรู้ลึกรับtensorflow
อย่างไรก็ตามฉันขอแนะนำให้ไปกับkerasซึ่งใช้ tensorflow เป็นแบ็กเอนด์ แต่ให้อินเตอร์เฟซที่ง่ายขึ้น
ในหลักสูตร cs231n เท่าที่ฉันจำได้คุณใช้เวลาส่วนใหญ่ในการติดตั้งเครือข่ายประสาทด้วยตัวคุณเองโดยไม่ใช้อะไรนอกจาก NumPy! นั่นเป็นประสบการณ์การเรียนรู้ที่น่าทึ่งสำหรับฉันอย่างแน่นอน
หลังจากนั้นในการมอบหมายครั้งสุดท้ายคุณต้องดูที่TensorFlow ( ตัวอย่าง ) หรือPytorch ( ตัวอย่าง ) อย่างแน่นอนเพื่อสร้างเครือข่ายที่ซับซ้อนมากขึ้น เฟรมเวิร์กเหล่านี้สร้างขึ้นโดยคนเช่นเดียวกับหลักสูตรสร้างเช่น CS231n - นักวิจัยและผู้เชี่ยวชาญในอุตสาหกรรม
SciKit เรียนรู้โมดูลเครือข่ายประสาทประกอบด้วยเครือข่ายฟีดไปข้างหน้าสำหรับการจัดหมวดหมู่อย่างใดอย่างหนึ่งหรือถดถอย แต่ไม่มีอะไรที่คนชอบเล่นเช่นเครือข่ายความสับสน (CNNs) เครือข่ายที่เกิดขึ้นอีก (RNNs) หรือส่วนประกอบที่แปลกใหม่มากขึ้นอื่น ๆ เช่นฟังก์ชั่นการเปิดใช้งานแยกต่างหาก
ฉันเห็นด้วยกับ Djib2011 ว่า Keras เป็นทางเลือกที่ยอดเยี่ยมในการเริ่มต้นและจะให้คุณเลือกระหว่าง TensorFlow, CNTK หรือ Theano เป็นแบ็กเอนด์ Keras เป็นชุดคลุมที่ดีรอบ ๆ โครงร่างสัตว์ประหลาดทั้งสามดังนั้นคุณจะทำให้สิ่งต่าง ๆ และทำงานได้อย่างรวดเร็ว นี่คือการเปรียบเทียบแบบย้อนหลังที่มีประโยชน์ล่าสุดของ Keras กับ Pytorch
เมื่อคุณคุ้นเคยกับเครื่องมืออย่าง Keras มันจะเร็วกว่าที่จะใช้สิ่งนั้นมากกว่าข้อเสนอง่ายๆใน SciKit Learn
ฉันรู้ว่าคุณไม่ได้ถาม PyTorch แต่ฉันคิดว่าฉันพูดถึงมันในฐานะหนึ่งในผู้สร้างดั้งเดิมของ CS231n Andrej Karpathy กล่าวว่าเป็นกรอบที่ดีที่สุด (ที่มา 1 , แหล่งที่ 2 )
tf.eager
api ซึ่งเทียบได้กับ PyTorch