Dalam dunia pembangunan teknologi dan pembelajaran mesin baru -baru ini, ia tidak lagi terkurung di awan mikro tetapi dalam peranti mudah alih. Seperti yang kita ketahui, Tensorflow Lite dan Pytorch Mobile adalah dua alat yang paling banyak disediakan untuk menggunakan model secara langsung pada telefon dan tablet. Tensorflow Lite dan Pytorch Mobile, kedua -duanya, dibangunkan untuk beroperasi di telefon bimbit, namun mereka berdiri berbeza dalam kebaikan dan keburukan mereka. Di sini dalam artikel ini kita perlu tahu apa Tensorflow Lite, apakah PyTorch Mobile, aplikasi dan perbezaan mereka antara kedua -duanya.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Kami boleh melakukan AI pada peranti mudah alih termasuk telefon pintar, tablet atau mana -mana peranti lain yang menggunakan pada pembelajaran mesin peranti. Kami tidak perlu bergantung kepada perkhidmatan awan. Ini adalah tindak balas yang cepat, keselamatan maklumat sensitif, dan aplikasi boleh dijalankan dengan atau tanpa sambungan internet yang sangat penting dalam pelbagai aplikasi; Pengiktirafan imej dalam masa nyata, terjemahan mesin, dan realiti tambahan.
Tensorflow Lite adalah versi tensorflow yang sering digunakan pada peranti dengan keupayaan terhad. Ia berfungsi dan serasi dengan sistem operasi lain seperti Android dan iPhone. Ia terutamanya berpusat dalam menyediakan latensi dan pelaksanaan prestasi tinggi. Bagi Tensorflow Lite, terdapat pengoptimasi model yang membantu menggunakan kaedah tertentu, contohnya, kuantisasi kepada model. Ini menjadikan model lebih cepat dan lebih kecil untuk penggunaan mudah alih yang penting dalam amalan ini untuk meningkatkan kecekapan.
Berikut adalah beberapa ciri yang paling penting dalam lite tensorflow:
Pytorch Mobile adalah lanjutan mudah alih pytorch. Ia umumnya dikenali kerana fleksibiliti dalam penyelidikan dan pengeluaran. Pytorch Mobile menjadikannya mudah untuk mengambil model terlatih dari persekitaran desktop dan menggunakannya pada peranti mudah alih tanpa banyak pengubahsuaian. Ia memberi tumpuan lebih kepada kemudahan penggunaan pemaju dengan menyokong graf pengiraan dinamik dan membuat debugging lebih mudah.
Berikut adalah beberapa ciri penting Pytorch Mobile:
Apabila kita membincangkan prestasi mereka, kedua -dua rangka kerja dioptimumkan untuk peranti mudah alih, tetapi Tensorflow Lite mempunyai kelajuan pelaksanaan yang tinggi dan kecekapan sumber.
Pytorch Mobile umumnya disukai oleh pemaju kerana fleksibiliti dan kemudahan debugging. Ia adalah kerana graf pengiraan dinamik. Ini membantu kami mengubah suai model semasa runtime, yang bagus untuk prototaip. Sebaliknya, Lite Tensorflow memerlukan model untuk ditukar kepada format statik sebelum penggunaan, yang boleh menambah kerumitan tetapi menghasilkan model yang lebih dioptimumkan untuk mudah alih.
Kita boleh menggunakan kedua -dua Tensorflow Lite dan Pytorch Mobile pada dua platform mudah alih utama, Android dan iOS.
Apabila ia datang untuk memilih yang akan menyokong perkakasan yang mana, TFLite adalah cara yang lebih fleksibel. Oleh kerana sistem perwakilan ia menyokong bukan sahaja CPU dan GPU tetapi juga pemproses isyarat digital (DSP) dan cip lain yang dianggap lebih tinggi daripada CPU asas.
Walaupun Pytorch Mobile juga menyokong CPU dan GPU seperti Metal for IOS dan Vulkan untuk Android, ia mempunyai pilihan yang lebih sedikit untuk percepatan perkakasan di luar itu. Ini bermakna TFLite mungkin mempunyai kelebihan apabila kita memerlukan keserasian perkakasan yang lebih luas, terutamanya untuk peranti yang mempunyai pemproses khusus.
Perbezaan utama antara Tensorflow Lite dan Pytorch Mobile adalah bagaimana model bergerak dari fasa latihan untuk digunakan pada peranti mudah alih.
Jika kita mahu menggunakan model TensorFlow pada mudah alih maka ia perlu ditukar menggunakan penukar TFLITE. Proses ini boleh dioptimumkan, seperti kuantisasi yang akan menjadikan model cepat dan cekap untuk sasaran mudah alih.
Untuk PyTorch Mobile, kami dapat menyimpan model menggunakan TorchScript. Proses ini sangat mudah dan mudah, tetapi ia tidak menawarkan tahap pilihan pengoptimuman canggih yang sama yang disediakan oleh TFLite.
Terokai aplikasi dunia nyata lite dan pytorch mudah alih, mempamerkan bagaimana rangka kerja ini menguasai penyelesaian pintar di seluruh industri yang pelbagai.
TFLITE adalah platform yang lebih baik untuk aplikasi yang berbeza yang memerlukan respons cepat seperti klasifikasi imej masa nyata atau pengesanan objek. Jika kami sedang mengusahakan peranti dengan perkakasan khusus seperti GPU atau unit pemprosesan saraf. Ciri -ciri pecutan perkakasan Tflite membantu model berjalan lebih cepat dan lebih cekap.
Pytorch Mobile sangat bagus untuk projek -projek yang masih berkembang, seperti aplikasi penyelidikan atau prototaip. Fleksibiliti menjadikannya mudah untuk bereksperimen dan berulang, yang membolehkan pemaju membuat perubahan cepat. Pytorch Mobile sangat sesuai apabila kita perlu sering mencuba dan menggunakan model baru dengan pengubahsuaian yang minimum.
Kami akan menggunakan model pra-terlatih (MobileneTv2) dan menukarnya ke lite tensorflow.
Perkara pertama yang kita lakukan ialah mengimport Tensorflow dan memuatkan model Mobilenetv2 yang terlatih. Ia bersedia untuk digunakan untuk pra-latihan pada dataset ImageNet, seperti yang telah dilihat dalam model ini. Model.export ('Mobilenet_Model') menulis model dalam format SavedModel TensorFlow. Ini adalah format yang diperlukan untuk menukarnya ke model Lite Tensorflow (TFLite) yang digunakan dengan peranti mudah alih.
# Langkah 1: Sediakan persekitaran dan muatkan model Mobilenetv2 yang terlatih Import Tensorflow sebagai TF # Muatkan model MobileNeTv2 yang dipretrained model = tf.keras.applications.mobilenetv2 (berat = 'imagenet', input_shape = (224, 224, 3)) # Simpan model sebagai SavedModel untuk penukaran tflite model.export ('mobilenet_model')
Model ini dimuatkan dari model yang disimpan (direktori Mobilenet_Model) menggunakan TFLiteConverter. Penukar menukarkan model ke format yang lebih ringan. Tflite. Akhirnya, model tflite disimpan sebagai mobilenet_v2.tflite untuk kegunaan kemudian dalam aplikasi mudah alih atau tepi.
# Langkah 2: Tukar model ke lite tensorflow penukar = tf.lite.tfliteconverter.from_saved_model ('mobilenet_model') tflite_model = converter.convert () # Simpan model yang ditukar ke fail tflite dengan terbuka ('mobilenet_v2.tflite', 'wb') sebagai f: f.write (tflite_model)
Sekarang, kami mengimport perpustakaan yang diperlukan untuk operasi berangka (numpy) dan manipulasi imej (pil.image). Model TFLite dimuatkan menggunakan memori TF.Lite.Interpreterand dan diperuntukkan untuk tensor input/output. Kami mengambil butiran mengenai tensor input/output, seperti bentuk dan jenis data, yang akan berguna apabila kita memproses imej input dan mengambil output.
import numpy sebagai np dari gambar import pil # Muatkan model Tflite dan peruntukkan tensor penterjemah = tf.lite.interpreter (model_path = 'mobilenet_v2.tflite') penterjemah.allocate_tensors () # Dapatkan tensor input dan output input_details = interpreter.get_input_details () output_details = interpreter.get_output_details ()
Kami memuatkan imej (Cat.jpg), mengubah saiznya kepada piksel yang diperlukan (224, 224), dan memprosesnya menggunakan kaedah preprocessing MobileNeTv2. Imej preprocessed dimasukkan ke dalam model tflite dengan menetapkan tensor input menggunakan interPreter.set_tensor (), dan kami menjalankan kesimpulan menggunakan interpreter.invoke (). Selepas kesimpulan, kami mengambil ramalan model dan menyahkodkannya ke dalam nama dan kebarangkalian kelas yang boleh dibaca manusia menggunakan decode_predictions (). Akhirnya, kami mencetak ramalan.
# Memuatkan dan memproses gambar input image = image.open ('cat.jpg'). saiz semula ((224, 224)) # ganti dengan laluan imej anda input_data = np.expand_dims (np.array (imej), paksi = 0) input_data = tf.keras.applications.mobilenet_v2.preprocess_input (input_data) # Tetapkan tensor input dan jalankan model penterjemah.set_tensor (input_details [0] ['index'], input_data) penterjemah.invoke () # Dapatkan ramalan output dan ekod output_data = interpreter.get_tensor (output_details [0] ['index']) Ramalan = tf.keras.applications.mobilenet_v2.decode_predictions (output_data) cetak (ramalan)
Gunakan imej kucing di bawah:
Output:
[('N02123045', 'Tabby', 0.85), ('N02124075', 'EGYPTIAN_CAT', 0.07), ('N02123159', 'Tiger_cat', 0.05)]
Ini bermakna model adalah 85% yakin bahawa imej itu adalah kucing tabby.
Sekarang, kami akan melaksanakan Pytorch Mobile. Kami akan menggunakan model pra-terlatih yang mudah seperti ResNet18, menukarnya menjadi obor, dan menjalankan kesimpulan
# Langkah 1: Sediakan persekitaran obor import import oborvision.models sebagai model # Muatkan model ResNet18 pretrained model = model.resnet18 (pretrained = true) # Tetapkan model ke mod penilaian model.eval ()
Di sini, kita menentukan contoh_input, yang merupakan tensor saiz rawak [1, 3, 224, 224]. Ini menyerupai kumpulan 1 imej dengan 3 saluran warna (RGB), dan 224 × 224 piksel. Ia digunakan untuk mengesan operasi model. obor.jit.trace () adalah kaedah yang menukarkan model pyTorch ke dalam modul obor. TorchScript membolehkan anda untuk bersiri dan menjalankan model di luar Python, seperti dalam C atau peranti mudah alih. Model obor yang ditukar disimpan sebagai "resnet18_scripted.pt", yang membolehkannya dimuatkan dan digunakan kemudian.
# Langkah 2: Tukar ke TorchScript Contoh_Input = obor.randn (1, 3, 224, 224) # Contoh Input untuk mengesan traced_script_module = obor.jit.trace (model, contoh_input) # Simpan model obor traced_script_module.save ("resnet18_scripted.pt")
Kami menggunakan obor.jit.load () untuk memuatkan model TorchScript yang telah disimpan sebelum ini dari fail "resnet18_scripted.pt". Kami mencipta input_data tensor rawak baru, sekali lagi meniru input imej dengan saiz [1, 3, 224, 224]. Model ini kemudian dijalankan pada input ini menggunakan LOADED_MODEL (input_data). Ini mengembalikan output, yang mengandungi skor mentah (logit) untuk setiap kelas. Untuk mendapatkan kelas yang diramalkan, kami menggunakan obor.max (output, 1) yang memberikan indeks kelas dengan skor tertinggi. Kami mencetak kelas yang diramalkan menggunakan predicted.item ().
# Langkah 3: Muatkan dan jalankan model skrip loaded_model = obor.jit.load ("resnet18_scripted.pt") # Simulasi data input (tensor imej rawak) input_data = obor.randn (1, 3, 224, 224) # Jalankan model dan dapatkan ramalan output = loaded_model (input_data) _, diramalkan = obor.max (output, 1) cetak (kelas f'predicted: {predicted.item ()} ')
Output:
Kelas yang diramalkan: 107
Oleh itu, model meramalkan bahawa data input tergolong dalam indeks kelas 107.
TensorFlow Lite memberikan lebih banyak tumpuan kepada peranti mudah alih manakala PyTorch Mobile menyediakan penyelesaian CPU/GPU yang lebih umum, kedua-duanya dioptimumkan untuk aplikasi AI yang berbeza pada peranti mudah alih dan tepi. Berbanding dengan Lite Tensorflow, Pytorch Mobile menawarkan mudah alih yang lebih besar sementara juga menjadi lebih ringan daripada Lite Tensorflow dan bersepadu dengan Google. Digabungkan, mereka membolehkan pemaju melaksanakan aplikasi kecerdasan buatan masa nyata dengan fungsi yang tinggi pada peranti pegang tangan pemaju. Rangka kerja ini memberi kuasa kepada pengguna dengan keupayaan untuk menjalankan model canggih pada mesin tempatan dan dengan berbuat demikian mereka menulis semula peraturan untuk bagaimana aplikasi mudah alih melibatkan diri dengan dunia, melalui hujung jari.
A. Tensorflow Lite digunakan di mana kita memerlukan prestasi tinggi pada peranti mudah alih manakala PyTorch Mobile digunakan di mana kita memerlukan fleksibiliti dan kemudahan integrasi dengan ekosistem sedia ada Pytorch.
S2. Bolehkah Tensorflow Lite dan Pytorch Mobile berfungsi pada kedua -dua Android dan iOS?A. Ya, kedua -dua Tensorflow Lite dan Pytorch Mobile Work pada Android dan iOS.
Q3. Tulis beberapa penggunaan Pytorch Mobile.A. Pytorch Mobile berguna untuk aplikasi yang melaksanakan tugas seperti imej, wajah, dan klasifikasi video, pengesanan objek masa nyata, penukaran ucapan-ke-teks, dll.
Q4. Tulis beberapa penggunaan Tensorflow Lite Mobile.A. Tensorflow Lite Mobile berguna untuk aplikasi seperti robotik, peranti IoT, realiti tambahan (AR), realiti maya (VR), pemprosesan bahasa semulajadi (NLP), dll.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Tensorflow Lite vs Pytorch Mobile. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!