Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Pembelajaran Mesin di PLCnext

Sekarang semua orang telah mendengar tentang Machine Learning dan bagaimana hal itu akan mengubah segalanya. Tetapi sangat sedikit yang memiliki ide bagaimana memulai untuk mengubah segalanya. Saya harap ketika Anda mencoba langkah-langkah di blog ini, atau bahkan membacanya, akan membantu Anda memahami bagaimana memulai mengubah sesuatu dengan Kontroler PLCnext Anda. Di blog ini saya akan melatih model ML pertama Anda, mengonversinya ke standar ONNX dan menyimpulkan model pada pengontrol PLCnext. Agar tidak berlebihan dan membuat segalanya menjadi berlebihan, saya akan menggunakan set data Iris yang terkenal untuk membangun model kami.

Sebelum kita mulai, harus sangat jelas apa yang akan kita coba capai. Oleh karena itu saya akan memberikan sedikit penjelasan tentang topik yang dibahas di blog ini. Referensi saya dapat ditemukan di akhir blog ini.

Pengantar Pembelajaran Mesin

Apa itu Pembelajaran mesin

Jadi, saya kira kita harus mulai dengan menjelaskan apa itu pembelajaran mesin. Inti dari pembelajaran mesin adalah bahwa kami akan mencoba menemukan pola dalam kumpulan data dengan menggunakan statistik dan algoritme. Kami membedakan antara tiga jenis pembelajaran mesin utama:pembelajaran mesin yang diawasi, pembelajaran mesin tanpa pengawasan, dan pembelajaran penguatan. Pembelajaran terawasi adalah "rasa" yang paling banyak digunakan saat ini dan kami akan menggunakan pembelajaran terawasi di blog ini. Dalam pembelajaran yang diawasi, kami memberi label pada data dan memberi tahu mesin dengan tepat pola apa yang kami cari.

Dalam pembelajaran tanpa pengawasan, kami tidak memberi label pada data kami dan kami membiarkan mesin menemukan polanya sendiri, karena teknik ini memiliki aplikasi yang kurang jelas, pembelajaran tanpa pengawasan kurang populer.

Terakhir, dalam pembelajaran penguatan, suatu algoritma belajar dengan coba-coba untuk mencapai tujuan yang ditentukan. Itu hanya mencoba banyak hal dan mendapat hadiah atau hukuman tergantung apakah itu tindakan yang baik atau buruk. Googles AlphaGo adalah contoh pembelajaran penguatan yang terkenal.

Kumpulan data bunga Iris

Menurut Wikipedia, kumpulan data bunga Iris adalah:

Oke, bagus tapi bagaimana tampilannya?

Pada dataset Iris terdapat 5 field:panjang sepal, lebar sepal, panjang petal, lebar petal dan ragam bunga Iris. Tujuan kita hari ini adalah untuk menemukan jenis bunga Iris ketika kita mengetahui panjang sepal, lebar sepal, panjang kelopak dan lebar kelopak. Jadi kita akan melatih model untuk mengklasifikasikan jenis bunga. Seperti yang bisa Anda tebak, jenis pembelajaran mesin ini adalah klasifikasi.

Pembelajaran mesin juga dapat digunakan untuk memprediksi nilai dalam kumpulan data. Ini adalah prosedur bernama regresi dan menggunakan algoritma yang berbeda dari klasifikasi.

Algoritma

Hari ini kita akan menggunakan "Pengklasifikasi Pohon Keputusan" bukan karena itu sempurna untuk tugas itu, tetapi sangat intuitif dan dapat dengan mudah dipahami tanpa matematika yang rumit. Di sini Anda dapat menemukan contoh pohon keputusan untuk kumpulan data bunga Iris kami.

ONNX

Seperti yang dapat Anda bayangkan, model Pembelajaran Mesin dapat hadir dalam berbagai format dan perlu dijalankan pada banyak perangkat keras yang berbeda dengan metode akselerasi yang berbeda. Open Neural Network Exchange mencoba mengurangi masalah itu. Ini digunakan di kantor terbuka, biru, dan aplikasi lain yang tak terhitung jumlahnya di seluruh dunia. Hampir pasti digunakan di perangkat yang Anda baca di blog ini.


Untuk menjalankan model onnx kita memerlukan runtime onnx, ini disertai dengan tantangan. Terutama pada prosesor lengan, tetapi dengan gambar buruh pelabuhan yang disediakan, Anda akan baik-baik saja!

Panduan teknis

Prasyarat

Saya menggunakan pengontrol AXC F 2152 dengan firmware 2021.0 LTS terinstal dan Ubuntu 20.04 VM untuk melatih model. Skrip untuk melatih dan menyimpulkan model disediakan tetapi penyiapan VM Ubuntu berada di luar cakupan blog. Anda dapat menemukan penjelasan yang baik tentang cara menginstal paket Python yang diperlukan dan semua Paket yang digunakan harus diinstal dengan benar dengan pip3.

Pada pengontrol PLCnext kita memerlukan mesin kontainer yang terpasang. Anda dapat menemukan penjelasan prosedur yang baik di sini.

Prosedur serupa dengan AXC F 3152 juga dimungkinkan.

Anda memerlukan setidaknya pengalaman minimal dengan Python dan container untuk blog ini.

Melatih model

Unduh konten repositori GitHub ini dan pastikan semua paket yang diperlukan telah terinstal.

Skrip pertama yang akan kita jalankan adalah skrip kereta yang akan kita sesuaikan dengan model kita ke kumpulan data iris.
Di bawah ini Anda dapat menemukan kode yang dipotong dari skrip pelatihan ini. Script ini akan membuat file ".onnx" yang berisi model terlatih.

# Slit the dataset in a training and testing dataset
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, Y_test = train_test_split(X, y)
# Define the model and fit the model with training data and print information about the model
clr = DecisionTreeClassifier()
clr.fit(X_train, y_train)
print(clr)
#Convert the model from sklearn format to ONNX (Open Neural Network Exchange)
initial_type = [('float_input', FloatTensorType([None, 4]))]
onx = convert_sklearn(clr, initial_types=initial_type)
with open("decision_tree_iris.onnx", "wb") as f:
f.write(onx.SerializeToString())

Inferensi di Ubuntu

Periksa model Anda dengan menjalankannya di mesin Anda yang sedang berkembang. Saat Anda menjalankan skrip inferensi, Anda harus mendapatkan 2 bilangan bulat yang sesuai dengan jenis bunga Iris.

import numpy as np
import onnxruntime as rt
X_test = np.array([[5.8,4.0,1.2,0.2],[7.7,3.8,6.7,2.2,]])
sess = rt.InferenceSession("decision_tree_iris.onnx")
input_name = sess.get_inputs()[0].name
label_name = sess.get_outputs()[0].name
pred_onx = sess.run(
[label_name], {input_name: X_test.astype(np.float32)})[0]
print(pred_onx)

output : [0 2]

Inferensi pada PLCnext

Buka klien sFTP favorit Anda dan letakkan repositori ".onnx" dan "inference.py" di /opt/plcnext/onnx pada pengontrol PLCnext Anda. Lanjutkan dengan menjalankan perintah berikutnya sebagai root:

balena-engine run -it --name onnx -v /opt/plcnext/onnx/:/app pxcbe/onnx-runtime-arm32v7

jalankan skrip inferensi python dengan

cd /app
python3 /app/inference.py

Jika semuanya berjalan dengan baik, Anda mendapatkan output yang sama dengan inferensi pada VM Ubuntu Anda! Selamat, Anda telah berhasil sampai akhir. Sekarang, ubah segalanya!

Bagaimana cara mengimplementasikan dalam aplikasi?

Sebenarnya, kita belum selesai. Maksud saya, mengklasifikasikan bunga iris itu menyenangkan tetapi saya tidak dapat membayangkan banyak aplikasi untuk itu pada pengontrol logis. Anda harus membuat model Anda sendiri dan membuat API untuk model itu sehingga Anda dapat menyimpulkannya. Anda dapat memilih untuk mengirimkan data ke model dengan OPC UA atau membuat titik akhir REST khusus untuknya. Bagaimanapun Anda harus menulis lebih banyak kode daripada yang saya berikan.

Mempertimbangkan bahwa membangun gambar secara literal membutuhkan waktu berhari-hari dan malam tanpa tidur, saya sarankan Anda membangun gambar Anda di atas gambar yang disediakan. Dalam referensi, Anda dapat menemukan sumber yang bagus untuk membuat aplikasi container Python.

Referensi:

https://www.technologyreview.com/2018/11/17/103781/what-is-machine-learning-we-drew-you-another-flowchart/https://en.wikipedia.org/wiki/Iris_flower_data_set

Terimalah cookie pemasaran untuk menonton video ini.

https://www.researchgate.net/figure/Decision-tree-for-Iris-dataset_fig1_293194222https://onnx.ai/

https://github.com/PLCnext/Docker_GettingStarted

https://www.wintellect.com/containerize-python-app-5-minutes/

https://github.com/onnx/models

Teknologi Industri

  1. Pembelajaran mesin di AWS; Tahu Semuanya
  2. Mesin Jahit
  3. Rantai Pasokan dan Pembelajaran Mesin
  4. Haruskah Procurement Takut atau Menyambut AI dan Teknologi Pembelajaran Mesin?
  5. Pembelajaran Mesin di Lapangan
  6. Machine Learning dalam Pemeliharaan Prediktif
  7. Bagaimana AI dan Pembelajaran Mesin Berdampak pada Pemesinan CNC
  8. 4 industri yang paling diuntungkan dari pembelajaran mesin
  9. 9 aplikasi pembelajaran mesin yang harus Anda ketahui
  10. Prediksi Masa Pakai Baterai dengan Pembelajaran Mesin