
TINN (Neural Network Tiny) เป็นไลบรารีเครือข่ายประสาทแบบพึ่งพาได้ 200 บรรทัดที่เขียนใน C99
สำหรับการสาธิตเกี่ยวกับวิธีการเรียนรู้ตัวเลขที่เขียนด้วยมือรับข้อมูลการฝึกอบรม:
wget http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data
make; ./test
ข้อมูลการฝึกอบรมประกอบด้วยตัวเลขที่เขียนด้วยมือที่เขียนทั้งช้าและรวดเร็ว แต่ละบรรทัดในชุดข้อมูลสอดคล้องกับตัวเลขที่เขียนด้วยลายมือหนึ่งตัว แต่ละหลักมีขนาด 16x16 พิกเซลให้ 256 อินพุตไปยังเครือข่ายประสาท
ในตอนท้ายของบรรทัด 10 หลักหมายถึงตัวเลขที่เขียนด้วยมือ:
0: 1 0 0 0 0 0 0 0 0 0
1: 0 1 0 0 0 0 0 0 0 0
2: 0 0 1 0 0 0 0 0 0 0
3: 0 0 0 1 0 0 0 0 0 0
4: 0 0 0 0 1 0 0 0 0 0
...
9: 0 0 0 0 0 0 0 0 0 1
สิ่งนี้ให้ 10 เอาต์พุตไปยังเครือข่ายประสาท โปรแกรมทดสอบจะส่งออกความแม่นยำสำหรับแต่ละหลัก คาดว่าจะมีความแม่นยำสูงกว่า 99% สำหรับตัวเลขที่ถูกต้องและน้อยกว่าความแม่นยำ 0.1% สำหรับตัวเลขอื่น ๆ
พกพา - ทำงานที่มีคอมไพเลอร์ C99 หรือ C ++ 98
การเปิดใช้งาน Sigmoidal
หนึ่งเลเยอร์ที่ซ่อนอยู่
TINN จะไม่ใช้มากกว่าไลบรารีมาตรฐาน C
Tinn เหมาะสำหรับระบบฝังตัว ฝึกอบรมแบบจำลองบนเดสก์ท็อปที่ทรงพลังของคุณและโหลดลงในไมโครคอนโทรลเลอร์และใช้ตัวแปลงแบบอะนาล็อกเป็นดิจิตอลเพื่อทำนายเหตุการณ์แบบเรียลไทม์
ซอร์สโค้ด TINN จะน้อยกว่า 200 บรรทัดเสมอ ฟังก์ชั่นที่ได้จากส่วนหัวของ TINN ได้รับการปกป้องด้วย Namespace XT ที่ยืนสำหรับ TINN ที่ได้รับการยกเว้น
TINN สามารถเป็นมัลติเธรดได้อย่างง่ายดายด้วยความเฉลียวฉลาดเล็กน้อย แต่สาขาหลักจะยังคงเป็นเกลียวเดี่ยวเพื่อช่วยในการพัฒนาระบบฝังตัว
TINN ไม่ได้เพาะตัวเครื่องกำเนิดตัวเลขสุ่ม อย่าลืมทำเอง
สลับข้อมูลอินพุตของคุณเสมอ สับเปลี่ยนอีกครั้งหลังจากการฝึกฝนซ้ำทุกครั้ง
รับความแม่นยำในการฝึกอบรมมากขึ้นโดยการหลอมอัตราการเรียนรู้ของคุณ ตัวอย่างเช่นคูณอัตราการเรียนรู้ของคุณด้วย 0.99 ทุกครั้งการฝึกอบรม สิ่งนี้จะเป็นศูนย์ในการเรียนรู้ที่ดีขั้นต่ำ
Tinn เป็นการฝึกฝนในความเรียบง่าย
Tinn ไม่ใช่ห้องสมุด N Neural Network C ที่โดดเด่นอย่าง Kann หรือ Genann:
https://github.com/attractivechaos/kann
https://github.com/codeplea/genann
Rust: https://github.com/dvdplm/rustinn
บทช่วยสอนที่ใช้ tinn nn และ ctypes
ห้องสมุดเครือข่ายประสาทขนาดเล็กในรหัส 200 บรรทัด