Uncaught Error: Based on the provided shape, [1024,3], the tensor should have 3072 values but has 30

Uncaught Error: Based on the provided shape, [1024,3], the tensor should have 3072 values but has 30

我正在尝试构建一个 Tensorflow.js 应用程序,它在本地运行良好,但是当我托管它时(我在 Firefox 和 Chrome 上都尝试过 Netlify and Vercel)我得到了这个错误: Uncaught Error: Based on the provided shape, [1024,3], the tensor should have 3072 values but has 30。有任何想法吗?我唯一的意见是它必须对 CORS 做些什么,但我不知道。

主持:

本地主机:

JavaScript代码:here

如果 bin 文件损坏,您将收到此类错误消息。 例如,如果您从 GitHub 下载一个 ZIP 文件形式的存储库,而该文件使用 Git LFS,则可能会发生这种情况。为避免这种情况,您需要克隆它或单独下载 bin 文件。 在您的情况下,我假设您的网站托管商不允许文件扩展名 .bin,并且您可能会收到一条错误消息作为文件的内容。 json 和 bin 的下载时间也有点令人惊讶。 两者几乎相同,尽管 bin 文件应该更大,因此需要更长的下载时间。 最好的祝福, 萨沙

当 运行 face-api.js 模型与 NodeJS 服务器集成到 React 应用程序时,我也遇到了这个问题。它在本地开发环境中运行良好,但在构建和 运行 它时,它无法解决模型的承诺,并出现相同的错误。在探索这个问题时,早些时候我使用“serve”(npm i -g serve)来托管我的构建应用程序,但出现了这个错误。但是在将托管服务器更改为 Nginx Web 服务器时,我的应用程序成功托管并解决了这个问题。 切换到Nginx server to host,就可以了。

非常感谢您的回复。我正在从 github 存储库下载模型文件,但遇到了同样的错误。

绕过[解决方案]:

打开同一 github 存储库中提供的演示 Web 应用程序,然后从网络选项卡的开发人员工具中下载 model shared filesmodel.json 文件,然后 运行 本地演示,它 成功了。

感谢您的帮助。

我在 React 应用程序中使用 tensorflow.js 时遇到了类似的错误,尽管我既没有从 github 下载 bin 文件也没有从 zip 文件中提取它。我能够在本地完美地提供 model.json 和二进制文件,但是当我部署它时,我首先遇到运​​行时错误,然后在第二次尝试使用不同的数字出现类似的错误。

它拔出了一个 sheet 金属,直到我来到这里,看到也许我需要检查二进制文件的校验和。是的,这就是问题所在。他们是不同的。 Git 看不到它。尽管我删除了二进制文件并创建了一个 .gitattributes 配置以避免 git 对 bin 文件进行更改,但它并没有解决问题。作为临时解决方案,我暂时将二进制文件手动上传到我们的存储库并且它可以工作。我会在与我们的 devOps 工程师会面并对这个问题有更好的理解后立即更新这个答案。

我在使用 IIS Express 时遇到了类似的错误,但是我可以 运行 使用 Live Server 在 VS Code 中完全相同的文件,没有任何问题。

几天后我发现这是因为无扩展名的分片文件没有对应的 MIME 映射,可能会被错误地下载。我最终从本地 IIS 中的 public 文件夹提供这些文件,并为“.”添加了 MIME 映射。 (无扩展名文件)到“application/octet-stream”(二进制文件的 MIME)。

后来我在 Github 上发现 this comment 说你可以只添加“.bin”扩展名,但你必须更改 两个路径 对应manifest.json

我认为这两种解决方案都应该可行。前者在我的 Blazor Server 项目上工作

我正在为 Visual Studio 代码 IDE 使用实时服务器扩展,发现它给我这个错误: GET http://127.0.0.1:5500/model.weights.bin 404(未找到) 未捕获(承诺)错误:根据提供的形状 [3,3,3,8],张量应具有 216 个值但具有 39

所以我创建了一个名为model 的新文件夹,并将model.json 和model.weights.bin 两个文件移动到其中。并将文件路径更改为新位置: classifier.load("./model/model.json", customModelReady);

然后错误消失了。