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

Pyodide – แนะนำการเริ่มต้นใช้งาน และการพล็อตกราฟเพื่อแสดงบนหน้าเว็บ

Python เป็นภาษาคอมพิวเตอร์ภาษาหนึ่งที่ได้รับความนิยมภาษาหนึ่ง โดยภาษานี้เป็นภาษา General-purpose ท่เน้นการอ่านตัวโค้ดได้ง่าย รวมถึงง่ายต่อการเรียนรู้ ภาษานี้ปกติจะไม่ได้ออกแบบเพื่อการทำงานบนหน้าเว็บไซต์แบบจาวาสคริป อย่างไรก็ดีมีทีมงานกลุ่มหนึ่งใน Mozilla ที่พัฒนาตึวโค้ด CPython ให้ทำงานอยู่บน Webassembly ที่ออกแบบมาให้รันตัวโค้ดที่ได้รับการคอมไพล์บนหน้าเว็บไซต์

เมื่อตัวโค้ดได้รับการคอมไพล์ให้อยู่บน Webassembly แล้ว ตัวโค้ดที่เขียนในรูปแบบภาษา Python จะเข้าถึง Web APIs ทั้งหลายแหล่ที่อยู่บนเว็บเบราวเซอร์ได้นั่นเอง

Categories
Computer Diary

รันโค้ด Jupyter โดยไม่ต้องเปิดหน้าเว็บเบราวเซอร์ทิ้งไว้

Jupyter Notebook เป็นเครื่องมือที่ช่วยให้เรารันตัว Python Notebook ได้ ซึ่งตัวนี้เหมาะกับการเขียนโค้ดเพื่อคำนวณทางด้านวิทยาศาสตร์ หรือทำงานด้าน Data Science และอื่น ๆ เป็นต้น ซึ่งเราจะพบการใช้งานตัว Jupyter Notebook ได้บ่อย ๆ ใน Google Colab

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

Categories
Computer Diary

เขียนโค้ดจาวาสคริปเพื่อเช็คว่าใช้งาน MetaMask อยู่หรือไม่

Web3 (ที่ไม่ใช่ Web 3.0 ตามที่คุณ Tim Berners-Lee กล่าวไว้) เป็นเว็บไซต์รูปแบบหนึ่งที่อยู่บนบล็อคเชนที่นำหลักการ Decentralization และหลักการ Token-based economics ตัวอย่างเช่นคริปโต โดย Web3 ที่พบได้ และบางคนก็ใช้ก็ตัวอย่างเช่น DeFi แบบ Pancakeswap หรืออื่น ๆ

อย่างไรก็ดี เวลาที่เปิดใช้งานเว็บแนวนี้เราก็ต้องเช็คก่อนครับว่ามีกระเป๋าตังคริปโต (ที่ได้ยินบ่อยก็เป็น MetaMask) หรือไม่ ถ้ามี เราก็เปิดให้เชื่อมกับกระเป๋าตังสำหรับใช้ทำธุรกรรม Smart Contract หรืออื่น ๆ ต่อได้เลย แต่ถ้าไม่มีก็ให้เว็บแจ้งว่าไม่มี

Categories
Computer Diary

การเขียนโค้ดเพื่อใช้งาน GraphQL โดยไม่ใช้ไลบรารี

เวลาที่ส่งข้อมูลระหว่าง Client และ Server ผ่านทางจาวาสคริปโดยเรียกใช้งานผ่านทาง AJAX ปกติ เราจะส่งข้อมูลโดยวิธี POST ผ่านการพิมพ์โค้ดตามด้านล่างนี้ (ในตัวอย่างจะใช้ XMLHttpRequest แต่จะใช้ Fetch, Axios หรืออื่น ๆ ก็ได้ เพราะได้ผลเหมือนกัน)