Par*_*ran 5 google-chrome webgl tensorflow
正如 tensorflowjs github 中所建议的,我在这里发布了这个问题。在使用 tensorflow 的最简单示例中,我遇到了错误。
代码: 一个简单的 html 片段,只加载了 tfjs。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.15.3/dist/tf.min.js"></script>
<title>Testing Tfjs</title>
</head>
<body>
<h2>Testing Tfjs</h2>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
浏览器:Chrome 版本 72.0.3626.119
操作系统:Win 10,GPU:GT 740M,版本 397.44。
Chrome gpu show 说:(因为我禁用了硬件加速以避免 chrome 有时变黑)
WebGL: Software only, hardware acceleration unavailable,
WebGL2: Software only, hardware acceleration unavailable
Run Code Online (Sandbox Code Playgroud)
我曾尝试将后端明确设置为 cpu,但没有帮助。我在 github 上看到其他帖子谈论这个错误,但徒劳无功。
抱歉,我的英语不好。
和我的情况一样。就我而言...“此设备不支持 WebGL”和“tf.setBackend('webgl')”返回 false。
Tensorflow需要硬件加速。
打开 chrome://gpu,然后检查您的
发现问题。
Gpu 合成已通过 blocklist、about:flags 或命令行禁用。浏览器将退回到软件合成,并且硬件加速将不可用。禁用功能:gpu_compositing
然后转到 chrome://flags/ 搜索“覆盖软件渲染列表”> 设置启用> 重新启动浏览器
谢谢。
因此,既然您发布了 about:gpu 结果,显示您仅获得仅适用于 WebGL 的软件渲染,这表明 tensorflow.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>Run Code Online (Sandbox Code Playgroud)
运行后我看到了这些结果
{
"alpha": false,
"antialias": false,
"premultipliedAlpha": false,
"preserveDrawingBuffer": false,
"depth": false,
"stencil": false,
"failIfMajorPerformanceCaveat": true <====-------
}
Run Code Online (Sandbox Code Playgroud)
这就是它打印该警告的原因。
也就是说,这只是一个警告。tensorflow.js 仍然运行。注意 (a) 它显示 2 个警告,而不是 2 个错误。(b) 它们显示为黄色,而不是红色。
使用console.warnvsconsole.error你可以看到差异
tensorflow.js 运行得很好 AFAICT。这是一个例子。我已经破解了getContext,所以它总是失败,所以tensorflow.js无法获取WebGL上下文。它打印了 2 个警告,但也运行得很好。滚动到消息底部,您将看到它运行了示例张量流代码的结果。
{
"alpha": false,
"antialias": false,
"premultipliedAlpha": false,
"preserveDrawingBuffer": false,
"depth": false,
"stencil": false,
"failIfMajorPerformanceCaveat": true <====-------
}
Run Code Online (Sandbox Code Playgroud)
const d = tf.tensor2d([[1.0, 2.0], [3.0, 4.0]]);
const d_squared = d.square();
d_squared.print();Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |