當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Tensorflow.js tf.deregisterOp()用法及代碼示例

Tensorflow.js是Google開發的一個開源庫,主要用於在瀏覽器或節點環境中運行機器學習模型和深度學習神經網絡。

Tensorflow.js tf.deregisterOp() 函數用於從 TensorFlow 中注銷圖模型執行器的 Ops(操作)。它的行為與 Tensorflow.j tf.registerOp() 函數相反。

用法:

tf.deregisterOp(name)

參數:以下是上述函數接受的參數,如下所示:

  • name:這是字符串類型參數。此參數接受 Tensorflow Op 名稱。

返回值:該函數不返回任何值。

示例 1:使用檢查代碼注銷新注冊的 Op 的示例。

Javascript


// Importing the tensorflow.js library  
const tf = require("@tensorflow/tfjs"); 
  
// Try to create a new Op 
const customOp = (node) => 
    tf.add( 
        node.inputs[0], node.inputs[1] 
    ); 
  
// Try to register a new Op NewOp 
tf.registerOp('NewOp', customOp); 
  
// Check registerOp NewOp 
const x = tf.getRegisteredOp('NewOp'); 
console.log("Before deregister:", x) 
  
// Try to deregister NewOp 
tf.deregisterOp('NewOp'); 
  
// Check deregisterOp NewOp 
const y = tf.getRegisteredOp('NewOp'); 
console.log("After deregister:", y) 
  
// Check Op functioning after get deregistered 
const a = tf.scalar(1); 
const b = tf.tensor1d([1, 2, 3, 4]); 
const ans = y.customExecutor({ "inputs": [a, b] }); 
console.log(ans.print())

輸出:

Before deregister: {
  tfOpName: 'NewOp',
  category: 'custom',
  inputs: [],
  attrs: [],
  customExecutor: [Function: customOp]
}
After deregister: undefined

============================
tensorflow1.js:27
const ans = y.customExecutor({"inputs":[a,b]});
              ^

TypeError: Cannot read properties of undefined (reading 'customExecutor')

示例 2:使用檢查代碼注銷新覆蓋的 Op 的示例。

Javascript


// Importing the tensorflow.js library  
const tf = require("@tensorflow/tfjs"); 
  
// Try to override add Op with sub op 
tf.registerOp(tf.add, tf.sub); 
  
const a = tf.tensor1d([10, 20, 30, 40]); 
const b = tf.scalar(5); 
  
// Check overridden Op 
const x = tf.getRegisteredOp(tf.add); 
console.log("Before deregister:", x) 
  
// Check Op functioning before get deregistered 
let ans = x.customExecutor(a, b); 
console.log(ans.print()); 
  
// Try to deregister NewOp 
tf.deregisterOp(tf.add); 
  
// Check deregisterOp NewOp 
const y = tf.getRegisteredOp(tf.add); 
console.log("\nAfter deregister:", y) 
  
// Check Op functioning after get deregistered 
ans = y.customExecutor(a, b); 
console.log(ans.print());

輸出:

Before deregister: {
  tfOpName: [Function: add],
  category: 'custom',
  inputs: [],
  attrs: [],
  customExecutor: [Function: sub]
}
Tensor
    [5, 15, 25, 35]
undefined

After deregister: undefined

============================
tensorflow1.js:26
ans = y.customExecutor(a,b);
        ^

TypeError: Cannot read properties of undefined (reading 'customExecutor')

示例 3:嘗試使用檢查代碼取消注冊內置函數的示例。

Javascript


// Importing the tensorflow.js library  
const tf = require("@tensorflow/tfjs"); 
  
const a = tf.tensor1d([10, 20, 30, 40]); 
const b = tf.scalar(5); 
  
// Before get deregistered 
console.log("Before deregister:") 
let ans = tf.add(a, b); 
console.log(ans.print()); 
  
// Try to deregister build-in 
tf.deregisterOp(tf.add); 
  
// After get deregistered 
console.log("\nAfter deregister:") 
ans = tf.add(a, b); 
console.log(ans.print());

輸出:

Before deregister:
Tensor
    [15, 25, 35, 45]
undefined

After deregister:
Tensor
    [15, 25, 35, 45]
undefined

參考:https://js.tensorflow.org/api/latest/#deregisterOp



相關用法


注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 Tensorflow.js tf.deregisterOp() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。