无法使用 React Native 的 bundleResourceIO 加载自定义 TensorFlow.js 模型
Failed loading custom TensorFlow.js model with bundleResourceIO for React Native
我试图在本机反应中将自定义模型加载到 tensorflow.js 中,但是当我尝试加载它时出现以下错误。
Unable to resolve "../model/group1-shard1of1.bin" from "screens/CameraView.js"
undefined Unable to resolve module `../model/group1-shard1of1.bin` from `screens/CameraView.js`:
const modelJSON = require("../model/model.json");
const modelWeights = require("../model/group1-shard1of1.bin");
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === "granted");
})();
(async () => {
try {
const model = await tf.loadLayersModel(
bundleResourceIO(modelJSON, modelWeights)
);
console.log("Model loaded");
} catch (e) {
console.log(e);
}
})();
(async () => {
await tf.ready();
setTFReady(true);
})();
// console.log(isTFReady);
}, []);
通过在项目目录根目录下添加一个metro.config.js文件解决,代码如下
const { getDefaultConfig } = require('metro-config');
module.exports = (async () => {
const defaultConfig = await getDefaultConfig();
const { assetExts } = defaultConfig.resolver;
return {
resolver: {
// Add bin to assetExts
assetExts: [...assetExts, 'bin'],
}
};
})();
我试图在本机反应中将自定义模型加载到 tensorflow.js 中,但是当我尝试加载它时出现以下错误。
Unable to resolve "../model/group1-shard1of1.bin" from "screens/CameraView.js"
undefined Unable to resolve module `../model/group1-shard1of1.bin` from `screens/CameraView.js`:
const modelJSON = require("../model/model.json");
const modelWeights = require("../model/group1-shard1of1.bin");
useEffect(() => {
(async () => {
const { status } = await Camera.requestPermissionsAsync();
setHasPermission(status === "granted");
})();
(async () => {
try {
const model = await tf.loadLayersModel(
bundleResourceIO(modelJSON, modelWeights)
);
console.log("Model loaded");
} catch (e) {
console.log(e);
}
})();
(async () => {
await tf.ready();
setTFReady(true);
})();
// console.log(isTFReady);
}, []);
通过在项目目录根目录下添加一个metro.config.js文件解决,代码如下
const { getDefaultConfig } = require('metro-config');
module.exports = (async () => {
const defaultConfig = await getDefaultConfig();
const { assetExts } = defaultConfig.resolver;
return {
resolver: {
// Add bin to assetExts
assetExts: [...assetExts, 'bin'],
}
};
})();