الترقية إلى TensorFlow.js 3.0

ما الذي تغير في TensorFlow.js 3.0

ملاحظات الإصدار متاحة هنا . تتضمن بعض الميزات البارزة التي تواجه المستخدم ما يلي:

وحدات مخصصة

نحن نقدم الدعم لإنشاء وحدات tfjs مخصصة لدعم إنتاج حزم المتصفح ذات الحجم الأمثل. قم بشحن كمية أقل من JavaScript إلى المستخدمين لديك. لمعرفة المزيد حول هذا، راجع هذا البرنامج التعليمي .

تم تصميم هذه الميزة للنشر في المتصفح، إلا أن تمكين هذه الإمكانية يحفز بعض التغييرات الموضحة أدناه.

كود إي إس 2017

بالإضافة إلى بعض حزم الترجمة المسبقة، الطريقة الرئيسية التي نشحن بها الكود الخاص بنا الآن إلى NPM هي وحدات ES مع بناء جملة ES2017 . يتيح ذلك للمطورين الاستفادة من ميزات JavaScript الحديثة والحصول على تحكم أكبر في ما يقومون بشحنه إلى المستخدمين النهائيين.

نقطة دخول module package.json الخاصة بنا إلى ملفات المكتبة الفردية بتنسيق ES2017 (أي ليست حزمة). يتيح ذلك اهتزاز الأشجار وتحكمًا أكبر للمطورين في عملية النقل النهائية.

نحن نقدم بعض التنسيقات البديلة كحزم مجمعة مسبقًا لدعم المتصفحات القديمة وأنظمة الوحدات الأخرى. وهي تتبع اصطلاح التسمية الموضح في الجدول أدناه ويمكنك تحميلها من شبكات CDN الشائعة مثل JsDelivr وUnpkg.

اسم الملف تنسيق الوحدة نسخة اللغة
tf[-package].[min].js* UMD ES5
tf[-package].es2017.[min].js UMD إي إس 2017
tf[-package].node.js** CommonJS ES5
tf[-package].es2017.fesm.[min].js ESM (ملف مسطح واحد) إي إس 2017
فهرس.js*** الإدارة السليمة بيئياً إي إس 2017

* تشير [package] إلى أسماء مثل النواة/المحول/الطبقات للحزم الفرعية لحزمة tf.js الرئيسية. [min] يصف المكان الذي نوفر فيه الملفات المصغرة بالإضافة إلى الملفات غير المصغرة.

** نقاط الدخول main الخاصة بـ package.json الخاصة بنا إلى هذا الملف.

*** يشير إدخال module package.json الخاصة بنا إلى هذا الملف.

إذا كنت تستخدم Tensorflow.js عبر npm وكنت تستخدم المجمع، فقد تحتاج إلى ضبط تكوين المجمع الخاص بك للتأكد من أنه يمكنه إما استهلاك وحدات ES2017 أو توجيهه إلى أحد الإدخالات الأخرى في package.json.

@tensorflow/tfjs-core أقل حجمًا بشكل افتراضي

لتمكين اهتزاز الأشجار بشكل أفضل، لم نعد نقوم بتضمين واجهة برمجة التطبيقات المتسلسلة/السلسة على الموترات بشكل افتراضي في @tensorflow/tfjs-core. نوصي باستخدام العمليات (ops) مباشرة للحصول على أصغر حزمة. نحن نقدم استيراد import '@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops'; الذي يستعيد واجهة برمجة تطبيقات التسلسل.

كما أننا لم نعد نسجل التدرجات اللونية للنوى بشكل افتراضي. إذا كنت تريد دعم التدرج/التدريب، يمكنك import '@tensorflow/tfjs-core/dist/register_all_gradients';

إعادة تنظيم الكود وسجلات النواة والتدرج

لقد قمنا بإعادة تنظيم الكود الخاص بنا لتسهيل المساهمة بالعمليات والنواة بالإضافة إلى تنفيذ العمليات والنواة والتدرجات المخصصة. انظر هذا الدليل لمزيد من المعلومات .

كسر التغييرات

يمكن العثور على قائمة كاملة بالتغييرات العاجلة هنا ، ولكنها تتضمن إزالة جميع عمليات *Strict مثل mulStrict أو addStrict.

كود الترقية من 2.x

مستخدمو @tensorflow/tfjs

قم بمعالجة أي تغييرات عاجلة مدرجة هنا ( https://github.com/tensorflow/tfjs/releases )

مستخدمو @tensorflow/tfjs-core

قم بمعالجة أي تغييرات عاجلة مدرجة هنا ( https://github.com/tensorflow/tfjs/releases )، ثم قم بما يلي:

أضف معززات العمليات المتسلسلة أو استخدم العمليات مباشرة

بدلا من

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.

عليك فعل

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();

يمكنك أيضًا استيراد جميع واجهات برمجة التطبيقات المتسلسلة/الطلاقة من خلال الاستيراد التالي

import '@tensorflow/tfjs-core/dist/public/chained_ops/register_all_chained_ops';

وبدلاً من ذلك، يمكنك استخدام المرجع مباشرة (يمكنك استخدام عمليات الاستيراد المسماة هنا أيضًا)

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);

استيراد رمز التهيئة

إذا كنت تستخدم عمليات الاستيراد المسماة حصريًا (بدلاً من import * as ... ) ففي بعض الحالات قد تحتاج إلى القيام بذلك

import @tensorflow/tfjs-core

بالقرب من الجزء العلوي من البرنامج الخاص بك، وهذا يمنع هزازات الأشجار العدوانية من إسقاط أي تهيئة ضرورية.

كود الترقية من 1.x

مستخدمو @tensorflow/tfjs

قم بمعالجة أية تغييرات عاجلة مدرجة هنا . ثم اتبع تعليمات الترقية من 2.x

مستخدمو @tensorflow/tfjs-core

قم بمعالجة أية تغييرات عاجلة مدرجة هنا ، وحدد الواجهة الخلفية كما هو موضح أدناه، ثم اتبع خطوات الترقية من 2.x

اختيار الواجهة الخلفية

في TensorFlow.js 2.0، قمنا بإزالة الواجهات الخلفية لوحدة المعالجة المركزية (CPU) وwebgl في حزمهما الخاصة. راجع @tensorflow/tfjs-backend-cpu و @tensorflow/tfjs-backend-webgl و @tensorflow/tfjs-backend-wasm و @tensorflow/tfjs-backend-webgpu للحصول على إرشادات حول كيفية تضمين تلك الواجهات الخلفية.