首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后端webgl注册为tensorflowjs失败

后端webgl注册为tensorflowjs失败
EN

Stack Overflow用户
提问于 2019-03-03 18:01:32
回答 2查看 5.9K关注 0票数 5

正如tensorflowjs github中所建议的,我在这里发布了这个问题。下面是错误,在最简单的例子中,可以使用tensorflow。

错误:

代码:--一个只加载的简单html片段。

代码语言:javascript
复制
<!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>

浏览器: Chrome版本72.0.3626.119

操作系统: Win 10,GPU: GT 740米,版本397.44。

Chrome显示:(因为我禁用了hw加速,以避免有时的铬黑)

代码语言:javascript
复制
WebGL: Software only, hardware acceleration unavailable, 
WebGL2: Software only, hardware acceleration unavailable

我已经尝试过将后端显式地设置为cpu,但是没有帮助。我曾在github上看到其他帖子谈到这个错误,但都是徒劳的。

EN

回答 2

Stack Overflow用户

发布于 2020-11-19 09:21:53

对不起,我的英语不好。

和我的案子一样。就我而言..。“此设备不支持webgl”和"tf.setBackend('webgl')“返回false。

Tensorflow需要硬件加速。

打开chrome://gpu,然后检查

  • 图形特征状态
  • 发现问题
  • 硬件GPU的图形特征状态
  • 硬件GPU检测问题

检测到问题。

Gpu组合已被禁用,无论是通过区块列表,关于:标志或命令行。浏览器将返回到软件组合,硬件加速将不可用。残疾特征: gpu_compositing

然后goto ://标志/搜索“覆盖软件呈现列表”> set启用>重新启动浏览器

谢谢。

票数 4
EN

Stack Overflow用户

发布于 2019-03-04 13:12:52

因此,既然您发布了关于:gpu的结果,显示您只为WebGL获得软件呈现,这意味着tensorflow.js正在将failIfMajorPerformanceCaveat上下文创建标志传递给WebGL,这几乎肯定会导致软件呈现失败。

我们可以通过重写getContext并打印出创建标志进行检查。

代码语言:javascript
复制
<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>

所以我看到了这些结果

代码语言:javascript
复制
{
  "alpha": false,
  "antialias": false,
  "premultipliedAlpha": false,
  "preserveDrawingBuffer": false,
  "depth": false,
  "stencil": false,
  "failIfMajorPerformanceCaveat": true    <====-------
}

所以它才会打印警告。

尽管如此,这只是一个警告。tensorflow.js还在运行。注意(a)上面写着两个警告,而不是两个错误。(b)以黄色而非红色展示。

使用console.warn vs console.error,您可以看到不同之处

tensorflow.js运行得非常好。下面是一个例子。我攻击过getContext,所以它总是失败,所以tensorflow.js无法获得WebGL上下文。它打印两个警告,但它也运行得很好。滚动到消息的底部,您将看到它运行示例tensorflow代码的结果。

代码语言:javascript
复制
const d = tf.tensor2d([[1.0, 2.0], [3.0, 4.0]]);
const d_squared = d.square();
d_squared.print();
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54971976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档