请求的纹理大小 [0x0] 无效。当我在浏览器中加载图像时出错

2023-11-21

调用预测函数时浏览器中的 Tensorflow.js 错误

我正在使用 Node.js 来运行 web 应用程序。这是我包含的脚本,我正在 Chrome 中运行 Node.js,但无法解决该错误。

该项目有 7 个类作为输出,是形状为 1x7 的输出的密集层。

https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js
https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]/dist/tf.min.js
https://code.jquery.com/jquery-3.3.1.slim.min.js

这是我的 JavaScript 文件。

 $(document).on('change', '#file', function() {

    let reader = new FileReader();
    reader.onload= function(){
        let dataUrl = reader.result;
        $('#selected-image').attr('src',dataUrl);
        $('#type1-predict').empty();
        $('#type2-predict').empty();
        $('#type3-predict').empty();
        $('#type4-predict').empty();
        $('#type5-predict').empty();
        $('#type6-predict').empty();
        $('#type7-predict').empty();
    }

    let file = $('#file').prop('files')[0];
    reader.readAsDataURL(file)
    });
    const CANCER_CLASSES = {
    0:"Actinic Keratoses",
    1:"Basal cell carcinoma",
    2:"Benign keratosis",
    3:"Dermatofibroma",
    4:"Melanoma",
    5:"Melanocytic nevi",
    6:"Vascular skin",    
    }
    let model;
    (async function(){
    model= await tf.loadLayersModel('http://localhost:81/model/model.json');
    $('#pro').hide()

    })();
    $(document).on('click', '#predict-button', async function() { 
    let image = $('#selected-image').get(0);

    let tensor = 
    tf.browser.fromPixels(image)
        .resizeNearestNeighbor([224,224])
        .toFloat()
        .expandDims();
    let prediction = await model.predict(tensor).data();
    let top3 = Array.from(prediction)
    .map(function(p,i){
        return {
            probab: p,
            classname:CANCER_CLASSES[i]
        };

    }).sort(function(a,b){
        return b.probab-a.probab;
    }).slice(0,4);
    $("#type1-predict").empty();
    top3.forEach(function(p){
        $('#type1-predict').append(`<li>${p.classname}: 
    ${p.probab.tpFixed(6)} 
    </li>`);
    });
    });

这是 HTML 文件的一个片段

<body>
<div id="pro" class="progress progress-bar progress-bar-striped progress- 
bar-animated"></div>    
<input type="file" id="image-selector">
<button id="predict-button">Predict</button>
<p style="font-weight:bold">Presentation</p>
<p>Actinic Keratoses : <span id="type1-predict"></span></p>
<p>Basal cell carcinoma: <span id="type2-predict"></span></p>
<p>Benign keratosis: <span id="type3-predict"></span></p>
<p>Dermatofibroma: <span id="type4-predict"></span></p>
 <p>Melanoma: <span id="type5-predict"></span></p>
<p>Melanocytic nevi : <span id="type6-predict"></span></p>
<p>Vascular skin: <span id="type7-predict"></span></p>
<img id="selected-image" src="">

您能帮我解决以下错误吗:

 webgl_util.ts:203 Uncaught (in promise) Error: Requested texture size 
    [0x0] is invalid.
    at Fr (webgl_util.ts:203)
    at oi (gpgpu_util.ts:126)
    at ui (gpgpu_util.ts:173)
    at t.createUnsignedBytesMatrixTexture (gpgpu_context.ts:134)
    at t.acquireTexture (texture_manager.ts:71)
    at t.acquireTexture (backend_webgl.ts:2472)
    at t.uploadToGPU (backend_webgl.ts:2407)
    at t.getTexture (backend_webgl.ts:566)
    at t.fromPixels (backend_webgl.ts:254)
    at t.fromPixels (engine.ts:599)

Problem

当 Tensorflow.js 尝试通过以下方式将图像转换为张量时tf.browser.fromPixels, it reads the width and height来自 DOM 元素。由于您的情况未设置这些值,因此您会收到错误。

Solution

你必须给出img tag a width and height属性,以便 Tensorflow.js 知道图像的大小:

<img id="selected-image" src="" width="..." height="...">

目前有一个存储库中的开放问题描述这个问题。将来可能会通过提供更好的错误消息来解决此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求的纹理大小 [0x0] 无效。当我在浏览器中加载图像时出错 的相关文章

  • 这段代码有什么问题。如果用户选择或不选择复选框,为什么它仍然显示 MsgBox? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 无论我是否选择复选框 它仍然会给出
  • 共享工作线程在重新加载页面时终止

    为什么 Shared Worker 在重新加载页面时死掉了 应该是复活了我该如何解决这个问题 重新加载前 重新加载后 在 example com 上按 F5 家长工人 var port new SharedWorker app worker
  • 如何精确缩放已翻译的d3地图

    我有一张已翻译的地图 以使其正确适合画布 我正在尝试实现一种缩放它的方法 它确实有效 但是当您放大时它会远离中心 而不是以鼠标甚至画布为中心 这是我的代码 function map data total views var xy d3 ge
  • ES6 类文字中的 IIFE

    在 ES5 中我们都可以这样做 myClass prototype myMethod function return function 我可以对 ES6 类文字执行同样的操作吗 不 至少现在还没有 ES6 类仅支持声明方法 因此任何不直接为
  • Javascript 无法正确排序 DECIMAL 数字

    我有一些代码可以按字母顺序对名称进行排序 我遇到的问题是它处理小数的方式 它对名称进行排序 如下所示 我宁愿它按数字递增 DOG 1 0510 DOG 1 1031 DOG 11 1792 DOG 12 0920 DOG 12 1170 D
  • 如何将节点 sqlite3 与 q (promise) 一起使用

    我正在尝试将 Promise 与 sqlite3 一起使用 这是我的源代码的一部分 this deleteTag function tag project var db this db if project return q nfcall
  • 如何将查询参数添加到守卫中的路由并将其传递给 Angular 4 中的组件?

    我在我的 Angular 4 应用程序中使用路由保护 如果条件满足并返回 true 我想向路由添加一个查询参数 这是我一直在研究的代码 Injectable export class ViewGuardService implements
  • dc lineChart 单击时弹出数据点信息

    我正在尝试检测折线图数据点上的点击 Per this answer dc scatter plot binding onClick event https stackoverflow com a 22772340 1873386 I am
  • 如何检查侧边栏视图是否已经在主干中渲染?

    通常 用户通过主页进入网站 然后我在那里渲染侧边栏视图 接下来 用户单击链接 路由器呈现另一个视图并替换原始内容视图 侧边栏视图不会重新渲染 当用户在子页面上单击刷新时 侧边栏不会呈现 如何检查视图是否存在并且已渲染 划分责任并坚持下去 不
  • Flask 和 Reactjs 抛出 JSX 转换错误

    我已经开始将 ReactJS 与 Python Flask 后端结合使用 通过 Flask 渲染模板时 我在 Chrome 控制台中收到以下客户端错误 错误 找不到模块 jstransform visitors es6 templates
  • Jquery 子元素发生变化

    我正在尝试使用 jquery 在子元素 在本例中为 select 更改时触发事件 这是我的 HTML div class row addForm div class col lg 2 col md 2 col sm 3 col xs 6 d
  • Firefox 上的 jquery 焦点未设置

    我想将焦点设置到我的文本区域 以下是我的代码 this textInput val show focus 但它不起作用 实际上 当我按下鼠标按钮时 它会出现 但是当我松开鼠标时 它会从文本区域中删除 因此 经过大量搜索后 我发现 setTi
  • jQuery 模板插件:如何创建双向绑定?

    我开始使用 jQuery 模板插件 微软创建的 但现在我面临这个问题 模板用于绑定到对象数组的一堆表单 当我更改其中一个表单上的某些内容时 我希望更新绑定的对象 但我不知道如何自动执行该操作 这是一个简单的例子 现实生活中的模板和对象要复杂
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • 如何使用转义的 unicode 解码字符串?

    我不确定这叫什么 所以我在搜索时遇到了麻烦 如何使用 unicode 解码字符串http u00253A u00252F u00252Fexample com to http example com使用 JavaScript 我试过unes
  • Intern JS - 如何在链式 Command 方法中使用 Promise.all()?

    我是用 Intern JS 编写测试的新手 并且一直在遵循他们的文档来使用对象接口 https theintern github io intern interface object and 页面对象 https theintern git
  • Dojo“正在加载”消息

    我是 Dojo 新手 所以我需要一些帮助 我的一些链接需要一段时间 当用户单击时 页面开始加载需要几秒钟 我想添加一条 正在加载 消息 我可以用 旧时尚方式 来做 但我想学习新的 更简单 更智能的 Dojo 方式 具体如何工作现在并不重要
  • 禁用移动设备上的锚点菜单点击

    我使用嵌套列表作为带有子菜单项的菜单 我曾经这样做过 如果您将鼠标悬停在主菜单项上 子菜单项将通过将显示从无更改为块来出现 我决定让子菜单看起来就像是下拉的 并使用了 CSS 过渡 我遇到的问题是 在第一种方法中 如果您触摸 iPad 上的
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简
  • 使用 javascript 从亚马逊 URL 中抓取 ASIN

    假设我有一个像这样的亚马逊产品 URL http www amazon com Kindle Wireless Reading Display Generation dp B0015T963C ref amb link 86123711 2

随机推荐