टेंसर और संचालन

TensorFlow.js जावास्क्रिप्ट में टेंसर का उपयोग करके गणनाओं को परिभाषित करने और चलाने के लिए एक ढांचा है। एक टेन्सर वैक्टर और उच्च आयामों को मैट्रिक का सामान्यीकरण है।

टेंसर

TensorFlow.js में डेटा की केंद्रीय इकाई है tf.Tensor एक या अधिक आयामों की एक सरणी का रूप मानों का एक सेट:। tf.Tensor बहुत बहुआयामी सरणियों के समान हैं।

एक tf.Tensor भी निम्नलिखित गुण शामिल हैं:

  • rank : परिभाषित करता है कि कितने आयाम टेन्सर शामिल
  • shape : जो डेटा के प्रत्येक आयाम के आकार को परिभाषित करता है
  • dtype : जो टेन्सर के डेटा प्रकार परिभाषित करता है।

एक tf.Tensor साथ एक सरणी से बनाया जा सकता tf.tensor() विधि:

// Create a rank-2 tensor (matrix) matrix tensor from a multidimensional array.
const a = tf.tensor([[1, 2], [3, 4]]);
console.log('shape:', a.shape);
a.print();

// Or you can create a tensor from a flat array and specify a shape.
const shape = [2, 2];
const b = tf.tensor([1, 2, 3, 4], shape);
console.log('shape:', b.shape);
b.print();

डिफ़ॉल्ट रूप से, tf.Tensor एक होगा float32 dtype. tf.Tensor रों भी bool, int32, complex64, और स्ट्रिंग dtypes के साथ बनाया जा सकता है:

const a = tf.tensor([[1, 2], [3, 4]], [2, 2], 'int32');
console.log('shape:', a.shape);
console.log('dtype', a.dtype);
a.print();

TensorFlow.js भी यादृच्छिक tensors बनाने के लिए सुविधा के तरीकों, एक विशेष मान से भर tensors, से tensors का एक सेट प्रदान HTMLImageElement है, और कई और अधिक जो आप पा सकते हैं यहाँ

एक टेंसर का आकार बदलना

एक में तत्वों की संख्या tf.Tensor अपने आकार में आकार के उत्पाद है। अक्सर कई बार एक ही आकार के साथ एकाधिक आकृतियों हो सकता है के बाद से, यह अक्सर एक नयी आकृति प्रदान करने में सक्षम होना उपयोगी है tf.Tensor एक ही आकार के साथ एक और आकार के। इस के साथ प्राप्त किया जा सकता reshape() विधि:

const a = tf.tensor([[1, 2], [3, 4]]);
console.log('a shape:', a.shape);
a.print();

const b = a.reshape([4, 1]);
console.log('b shape:', b.shape);
b.print();

एक टेंसर से मूल्य प्राप्त करना

तुम भी एक से मान प्राप्त कर सकते tf.Tensor का उपयोग कर Tensor.array() या Tensor.data() विधि:

 const a = tf.tensor([[1, 2], [3, 4]]);
 // Returns the multi dimensional array of values.
 a.array().then(array => console.log(array));
 // Returns the flattened data that backs the tensor.
 a.data().then(data => console.log(data));

हम इन विधियों के समकालिक संस्करण भी प्रदान करते हैं जो उपयोग में आसान होते हैं, लेकिन आपके आवेदन में प्रदर्शन समस्याओं का कारण बनेंगे। आपको उत्पादन अनुप्रयोगों में हमेशा एसिंक्रोनस विधियों को प्राथमिकता देनी चाहिए।

const a = tf.tensor([[1, 2], [3, 4]]);
// Returns the multi dimensional array of values.
console.log(a.arraySync());
// Returns the flattened data that backs the tensor.
console.log(a.dataSync());

संचालन

जबकि टेंसर आपको डेटा स्टोर करने की अनुमति देते हैं, ऑपरेशन (ऑप्स) आपको उस डेटा में हेरफेर करने की अनुमति देते हैं। TensorFlow.js रैखिक बीजगणित और मशीन सीखने के लिए उपयुक्त विभिन्न प्रकार के ऑप्स भी प्रदान करता है जिन्हें टेंसर पर किया जा सकता है।

उदाहरण: कंप्यूटिंग एक्स एक में सभी तत्वों के 2 tf.Tensor :

const x = tf.tensor([1, 2, 3, 4]);
const y = x.square();  // equivalent to tf.square(x)
y.print();

उदाहरण: जोड़ने दो के तत्वों tf.Tensor रों तत्व वार:

const a = tf.tensor([1, 2, 3, 4]);
const b = tf.tensor([10, 20, 30, 40]);
const y = a.add(b);  // equivalent to tf.add(a, b)
y.print();

क्योंकि टेंसर अपरिवर्तनीय हैं, ये ऑप्स अपने मूल्यों को नहीं बदलते हैं। इसके बजाय, ऑप्स हमेशा नए वापसी वापसी tf.Tensor रों।

आप संचालन TensorFlow.js का समर्थन करता है की एक सूची पा सकते हैं यहाँ

स्मृति

WebGL बैकएंड उपयोग करते समय, tf.Tensor स्मृति स्पष्ट रूप से प्रबंधित किया जाना चाहिए (यह एक जाने के लिए पर्याप्त नहीं है tf.Tensor दायरे से बाहर जाने के लिए अपने स्मृति जारी होने की)।

एक tf.Tensor की स्मृति को नष्ट करने के लिए, आप उपयोग कर सकते हैं dispose() विधि या tf.dispose() :

const a = tf.tensor([[1, 2], [3, 4]]);
a.dispose(); // Equivalent to tf.dispose(a)

एक एप्लिकेशन में कई ऑपरेशनों को एक साथ चेन करना बहुत आम है। सभी मध्यवर्ती चरों को निपटाने के लिए एक संदर्भ रखने से कोड की पठनीयता कम हो सकती है। इस समस्या को हल करने के लिए, TensorFlow.js एक प्रदान करता है tf.tidy() विधि है जो को साफ सब tf.Tensor रों कि यह क्रियान्वित करने के बाद एक समारोह से वापस नहीं कर रहे हैं, जिस तरह से स्थानीय चर साफ कर रहे हैं जब एक समारोह निष्पादित किया जाता है के लिए इसी तरह:

const a = tf.tensor([[1, 2], [3, 4]]);
const y = tf.tidy(() => {
  const result = a.square().log().neg();
  return result;
});

इस उदाहरण में, का परिणाम square() और log() स्वचालित रूप से निपटारा किया जाएगा। का परिणाम neg() के रूप में यह tf.tidy की वापसी मूल्य () है निपटारा नहीं किया जाएगा।

आप TensorFlow.js द्वारा ट्रैक किए गए Tensors की संख्या भी प्राप्त कर सकते हैं:

console.log(tf.memory());

वस्तु द्वारा मुद्रित tf.memory() कितनी स्मृति वर्तमान में आवंटित किया जाता है के बारे में जानकारी होगी। आप और अधिक जानकारी प्राप्त कर सकते यहाँ