Apa yang berubah di TensorFlow.js 3.0
Catatan rilis tersedia di sini . Beberapa fitur penting yang dihadapi pengguna meliputi:
Modul Khusus
Kami memberikan dukungan untuk membuat modul tfjs khusus untuk mendukung produksi bundel browser dengan ukuran yang dioptimalkan. Kirimkan lebih sedikit JavaScript ke pengguna Anda. Untuk mempelajari lebih lanjut tentang ini, lihat tutorial ini .
Fitur ini diarahkan untuk penerapan di browser, namun mengaktifkan kemampuan ini memotivasi beberapa perubahan yang dijelaskan di bawah.
Kode ES2017
Selain beberapa bundel pra-kompilasi, cara utama kami mengirimkan kode ke NPM adalah sebagai Modul ES dengan sintaks ES2017 . Hal ini memungkinkan pengembang untuk memanfaatkan fitur JavaScript modern dan memiliki kontrol lebih besar atas apa yang mereka kirimkan kepada pengguna akhir.
Titik masuk module
package.json kami ke file perpustakaan individual dalam format ES2017 (yaitu bukan bundel). Hal ini memungkinkan penggoncangan pohon dan kontrol pengembang yang lebih besar terhadap transpilasi hilir.
Kami menyediakan beberapa format alternatif sebagai bundel yang telah dikompilasi sebelumnya untuk mendukung browser lama dan sistem modul lainnya. Mereka mengikuti konvensi penamaan yang dijelaskan pada tabel di bawah dan Anda dapat memuatnya dari CDN populer seperti JsDelivr dan Unpkg.
Nama File | Format Modul | Versi Bahasa |
tf[-paket].[min].js* | UMD | ES5 |
tf[-paket].es2017.[min].js | UMD | ES2017 |
tf[-paket].node.js** | JS Umum | ES5 |
tf[-paket].es2017.fesm.[min].js | ESM (File datar tunggal) | ES2017 |
indeks.js*** | ESM | ES2017 |
* [paket] mengacu pada nama seperti core/converter/layers untuk subpaket dari paket utama tf.js. [min] menjelaskan di mana kami menyediakan file yang diperkecil selain file yang tidak diperkecil.
** Titik masuk main
package.json kami ke file ini.
*** Entri module
package.json kami menunjuk ke file ini.
Jika Anda menggunakan tensorflow.js melalui npm dan menggunakan bundler, Anda mungkin perlu menyesuaikan konfigurasi bundler untuk memastikan konfigurasi tersebut dapat menggunakan modul ES2017 atau mengarahkannya ke salah satu entri lain di package.json.
@tensorflow/tfjs-core secara default lebih ramping
Untuk mengaktifkan guncangan pohon yang lebih baik, kami tidak lagi menyertakan api chaining/fluent pada tensor secara default di @tensorflow/tfjs-core. Sebaiknya gunakan operasi (ops) secara langsung untuk mendapatkan bundel terkecil. Kami menyediakan import '@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops';
yang memulihkan api rantai.
Kami juga tidak lagi mendaftarkan gradien untuk kernel secara default. Jika Anda menginginkan dukungan gradien/pelatihan, Anda dapat import '@tensorflow/tfjs-core/dist/register_all_gradients';
Reorganisasi Kode, registri kernel & gradien
Kami telah mengatur ulang kode kami untuk mempermudah kontribusi operasi dan kernel serta mengimplementasikan operasi, kernel, dan gradien khusus. Lihat panduan ini untuk informasi lebih lanjut .
Perubahan yang Mengganggu
Daftar lengkap perubahan yang dapat menyebabkan gangguan dapat ditemukan di sini , tetapi perubahan tersebut mencakup penghapusan semua operasi *Strict seperti mulStrict atau addStrict.
Meningkatkan Kode dari 2.x
Pengguna @tensorflow/tfjs
Atasi semua perubahan yang dapat menyebabkan gangguan yang tercantum di sini ( https://github.com/tensorflow/tfjs/releases )
Pengguna @tensorflow/tfjs-core
Atasi semua perubahan yang dapat menyebabkan gangguan yang tercantum di sini ( https://github.com/tensorflow/tfjs/releases ), lalu lakukan hal berikut:
Tambahkan augmentor operasi berantai atau gunakan operasi secara langsung
Daripada
import * as tf from '@tensorflow/tfjs-core';
import '@tensorflow/tfjs-backend-webgl';
const a = tf.tensor([1,2,3,4]);
const b = a.sum(); // this is a 'chained' op.
Anda perlu melakukannya
import * as tf from '@tensorflow/tfjs-core';
import '@tensorflow/tfjs-backend-webgl';
import '@tensorflow/tfjs-core/dist/public/chained_ops/sum'; // add the 'sum' chained op to all tensors
const a = tf.tensor([1,2,3,4]);
const b = a.sum();
Anda juga dapat mengimpor semua api rantai/lancar dengan impor berikut
import '@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops';
Alternatifnya, Anda dapat menggunakan operasi secara langsung (Anda juga dapat menggunakan impor bernama di sini)
import * as tf from '@tensorflow/tfjs-core';
import '@tensorflow/tfjs-backend-webgl';
const a = tf.tensor([1,2,3,4]);
const b = tf.sum(a);
Impor kode inisialisasi
Jika Anda secara eksklusif menggunakan impor bernama (bukan import * as ...
) maka dalam beberapa kasus Anda mungkin perlu melakukannya
import @tensorflow/tfjs-core
di dekat bagian atas program Anda, ini mencegah pengguncang pohon yang agresif membatalkan inisialisasi yang diperlukan.
Meningkatkan Kode dari 1.x
Pengguna @tensorflow/tfjs
Atasi setiap perubahan yang dapat mengganggu yang tercantum di sini . Kemudian ikuti petunjuk untuk mengupgrade dari 2.x
Pengguna @tensorflow/tfjs-core
Atasi semua perubahan yang mengganggu yang tercantum di sini , pilih backend seperti yang dijelaskan di bawah, lalu ikuti langkah-langkah untuk meningkatkan dari 2.x
Memilih backend
Di TensorFlow.js 2.0 kami menghapus backend cpu dan webgl ke dalam paketnya sendiri. Lihat @tensorflow/tfjs-backend-cpu , @tensorflow/tfjs-backend-webgl , @tensorflow/tfjs-backend-wasm , @tensorflow/tfjs-backend-webgpu untuk petunjuk tentang cara menyertakan backend tersebut.