Ошибка Handpose tfjs - бэкэнд не найден в реестре
При попытке запустить демонстрационный проект для Handpose tfjs я получаю следующую ошибку.
Мой файл package.json имеет следующие зависимости:
{
"name": "tensorflowJs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"watch": "cross-env NODE_ENV=development parcel index.html --no-hmr ",
"build": "cross-env NODE_ENV=production parcel build index.html --public-url ./"
},
"browser": {
"crypto": false
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@tensorflow-models/handpose": "0.0.4",
"@tensorflow/tfjs-backend-wasm": "^2.0.0",
"@tensorflow/tfjs-converter": "^1.7.4",
"@tensorflow/tfjs-core": "^2.0.0",
"@tensorflow/tfjs-node": "^2.0.0",
"bootstrap": "^4.5.0",
"cross-env": "^7.0.2"
},
"devDependencies": {
"@babel/cli": "^7.10.1",
"@babel/core": "^7.10.2",
"@babel/plugin-transform-runtime": "^7.10.1",
"@babel/polyfill": "^7.10.1",
"@babel/preset-env": "^7.10.2",
"babel-preset-env": "^1.7.0",
"parcel-bundler": "^1.12.4"
}
}
Проблема с реестром должна была быть решена после версии 0.10.3, но даже для версии 2 я все еще сталкиваюсь с проблемой. Кто-нибудь знает, почему возникает эта проблема?
6 ответов
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-webgl"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/handpose"></script>
Tensorflow выпустил 2.0.0, и теперь вы должны выбрать либо tfjs-backend-webgl, tfjs-backend-cpu, либо tfjs-backend-wasm для запуска вашей модели. Вы используете handpose, и для этого вам следует использовать webgl.
Я по ошибке придумал свою собственную строку импорта:
import backend from '@tensorflow/tfjs-backend-webgl'
Правильная версия:
import '@tensorflow/tfjs-backend-webgl';
У меня была такая же ошибка: "В реестре не найдено серверной части", но в моем случае я работал с
@tensorflow-models/blazeface
модель и приложение для реакции. Я установил
@tensorflow/tfjs-converter
и
@tensorflow/tfjs-core
поскольку ссылка Readme на Github Readme предлагала, но я все еще получал ошибку. Затем я решил свою проблему, перейдя к index.html в общей папке приложения для реагирования, и добавил следующие скрипты в конец файла.
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-webgl"></script>
Удачи
У меня это сработало после того, как я добавил в проект эти два пакета:
import '@tensorflow/tfjs-backend-cpu';
import '@tensorflow/tfjs-backend-webgl';
Я пробовал все решения здесь и решения в сети: в течение нескольких дней. Затем мне пришло в голову: большинство этих проблем в этих случаях связаны с версиями .
Затем я просто скопировал рабочую версию найденного в сети приложения, и оно отлично работает. Окончательное обучение: кажется, проблема с версиями.
"@tensorflow-models/mobilenet": "1.0.1",//this one you should fix, the issue is here
"@tensorflow/tfjs": "2.0.0",//tested, you can install the latest version
Не уверен, что у нас есть лучшее решение, но оно работает просто отлично!
Для меня решением было дождаться готовности tf:
tf.ready().then(_ => {
//Code here
})