Таким образом, поскольку вы опубликовали свой результат about: gpu, показывающий, что вы получаете программный рендеринг только для WebGL, в котором предполагается, что тензор flow.js передает флаг создания контекста failIfMajorPerformanceCaveat
в WebGL, который почти наверняка завершится с ошибкой при рендеринге программного обеспечения
Мы можем проверить, переопределив getContext
и распечатать флаги создания
<script>
HTMLCanvasElement.prototype.getContext = function(type, parameters) {
console.log(JSON.stringify(parameters, null, 2));
return null;
};
</script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.15.3/dist/tf.min.js"></script>
Так работает, что я вижу эти результаты
{
"alpha": false,
"antialias": false,
"premultipliedAlpha": false,
"preserveDrawingBuffer": false,
"depth": false,
"stencil": false,
"failIfMajorPerformanceCaveat": true <====-------
}
Так вот почему он печатает это предупреждение.
Это говорит, что это просто предупреждение .tenorflow.js все еще работает.Обратите внимание (а), что он говорит 2 предупреждения, а не 2 ошибки.(б) они отображаются желтым, а не красным цветом.

с использованием console.warn
против console.error
вы можете увидеть разницу

tenorflow.js работает очень хорошо AFAICT.Вот пример.Я взломал getContext
, поэтому он всегда терпит неудачу, так что tenorflow.js не может получить контекст WebGL.Он выводит 2 предупреждения, но также работает нормально.Прокрутите список до конца сообщения, и вы увидите, что он показал результаты примера кода tenorflow.
const d = tf.tensor2d([[1.0, 2.0], [3.0, 4.0]]);
const d_squared = d.square();
d_squared.print();
<script>
HTMLCanvasElement.prototype.getContext = function() {
return null;
};
</script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.15.3/dist/tf.min.js"></script>