ตัวอย่างที่ 2 รุ่น
สับเปลี่ยนข้อมูล
สับเปลี่ยนข้อมูลก่อนการฝึกเสมอ
เมื่อโมเดลได้รับการฝึกฝน ข้อมูลจะถูกแบ่งออกเป็นชุดย่อย (แบทช์) จากนั้นแต่ละชุดจะป้อนเข้าสู่แบบจำลอง การสับเปลี่ยนมีความสำคัญในการป้องกันไม่ให้โมเดลรับข้อมูลเดิมซ้ำอีกครั้ง หากใช้ข้อมูลเดียวกันสองครั้ง โมเดลจะไม่สามารถสรุปข้อมูลและให้ผลลัพธ์ที่ถูกต้องได้ การสับเปลี่ยนให้ข้อมูลที่หลากหลายยิ่งขึ้นในแต่ละชุดงาน
ตัวอย่าง
tf.util.shuffle(data);
เทนเซอร์โฟลว์ เทนเซอร์
ในการใช้ TensorFlow จำเป็นต้องแปลงข้อมูลที่ป้อนเป็นข้อมูลเทนเซอร์:
// Map x values to Tensor inputs
const inputs = values.map(obj => obj.x);
// Map y values to Tensor labels
const labels = values.map(obj => obj.y);
// Convert inputs and labels to 2d tensors
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);
การปรับข้อมูลให้เป็นมาตรฐาน
ข้อมูลควรถูกทำให้เป็นมาตรฐานก่อนที่จะใช้ในโครงข่ายประสาทเทียม
ช่วง 0 - 1 โดยใช้ค่าต่ำสุด-สูงสุดมักจะดีที่สุดสำหรับข้อมูลตัวเลข:
const inputMin = inputTensor.min();
const inputMax = inputTensor.max();
const labelMin = labelTensor.min();
const labelMax = labelTensor.max();
const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));
แบบจำลองเทนเซอร์โฟลว์
Machine Learning Modelเป็นอัลกอริธึมที่สร้างเอาต์พุตจากอินพุต
ตัวอย่างนี้ใช้ 3 บรรทัดเพื่อกำหนดML Model :
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));
ML Model ตามลำดับ
รูปแบบ const = tf.sequential(); สร้างSequential ML Model
ในรูปแบบตามลำดับ อินพุตจะไหลโดยตรงไปยังเอาต์พุต รุ่นอื่นๆ สามารถมีได้หลายอินพุตและหลายเอาต์พุต Sequential เป็นโมเดล ML ที่ง่ายที่สุด ช่วยให้คุณสร้างแบบจำลองทีละชั้น โดยมีน้ำหนักที่สอดคล้องกับเลเยอร์ถัดไป
ชั้นเทนเซอร์โฟลว์
model.add()ใช้เพื่อเพิ่มสองชั้นให้กับโมเดล
tf.layer.denseเป็นประเภทเลเยอร์ที่ใช้งานได้ในกรณีส่วนใหญ่ มันคูณอินพุตด้วยเมทริกซ์น้ำหนักและเพิ่มตัวเลข (อคติ) ให้กับผลลัพธ์
รูปร่างและหน่วย
inputShape: [1]เพราะเรามี 1 อินพุต (x = ห้อง)
หน่วย: 1กำหนดขนาดของเมทริกซ์น้ำหนัก: 1 น้ำหนักสำหรับแต่ละอินพุต (ค่า x)
รวบรวมโมเดล
รวบรวมโมเดลด้วย ฟังก์ชัน เพิ่มประสิทธิภาพและการสูญเสีย ที่ระบุ :
model.compile({loss: 'meanSquaredError', optimizer:'sgd'});
คอมไพเลอร์ถูกตั้งค่าให้ใช้เครื่องมือเพิ่มประสิทธิภาพsgd ใช้งานง่ายและมีประสิทธิภาพมาก
meanSquaredError เป็นฟังก์ชันที่เราต้องการใช้เปรียบเทียบการทำนายแบบจำลองและค่าจริง