Rumah  >  Artikel  >  Peranti teknologi  >  Mengapakah TensorFlow boleh melakukan pembangunan pembelajaran mesin?

Mengapakah TensorFlow boleh melakukan pembangunan pembelajaran mesin?

WBOY
WBOYke hadapan
2023-04-08 21:21:041591semak imbas

Pembelajaran mesin ialah subjek yang kompleks, tetapi kerana rangka kerja pembelajaran mesin (seperti TensorFlow Google) memudahkan proses mendapatkan data, model latihan, menyediakan ramalan dan memperbaik keputusan masa hadapan, melaksanakannya adalah jauh lebih sukar berbanding sebelum ini .

Mengapakah TensorFlow boleh melakukan pembangunan pembelajaran mesin?

Dicipta oleh pasukan Google Brain dan pada mulanya dikeluarkan kepada umum pada 2015, TensorFlow ialah perpustakaan sumber terbuka untuk pengkomputeran berangka dan pembelajaran mesin berskala besar. TensorFlow menggabungkan pelbagai model pembelajaran mesin dan pembelajaran mendalam serta algoritma (juga dikenali sebagai rangkaian saraf) dan menjadikannya berguna melalui metafora pengaturcaraan biasa. Ia menyediakan API bahagian hadapan yang mudah untuk membina aplikasi menggunakan Python atau JavaScript sambil melaksanakannya dalam C++ berprestasi tinggi.

TensorFlow bersaing dengan rangka kerja seperti PyTorch dan Apache MXNet untuk melatih dan menjalankan rangkaian saraf dalam untuk klasifikasi digit tulisan tangan, pengecaman imej, pembenaman perkataan, rangkaian saraf berulang, model urutan-ke-jujukan untuk terjemahan mesin, Bahasa Asli pemprosesan dan simulasi berasaskan PDE (Partial Differential Equations). Paling penting, TensorFlow menyokong ramalan pengeluaran pada skala, menggunakan model yang sama untuk latihan.

TensorFlow juga mempunyai perpustakaan model pra-latihan yang luas yang boleh digunakan dalam projek anda sendiri. Anda juga boleh menggunakan kod dalam TensorFlow Model Park sebagai contoh amalan terbaik untuk melatih model anda sendiri.

Cara TensorFlow berfungsi

TensorFlow membenarkan pembangun mencipta graf aliran data - struktur yang menerangkan cara data bergerak melalui graf atau siri nod pemprosesan. Setiap nod dalam graf mewakili operasi matematik, dan setiap sambungan atau tepi antara nod ialah tatasusunan data berbilang dimensi atau tensor.

Aplikasi TensorFlow boleh dijalankan pada sasaran yang paling mudah: mesin tempatan, kelompok dalam awan, peranti iOS dan Android, CPU atau GPU. Jika anda menggunakan awan Google sendiri, anda boleh menjalankan TensorFlow pada cip TensorFlow Processing Unit (TPU) tersuai Google untuk pecutan selanjutnya. Walau bagaimanapun, model yang dihasilkan oleh TensorFlow boleh digunakan pada kebanyakan peranti yang digunakan untuk memberikan ramalan.

TensorFlow 2.0 telah dikeluarkan pada Oktober 2019, dengan pelbagai penambahbaikan pada rangka kerja berdasarkan maklum balas pengguna, menjadikannya lebih mudah untuk digunakan (contohnya, dengan menggunakan KerasAPI yang agak mudah untuk latihan model) dan prestasi yang lebih tinggi. Latihan yang diedarkan lebih mudah dijalankan berkat API baharu dan sokongan untuk TensorFlow Lite memungkinkan untuk menggunakan model pada pelbagai platform yang lebih luas. Walau bagaimanapun, kod yang ditulis untuk versi TensorFlow yang lebih awal mesti ditulis semula—kadangkala hanya sedikit, kadangkala ketara—untuk memanfaatkan maksimum ciri TensorFlow 2.0 baharu.

Model terlatih boleh digunakan untuk menyediakan ramalan sebagai perkhidmatan melalui bekas Docker menggunakan REST atau gRPC API. Untuk senario perkhidmatan yang lebih maju, anda boleh menggunakan Kubernetes

Gunakan TensorFlow dengan Python

TensorFlow menyediakan pengaturcara dengan semua keupayaan ini melalui bahasa Python. Python mudah dipelajari dan digunakan, dan ia menyediakan cara yang mudah untuk menyatakan cara menggabungkan abstraksi peringkat tinggi bersama-sama. TensorFlow disokong pada versi Python 3.7 hingga 3.10, dan walaupun ia mungkin berfungsi pada versi Python yang lebih awal, ia tidak dijamin untuk berbuat demikian.

Nod dan tensor dalam TensorFlow ialah objek Python, dan aplikasi TensorFlow sendiri ialah aplikasi Python. Walau bagaimanapun, operasi matematik sebenar tidak dilakukan dalam Python. Pustaka transformasi yang disediakan melalui TensorFlow ditulis sebagai binari C++ berprestasi tinggi. Python hanya mengarahkan aliran antara pelbagai bahagian dan menyediakan abstraksi pengaturcaraan peringkat tinggi untuk menyambungkannya bersama.

Kerja lanjutan dalam TensorFlow (membuat nod dan lapisan dan memautkannya bersama) menggunakan pustaka Keras. API Keras adalah sangat mudah; model tiga lapisan asas boleh ditakrifkan dalam kurang daripada 10 baris kod, dan kod latihan yang sama hanya memerlukan beberapa baris kod. Tetapi jika anda ingin "mengangkat tudung" dan melakukan kerja yang lebih halus, seperti menulis gelung latihan anda sendiri, anda boleh melakukannya.

Menggunakan TensorFlow dengan JavaScript

Python ialah bahasa paling popular untuk bekerja dengan TensorFlow dan pembelajaran mesin. Tetapi JavaScript kini juga merupakan bahasa kelas pertama untuk TensorFlow, dan salah satu kelebihan besar JavaScript ialah ia berjalan di mana-mana sahaja terdapat pelayar web.

TensorFlow.js (dipanggil perpustakaan TensorFlow JavaScript) menggunakan API WebGL untuk mempercepatkan pengiraan dengan mana-mana GPU yang tersedia dalam sistem. Ia juga boleh dilakukan menggunakan bahagian belakang WebAssembly, yang lebih pantas daripada bahagian belakang JavaScript biasa jika anda hanya berjalan pada CPU, tetapi sebaiknya gunakan GPU apabila boleh. Model pra-bina membolehkan anda menyiapkan dan menjalankan projek mudah, memberikan anda gambaran tentang cara sesuatu berfungsi.

TensorFlow Lite

Model TensorFlow yang terlatih juga boleh digunakan pada pengkomputeran tepi atau peranti mudah alih, seperti sistem iOS atau Android. Set alat TensorFlow Lite mengoptimumkan model TensorFlow untuk berjalan dengan baik pada peranti sedemikian dengan membenarkan anda menukar saiz dan ketepatan model. Model yang lebih kecil (iaitu 12MB lwn. 25MB, atau bahkan 100+MB) adalah kurang tepat, tetapi kehilangan ketepatan biasanya kecil dan diimbangi oleh kelajuan dan kecekapan tenaga model.

Mengapa menggunakan TensorFlow

Manfaat terbesar yang disediakan TensorFlow untuk pembangunan pembelajaran mesin ialah pengabstrakan. Pembangun boleh menumpukan pada logik aplikasi keseluruhan daripada berurusan dengan butiran pelaksanaan algoritma atau memikirkan cara yang betul untuk menyambungkan output satu fungsi kepada input yang lain. TensorFlow menjaga butiran di sebalik tabir.

TensorFlow memberikan kemudahan yang lebih besar untuk pembangun yang perlu menyahpepijat dan memahami aplikasi TensorFlow. Setiap operasi graf boleh dinilai dan diubah suai secara individu dan telus, bukannya membina keseluruhan graf sebagai objek legap tunggal dan menilainya sekaligus. Apa yang dipanggil "mod pelaksanaan bersemangat" ini tersedia sebagai pilihan dalam versi TensorFlow yang lebih lama dan kini adalah standard.

Suit Visualisasi TensorBoard membolehkan anda memeriksa dan menganalisis cara graf anda berjalan melalui papan pemuka berasaskan web interaktif. Perkhidmatan Tensorboard.dev (dihoskan oleh Google) membolehkan anda mengehoskan dan berkongsi percubaan pembelajaran mesin yang ditulis dalam TensorFlow. Ia boleh digunakan secara percuma untuk menyimpan sehingga 100M skalar, 1GB data tensor dan 1GB data objek binari. (Sila ambil perhatian bahawa mana-mana data yang dihoskan dalam Tensorboard.dev adalah awam, jadi sila jangan gunakannya untuk projek sensitif.)

TensorFlow juga mendapat banyak kelebihan daripada sokongan organisasi komersial terkemuka Google. Google telah memacu pertumbuhan pesat projek dan mencipta banyak produk penting yang menjadikan TensorFlow lebih mudah untuk digunakan dan digunakan. Cip TPU yang diterangkan di atas untuk mempercepatkan prestasi dalam Google Cloud hanyalah satu contoh.

Menggunakan TensorFlow untuk latihan model deterministik

Sesetengah butiran pelaksanaan TensorFlow menyukarkan untuk mendapatkan keputusan latihan model deterministik sepenuhnya untuk beberapa kerja latihan. Kadangkala, model yang dilatih pada satu sistem akan berbeza sedikit daripada model yang dilatih pada sistem lain, walaupun ia disediakan dengan data yang sama. Sebab-sebab perbezaan ini adalah rumit - satu sebab ialah bagaimana dan di mana nombor rawak disemai; Cawangan 2.0 TensorFlow mempunyai pilihan untuk mendayakan determinisme sepanjang keseluruhan aliran kerja dengan beberapa baris kod. Walau bagaimanapun, ciri ini datang pada kos prestasi dan hanya boleh digunakan apabila menyahpepijat aliran kerja.

TensorFlow bersaing dengan PyTorch, CNTK dan MXNet

TensorFlow bersaing dengan banyak rangka kerja pembelajaran mesin yang lain. PyTorch, CNTK dan MXNet ialah tiga rangka kerja utama yang menyediakan banyak keperluan yang sama. Mari kita lihat dengan cepat di mana mereka menonjol dan kurang berbanding TensorFlow:

  • PyTorch dibina dalam Python dan mempunyai banyak persamaan lain dengan TensorFlow: Komponen pecutan perkakasan di bawah hud, pembangunan yang sangat interaktif model yang membenarkan kerja reka bentuk di luar kotak, dan sudah mengandungi banyak komponen berguna. PyTorch selalunya merupakan pilihan yang lebih baik untuk pembangunan pesat projek yang perlu siap dan berjalan dalam masa yang singkat, tetapi TensorFlow lebih sesuai untuk projek yang lebih besar dan aliran kerja yang lebih kompleks.
  • CNTK ialah Kit Alat Kognitif Microsoft yang serupa dengan TensorFlow dalam menggunakan struktur graf untuk menerangkan aliran data, tetapi ia tertumpu terutamanya pada mencipta rangkaian neural pembelajaran mendalam. CNTK boleh mengendalikan banyak kerja rangkaian saraf dengan lebih pantas dan mempunyai API yang lebih luas (Python, C++, C#, Java). Tetapi pada masa ini ia tidak semudah untuk dipelajari atau digunakan seperti TensorFlow. Ia juga hanya tersedia di bawah lesen GNU GPL 3.0, manakala TensorFlow tersedia di bawah lesen Apache yang lebih liberal. Dan CNTK mempunyai perkembangan yang kurang positif. Versi utama terakhir adalah pada 2019.
  • Apache MXNet diguna pakai oleh Amazon sebagai rangka kerja pembelajaran mendalam yang terulung pada AWS, boleh skala hampir secara linear merentas berbilang GPU dan berbilang mesin. MXNet juga menyokong pelbagai jenis API bahasa - Python, C++, Scala, R, JavaScript, Julia, Perl, Go - walaupun API asalnya tidak semudah TensorFlow. Ia juga mempunyai komuniti pengguna dan pembangun yang jauh lebih kecil.


Tajuk asal: ​​Apakah TensorFlow yang dijelaskan oleh perpustakaan pembelajaran mesin​

Atas ialah kandungan terperinci Mengapakah TensorFlow boleh melakukan pembangunan pembelajaran mesin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam