Categories
Computer Diary

#5 ติดตั้ง Docker เพื่อใช้งาน AI/ML

ปัญหาสำหรับงาน Machine Learning ส่วนหนึ่งเลยคือปัญหาการติดตั้ง และจัดการ Environment สำหรับการใช้งานทีประกอบไปด้วยปัญหาการติดตั้งเครื่องมือ ปัญหาการติดตั้งไลบรารี และปัญหาการตั้งค่า

ปัญหาเหล่านี้ส่งผลทำให้งานเป็นไปได้ล่าช้า หรือถึงแม้ติดตั้งเองได้แต่ก็ลืม รวมถึงถึงติดตั้งได้ แต่เครื่องมือเหล่านี้ก็เป็นเวอร์ชันเก่าแล้ว

Categories
Computer Diary

#4 – วิธีโหลดไฟล์ลง Google Drive ด้วย Colab

ปกติเวลาดาวน์โหลดไฟล์จากเว็บมาลงบนคอมพิวเตอร์เราก็จะบันทึกลงคอมพิวเตอร์ของเราตามปกติโดยการกดปุ่มดาวน์โหลดในหน้าเว็บไซต์ของแต่ละเว็บไซต์

อย่างไรก็ตาม กรณีที่เราอยู่ข้างนอกที่ใช้เน็ตมือถือ หรือพักโรงแรมที่เน็ตมันไม่เร็วมาก ถ้าเราดาวน์โหลดไฟล์ตามปกติ เราก็จะใช้ Bandwidth เป็นจำนวนมาก หรือต้องรอดาวน์โหลดไฟล์กว่าจะเสร็จก็ใช้ระยะเวลานาน

Categories
Computer Diary

วิธีการทำ Object Detection โดย Nanodet

Object detection คือขั้นตอนการหาตำแหน่งวัตถุจากภาพโดย AI ตามที่กำหนดไว้ ได้แก่ คน รถยนต์ จักรยาน และอื่น ๆ โดยผลลัพธ์ที่ได้จากการใช้งานเทคนิคนี้จะแสดงผลในรูปแบบกรอบสี่เหลี่ยม Bounding box พร้อมกับจำแนก Class ของภาพที่จับได้ว่าเป็นอะไร

Categories
Computer Diary

ปรับโมเดล ONNX ให้ไวด้วย Static Quantization

ปกติเมื่อเราเทรนโมเดลที่ต้องใช้ระยะเวลาหลายชั่วโมง ไปจนถึงหลายวันเสร็จเรียบร้อยแล้ว เราจะต้องนำโมเดลไปใช้งานบนเซิร์ฟเวอร์ หรืออุปกรณ์ฝังตัวขนาดเล็กเพื่อนำไปใช้งานจริง อย่างไรก็ตามโมเดลมันมีขนาดใหญ่ ต้องใช้พลังการประมวลผลมาก แล้วเราจะต้องใช้เทคนิคอะไรมาช่วยล่ะ?

คำตอบที่เหมาะสมกับปัญหานี้คือ Quantization

Categories
Computer Diary

วิธีการสร้างไฟล์ Excel ด้วย SheetJS

การส่งออกไฟล์ในรูปแบบ Excel เดิมถ้าจะเอาวิธีแบบง่าย ๆ เลยคือการส่งออกไฟล์ในรูปแบบ CSV ที่เป็นไฟล์ข้อความที่แบ่งข้อมูลระหว่างคอลัมภ์ด้วยการใช้ตัวอักษรคอมมา (,) เพื่อแบ่งข้อมูล โดยการส่งออกไฟล์ในลักษณะนี้เราส่งออกไฟล์ได้ด้วยการพิมพ์คำสั่ง

Categories
Computer Diary

ROG Flow X13: การตั้งค่าและทดสอบกับ AI/ML

เดิมทีเรามีโน้ตบุ๊คตัวเก่าอย่าง Surface Pro X ที่ใช้อยู่แล้วครับ เพียงแต่ช่วงนี้เครื่องอืดไปหน่อยสำหรับการใช้งานทางด้าน AI/ML ด้าน Computer Vision แถมคอมตั้งโต๊ะที่มีอยู่ก็พกพาไปไหนก็ไม่สะดวก และคอมที่แล็บก็ต้องรีโมทเข้าไปใช้งานก็ไม่สะดวกเช่นกัน เลยมองหาโน้ตบุ๊คซักตัวสำหรับการพกพา

Categories
Computer Diary

วิธีเทรน Segmentation โดย mmSegmentation

ปกติเวลาที่เราต้องการแยกวัตถุออกจากวัตถุหนึ่งโดยตาของคน อันนี้ทำได้ไม่ยาก เพราะเราแยกออกจากกันได้ง่ายอยู่แล้ว แต่จะให้คอมพิวเตอร์แยกวัตถุแต่ละอย่างออกจากภาพได้ อันนี้เราจำเป็นต้องให้คอมพิวเตอร์เรียนรู้เสียก่อน

โดยเรื่องนี้อยู่ในหัวข้อ AI (Artificial Intelligence) อย่าง Computer Vision ที่อยู่ในเรื่องของ Semantic Segmentation

Categories
Computer Diary

นำอุปกรณ์ Samsung มาใช้เขียนโปรแกรมแทนที่เดสก์ท็อป และโน้ตบุ๊ค โดย Samsung DeX

ภาคต่อจากบทความก่อนหน้าที่นำอุปกรณ์แอนดรอยด์มาติดตั้งโปรแกรม termux ร่วมกับการติดตั้งเครื่องมือการพัฒนาโปรแกรม รวมถึง IDE ที่จำเป็นมาใช้งาน ทีนี้เรามาพูดถึงอุปกรณ์แอนดรอยด์ที่คนใช้งานกันนั่นก็คือมือถือหรือแท็บเล็ตของซัมซุง

มือถือ หรือแท็บเล็ตของซัมซุงมีฟังก์ชันหนึ่งที่ทำให้เวลาที่เราต่อออกหน้าจอแล้วเป็นเดสก์ท็อปได้เลยผ่านการเสียบสาย USB-C ออกมาต่อเข้ากับจอผ่าน USB-C/HDMI/DisplayPort หรืออื่น ๆ โดยฟังก์ชันนี้เรียกว่า Samsung DeX

Categories
Computer Diary

วิธีนำอุปกรณ์ Android มาใช้โค้ดทิ้งแทนที่โน้ตบุ๊ต

ช่วงที่ผ่านมาก็จะมีพูดถึงการให้นักเรียนมาเรียนการเขียนโค้ด หรือที่คนพูดกันบ่อย ๆ (รวมถึงเจ้าหน้าที่รัฐฯ) ก็จะเรียกกันว่าโค้ดดิ้งที่ได้รับการบรรจุลงในวิชาวิทยาการคำนวณ โดยภาษาที่เหมาะกับผู้เริ่มต้นนั่นก็คือไพทอน

อย่างไรก็ดีการเขียนโปรแกรมไพทอนจำเป็นต้องใช้คอมพิวเตอร์เป็นหลักที่ใช่ว่าทุกคนจะมีกันเสียเท่าไร เลยคิดว่าไหน ๆ มือถือแอนดรอยด์ก็มีกันหลายคนแล้ว แถมเราก็เปลี่ยนจากไอโฟนมาเป็นซัมซุงที่รองรับ Samsung DeX อยู่แล้ว เลยมาเขียนบทความนี้ดีกว่า

Categories
Computer Diary

วิธีการเลือก parent element ด้วย JavaScript

ปกติเวลาที่เราเลือก element ด้วยภาษาจาวาสคริป เราจะใช้คำสั่งที่รู้จักกันอย่าง

document.getElementById("id");
document.document.getElementsByClassName("class name");
document.document.getElementsByName("name");
document.document.getElementsByTagName("tag name");

หรือเลือก element โดยการใช้ CSS Selector ด้วยคำสั่งที่รู้จักอย่าง

document.querySelector("selector");
parent_element.querySelector("selector");
document.querySelectorAll("selector");
parent_element.querySelectorAll("selector");

คำสั่งเหล่านี้ะคืนค่า element ที่เราเลือกไว้ ไม่ว่าจะเป็น element เดียว หรือ element ทั้งหมดที่เราพบในหน้าเว็บเพจนั้น ๆ อย่างไรก็ดีเราต้องการเลือก parent element จาก element ที่อยู่ภายใน จุดนี้เราจะทำได้อย่างไร?