Tensorflow.js Ошибка типа: не удается прочитать свойство ‘ArraySync’ неопределенного значения

#javascript #tensorflow #tensorflow.js

#javascript #тензорный поток #tensorflow.js

Вопрос:

Я получаю эту ошибку как для DataSync, так и для ArraySync. Модель определена, и результат извлекается.

Выполняемый код:

   const result = await faceLandmarkModel.executeAsync({
     Placeholder: images_pl
  });
  console.log(result[0]);
  const emb_values = result[0].dataSync();
  

Тензорный объект:

 Tensor {
 kept: false, 
 isDisposedInternal: false, 
 shape: Array(4), 
 dtype: "float32", 
 size: 716130,
 dataId: {},
 dtype: "float32",
 id: 123347
 isDisposedInternal: false,
 kept: false
 rankType: "4"
 scopeId: 283898
 shape: (4) [1, 365, 654, 3]
 strides: (3) [716130, 1962, 3]
 }
  

У кого-нибудь есть идеи? Любая помощь была бы очень признательна.

Комментарии:

1. Ошибка говорит о том, что результат [0] не определен. Кажется, что есть несколько строк кода между моментом, когда вы напечатали тензор, и когда вы хотите получить доступ к его значению

2. Тензор печатается перед действием

3. Возможно, вы можете добавить недостающий код к вопросу. Но в любом случае вы либо присваиваете массиву неопределенный элемент, либо удаляете из него тензор

Ответ №1:

Вы должны сначала загрузить тензор, прежде чем обращаться к массиву внутри него

 result.dataSync()[0]
  

Ответ №2:

Тензор, полученный из модели, не был массивом, и я также использовал неправильную модель. Извините, ребята, это была не тривиальная проблема 🙂